PDA

View Full Version : Anounce : Reaper plugin for Korg nanokontrol 2


pierousseau
05-29-2017, 06:48 AM
Hi !
So, I bought a MIDI control surface, KORG's Nanokontrol2. I thought it would be somehow plug and play with Reaper, but well... not so much. I found a few tutorials on youtube or this forum to make it work, but nothing worked as well as I hoped. So I wrote my own plugin, to have my Nanokontrol 2 work just the way I want it.

It now works just the way I wanted to. All buttons work, except for "Track previous" / "Track next" (what should I use them for ?). Reaper will send feedback and appropriately turn on/off the lights on your surface. The right-most controls are bound to the master (but you may change that).

If it may help, here it is :
https://github.com/Pierousseau/reaper_generic_control

Have fun with it, and feel free to give feedback :)

goldenarpharazon
06-07-2017, 02:51 PM
This is a marvellous contribution to the small number of community contributed Reaper control surfaces. Well done! It's made even cleverer by decoupling the device's Midi mapping from the compiled csurf plugin code!

The left and right buttons could either
move the selected track left and right
or
move left and right in banks (albeit of seven tracks in a setup where there is a dedicated eighth slider master track).
Some further suggestions

It could be really helpful if a very simple user guide, or a picture of the default mapping for the few less obvious controls was available, otherwise typical Reaper user folk will need to reverse engineer how the default surface functions from screenshot hints and .json config data.


It could also be helpful if the [new] C++ code contained some descriptive comments or highlighted the changes made from Reaper default csurf template, given how opaque the Reaper csurf C++ examples are in the SDK


It might be useful to indicate whether the plugin is compiled (or compilable) just for Windows (Reaper) 32bit or 64bit or Mac etc


Finally can the .json config idea support differing Midi feedback byte codes to the surface's button LEDs? (the Midi is possibly predefined and not changeable in the NanoKontrol2?)

hwhalen
06-09-2017, 08:05 AM
I get this error. Not sure what's going on.

http://stash.reaper.fm/30913/Nanocontrol.png

pierousseau
06-10-2017, 09:52 AM
Sorry about that, hwhalen
Would you try and install https://www.microsoft.com/en-us/download/details.aspx?id=52685 ?
I'm not sure what the problem is right now, but the plugin DLL relies on some windows components that might not be available on your computer, and which this package will provide.
What Windows version do you use ?

Obviously it works fine on my computer, so I won't be able to fix this bug without your feedback

pierousseau
06-10-2017, 11:22 AM
The left and right buttons could either move the selected track left and right or move left and right in banks (albeit of seven tracks in a setup where there is a dedicated eighth slider master track).

It could be really helpful if a very simple user guide, or a picture of the default mapping for the few less obvious controls was available, otherwise typical Reaper user folk will need to reverse engineer how the default surface functions from screenshot hints and .json config data.

It could also be helpful if the [new] C++ code contained some descriptive comments or highlighted the changes made from Reaper default csurf template, given how opaque the Reaper csurf C++ examples are in the SDK

It might be useful to indicate whether the plugin is compiled (or compilable) just for Windows (Reaper) 32bit or 64bit or Mac etc

Finally can the .json config idea support differing Midi feedback byte codes to the surface's button LEDs? (the Midi is possibly predefined and not changeable in the NanoKontrol2?)

Thanks a lot goldenarpharazon, this is great and constructive feedback. This is the fuel of (unpaid) open source software.

So...

I'll see what I can do
Not sure what you mean... I provide a file which will configure a user's nanokontrol2 just like mine in two clicks, or a user can create his own preset with the provided generator. Are you thinking about different surfaces ? Please clarify and help me improve this.
Done
Done
Yup, I clearly cut corners there and you caught me. It's easy to extend the json preset system to include the feedback codes, but I have no idea if I can assume them to be constant. To send feedback to the nanokontrol, you send it the code 176, the code for the button you wish to update (same as the input code), and 127 or 0 for on or off. Do you know if it works like this with most other surfaces (the order -here 176- might not be identical for all buttons, or buttons might have one code for input and another for output... feed me with knowledge)

hwhalen
06-10-2017, 12:33 PM
Sorry about that, hwhalen
Would you try and install https://www.microsoft.com/en-us/download/details.aspx?id=52685 ?
I'm not sure what the problem is right now, but the plugin DLL relies on some windows components that might not be available on your computer, and which this package will provide.
What Windows version do you use ?

Obviously it works fine on my computer, so I won't be able to fix this bug without your feedback
Thanx, I'll give that a try when I get a chance.

I'm using Windows 10/64bit.

G-Sun
06-10-2017, 01:25 PM
nanoKontrol2 here,
so happy to see this development :)

(But, collects dust in my drawer)

hwhalen
06-10-2017, 05:33 PM
Thanx, I'll give that a try when I get a chance.

I'm using Windows 10/64bit.

Unfortunately this didn't fix the issue.

