Rackattack sysex

Home Forums General Using Ctrlr Rackattack sysex

Viewing 20 posts - 1 through 20 (of 50 total)
  • Author
    Posts
  • #594
    zeoka
    Participant
      • Topics: 73
      • Replies: 466
      • Total: 539
      • ★★★

      Hi
      I would like yo automate my waldorf rackattack with my maschine sequencer and i want to use ctrlr wich is
      seems relatively simple to use.

      I use Jrackattack 0.93 to edit it . It’s a complete app and i could be cool if i have just some parameters
      in my vsthost.

      My problem is when i type the the sys ex i want in the modulator settings " sysex formula "
      the modulator send one same value all the range. :roll:

      I use the monitor to see what happens : when i turn a knob of the rackattack it send all range to ctrlr
      but ctrlr send only one value.

      Please how i do to send all the range of the rackattack param with the modulator ?

      I’m a noob with midi language (i know just the basis ).

      Thank you

      #4204
      atom
      Keymaster
        • Topics: 159
        • Replies: 2945
        • Total: 3104
        • ★★★★★

        have a look at some other panels for example, in short put "xx" in the byte that should hold the value, put "yy" in the byte that should hold the MIDI channel, if the values are split into least and most significant parts, use LS/MS(for a 7bit split) and ls/ms(for a 4bit split). For example
        [code:1je93r3j]
        f0 40 yy 01 02 xx f7
        [/code:1je93r3j]
        as a formula for a slider that has the range 0-127 and a panel with midi channel 3 will send the following sysex
        [/code]
        f0 40 03 01 02 00 f7
        f0 40 03 01 02 01 f7
        f0 40 03 01 02 02 f7
        f0 40 03 01 02 03 f7
        ….
        f0 40 03 01 02 7f f7
        [/code]

        #4205
        zeoka
        Participant
          • Topics: 73
          • Replies: 466
          • Total: 539
          • ★★★

          VOLUME sound 1
          [f0 3e 11 00 20 20 00 00 35 5a 4f f7]
          [f0 3e 11 00 20 20 00 00 35 5c 51 f7]
          [f0 3e 11 00 20 20 00 00 35 5e 53 f7]
          [f0 3e 11 00 20 20 00 00 35 68 5d f7]
          FILTER CUTOFF sound 1
          [f0 3e 11 00 20 20 00 00 28 22 0a f7]
          [f0 3e 11 00 20 20 00 00 28 23 0b f7]
          [f0 3e 11 00 20 20 00 00 28 39 21 f7]
          [f0 3e 11 00 20 20 00 00 28 3b 23 f7]
          LFO1 SPEED sound 1
          [f0 3e 11 00 20 20 00 00 4b 4b 56 f7]
          [f0 3e 11 00 20 20 00 00 4b 4f 5a f7]
          [f0 3e 11 00 20 20 00 00 4b 65 70 f7]
          [f0 3e 11 00 20 20 00 00 4b 66 71 f7]
          So the formula i must type is
          F0 3E : 11: 00: 20: 20: 00: 00: "data specific to each params": yy ? : xx ? : F7
          I believed sysex normally doesn’t have midi channel so i’m confuse.

          Fortunely range of most params of the rackattack is 0 to 127 so i don’t need to
          change this in the panel.

          Any way thank you very much for this important tip


          Just tried the formula : instead of yy and xx i have only 00 and 00 when i turn the modulator……

          #4206
          atom
          Keymaster
            • Topics: 159
            • Replies: 2945
            • Total: 3104
            • ★★★★★

            You need to have the modulators MIDI type as SysEx.

            The yy was just an example if your midi specs say nothing about the midi channel then don’t use it, some sysex implementations (old yamaha, roland) have midi channel in the sysex (usually the third byte).

            #4207
            zeoka
            Participant
              • Topics: 73
              • Replies: 466
              • Total: 539
              • ★★★

              Yes the modulator is set to sysex (5)
              If i understand xx is a variable definite by the range setting in ctrlr (min val,max val ,interval)
              My problem is it seems there is two variables (byte 10 and 11) in my sysex’s
              I’ve tried with two xx but same results 00 and 00.
              I’ve a doc about rackattack but the info is not hexadecimal ex :

              Idx PAH PAL SNDV16 SNDV10 Description Name
              36 00h 24h Speed
              37 00h 25h Length
              38 00h 26h Type
              39 00h 27h Cutoff
              40 00h 28h Resonance
              Useful for me ? :shock:

              #4208
              atom
              Keymaster
                • Topics: 159
                • Replies: 2945
                • Total: 3104
                • ★★★★★

                Two things:
                1) witch version of Ctrlr are u using ?
                2) can you attach the manual or send a link to the MIDI specs ?

                #4209
                zeoka
                Participant
                  • Topics: 73
                  • Replies: 466
                  • Total: 539
                  • ★★★

                  I’ve a 934 rev on windows
                  My rackattack is 1.0.5
                  But the cc’s in the midi specs don’t work (i’ve tried all)
                  instead rackattack send sysex

                  Thank you very much again for your support
                  I feel i’m not so far of the solution !

                  Here is the specs.

                  #4210
                  atom
                  Keymaster
                    • Topics: 159
                    • Replies: 2945
                    • Total: 3104
                    • ★★★★★

                    This looks extremly complicated (it always is with waldorf). I tried the JRackAttack and hooked it via midiYoke to MIDI-OX and cought some of the sysex output, it’s weird for the OSC1 pitch wheel the sysex looks like this values 0, 32, 64, 127
                    [code:1jpuib5c]
                    SYSX: F0 3E 11 00 20 20 00 00 02 00 42 F7 F0 F7
                    SYSX: F0 3E 11 00 20 20 00 00 02 20 62 F7 F0 F7
                    SYSX: F0 3E 11 00 20 20 00 00 02 40 02 F7 F0 F7
                    SYSX: F0 3E 11 00 20 20 00 00 02 7F 41 F7 F0 F7
                    [/code:1jpuib5c]
                    as you can see the byte 10 has the value of the parameter, but also byte 11 changes (i’m guessing it’s the checksum)

                    sometimes while chaning one parameter the JRackAttack sends a sequence of messages that i don’t know what are for (would have to go into detail in the manual)
                    [code:1jpuib5c]
                    SYSX: F0 3E 11 00 20 20 00 00 02 74 36 F7 F0 F7
                    SYSX: F0 3E 11 00 20 20 00 00 02 73 35 F7 F0 F7
                    — weird stuff start
                    SYSX: F0 3E 11 00 20 20 00 00 1C 00 5C F7 F0 F7
                    SYSX: F0 3E 11 00 20 20 00 00 1D 00 5D F7 F0 F7
                    SYSX: F0 3E 11 00 20 20 00 00 1A 00 5A F7 F0 F7
                    SYSX: F0 3E 11 00 20 20 00 00 1B 00 5B F7 F0 F7
                    — weird stuff end
                    SYSX: F0 3E 11 00 20 20 00 00 02 74 36 F7 F0 F7
                    SYSX: F0 3E 11 00 20 20 00 00 02 73 35 F7 F0 F7
                    [/code:1jpuib5c]

                    From what i read in the manual the realtime control of the rackAttack is complicated at best and impossible at worse
                    [code:1jpuib5c]
                    Notes

                    • Access of parameters directly in memory is not implemented. Transfers from and to memory have
                    to go through either the assembly or the edit buffer. Exceptions are Global Parameters, where no
                    corresponding memory type exists. Global Parameters are scanned continously for changes by the
                    rackAttack and are automatically saved. To ensure that changes to Global Parameters are properly
                    saved, always switch off the rackAttack with the Power button on the machine.
                    • Full remote control of the rackAttack is currently not possible. The missing functions will very
                    likely be implemented through the MOD functions. Remote Control messages in the style of the
                    MW/MW2/MWXT may never show up.
                    [/code:1jpuib5c]

                    so i really don’t know how to even approach the subject. Is the checksum algorithm described anywhere? i could implement it as part of the sysex formula but i’d have to know how they do that.

                    From a quick test the JRackAttack ignores the checksum (that can be true for the actual device but might not be), so creating a simple slider in Ctrlr, assigning all the MIDI Devices, setting the modulator to SysEx and giving it the formula
                    [code:1jpuib5c]
                    F0 3E 11 00 20 20 00 00 02 xx 42 F7 F0 F7
                    [/code:1jpuib5c]
                    changes the values of the OSC1 Pitch in realtime in the JRackAttack if using MidiYoke loopback driver. So that gives a bit hope, but you have to experiment more to get some results.

                    That’s as much as i can help you i don’t have the actual device so i can’t really do a lot (i always wanted that unit i only got the VST versions of the PPG and the Attack when Waldorf was selling them very cheap)

                    #4211
                    zeoka
                    Participant
                      • Topics: 73
                      • Replies: 466
                      • Total: 539
                      • ★★★

                      Well well well….
                      I’ve sent a message to Waldorf ,they reply quickly but just sent the same document i’ve :roll:.They not reply about the mysterious byte.
                      My theory is rackattack 4 knob controllers works like a mackie control ( 8 knobs functions depend of where i’m in the matrix: channel page,plugin,aux…).
                      So it have a LFO1 SPEED with 1 spec not 24
                      Idx PAH PAL Name
                      75 00h 4Bh LFO1 SPEED
                      However rackattack sends specific sysex for each LFO1 SPEED

                      I think 4Bh (PAL) is byte 9 : LFO1 SPEED sound 1 [f0 3e 11 00 20 20 00 00[b:18x6ki32] 4b[/b:18x6ki32][i:18x6ki32] 4f 5a [/i:18x6ki32]f7]
                      Where is the 00h ( PAH ) ?
                      And the IDX number ? May be the mysterious byte ?
                      Really sad the persons who make Jrackattack has not developed with Ctrlr
                      Ctrlr is really a nice tool.
                      I will try cc’s works again one time and continue to understand
                      I will try your formula too.

                      Thank you Atom i give a feedback if i find something better

                      PS rackattack is a powerful drum machine it sounds better than the vsti (low,low med bands)
                      a bomb for techno or some electronic music even in 2012 imo
                      The polyphonic synths got to be explored because it is interesting

                      The strange data you have seen sometime is may be the commands beetween assembly buffer and edit
                      buffer ?

                      #4212
                      zeoka
                      Participant
                        • Topics: 73
                        • Replies: 466
                        • Total: 539
                        • ★★★

                        Ok
                        I’ve made things like you done with your formula i’ve tried the formula too
                        Nothing works
                        The only thing wich works good in ctrlr is a modulator with program change
                        The cc’s implementaion still not working in the rackattack…
                        I’ve seen attentively the wave xt panel also…
                        Multi-message can help me to type each hex datas of a param ?

                        A feature request like a learning mode is unsense or impossible ?

                        Best reards

                        #4213
                        atom
                        Keymaster
                          • Topics: 159
                          • Replies: 2945
                          • Total: 3104
                          • ★★★★★

                          Learn how, i’d have to implement some kind of AI to learn all the quirks people from all over implemented in their MIDI devices. If JRackAttack works then Ctrlr will work too it’s a matter of the checksum i think, i’d need a algorithm how the checksum is counted and i’m sure we could get this running. Ask around or have a look at the docs if there is any math formula for the checksum throw me a line i’ll add that to the SysEx formula editor.

                          #4214
                          TK.
                          Participant
                            • Topics: 6
                            • Replies: 42
                            • Total: 48

                            You could try 0x7f as checksum – most Waldorf synths will always accept the SysEx message in this case.

                            Best Regards, Thorsten.

                            #4215
                            zeoka
                            Participant
                              • Topics: 73
                              • Replies: 466
                              • Total: 539
                              • ★★★

                              Finnally cc’s work : it’s my fault
                              But rackattack sends only sysex,tempo and notes from its patterns not cc’s .All manip i make with rackatttack unit is sent by sysex.So with cc’s to have a perfect recall in my vsthost in must include value points of each parameters at the begining of patterns.

                              Thank you TK !
                              How i put this ? in the sysex formula ? Must i write someting for Ctrlr ?

                              here F0 3E 11 00 20 20 00 00 02 [b:32ifchy2]0x 7f[/b:32ifchy2] F7 F0 F7 ?

                              Sorry i’m noob

                              #4216
                              TK.
                              Participant
                                • Topics: 6
                                • Replies: 42
                                • Total: 48
                                "zeoka":y6mg7lvc wrote:
                                Finnally cc’s work : it’s my fault
                                How i put this ? in the sysex formula ? Must i write someting for Ctrlr ?
                                [/quote:y6mg7lvc]

                                In a previous posting you wrote that following SysEx command changes the volume of Sound 1
                                [f0 3e 11 00 20 20 00 00 35 5a 4f f7]

                                In order to control it from a slider with a dummy checksum, please try:
                                F0 3E 11 00 20 20 00 00 35 xx 7F F7

                                Ctrlr will replace xx by the slider value, and the next byte (7F) is the "dummy" checksum, which will hopefully be ignored by RackAttack.

                                Best Regards, Thorsten.

                                P.S.: 0x7f is the C-style format for a hexadecimal value, but in the Ctrlr GUI you enter the value without preceding "0x"

                                #4217
                                zeoka
                                Participant
                                  • Topics: 73
                                  • Replies: 466
                                  • Total: 539
                                  • ★★★

                                  Not working !
                                  I’ve found complete ressources including midi but i can’t upload web pages here.
                                  Download jrackattack-doc-0.9.3 and in : doc/api/jrackattack/midi/common definition
                                  It talks about true_cheksum
                                  It’s this?
                                  It is very hard for me but i explore……

                                  Thank you

                                  #4218
                                  atom
                                  Keymaster
                                    • Topics: 159
                                    • Replies: 2945
                                    • Total: 3104
                                    • ★★★★★

                                    That’s the JavaDocs it tells me nothing but perhaps the source i found can tell me something (its in JAVA :puke:):
                                    [code:4e5tbh8m]
                                    public MidiMessage createMessage(boolean buffer) {
                                    byte[] bytes=null;
                                    bytes=new byte[118];
                                    bytes[0]=(byte)SysexMessage.SYSTEM_EXCLUSIVE; // SysEx (SOX)
                                    bytes[1]=0x3e; // Waldorf (IDW)
                                    bytes[2]=0x11; // RackAttack (IDM)
                                    bytes[3]=0x00; // Default ID (IDD)
                                    byte cksum=0;
                                    bytes[4]=RackAttack.SOUND_DUMP; //CMD (SNDD)
                                    cksum+=bytes[4];
                                    if (buffer) {
                                    bytes[5]=RackAttack.EDIT_BUFFER;
                                    } else {
                                    bytes[5]=RackAttack.ASSEMBLY_BUFFER;
                                    }
                                    cksum+=bytes[5];
                                    bytes[6]=(byte)(getSoundNumber() & 0xFF); // SNDN
                                    cksum+=bytes[6];
                                    for (int i=7; i<109; i++) {
                                    bytes[i]=getByte(i);
                                    cksum+=bytes[i];
                                    }
                                    bytes[116]=(byte)(cksum & 0x7F); //CKSUM
                                    bytes[117]=(byte)0xF7; //EOX
                                    SysexMessage sms=new SysexMessage();
                                    try {
                                    sms.setMessage(bytes, bytes.length);
                                    } catch (Exception ex) {
                                    ex.printStackTrace();
                                    return null;
                                    }
                                    return sms;
                                    }
                                    [/code:4e5tbh8m]

                                    Looks like the checksum is the sum of bytes[4] up to the checksum and only 7 bits from the cksum are sent, i’ll try and reverse engineer this into C++, if anyone is seeing something different here let me know i hate and don’t know JAVA.

                                    #4219
                                    atom
                                    Keymaster
                                      • Topics: 159
                                      • Replies: 2945
                                      • Total: 3104
                                      • ★★★★★

                                      It’s weird, i added the checksum no problem, but the message is
                                      [code:2llm6bpc]
                                      SYSX: F0 3E 11 00 20 20 00 00 02 74 36 F7 F0 F7
                                      [/code:2llm6bpc]
                                      but it never should be like that since SysEx ends with F7
                                      [code:2llm6bpc]
                                      SYSX: F0 3E 11 00 20 20 00 00 02 74 36 F7
                                      [/code:2llm6bpc]
                                      this is how it should look like now either i’ll need to re-code Ctrlr to accept invalid MIDI messages or i’m missing something.

                                      Could you catch some of the sysex data that’s coming from the RackAttack in MIDI-OX or Ctrlr and paste it here for example the OSC1 pitch.

                                      #4220
                                      zeoka
                                      Participant
                                        • Topics: 73
                                        • Replies: 466
                                        • Total: 539
                                        • ★★★

                                        Here is all the datas for osc1 pitch sound 1 and cutoff sound 1.

                                        #4221
                                        atom
                                        Keymaster
                                          • Topics: 159
                                          • Replies: 2945
                                          • Total: 3104
                                          • ★★★★★

                                          I thought so <img decoding=” title=”Smile” /> the guy who wrote JRackAttack made a mistake the F0 F7 at the end is a bug, probably added by some JAVA classes, anyway that should be discarded, with the new nightly there will be a special SysEx token for the Waldorf checksums, once it’s done i’ll write it here and tell you how a formula should look like, just have some patience.

                                          #4222
                                          TK.
                                          Participant
                                            • Topics: 6
                                            • Replies: 42
                                            • Total: 48

                                            Your assumption on the checksum calculation is correct – it’s just the sum of a certain byte range limited to 7bit, and in distance to common synths the checksum is not inverted!

                                            This is what the Waldorf documentation (posted by Zeoka in the 6th posting) is saying about this topic:


                                            1.3.6 Checksum
                                            MIDI isn’t a very reliable transport medium. Therefore longer sysex messages are protected by a check- sum, which is the sum of all sysex bytes from CMD to the end of MSG truncated to 7 bits (modulo 127 — [b:1ovibys8][TK:CORRECTION] very likely modulo 128![/b:1ovibys8] — ). If the sum calculated from the received bytes and the transmitted checksum differ, something has gone wrong. When the checksum is evaluated, a wrong checksum will cause the complete message to be ignored.

                                            Notes
                                            • A checksum of 7Fh is always accepted as valid. This can be used if data is altered manually or produced by MIDI control surfaces with limited capabilities. This option should not be employed by editor programs to skip the checksum calculation.



                                            The interesting point: it seems to be a bug in the RackAttack firmware that the 0x7f checksum isn’t ignored.
                                            Or it’s a handling error by Zeoka. However, the Waldorf specific checksum calculation could be easily added to Ctrlr, and the specification recommends this for editors anyhow! <img decoding=” title=”Wink” />

                                            Once I find the time I will try the dummy checksum handling on my MicroQ and Blofeld, just to doublecheck if the documentation is true for these synths… I must say, that I would like to check this with a RackAttack as well – at least in three or four jam sessions (having some fun with the percussion sounds <img decoding=” title=”Wink” />)

                                            Best Regards, Thorsten.

                                          Viewing 20 posts - 1 through 20 (of 50 total)
                                          • The forum ‘Using Ctrlr’ is closed to new topics and replies.
                                          There is currently 0 users and 70 guests online
                                          No users are currently active
                                          Forum Statistics
                                          Threads: 2,495, Posts: 17,374, Members: 77,605
                                          Most users ever online was 12 on January 22, 2019 3:47 pm
                                          Ctrlr