pmaillot / X32-Behringer

This GIT repo (C language) holds applications and utilities for the Behringer X32 and M32 mixing consoles. Additional details, documentation, implementation examples and apps can be found in my website:
https://sites.google.com/site/patrickmaillot/x32
234 stars 41 forks source link

X32 Emulator unable to read Mixing Station scene: /mtx/02/dyn/thr wrong type #26

Closed stevekmcc closed 2 years ago

stevekmcc commented 2 years ago

TLDR: X32Mtx.h has line 99: {"/mtx/02/dyn/thr", {E32}, F_XET, {0}, OffOn}, and similarly for other matrixes. Yet other /dyn/thr in X32Channel.h and X32Bus.h have type {F32}, F_XET, {0}, NULL}, and indeed your OSC PDF says it is a float. {"/mtx/01/dyn/filter/f", {E32}, F_XET, {0}, OffOn}, also looks incorrect, should presumably be {F32}, F_XET, {0}, NULL}, Comparing X32Mtx.h and the OSC PDF, I couldn't see other errors, but admittedly I didn't check every matrix copy or follow all enum type definitions.

Problem description: First, thanks for an amazing set of utilities! I'm trying to use X32 Emulator to receive a Mixing Station offline scene, passing it on to a connected X32 Edit, so I can save as a normal Behringer scene. Both programs can connect to the emulator and read its initial state, and fader moves are passed correctly through the emulator. But loading any offline scene in Mixing Station while connected to the emulator only gets to 5% and gives:

Error: Sync error Could not complete sync to the console: Timeout while syncing /mtx/01/dyn/thr Expected 0.45833334 got 1.05556653E9

X32 emulator shows: ->X, 24 B: /mtx/02/dyn/thr~,f~~[0.4583] ->X, 16 B: /mtx/02/dyn/thr~ X->, 24 B: /mtx/02/dyn/thr~,i~~[1055566507]

i.e. Mixing Stations sends a float for the compression threshold of Matrix 2, then I think sends a request for the same value to verify, but receives back an int. The definition of the OSC for matrix compression threshold seems to be in X32Mtx.h, e.g. line 99 for Matrix 2.

pmaillot commented 2 years ago

Made the necessary changes. Thanks!