pierousseau
06-11-2017, 05:01 AM
Unfortunately this didn't fix the issue.
Have you tried to download it again (your first download might be corrupted)
Here is the direct link : https://raw.githubusercontent.com/Pierousseau/reaper_generic_control/master/Dist/x64/Plugins/reaper_plugin_control_surface_generic.dll
Other than that, I sadly have no idea what could be wrong right now. Googling this error is not really helpful but seems to generally point either to an incomplete file or a computer malfunction.

nanoKontrol2 here,
so happy to see this development :)
(But, collects dust in my drawer)
Thanks G-Sun. Glad to help you dust off ;)

Fedor
06-11-2017, 08:01 AM
It works better than anything else, without wierd glitchy selection of the tracks when moving multiply faders.

However, I wish there was an solution to be switch between mixer controls and plugins (which I just did using Transmidifier)

Also Plugin Preset Generator didn't react to button presses or any knobs and faders. I wish it did, because I'd rather have my fader and knob 8 work on mixer channel 8 instead of a master.

goldenarpharazon
06-11-2017, 11:05 AM
Not sure what you mean... I provide a file which will configure a user's nanokontrol2 just like mine in two clicks, or a user can create his own preset with the provided generator. Are you thinking about different surfaces ? Please clarify and help me improve this.

The suggestion was simply to make the mapping between a button and its Reaper action clearer to a typical non-technical musician Reaper user. The track controls like solo, mute, volume and pan are reasonably obvious if someone understands a traditional hardware mixer or has used another DAW. Similarly the basic transport controls like play and stop are similar to traditional [studio hardware] recording & playback devices. However when I made the suggestion I didn't understand the mapping of "cycle" (to Reaper's "repeat") and the marker buttons' setting.

There are probably three ways to see this association or understand it:-

1. Read the C++ code and .json across several text files and associate them with Reaper actions mentioned in the code.

2. Know how to run a command line programme and set up ones own mapping from the prompts.

3. Plug a NanoKontrol2 and Reaper together, install the .dll and give it (i.e. the default mappings) all a try

But best of all if one doesn't have a NanoKontrol2 and Reaper to hand is the simple explanation in a summary table (matrix) as part of a user guide, or use a labelled diagram since not everyone will have the coding or command line skills to do 1 or 2.


...It's easy to extend the json preset system to include the feedback codes, but I have no idea if I can assume them to be constant. To send feedback to the nanokontrol, you send it the code 176, the code for the button you wish to update (same as the input code), and 127 or 0 for on or off. Do you know if it works like this with most other surfaces (the order -here 176- might not be identical for all buttons, or buttons might have one code for input and another for output... feed me with knowledge)

The Akai MIDIMIX uses 3 byte Midi as follows for its LEDs

Byte 1 - Midi status byte - Note On (NB encoded with the channel too)
Byte 2 - Note (this value is predetermined by the device firmware for each button LED and cannot be changed by an editor)
Byte 3 - Velocity (0 for off : 127 for on - same as the NanoKontrol2)

It's often hard to find the correct Midi commands for other control surface devices because in the 21st century device manufacturers rarely publish Midi Implementation Charts.

hwhalen
06-11-2017, 02:50 PM
Have you tried to download it again (your first download might be corrupted)
Here is the direct link : https://raw.githubusercontent.com/Pierousseau/reaper_generic_control/master/Dist/x64/Plugins/reaper_plugin_control_surface_generic.dll
Other than that, I sadly have no idea what could be wrong right now. Googling this error is not really helpful but seems to generally point either to an incomplete file or a computer malfunction.


Thanx pierousseau,

The plugin now loads, however it doesn't find the .json file.
I only see 'None'.
I've placed it in the

c:\program files\Reaper(X64)\Plugins\reaper_plugin_control_su rface_generic_presets

directory, but I can't see it in the list.

The nanoKontrol2 doesn't seem to work, I presume because of this.

Sorry to be a PITA.

Fubarable
06-11-2017, 04:08 PM
pierousseau, where did you learn to create the code for this controller? Did you go through other controller code as an initial starting point, and if so, is where can I find other examples? If I have the time, I wouldn't mind delving in this a little myself as I've got some experience in programming -- mostly Java, but also some C and C++ (from many years ago though).

Thanks in advance!

Indirect
07-28-2017, 05:59 AM
Hello. I've tried your generator, because i would like to use one CC preset for live and reaper. This preset is based around MCU preset for live (i've hacked midi numbers with midi-ox), but with custom cc's on knobs. What is 'Code'?
Your generator has two major problems:
1. It doesn't distinct CCs and Note Numbers. In my preset, knobs do 'stop' , 'next marker' etc.
2. Button behaviour is set to momentary, generator works for toggle obviously. You could add question "push 'on' mute x, push 'off' mute x", this should be enough to deduce momentary/toggle. Mute, Solo, Arm do only "on", i.e. I cannot unmute track with same button. They also doesn't light up.

Track bank is a must have feature, without it its a crippled gadget.

Slight offtopic:
Any idea how to make eq on each channel to react? MCU protocol works does allow EQ control from knobs. My idea is to use Tilt EQ (see Kenny Gioia tut) as default eq and control it from 8 nk2 knonbs

DANIELE
08-01-2017, 02:31 PM
I have two NanoKontrol2 and 1 NanoPad2 but I use them in midi cc mode.

