help with sysex, please!


    Jun 22 2012 | 1:09 pm
    hi guys, i`m trying to build a patch for my bitstream with various functions. first thing is a automap feature where i can control the 8 macros of the first rack of each track. that means i have control over 4 tracks at a time. so far so good. that`s no problem, but i want to go further. i want that the bitstream automaticlly switches groups when i select a track. so when i select track 5 or 6 it switches to group 2. i know that should be possible with sysex, but i don`t have any experience with that. and i don`t know how to format a message so the bitstream accept it. hope that somebody can help me! i think if somebody could give me an example of the sysex message to change groups that would be enough, as my knowledge of midi and max is quite ok.
    jerome from waveidea already sent me this:
    Yes you can select a group from an incoming sysex, f0 00 20 4f 00 01 - 00 01 07 00 - gg 00 f7 not tested but should be the way to do (gg is 0 to 20 so 0 to 14h in hexa)
    but when i send f0 00 20 4f 00 01 00 01 07 00 01 00 f7 to the bitstream nothing happens. so i guess something is wrong with the syntax. the midi in led is flashing one time, but thats all
    midi filter is off, i`m using lh_midiout.
    thanks in advance
    andreas

    • Jun 22 2012 | 1:10 pm
      and the other thing is that max converts the 00 to 0 automatically. i dont know how to change that and dont know if thats the problem
    • Jun 22 2012 | 4:08 pm
      Have you tried the same via [sxformat]? That might help...
    • Jun 22 2012 | 4:49 pm
      yes! but with no luck? i think the problem is that i`m using a wrong syntax. can you tell me maybe how it would be correct if u look at the sysex that jerome sent to me. i konw that in the beginning the first 4 pairs are just for identification of the controller and then there is all for the parameter itself. im sure that i have to remove the "-" but i dont know exactly what he means with gg??
      thanks
    • Jun 22 2012 | 5:22 pm
      Just to make sure...
      sxformat uses decimal. So you can't send f0.. you have to send 240.
      This is quite annoying since most documentation about sysex will always refer to the hexadecimal values.
      if you print the output of sxformat, it will still show in decimal, however the correct message is sent. This was confusing at first because you have to send the "wrong" format, yet it works.
    • Jun 22 2012 | 5:24 pm
      Unfortunately I don't know that I can provide very specific help here. Aside from the fact that haven't worked with sysex recently - I don't know the specific device you're referring to nor the precise meaning of "gg" - though from what you quote of him in your post - it appears to be a group selector acronym/mnemonic (and as he points out it will be a hex value of 0 - 14 or dec 0 -20 so thats a given).
      Maybe there is a sysex chart/reference for this device on the site, or you may need to get the guy to clarify this point for you. That would be best...
      The other thing to try just so you can eliminate any issues on your part is to see if you can accomplish this sysex communication via Max directly rather than via M4L in case there are any sysex limitations with the midi external you are using.
      Finally, the most telling is if you can get the device to dump sysex (to max via capture or something) - you *may* be able to do that for single parameters though even in a total dump you could (somewhat tediously) search/isolate the relevant strings in that...
      Edit: And yes, good (gotcha) point from jbl
    • Jun 22 2012 | 6:35 pm
      @stoersignal
      It would be easier to help if you posted a bit of your non-working code. That said try this...
    • Jun 22 2012 | 6:55 pm
      sorry, got it already and was busy playing with it :-)
      thank you very much
    • Jun 23 2012 | 10:09 am
      "This is quite annoying since most documentation about sysex will always refer to the hexadecimal values."
      yeah, it is a pity that you cant just type symbols into something and send them out. sure, it will work - but it will be converted and displayed as decimal after you typed it.
      in sysex context i sometimes think there should be a list, messagebox, or coll object which is "symbol only" so that leading 0s will survive, until a "conversion" to numbers is required. (maybe it is possible to write stuff into sprintf? but that has item/element limits, doesnt it?)
      -110