Old 05-29-2017, 06:48 AM   #1
pierousseau
Human being with feelings
 
Join Date: May 2017
Posts: 4
Default Anounce : Reaper plugin for Korg nanokontrol 2

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
pierousseau is offline   Reply With Quote
Old 06-07-2017, 02:51 PM   #2
goldenarpharazon
Human being with feelings
 
Join Date: Feb 2016
Posts: 70
Default

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
  1. move the selected track left and right
    or
  2. 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?)
goldenarpharazon is offline   Reply With Quote
Old 06-09-2017, 08:05 AM   #3
hwhalen
Human being with feelings
 
hwhalen's Avatar
 
Join Date: Jan 2010
Location: Canada
Posts: 808
Default

I get this error. Not sure what's going on.

__________________
My Music
Noise From My Head
On The Links
hwhalen is offline   Reply With Quote
Old 06-10-2017, 09:52 AM   #4
pierousseau
Human being with feelings
 
Join Date: May 2017
Posts: 4
Default

Sorry about that, hwhalen
Would you try and install https://www.microsoft.com/en-us/down....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 is offline   Reply With Quote
Old 06-10-2017, 11:22 AM   #5
pierousseau
Human being with feelings
 
Join Date: May 2017
Posts: 4
Default

Quote:
Originally Posted by goldenarpharazon View Post
  1. 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).
  2. 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.
  3. 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
  4. It might be useful to indicate whether the plugin is compiled (or compilable) just for Windows (Reaper) 32bit or 64bit or Mac etc
  5. 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...
  1. I'll see what I can do
  2. 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.
  3. Done
  4. Done
  5. 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)
pierousseau is offline   Reply With Quote
Old 06-10-2017, 12:33 PM   #6
hwhalen
Human being with feelings
 
hwhalen's Avatar
 
Join Date: Jan 2010
Location: Canada
Posts: 808
Default

Quote:
Originally Posted by pierousseau View Post
Sorry about that, hwhalen
Would you try and install https://www.microsoft.com/en-us/down....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.
__________________
My Music
Noise From My Head
On The Links
hwhalen is offline   Reply With Quote
Old 06-10-2017, 01:25 PM   #7
G-Sun
Human being with feelings
 
G-Sun's Avatar
 
Join Date: May 2010
Location: Norway
Posts: 6,260
Default

nanoKontrol2 here,
so happy to see this development

(But, collects dust in my drawer)
__________________
Reaper x64, win 8.1
G-Sun.no - Music Blog - My music
G-Sun is online now   Reply With Quote
Old 06-10-2017, 05:33 PM   #8
hwhalen
Human being with feelings
 
hwhalen's Avatar
 
Join Date: Jan 2010
Location: Canada
Posts: 808
Default

Quote:
Originally Posted by hwhalen View Post
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.
__________________
My Music
Noise From My Head
On The Links
hwhalen is offline   Reply With Quote
Old 06-11-2017, 05:01 AM   #9
pierousseau
Human being with feelings
 
Join Date: May 2017
Posts: 4
Default

Quote:
Originally Posted by hwhalen View Post
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/Pi...ce_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.

Quote:
Originally Posted by G-Sun View Post
nanoKontrol2 here,
so happy to see this development
(But, collects dust in my drawer)
Thanks G-Sun. Glad to help you dust off

Last edited by pierousseau; 06-11-2017 at 05:10 AM.
pierousseau is offline   Reply With Quote
Old 06-11-2017, 08:01 AM   #10
Fedor
Human being with feelings
 
Fedor's Avatar
 
Join Date: May 2017
Posts: 4
Default

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.

Last edited by Fedor; 06-11-2017 at 08:41 AM.
Fedor is offline   Reply With Quote
Old 06-11-2017, 11:05 AM   #11
goldenarpharazon
Human being with feelings
 
Join Date: Feb 2016
Posts: 70
Default

Quote:
Originally Posted by pierousseau View Post
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.

Quote:
Originally Posted by pierousseau View Post
...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.
goldenarpharazon is offline   Reply With Quote
Old 06-11-2017, 02:50 PM   #12
hwhalen
Human being with feelings
 
hwhalen's Avatar
 
Join Date: Jan 2010
Location: Canada
Posts: 808
Default

Quote:
Originally Posted by pierousseau View Post
Have you tried to download it again (your first download might be corrupted)
Here is the direct link : https://raw.githubusercontent.com/Pi...ce_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.
__________________
My Music
Noise From My Head
On The Links
hwhalen is offline   Reply With Quote
Old 06-11-2017, 04:08 PM   #13
Fubarable
Human being with feelings
 
Fubarable's Avatar
 
Join Date: Jul 2016
Posts: 52
Default

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!
Fubarable is offline   Reply With Quote
Old 07-28-2017, 05:59 AM   #14
Indirect
Human being with feelings
 
Join Date: Dec 2015
Posts: 56
Default

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

Last edited by Indirect; 07-28-2017 at 09:48 AM.
Indirect is offline   Reply With Quote
Old 08-01-2017, 02:31 PM   #15
DANIELE
Human being with feelings
 
DANIELE's Avatar
 
Join Date: Aug 2015
Location: Florence, Italy
Posts: 159
Default

I have two NanoKontrol2 and 1 NanoPad2 but I use them in midi cc mode.
__________________
Audio: AKG-K240 MKII, Steinberg UR22; Piano: Yamaha P-250;
!!DANIELE EPIC ORCHESTRAL MUSIC!! |*| STAR WARS SERIES
DANIELE is online now   Reply With Quote
Old 08-21-2017, 10:15 AM   #16
cbesson
Human being with feelings
 
Join Date: Jul 2017
Posts: 1
Default

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.
cbesson is offline   Reply With Quote
Old 11-10-2017, 08:05 PM   #17
seanjean3000
Human being with feelings
 
Join Date: Oct 2015
Location: Ontario
Posts: 5
Default Thanks!

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/phpB...ic.php?t=69644

Thanks again. So much better than the workarounds I used to kludge for the NanoKontrol2 with Reaper.
seanjean3000 is offline   Reply With Quote
Old 11-11-2017, 02:06 AM   #18
sinkmusic
Human being with feelings
 
sinkmusic's Avatar
 
Join Date: Feb 2006
Location: decepticon mothership in a hidden place inside a mountain
Posts: 3,251
Default

This seems to be a great plugin : i'll have to find back my Nano
Will it work with a NanoKontrol 1 ?
sinkmusic is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 02:15 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2017, vBulletin Solutions Inc.