autonomouskoi / akslobs

AKSLOBS is an experimental OBS Overlay for current tracks on Denon DJ Prime 4
MIT License
0 stars 0 forks source link

akslobs doesn't work properly with 2x SC5000 + X1850 #3

Open jasonmf opened 3 months ago

jasonmf commented 3 months ago

The first issue here is that akslobs stops at the first device it finds. In a multi-device setup this would mean that only one device in the setup, randomly selected, will send events.

This can (probably) be resolved by launching handleDevice in a separate goroutine, after the guard for devices already seen. I'm working with a user on this problem and the approach isn't entirely sufficient; akslobs still gets confused. I have two theories: one is that both controllers are sending events as Deck1 and Deck2, so they would overwrite each other. Another is that the mixer may also be sending events, so there's three devices sending events. It may be a combination of the two.

I have a version of the executable for the user that provides additional detailed logging to collect more information about what's actually happening.

jasonmf commented 3 months ago

With user support, the logs show that the mixer doesn't send any StateMap messages. The two SC5000s are sending StateMap messages with names only using Deck[12], so akslobs can't differentiate between all four channels. There needs to be something additional to differentiate devices. For a session, this could be IP but that can changes between sessions via DHCP. I've opened https://github.com/icedream/go-stagelinq/issues/35 to ask if there's a stable identifier that the go-stagelinq package can access. I'd prefer to use something like that than use ARP to find the MAC address, but that might be the way I have to go, at least until I learn something better from the go-stagelinq folks.