Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More information on MB and MS message formats #47

Open
jskeet opened this issue Dec 28, 2022 · 2 comments
Open

More information on MB and MS message formats #47

jskeet opened this issue Dec 28, 2022 · 2 comments

Comments

@jskeet
Copy link

jskeet commented Dec 28, 2022

Apologies if you already know this - I'm just going on what's recorded in the documentation and code, which I don't think is quite right at the moment.
In particular, my 16R (with the latest firmware) sends meter messages with varying sizes, based on what inputs and outputs are actually used.

I believe the format is:

  • Type: 4 bytes (e.g. "fdrs", "lvls", "mt64"
  • Padding: 2 bytes, always 0 as far as I can see
  • Data count: uint16
  • Data (count as above * size of each value; 1 for MB and 2 for MS)
  • Row mapping count: 1 byte
  • Row mappings, 6 bytes each

The row mappings tell you how to interpret the data values. The format of each row mapping is:

  • Type (0=input, 1=return, 2=fx return, 3=talkback, 4=aux, 5=FX, 6=??? (signal generator?), 7=main - at least for faders and (I think) levels; it's less clear for mutes.
  • Strip (0-6; e.g. varying stages, pre/post-HPF, GEQ, faders etc - I haven't looked into all the details yet)
  • Offset: uint16 (offset within the data)
  • Count: uint16 (number of values to read)

Each row of data starts at channel 1 / aux 1 / FX A etc and has a value per channel. So if you only have audio on channels 1+2, you only get data for those channels - whereas if you only have audio on channel 9, you get data for channels 1-9.

I hope that's helpful - let me know if it's not clear.

@featherbear
Copy link
Owner

Running my 16R on 2.6.0.90872

  • Can you confirm which types (fdrs, lvls, mt64) apply to which message format
  • Does the row mappings apply to the MS payload as well.. or which type?
  • Are you receiving two MB packets during a linked (un)mute action?

@jskeet
Copy link
Author

jskeet commented Jan 1, 2023

fdrs and lvls are both reported via MS, and mt64 is reported via MB. But in all cases the "number of values, values, number of rows, row mappings" format is honoured (as far as I've seen). The "strip" part is always 0 for mt64 as far as I can tell.

I'm not at home with the mixer at the moment, but yes, it looks like I always receive two mt64 messages together (one with 0x90 values in two rows with a "type" of 0x00 (one short row and then one long row), one with 0x75 values in 12 rows, with two rows for each of "type" 1, 2, 3, 4, 5, 7).

If you have better suggestions for terminology by the way, I'm very happy to adopt them :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants