X32-OSC.pdf

  1. #1 by Patrick-Gilles Maillot on 11-17-2017
    Patrick-Gilles Maillot's Avatar
    Posts: 1,156

    X32-OSC.pdf

    Hello,

    Just to let you know I just posted an updated version of X32-OSC, with modifications covering the 3.08 FW.

    Happy reading!
    -Patrick

    Edit: you can find it here:
    https://www.academia.edu/9709659/UNO...EMOTE_PROTOCOL
    or
    https://sites.google.com/site/patrickmaillot/x32

    Last edited by Patrick-Gilles Maillot; 11-17-2017 at 06:39 AM.
  2. #2 by Kevin Maxwell on 11-17-2017
    Kevin Maxwell's Avatar
    Posts: 1,449
    Thank you.

    Do you have a link to it that you can include here?
  3. #3 by Patrick-Gilles Maillot on 11-17-2017
    Patrick-Gilles Maillot's Avatar
    Posts: 1,156
    - Kevin Maxwell wrote View Post
    Thank you.

    Do you have a link to it that you can include here?
    Sorry, I clicked 'send' too soon. See edit
  4. #4 by Kevin Maxwell on 11-18-2017
    Kevin Maxwell's Avatar
    Posts: 1,449
    - Patrick-Gilles Maillot wrote View Post
    Sorry, I clicked 'send' too soon. See edit
    Do you have a summery of the added commands in 3.08?

    Also just a general OSC question and this relates to Palladium. Is there a single command that tells the mixer to send its present state. Palladium has a refresh command that will send the state of Palladium all at once to the mixers it is hooked up to, but there has been a time or 2 when starting to build a show that I want the Mixer to send its state to Palladium. Since Palladium (in learn mode) receives changes as they are made on the mixer, there has been a time that I setup the mixer with the data I want to start with and I want to dump that into Palladium. I don't know if this would be called an OSC dump? I have the ability in Palladium to send OSC messages using what is presently called Aux Messages and each message can contain an OSC string and direct it to a mixer. So if there was a dump all OCS data, this might do what I want. I see /showdump, I don't want to send all scenes etc. I just want to send the scene I am in at the time. I hope I have explained this in a way that is understandable.

    Thank you for your help and all of your work on the OSC document and the utilities that you have written.
  5. #5 by Patrick-Gilles Maillot on 11-18-2017
    Patrick-Gilles Maillot's Avatar
    Posts: 1,156
    - Kevin Maxwell wrote View Post
    Do you have a summery of the added commands in 3.08?

    Also just a general OSC question and this relates to Palladium. Is there a single command that tells the mixer to send its present state. Palladium has a refresh command that will send the state of Palladium all at once to the mixers it is hooked up to, but there has been a time or 2 when starting to build a show that I want the Mixer to send its state to Palladium. Since Palladium (in learn mode) receives changes as they are made on the mixer, there has been a time that I setup the mixer with the data I want to start with and I want to dump that into Palladium. I don't know if this would be called an OSC dump? I have the ability in Palladium to send OSC messages using what is presently called Aux Messages and each message can contain an OSC string and direct it to a mixer. So if there was a dump all OCS data, this might do what I want. I see /showdump, I don't want to send all scenes etc. I just want to send the scene I am in at the time. I hope I have explained this in a way that is understandable.

    Thank you for your help and all of your work on the OSC document and the utilities that you have written.

    Kevin,

    I don't know of a single X32 command that would result in the x32 sending its current state as you mention; Getting the state of the X32 requires multiple OSC commands and result in thousands of parameters being transferred. If you are interested in the data equivalent to the current scene, this already represents a lot of commands.

    As to the sections that changed with FW 3.08, these are:
    /-action
    /-prefs
    /-stat
    /-urec
    /config

    -Patrick
  6. #6 by Ted Rippert on 01-05-2018
    Ted Rippert's Avatar
    Posts: 75
    Hey Patrick - I've been playing with MIDI-OSC over in the XAIR world, and I noticed that the command format is different than the OSC sent over a network connection. You describe it in words on pg. 128 of your X32-OSC document, but the examples you give can be misleading. You might want to consider a revision to this section next time you're putting out a new version.

    For instance, You give this example:
    Code:
    Setting channel 01 mute ON (muting the channel): 
    OSC: /ch/01/mix/on~~~,i~~[0]
    OSC: /ch/01/mix/on~~~,s~~OFF 
    Sysex: F0 00 20 32 32 2F 63 68 2F 30 31 2F 6D 69 78 2F 6F 6E 20 4F 46 46 F7
    Here you are giving a valid OSC string for a network connection, but your Hex is, correctly, representative of a MIDI-OSC message. You might want to change it to something like:

    Code:
    Setting channel 01 mute ON (muting the channel): 
    Net-OSC: /ch/01/mix/on~~~,i~~[0]
    Net-OSC: /ch/01/mix/on~~~,s~~OFF 
    MIDI-OSC: /ch/01/mix/on OFF
    Sysex: F0 00 20 32 32 2F 63 68 2F 30 31 2F 6D 69 78 2F 6F 6E 20 4F 46 46 F7
    Similarly, when giving an example of a continuous parameter, you provide a valid Net-OSC string and a valid MIDI-OSC Hex string, but the actual parameter values are not the same since Net-OSC always uses a 0.0 - 1.0 float, while MIDI-OSC uses actual physical values (in this case Hz):

    Code:
    Setting channel 01, EQ 2 frequency to 1kHz (actually 1020Hz, due to known discrete values) 
    OSC: /ch/01/eq/2/f~~~,f~~[0.57] 
    Sysex:F0 00 20 32 32 2F 63 68 2F 30 31 2F 65 71 2F 32 2F 66 20 31 30 32 30 F7
    Which might be better as:

    Code:
    Setting channel 01, EQ 2 frequency to 1kHz (actually 1020Hz, due to known discrete values) 
    Net-OSC: /ch/01/eq/2/f~~~,f~~[0.57] 
    MIDI-OSC: /ch/01/eq/2/f 1020
    Sysex:F0 00 20 32 32 2F 63 68 2F 30 31 2F 65 71 2F 32 2F 66 20 31 30 32 30 F7
    It's a small thing, but it had me confused for a while so you might think about something like this to make clearer the difference between the Net and MIDI OSC commands.

    I am still always amazed at the amount of work you put into this document every time I read it. Thank you again for all your effort on this.

    -Ted
  7. #7 by Patrick-Gilles Maillot on 01-06-2018
    Patrick-Gilles Maillot's Avatar
    Posts: 1,156
    Thanks Ted, Applying the changes and updating the doc. -Patrick
  8. #8 by Javier Megias on 01-19-2018
    Javier Megias's Avatar
    Posts: 30
    Hello Patrick.
    Is there any way to know the exact floating values from the lin145, lin65, etc.....that aren´t on your document? It would be interesting to have a full list for the controller project that I'm still working on. The values of log1024, log201, etc that are on your document have been very useful for me at this point and I want to complete the full list of values, so if you can give me a hint of how to obtain all of them by myself it would be very nice, anyway.....I don't want to give you more work, you've already done an exceptionally OSC protocol manual for us, so I will thank you for it.
    Greetings.
  9. #9 by Patrick-Gilles Maillot on 01-20-2018
    Patrick-Gilles Maillot's Avatar
    Posts: 1,156
    Hello Javier,

    Lin145, Lin 65?

    I think I put all the Log[*] tables. If I missed one, which is possible do not hesitate to tell me; I'll add it.

    As for the Lin[*] tables, I didn't put them as they are a lot easier to craft:
    the format is Lin[min, max, increment], which means you start at 'min', and each following value is obtained by simply adding 'increment', until you hit 'max'. The exact float is given as 32 bit IEEE floating point computer value, which you can print as float format.

    I can do that if it helps, let me know which table you'd like to see.

    -Patrick
  10. #10 by Javier Megias on 01-21-2018
    Javier Megias's Avatar
    Posts: 30
    Hello Patrick
    Well, for what I want to do I need ALL the tables (lin and log), so that I can insert all the values in my software. I don't know if you remember or if You have seen what I want to do and what I have done till this moment. I know it sounds a bit strange, but I need all the tables with the float values so that I can call any value by an index number, this index will be controlled with an hardware encoder who will work like the same way it does on a X32 but in this case it will be a self-made physical controller for my X18.
    Regards

    Last edited by Javier Megias; 01-21-2018 at 03:08 PM.