Convert CC to NRPN

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

Hey, @ony,

I have the novation side of the equation but not the MC-303!

I was offering to have a look cos of your comment…

very much not my field of knowledge

…having delved into controlling a Yamaha QY700 via NRPN/RPN and Midihub.

Anyway, feel free to message me sometime and welll take it from there…


PS. I later saw your other post about a OneCC → Many pipe. Presumably, here we’re taking about a less-maxed out preset?

1 Like

Sorry, didnt mean to jump to conclusion. Misunderstood you being a pro with the MC303 :wink:

Thank you for your offer :slight_smile: I def would be interested to learn from your novation skills. One pipe I havent been able to work with well (and saw you being a pro at) is the transform pipe.

https://community.blokas.io/t/transform-tutorial-and-cookbook-development-topic/4398

Love your visuals already and gonna take my time to dive into it a bit more, before contacting you :slight_smile: but I guess generally speaking I could set up the NRPN messages in the novation and controll them with one CC from somewhere else? That would probably be my goal anyways.


To your question about my other post, I guess I would want 1-4 parameters to use. Like the “commonly used”: PatternBank, SoundBank, FilterCutoff, FilterResonance
But the Banks being the most important and helpful once. As I said, right now I’m changing the sounds manually per pattern in my live setup, which is odd. Depending on the workarounds yes, my goal would be to have a less maxed out preset for sure.

For some of my machines including the novation zero sl I use this tool:

Do you use it too? I like it a lot and it helps big times. Feeling like its good to mention :slight_smile:

1 Like

Thanks for that. I keep meaning to go back to that tutorial and complete it.
( Giedrius made a couple of comments about my explanation strategy which made me go & rethink that aspect from scratch)

One pipe I havent been able to work with well with … is the transform

My hunch is that’s loads of Midihub users.
Once the penny drops, it’ll be your Swiss Army knife…


Just going to take another look at PatternBank, SoundBank…

1 Like

I think its very true and I’m curious to see how this tool will unfold :slight_smile:


here is the manual part with the midi implementations. I’m still trying to find if pattern, specifically UserPatternBank is even possible to control. It might be, that in the end I cant use it that much. I stated in a earlier post, sound module mode is no option for me. That would kill all my own sourced and saved sounds…

Also, thats fine too. If I could control like FilterCutoff and such, would be very cool already. I could make some automation and gain a lot of flexibility. For example to bring down certain parameters with pattern switches of my sequencer (digitakt).


Thanks so much already for your help!
Wishing you a great start in your week :slight_smile: :heart: