Sysex Question – Korg DSS-1

Home Forums General General MIDI discussion Sysex Question – Korg DSS-1

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #70434
    Dss1
    Participant
      • Topics: 1
      • Replies: 1
      • Total: 2

      Firstly, CTRLR is great! Been around midi instruments since the nineties, but only now, using this program, have I been successful in using sysex.

      I’ve managed to cobble together a mostly functioning panel for the Korg DSS-1 keyboard. There is one parameter that I wasn’t able to get right. It controls the delay time of either of the onboard digital delay effects.

      The sysex documentation for this parameter:

      DDL-1 Time (a) :
      F0 42 30 0B 41 2E xx 00 F7
      Range 000-127
      DDL-1 Time (b) :
      F0 42 30 0B 41 2E xx 01 F7
      Range 128-255
      DDL-1 Time (c) :
      F0 42 30 0B 41 2E xx 02 F7
      Range 256-383
      DDL-1 Time (d) :
      F0 42 30 0B 41 2E xx 03 F7
      range 384-500

      My Sysex formula for my slider is :
      F0 42 30 0B 41 2E ls ms F7
      And then i set the max slider value to 500.

      When I look at midi-monitor, I seem to be getting a slider sweep from 1-500.

      However, when I use with the keyboard. It crashes the delay unit–static–then I have to restart the keyboard.

      I thought that perhaps I was overloading the midi buffer, so I tried a wider interval to cut down on all the info, but same result.

      ** To further clarify: If I input the formula for just one of the time ranges, the delay time changes transmit fine over midi. I am trying to link all 4 segments into one slider. So after you sweep past 127ms on the slider, the 00 advances to 01 in the 8th byte of the sysex, the value continues from 128ms to 256ms, etc.

      Maybe I’m not getting the sysex formula correct. Any thoughts?

      • This topic was modified 7 years, 4 months ago by Dss1.
      • This topic was modified 7 years, 4 months ago by Dss1.
      • This topic was modified 7 years, 4 months ago by Dss1.
      #70456
      m.tarenskeen
      Participant
        • Topics: 30
        • Replies: 113
        • Total: 143
        • ★★

        F0 42 30 0B 41 2E ls ms F7

        I think this should be

        
        F0 42 30 0B 41 2E LS MS F7

        ls is for 4-bits nibbles, LS for 7-bits. xx=0~127 is a 7 bits value, but also MS should be 7-bits in this case even if only values 0,1,2,3 are used.

        edit: hmmm… maybe ms also works, I am not sure. But MS does not hurt. I guess 🙂

        edit2: It must definetely be LS MS with capitals. I just tried. Hint: From the Ctrlr menu use Tools->Midi Monitor and activate View->Show RAW data and Monitor output. Then you can test your sliders and knobs and see what they are sending to your Korg DSS-1.

        • This reply was modified 7 years, 4 months ago by m.tarenskeen.
        • This reply was modified 7 years, 4 months ago by m.tarenskeen.
        • This reply was modified 7 years, 4 months ago by m.tarenskeen.
        #70460
        Possemo
        Participant
          • Topics: 14
          • Replies: 638
          • Total: 652
          • ★★★

          you are right. To be more precise: ls and ms are representing 4-bit nibbles, put together you get an 8-bit value. LS and MS represent 7-bit values, put together you get a 14-bit value. So if your parameter has a value range of 256 use ms and ls, if it has 16384 values use MS/LS.

          #70461
          m.tarenskeen
          Participant
            • Topics: 30
            • Replies: 113
            • Total: 143
            • ★★

            So if your parameter has a value range of 256 use ms and ls, if it has 16384 values use MS/LS.

            Not quite true. The use of ms/ls or MS/LS does not (only) depend on the valuerange it has to be able to produce. More important is how the manufacturer has implemented this in the SysEx. Sometimes a manufacturer uses 4bits pairs without apparent reason, even if it can be done with single 7 bits values. Sometimes it’s the other way around. You always have to study the SysEx documentation carefully in all cases.

            In other words:
            ms/ls can have a range between 0 and 255, but so can MS/LS
            MS/LS can have a range between 0 and 16383, but this doesn’t mean it really uses that range

            • This reply was modified 7 years, 4 months ago by m.tarenskeen.
            • This reply was modified 7 years, 4 months ago by m.tarenskeen.
            #70473
            Dss1
            Participant
              • Topics: 1
              • Replies: 1
              • Total: 2

              That did the trick. I didn’t realize the uppercase designated the bit length.
              Then again I’m still somewhat perplexed by all the nibbling.

              Muchos Gracias!

              #70479
              m.tarenskeen
              Participant
                • Topics: 30
                • Replies: 113
                • Total: 143
                • ★★

                Hint: in the SysEx Formula editor if you right-click in a byte field you will get a list of things you can choose from. This will automatically insert the correct code (for example ms or MS), if you make the right choice.

                #70480
                Possemo
                Participant
                  • Topics: 14
                  • Replies: 638
                  • Total: 652
                  • ★★★

                  @tarenskeen: yes of course you can represent fewer bits, I should have said ls/ms max 256 values, LS/MS max 16384 values. True, you always have to look into the sysex implementation chart.

                Viewing 7 posts - 1 through 7 (of 7 total)
                • The forum ‘General MIDI discussion’ is closed to new topics and replies.
                There is currently 0 users and 78 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