Looking for modules that help using the NanoKontrol2

Hey Everyone, i would love to use my NanoKontrol2 as midi controller for VCV Rack and extend its functionality so i can

  1. use more than the 16 fader+knobs. preferably an extendable anmount either with a free 3rd party software or specific modules within vcv and
  2. if possible upgrade the resolution above the 127 to make finding sweetspots while tweaking more like on a real modular. my dream scenario would be to be able to press a midi button similar to how ctrl works when tweaking with the mouse.

Thx in advance!

thread title edited by moderators

I have a NanoKontrol2 too, so I like the idea. There are a lot of controllers with similar limitations, so hopefully one could come up with a general strategy for extending them.

Maybe someone knows if there’s something already in the library.

A module could provide almost limitless bank-switching.

The NanoKontrol2 is not capable of sending high resolution (14-bit) MIDI on its own. There are some challenges to figuring out how to extend the range reasonably, because the knobs aren’t endless encoders.

What do you think about combining it with computer keyboard control? This is funky in VCV because normally modules only get keyboard events when the mouse is over them.

I’ve been thinking about building another plugin focused on MIDI and sketched out a few panel ideas.

1 Like

8FACE combined with MIDI-CAT (maybe even with VCV’s MIDI-MAP) can do this.

3 Likes

This works perfectly, thx! I would consider point 1 solved.

For point 2 i just had the following idea. The slew possibility in midi cat helps to cover up the grittyness of 127 step midi but 14 bit midi doesnt seem to work with the nanoKontrol2. A real solution for me could be something like:

  • A mode where the behaviour of the midi Knobs/Faders is relative (to the fader position) AND
  • 3 assignable buttons/hotkeys that control the behaviour/anmount/range of the above in customizable ranges for example buttone1:0%No movement(for relative position correction), button2:100%(for broad navigation) and button3:0,01% (for finetuning))

I imagine this to be another mode in the context menu under Input mode for CC. This could provide a more versatile way of using conventional midi. A little bit like having different presets of the parameter ranges bound to buttons combined with the relative input mode.

Thx again for the quick response here. This is really fun to me!

I‘m thinking about about an additional expander for MIDI-CAT. No promises though.

3 Likes

I’ve just added another expander “FINE” for MIDI-CAT. It works this way:

If the input/gate on either 10% input or 1% input is high, the mapping switches to fine mode: In fine mode, first the MIDI control must be moved to its center, then can be used to fine-tune the mapped parameter with 10% range or 1% range, respectively. Fine-tuning for a parameter can only be used on MIDI CC mappings with input mode set to “Pickup (snap)” or “Pickup (Jump)”. FINE for MIDI-CAT must be placed on the right side of MIDI-CAT and can be used together with the other expanders.

Please let me know what you think.

3 Likes

I did some improvements on the usability and I’m quite happy how this works right now, but please let me know what you think!

Updated “manual”:

FINE is a companion module for MIDI-CAT which provides ability to fine-tune mapped parameters. If the input/gate on either 10% input or 1% input is high, the module switches to fine-tuning mode: In fine-tuning mode, the MIDI control must be moved to its center, then fine-tunes the parameter with 10% range or 1% range, respectively. Fine-tuning for a parameter can only be used on MIDI CC mappings with input mode set to “Pickup (snap)” or “Pickup (jump)”. Addtionally, the module switches from 10% range to 1% range and from 1% range to 10% range smoothly, if the 1% input is enabled while 10% input stays high. This means, finer adjustments can be made while holding two buttons without a need to center the MIDI control. After fine-tuning is finished and gates on 10% input and 1% input are low, the mapped MIDI control can pickup the current parameter value again. FINE for MIDI-CAT must be placed on the right side of MIDI-CAT and can be used together with the other expanders. High gates for the two inputs can be created by VCV MIDI-GATE using MIDI note messages or by STROKE using keyboard hotkeys, for example.

2 Likes

Hi Ben, many thanks for this new update it is perfect, magic as always in your case :slight_smile: I do have one problem though. I noticed it a long time ago and didn’t want to bother you with it, because it’s probably an issue with my Midilar controller — but I would still like to have it working, and it’s about the pickup (jump) mode.

