Convert CC to NRPN

Thank you! Of course. I haven’t been thinking of hex numbers since I was a teenager. I’ll check it out.

1 Like

Works flawlessly now! Thank you!

1 Like

This is just a snippet of the MiniNova remote values with LSB…

1 Like

I have a Sequential OB-6 which uses both MSB and LSB via NRPN and would love to test possible CC to NRPN solutions with Midihub.

This is awesome! Thanks for sharing. I’m trying to get my head around using this technique to change LFO1 shape on my Prophet REV2. LFO1 Shape uses MSB 0 and LSB 38 with a course value from 0 to 4 to set the waveform. I tried replacing 50 in the patch to 38, but it’s not working. Perhaps I’m missing something?

Check this out:

CC To NRPN.mhp (2.2 KB)

You’ll have to use two knobs - one for MSB, the other for LSB values, and do 2 mappings, see the attached preset’s descriptions for instructions.

Please adjust the NRPN parameter number in 2nd and 3rd Transform pipes, as described in the description, to something your synths support. :slight_smile:

Give it a try and let me know whether it’s convenient to control the high resolution parameters using 2 regular knobs. :slight_smile:

4 Likes

Thanks a ton for sharing this! I’m trying to change the Prophet REV2 LFO 1 shape with a button on my KeyLab 88. On the REV2 panel there’s one button to cycle through the 5 possible LFO shapes. I’m performing a piece where I need to change directly to particular shapes without a different shape in between. On the REV2 panel for instance I would need to go though Saw and Rev Saw to get from Triangle to Square.

On the KeyLab the buttons have a switched control that sends a programmable CC value for on/off when set to a toggle, or in the gate mode it will send one value while pressed and another that could be filtered out with the Midihub when released.

Could I do this with two pipes similar to what’s in “CC to NRPN.mhp”? To change the LFO 1 shape on the REV2 MSB is 0, LSB is 38 and the possible values are course 0, and fine 0-4. So if I was transforming CC 57 for example to change the shape to Triangle (0). What would need to go into the pipes to make that happen?

BTW: I don’t see any notes in the description fields in “CC to NRPN.mhp”, so maybe they got lost?

Thanks!!!

John

There’s 2 versions of the file, use the one from my latest post:

It loads alright for me. :slight_smile:

For your use case, try this:

Prohpet Rev 2 LFO Shape.mhp (131 Bytes)

It takes CC# 57 and converts 0-127 to 0-4 values. (or remove the Rescale pipe, and send CC values 0-4 :))

If possible, configure your controller to send particular CC value to select the desired shape.

Let me know if this works :slight_smile:

Amazing! That does work perfectly for my application. I just removed the rescale pipe and the buttons send the 0-4 values. Thank you very much! There’s really not much that Midihub can’t do. What an amazing tool. All the best!

2 Likes

Thanks for this. I’m still figuring out midihub, so I’m not quite understanding the design of this file. Why do you change the CC to a ‘note on’ command and then from there into the output set of 3 CCs? Why not just transform the initial CC into the three output CCs? I feel like I’m missing something important but can’t figure it out. Any help understanding this would be greatly appreciated!

It’s necessary to use a different type than CC to avoid ‘CC explosion’, so note on is just an information carrier message for the rest of the Transform pipes. It could be any other non-CC MIDI message with 2 data bytes, like polyphonic aftertouch.

Btw, this MIDI Messages Summary is quite good quick reference on all the possible MIDI messages, it’s handy to quickly refer to, especially when transforming between types.

Wasn’t it also written before Transform was upgraded to include Work with CC Number|Value in Range Low|High?

I also find this MIDI messages summary useful.

It could help reducing the pipe count, but then there’d be more pipe parameters to modify for making use of this preset. :slight_smile:

1 Like

@AshcanPete this little bit of knowledge might be useful, Ben:

Until Firmware 1.13.0, Transform looked like this…


…meaning that a Transform pipe would act on every What message that passed through it.

It’s worth bearing this in mind when looking at any Transform patch posted prior to 2022; sometimes, like here, you’ll see “extra” steps that needed to taken then but now – when the Channel, Data Range properties effectively allow filtering in the Pipe itself – can be simplified.

Now Transform truly is the Swiss Army Knife of Midihub pipes! (bravo Giedrius!)

1 Like

So if I’m understanding correctly, I do not need to use the Note-on intermediate transform anymore to do NRPN messages now?

@Giedrius point is a good one in terms of generality,

but, you’re correct, with “2022” Transforms you can just use CC → CC.
Moreover depending on your usage, you can map one of the Transform values if you wish

To use CC to CC transform, you must make sure to use the “Work with CC Number” parameters correctly, this is necessary to avoid what I called the CC explosion, where if “Work with CC Number” was not set up to work on specific IDs, every Transform that’s adding an additional CC would have more and more CC messages to work with, the first transform would end up forwarding 2 CCs, the next would multiply them to 4, the next one would provide 8, etc…

So in order to avoid this CC explosion, one way is to use an unrelated message type to carry information to the rest of the pipes that gets silently dropped from the stream once it is no longer needed, and another is to have correctly set “Work with …” parameters.

have to come back to this topic a different time, I’ve got the Roland MC303 which is a mess to control externally:

I’ve tried it once with the novation zero sl, which does support NRPN but its very much not my field of knowledge.

Hey @ony,
Thanks, for the MC303 Advanced pdf!

If you’ve still got the Zero SL that is an ideal tool for the task.
With that you won’t need to use Midihub to create RPN/NRPN messages like in the posts above; although MH might be useful to do a Transform for converting a “3 x CC Zero SL” message to a “MC303 Select Sound” message.

If you want to put together a partial list of the specific things you want to control and Message me,
I’ll try to give you some pointers. I have the Novation Mk1 (& an iffy Mk2!) if you’re going that way

The supplement tries to walk through just a few examples, do you have a full list anywhere? - only ref I see is the scanned full manual

1 Like

Hey @resonotter,
Thanks so much for your response and offer :slight_smile:
I thought I saw some other document online, but cant seem to find it - maybe I’m mistaken…

What I did come around while searching, and havent seen before, is this:

Do you have any experience with it? Seems old and outdated, but pretty powerfull, if it does what it promises haha

One thing I can say is, thanks to the midihub, I was able to integrate the MC303 in my setup, sequencing basic note (+velocity) information with the digitakt. The problemn before was, the MC303 receives all channels at all times. Since I could filter out one dedicated channel for it I was happy. But especially the part with “select sound” is very relevant, since right now I note down what “sound” of what “bank” I need to dial in manually.

Would it mean I could just dial in U06 (UserPattern), sound 4 for example? I use it in normal mode, so that I keep my own saved sounds.

At this point important to mention for anyone reading this, DONT just use module mode. I lost years of sounds I build on different UserPatterns, when figuring out how to set up that midi connection.

I also just have these 2 files. The user manual and the adv midi one. I would be happy to ping pong some tips and tricks together :slight_smile: thanks for the offer! Maybe we could make a dedicated topic for it? Either simply “MC303+NRPN” or, thats what the midihub did for me here, “Giving life to old gear” a more general topic on how you learn to integrate certain hardware in you setup.

What do you think? :slight_smile:

Lovely greetings,
ony

1 Like