NRPN Values/Midi CC Bits

Home Forums General Using Ctrlr NRPN Values/Midi CC Bits

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #69323
    daswans
    Participant
      • Topics: 3
      • Replies: 4
      • Total: 7

      So as a very new Ctrlr user I have hit a wall with how to set specific NRPN values. I have gone through previous posts and gotten most of my basic NRPM controls working, but I have not found how/where to specify the specific value for an NRPM that has multiple controls using the same NRPN number.

      Specifically, I have found in my documentation that my Synth (Novation X-Station) uses NRPN 105 to send all 3 Oscillators’ octave settings, as well as some others. Osc 1 uses values 16..19, Osc 2 20..23, ect. When I set my controller to Multi and plug in the NRPM template in the Multi Message list I get the Voice Poly settings to work as they are the first values associated with NRPM 105 (0..3).

      I’m sure this is probably pretty simple but can’t seem to find that specific info. I haven’t got into any sysex formulas as my synth doesn’t seem to show any of that in it’s documentation and this is my first leap into midi programming past setting basic CC’s, so haven’t got into any of that and most is over my head at this point.

      My documentation also shows that those controls can be changed with CC 71 using bits 0-1 for osc1, bits 2-3 for osc2, and so forth. Also looked into controlling it that way but can’t seem to find any info on how to specify what bits are being sent with a basic CC. When I set the CC of the controller it works for osc1, but can’t seem to find where to change the transmitted bits to 2-3 for the osc2 control.

      I’m building a pretty cool little Novation x-Station panel which is going great so far and would love to share when it’s done, so any help would be much appreciated!

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

        I looked into the x-station midi documentation here. As you say there are packed parameters like the osc octave. Without using Lua scripts it probably won’t be possible to get this right. You would have to assemble a byte with all parameter values it contains. But with the NRPN’s they made things a bit easier. As I read in the manual:

        CONTROLLER 71 OSC 1,2,3 OCTAVE / OSC 1>2 SYNC
        105 16..19 bits 0-1 2-bit osc1 octave -1,0,1,2
        105 20..23 bits 2-3 2-bit osc2 octave -1,0,1,2
        105 24..27 bits 4-5 2-bit osc3 octave -1,0,1,2

        It looks like you need to set sliders in Ctrlr with values from 16 to 19. and so on. You could use “fixed sliders” where you can specify the value and a name that will be displayed. In the example above it would be as follows:

        -1=16
        0=17
        1=18
        2=19

        for osc1. Row1 is the name, row2 is the value

        But this probably won’t be bidirectional. You just can send values to the synth.

        • This reply was modified 7 years, 11 months ago by Possemo.
        • This reply was modified 7 years, 11 months ago by Possemo.
        • This reply was modified 7 years, 11 months ago by Possemo.
        • This reply was modified 7 years, 11 months ago by Possemo.
        #69334
        daswans
        Participant
          • Topics: 3
          • Replies: 4
          • Total: 7

          Thanks for the reply Possemo, I initially used this thread to get my other NRPN controls working.-
          NRPN

          This worked perfectly for my Waveform selection NRPN where there are 16 choices, I set up the “Fixed Sliders” in the Combo Contents box corresponding to the Multi slider- (am I correct in assuming this what you mean by setting the “fixed sliders”?)
          0=Sine
          1=Sawtooth
          and so forth…
          Works bidirectional just fine in my setup.

          But plugging this equation in for NRPN 105, set to multi, controller 105, NRPRM formula template and setting my fixed slider as you stated above starting at 16=-1 through 19=2. Doesn’t seem to have any affect.

          When I press the OSC1 Octave button on the synth my midi monitor program shows-
          Non-Registered Parameter MSB0
          Non-Registered Parameter LSB 105
          Data Entry (coarse) 16 (cycles 16 through 19 as the button is pressed)

          So unless I’m mis-understanding where to enter the fixed slider numbers, I must be missing something else. Is there a place where the bits 0-1, 2-3, 4-5 can be specified? It seems to me that would be where my problem lies. My guess was maybe in the CC 6 line of the NRPM multi template? I have yet to look into LUA Scripts thus far but the NRPM multi slider seems like it should work if I can specify the bits the controller is seeing.

          #69336
          daswans
          Participant
            • Topics: 3
            • Replies: 4
            • Total: 7

            UPDATE- SOLVED!
            So after further experimentation and looking again through the NRPN link above I entered in this formula to the Multi Message List-

            CC,ByteValue,LSB7bitValue,98,-2
            CC,Default,Default,6,-1

            And it works! I tested for all 3 Oscillators that share NRPN 105, entering in 0=16 through 2=19 for osc1 and 0=20 through 2=23 and so forth.

            Thank you very much Possemo for all the help and the previous posts! One thing, as a total newb I would love an explanation as to why this formula works and what the two “Default” entries in that second line are signifying. Kinda tough sorting through all this without a manual and I have no previous experience programming but learning a lot so far and Ctrlr is already opening up new possibilities for my setup!

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

              Yea a manual would be great, Goodweather is working on one but this is hard work because Ctrlr is so extermely versatile. With Lua you can do almost everything if you know how to do it.

              As far as I understand it “default” means that the value are all bits of this parameter, so not LSB (least significant bits) nor MSB (most significant bits). Binary notation is not that hard to understand but you have to delve into it a bit. There is lots of information available in the internet.

              But if you don’t plan to write Lua scripts you dont need to know much about binary notation as there is no way to use it anywhere else in Ctrlr. You will always enter values in decimal.

              With NRPN it is possible to send 14 bit values if the synth supports it. This means the parameter has a very high resolution (16384 steps). But as a MIDI Byte has only 7 bits it is divided into 2 Bytes, one includes the MSB’s and one the LSB’s. But then you can use NRPN for 7 bit values too (128 steps resolution). In this case you just send one Byte with CC 6 and don’t use CC 38 (that would be the LSB’s on a 14 bit value).

              It took me a long time to understand NRPN too, hope this helps a bit.

              #69341
              daswans
              Participant
                • Topics: 3
                • Replies: 4
                • Total: 7

                Great info, thanks for the help!

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