cbesson
08-21-2017, 10:15 AM
Hello, i thank you very much for your plugin, it works fine.

I have a nanokontrol 2 + a Beatstep.
I use the nano for controlling tracks and mastrer track, so as surface controller, and the Beatstep for controlling my VSTi with automation parameters on different midi channels + for production.

For the nano, i have modified your configuration as follow :
* redefined the first track (left) as master
* defined the other for seven tracks
* used the two buttons prev and next track with scripts for navigation in the track list
* redefined (midi CC) the three buttons S, M, R of the master track :
=> S with a script for open/close the VSTi window of the selected track
=> M with a script for open/close the enveloppe trim window for the learn parameters of the focused VSTi
=> R with a script for arming the selecting track. in combination with the beatstep, this button calls a script to configure the learn parameters for the first VSTi of the track

So, I can easyly navigate thru several tracks and get dynamically the learn parameters configuration for my instruments.

Next step, i want reaffect the buttons S/M/R of each track dynamically for other functions. so, i hope to use and modify your plugin for that. several hours in perspective ......many thanks.

seanjean3000
11-10-2017, 08:05 PM
This is brilliant, and it worked out of the box. Haven't looked yet at getting channel 8 mapped to a track instead of the master, but I`ll probably go that route (just got it running a few minutes ago).

I'll add, for reference to others out there, that I *did* have some trouble getting the NanoKontrol2 working at all on it's own after not having used it on my current machine before. There's a known issue I guess with Windows 7 64 bit. See here, 4th post for solution: http://www.korgforums.com/forum/phpBB2/viewtopic.php?t=69644

Thanks again. So much better than the workarounds I used to kludge for the NanoKontrol2 with Reaper.

sinkmusic
11-11-2017, 02:06 AM
This seems to be a great plugin : i'll have to find back my Nano :)
Will it work with a NanoKontrol 1 ?

ScaryLarry
03-22-2018, 02:00 PM
I noticed references to DLLs and windows so before I try getting it working I would like to know if it will work on mac/osx.

TIA,
SL

ivansc
03-25-2018, 01:01 AM
+1 on the Nanokontrol 1 question.
I have two and they work OK already but I am always open to improvements
This and Geoff Waddington`s stuff are a huge move in what most of us see as ways to address one of Reapers more annoying shortcomings - controller connectivity!

Thanks

m1rrag
04-03-2018, 10:44 PM
I noticed references to DLLs and windows so before I try getting it working I would like to know if it will work on mac/osx.

TIA,
SL

Hey, I made a new thread requesting the info: https://forum.cockos.com/showthread.php?t=205230

Not sure if it's live yet, or if it was redundant to make a new thread but it seemed to belong in the OS X thread. Here's what I said incase it doesn't go live for a bit:

The Korg editing software appears to be Windows only.
So far what I've put together that it IS possible to use the NanoKontrol 2 (haven't looked at 1) by using the Mackie Control Universal protocol, but users report that being buggy. The reports I've come across annoyingly fail to mention HOW it is buggy. But it is implied that it's buggy enough to install Klinke's plug-in, even though that is also only available for Windows. Someone mentioned that it is possible to install Klinke's plug-in on Mac OS X but it seemed like more advanced (and by that I mean very time consuming, especially for a non-advanced user) computer work. Is it really this hard? Is it actually possible? And even if it is, are there no tutorials or lists out there that actually tell all the steps of the process instead of glazing over these complicated intermittent steps as if they aren't a crucial part of getting it to work?

If anyone finds a step by step list for getting a Korg Nano Kontrol (2) to work for mixing in Reaper on OS X (I'm running 10.8.5 at the moment), do tell!

Thankyez

gmork
05-04-2018, 08:37 AM
Hi Guys,
First I'd like to thank everybody who has contributed their skill knowledge and patience to this forum, my thanks to all!.

I've got Pierousseau's plugin working on my system now - a major step forward for me. I've also looked at Mr Klinkes mcu mackie mod to run the Nanokontrol 2 in Reaper.
My slight niggle is that I like bits of each approach but I'm struggling to get my head round how these work, not being a programmer.

In brief, I'd like to keep the Pierousseau setup 'as is' BUT be able to use the track up/down buttons to select the next bank of fader channels in Reaper but keep slider 8 for the master level so that you could select tracks 1 to 7 then tracks 8 to 15, etc - Klinke CAN do this but won't control the master level.
From what I can see using the Korg Editor, one approach uses 'CC' messages whilst the Klinke code uses the Daw control setup for Sonar.
Hope you will excuse my rambling post but I can't find any obvious script or cc info in Reaper to help me resolve this, or is it just not going to work?.
Thanks in advance;)

wfd
05-11-2018, 12:08 PM
I noticed references to DLLs and windows so before I try getting it working I would like to know if it will work on mac/osx.

TIA,
SL

Yes Please.

wfd
05-12-2018, 12:41 PM
Just thought I'd let MAC users know of a way to use their NanoKontrol machines in CC mode.
You can assign every key, switch, fader etc
See this thread so I don't have to copy it out again.

https://forum.cockos.com/showthread.php?p=1988768#post1988768