Pickup (jump) mode works as intended: I switch the MIDI channel, turn a potentiometer on the other channel, and when I come back, it waits until I return to the position where the potentiometer was before I changed the channel — exactly as written in the manual:

Pickup (jump): Same as snap-mode, but the control will lose the parameter when jumping to another value. This mode can be used if your MIDI controller supports switching templates and you don’t want your parameters to change when loading a different template.

All of this works correctly when I turn the potentiometer slowly. But as soon as I turn it fast — for example from value 30 to 127 — the mapped knob gets stuck somewhere halfway.

Why do I think it’s my controller’s fault? Because I have lots of controls on the Midilar and the Arduino doesn’t manage to read all the potentiometers fast enough, so when I turn quickly the messages are not continuous, but jumpy. When I turn fast I get values like: 0, 4, 9, 14, 23, 25, 54, 73, 95, 113, 127.

Slew limiting masks this nicely so it’s not a problem normally. But I think this irregular stepping might be causing this “half stuck” problem in Pickup (jump) mode.

When performing I rarely turn knobs this fast, but sometimes you do want to slam a parameter back to 0 or full, and that’s when it gets stuck — which is a shame.

I don’t know if there is any solution for this. For example — this doesn’t happen in Pickup (snap) mode. If you could find some solution for this, it would be perfect. Thank you again for your amazing work! I attached also a video, first I am showing how it is working and then I am moving quickly potentiometer on channel 1 and you can see the behaviour of LFO knob. https://youtu.be/KOqWVgZdWkk

1 Like

The logic works this way:
In “Pickup (snap)” mode, once the MIDI control picks up the current value of the parameter, it sticks to it, even when it jumps around in the value range.
In “Pickup (jump)” mode, the mapping is handled more softly, means the MIDI control “looses” the parameter if the received value differs by 7% from the actual parameter value. Then the parameter must be picked up again. On the default MIDI CC value range 0-127 this means if the MIDI CC value differs +/-8 from the last MIDI message, it gets “stuck”, as you describe it.

There was no particular reason for me to pick 7% as threshold, but I found I working quite well. I could increase this value, but it would come with a downside: within the “threshold range” the mapping works like “Direct” mode, which would make the parameter to jump without pickup.

I don’t have a good idea how to improve the situation. I can only think of the MIDI controller sending some kind of special MIDI message, which would inform MIDI-CAT that the channel has been changed and parameter values must be picked up again. But I’m open for other suggestions.

We could use “System Reset” for this.

If you are interested, I can easily add it to MIDI-CAT. You should send this message after changing the MIDI channel on the controller.

Thank you, Ben, for the explanation — now I understand why it behaves this way. Since I have such large jumps, it basically interprets them as the same situation.

Thank you also for the System Reset suggestion, but I’m not entirely sure we’re on the same page. What I actually want to achieve is that when I return to MIDI channel 1, the mapping only starts reacting once the physical potentiometer reaches the value it was at before I switched to channel 2.

Would the System Reset guarantee this behavior?

My suggestion is following: You use “Pickup (snap)” which works fine for you. But when MIDI-CAT receives a System Reset message, it resets the “snapping”-state of all mappings and parameters must be picked up again. Essentially MIDI-CAT behaves the same as after loading a new patch.

I simulated this behavior — after returning to channel 1, I turned VCV Rack off and on, and it worked exactly as I wanted, wow. So I need to find a way to trigger this System Reset when I return to channel 1, right? Also, would this System Reset have any unintended side effects?

I don’t think so, I think System Reset is rarely used by anything.

So this is the next step: “If you are interested, I can easily add it to MIDI-CAT. You should send this message after changing the MIDI channel on the controller.” If so, would you do it, when you have time? :slight_smile: I’m going to try to find a solution for sending the System Reset. Thank you so much.

Sure, done:

2 Likes

Thank you so much Ben! I implemented system reset to my code and now it works as I wanted. Bravo!:clap: :clap: :clap:

1 Like

Amazing news, I’m happy I could help :heart_eyes:

4 Likes

Did anyone give it a try? Any feedback on the new expander for fine-tuning parameters?