I spent considerable time with wireshark and the system figuring out how each part of the dLive system communicates with each other part in my earlier posts when I was posting the TCP data captures.
In general UDP is for meters only, StuartW, use the “not udp & not arp & not DNS” command in the filters in wireshark. I have not investigated this thoroughly, but I am 95% sure that is all UDP is for.
Director sends TCP heartbeat, status updates, and nearly every command to mixrack and mixrack returns confirms to the specific Director instance in communication. This includes the commands you might think are ‘Director only’ such as ‘Sel’ or ‘SoF’.
I am not 100% certain of how this handshaking occurs, but I have a general gist. Mixrack can accept control from 4 directors at once.
Setup: 2x Directors (or surfaces, i’ll use it interchangeably) & mixrack.
Here’s an example:
Director1 CH1 sel > tcp command to mixrack “select channel 1”
mixrack > tcp command to director “selected CH1”
Current State: Director1 shows CH1 selected, Director2 does not show CH1 selected, Mixrack internally knows Director1 is selecting Ch1
Director1 change EQ4 +3dB > tcp command to mixrack “change EQ4 +3dB” [not 100% certain whether it includes info about which channel or because CH1 is the currently selected channel mixrack changes the specific setting]
mixrack > tcp command to director “okay did that to Ch1”
mixrack > tcp commands to other director “hey I changed EQ4 +3dB on CH1”
Current state: D1 shows Ch1 selected & sends EQ changes to mixrack.
Mixrack sends D1 EQ changes to D2 for CH1
D2 shows CH1 not selected but reflects D1 EQ changes on CH1
The reason why I say controlling Director is more useful is two-fold.
- Controlling director allows offline non-mixrack emulation & control/setup. One can completely create a dLive ecosystem without the mixrack and controlling Director from SD would allow testing & implementation.
- I find that controlling Director is much more useful (command-wise) than controlling the mixrack.
To the surface only/mixrack, I think you’ll see from the above investigations that there aren’t many ‘surface only’ commands.
And I get that you’ve already done work controlling the mixrack directly and I’m sure there is more that could be expanded upon the current commands allowed via MIDI, but I’m not sure what else you’d want to do.
Give me a specific list of things you want to control on the mixrack and I’ll give you the data, sure, no prob. But if it is “everything one can do” that’s a huge amount of commands I’m not really interested in sniffing.
My priorities when developing is make it useful first to most people, then add moar cow-bell
So getting to the meat of things…
I can sniff packets all day long, but without getting it to work by sending the same message I can’t really test anything.
To be more useful to this project, I need is a program that sends proper HEX strings via TCP messages to an IP & socket from a source socket.
I started trying to find a program but it doesn’t exist, I know vb.net better than c# but there’s only c# programs so I guess I need to make a program that can do this.
I am REALLY close to doing what I want with director from a sniffing POV, but not from a ‘test this command’ POV.
Due to personal prioritie(s) I’ll have less responsibilities starting Monday so I can help more on this project.