Go Back   Cockos Incorporated Forums > REAPER Forums > MIDI Hardware, Control Surfaces, and OSC

Reply
 
Thread Tools Display Modes
Old 10-30-2022, 01:58 PM   #1
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,185
Default NKS (Native Kontrol Standard) preset browsing with any controller, without wrapper

Hi, I'm working on making NKS preset browsing accessible to all controllers, not just Komplete Kontrol keyboards ... with the nice side effect of not needing Komplete Kontrol VST as a wrapper plugin. Needless to say, REAPER only!

What works so far:

- Browsing instruments/banks/types/characters/presets
- Listening to instant sound previews
- Controlling pre-mapped parameters (with feedback)

There's a catch though: Although loading the presets already works nicely for 3rd-party NKS-enabled plug-ins (Zebra, Pianoteq, ...), I'm not sure if I will be able to make it work for NI plug-ins. This is the current limitation. Personally, I don't care about NI plug-ins that much. But then ... it's hard to ignore Kontakt So, hopefully one day, NI plug-ins or at least Kontakt will be on board as well.

For me, this is big and I know I'm going to use this a lot. I even have a Komplete Kontrol keyboard at home but it's far from my favorite. Plus, I'm absolutely not a fan of wrapper plug-ins such as Komplete Kontrol VST. I prefer to load plug-ins in REAPER directly, nice and clean, just like any other plug-in that doesn't support NKS.

Who's interested?

Last edited by helgoboss; 11-06-2022 at 02:14 PM.
helgoboss is online now   Reply With Quote
Old 10-30-2022, 06:03 PM   #2
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

Very interested!!!

I use Komplete Kontrol a fair bit. But it definitely has its things that aren’t so great about it.

Definitely need to know more about what you’re up to!

How are you accomplishing this?

I’d love for whatever you are working on to be able to communicate with OSC.

….

Editing for more conversation;

There are people making their own unofficial NKS presets.

FreelanceSoundLabs.com has some really nice paid ones.

There’s even a whole community on the NI forum (started on their old forums and carried over to the new) that make NKS files and share them for free.

If you put them in your Sounds.com folder they even show up in the official browser.

I mention those things to ask, would what you are making also load those?

…..

Some companies like iZotope and Waves are making NKS presets for their Fx plugins, not just their instruments. I don’t really own much of their stuff so I’m just asking for the collective. Will you would be dealing with those as well.

Last edited by Puck; 10-31-2022 at 03:35 AM.
Puck is offline   Reply With Quote
Old 10-31-2022, 01:05 AM   #3
7enz
Human being with feelings
 
Join Date: Sep 2022
Posts: 383
Default

certainly be useful, as i have a s88 mk1
just curious
will this be added into realearn or as a separate vst?
7enz is offline   Reply With Quote
Old 10-31-2022, 01:07 AM   #4
7enz
Human being with feelings
 
Join Date: Sep 2022
Posts: 383
Default

you may also be aware of the preset magician program that converts compatible vsts to NKS?
7enz is offline   Reply With Quote
Old 10-31-2022, 10:48 AM   #5
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,185
Default

Quote:
Originally Posted by Puck View Post
Very interested!!!

I use Komplete Kontrol a fair bit. But it definitely has its things that aren’t so great about it.

Definitely need to know more about what you’re up to!

How are you accomplishing this?
My approach is to leave the preset scanning to Komplete Kontrol and implement the rest by myself.

When Komplete Kontrol scans your available preset files (nksf, nksfx, ...), it creates an SQLite database on your disk. This database contains summary/meta information about all available presets. Its content is fairly self-explaining, nothing cryptic, nothing to be reverse-engineered. Having such a database on your disk ... it's very tempting to tap it! And that's exactly what I did.

The actual preset content necessary to load the preset doesn't end up in the database, this is what you need the preset file for. Since the preset files carry all necessary meta information, it wouldn't even be difficult to reimplement preset scanning. But since Komplete Kontrol does this part quite well ... why not take advantage of that.

Quote:
Originally Posted by Puck View Post
I’d love for whatever you are working on to be able to communicate with OSC.
This whole thing is implemented as a bunch of ReaLearn targets. ReaLearn supports OSC, so no worries

Quote:
Originally Posted by Puck View Post
There are people making their own unofficial NKS presets.

FreelanceSoundLabs.com has some really nice paid ones.

There’s even a whole community on the NI forum (started on their old forums and carried over to the new) that make NKS files and share them for free.

If you put them in your Sounds.com folder they even show up in the official browser.

I mention those things to ask, would what you are making also load those?
After Komplete Kontrol has scanned them, they should also appear in ReaLearn and it should be able to load them.

Quote:
Originally Posted by Puck View Post
Some companies like iZotope and Waves are making NKS presets for their Fx plugins, not just their instruments. I don’t really own much of their stuff so I’m just asking for the collective. Will you would be dealing with those as well.
I tested with some iZotope effects and it worked. I think the only presets which don't work yet are the ones for NI plug-ins. Because preset files for NI plug-ins use custom formats, e.g. nfm8 for FM8 presets. Whereas nksf/nksfx presets are quite self-explaining, the custom formats are not and it probably requires a bit more effort extracting the essential information out of them.

Quote:
Originally Posted by 7enz View Post
certainly be useful, as i have a s88 mk1
just curious
will this be added into realearn or as a separate vst?
ReaLearn

Quote:
Originally Posted by 7enz View Post
you may also be aware of the preset magician program that converts compatible vsts to NKS?
I never used it but I came across it when searching for available information about NKS. Cheers to the developer! She took the time to document parts of the NKS standard on the Preset Magician website. Some of this information made my job definitely easier.
helgoboss is online now   Reply With Quote
Old 10-31-2022, 05:06 PM   #6
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

Quote:
Originally Posted by helgoboss
Amazing. All of it. I am so excited! I’ve just been going through KK and organizing it lately.
Puck is offline   Reply With Quote
Old 10-31-2022, 05:25 PM   #7
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,255
Default

Yea, I actually have a komplete keyboard but I would still use this. Would be a great use-case for your projection screen too, since most controllers won't have such a screen onboard.

Tbh I'm not that satisfied with the screens built into the NI hardware. Should rather see all 16 Sounds for Maschine than paging 8 back and forth...

Are you planning any scale features? That's usually when I load the Kontrol plugin, but strangely it doesn't provide any global scale control and must be set in each instance.

They also don't provide any way to create custom scales. I'd love a way to just set up my own scale on a virtual keyboard, by ear and not having to worry about figuring out what it might be called or which is the root note.

Probably beyond the scope of this project, but just thought I'd mention it since the potential of NKS is hindered by so many limitations.
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 10-31-2022, 11:54 PM   #8
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,185
Default

Quote:
Originally Posted by foxAsteria View Post
Yea, I actually have a komplete keyboard but I would still use this. Would be a great use-case for your projection screen too, since most controllers won't have such a screen onboard.

Tbh I'm not that satisfied with the screens built into the NI hardware. Should rather see all 16 Sounds for Maschine than paging 8 back and forth...

Are you planning any scale features? That's usually when I load the Kontrol plugin, but strangely it doesn't provide any global scale control and must be set in each instance.

They also don't provide any way to create custom scales. I'd love a way to just set up my own scale on a virtual keyboard, by ear and not having to worry about figuring out what it might be called or which is the root note.

Probably beyond the scope of this project, but just thought I'd mention it since the potential of NKS is hindered by so many limitations.
The projection screen will probably not benefit from it in the near future, but hopefully later. It doesn't support text feedback yet, that's the issue. It's my neglected child

But you could use OSC instead for the time being.

Scale features, what's that? I thought the keyboard player is responsible for playing the right scale.
helgoboss is online now   Reply With Quote
Old 11-01-2022, 03:34 PM   #9
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,185
Default

A small demo of how this can be used:



This video shows just one of infinitely many ways how this can be mapped.

If you don't have a control surface with built-in display, you can also send the text to OSC layouts or use ReaLearn's new text-to-speech feedback.
helgoboss is online now   Reply With Quote
Old 11-01-2022, 03:44 PM   #10
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

That looks amazing! Really well done Benjamin!
Puck is offline   Reply With Quote
Old 11-02-2022, 02:36 PM   #11
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,185
Default

I just published the new pre-release of ReaLearn which contains experimental support for NKS preset browsing: https://forum.cockos.com/showpost.ph...postcount=2774

Tomorrow or the day after tomorrow I plan to write in more detail about how to use these new "Pot" targets, current limitations and future outlook ... there's much in store.
helgoboss is online now   Reply With Quote
Old 11-02-2022, 02:38 PM   #12
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

Quote:
Originally Posted by helgoboss View Post
I just published the new pre-release of ReaLearn which contains experimental support for NKS preset browsing: https://forum.cockos.com/showpost.ph...postcount=2774

Tomorrow or the day after tomorrow I plan to write in more detail about how to use these new "Pot" targets, current limitations and future outlook ... there's much in store.
Welp, I'm a little surprised there isn't more traffic here. But I'm super pumped to get it going! Thanks so much! I'll try and get it up and running tonight.
Puck is offline   Reply With Quote
Old 11-02-2022, 02:43 PM   #13
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,185
Default

Quote:
Originally Posted by Puck View Post
Welp, I'm a little surprised there isn't more traffic here. But I'm super pumped to get it going! Thanks so much! I'll try and get it up and running tonight.
Wow, that was quick I can see you are interested.

Also a bit surprised. Looks like REAPER users, or at least the keyboard players among them, are on vacation or something. Let's see.

Have a look into the user guide, search for "pot". You might have to deal with some ReaLearn basics first if you never used it. Have a look at my video tutorials if you struggle with that.

Or wait until tomorrow when I hopefully publish a useful preset and write more about it.
helgoboss is online now   Reply With Quote
Old 11-02-2022, 02:45 PM   #14
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,185
Default

Oh, and I forgot to document how to use the pre-mapped parameters, damn. More about that tomorrow.
helgoboss is online now   Reply With Quote
Old 11-03-2022, 09:23 AM   #15
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,185
Default

As promised, here some more info. Remember, this is a work in progress. But the basics already work.

Getting started with NKS preset browsing
  1. Make sure you use the latest pre-release of REAPER, at least v6.69+dev1030 (otherwise, you won't be able to load plug-in presets, you can just browse and preview them).
  2. Make sure you have started "Komplete Kontrol" software at least once and that it discovered some presets.
  3. Make sure you have the latest pre-release of ReaLearn installed, at least 2.14.0-pre.9. This video explains the basic installation process and here you can read about how to install the latest pre-release.
  4. If you are not familiar with ReaLearn, watch at least this tutorial video first. It helps you to connect ReaLearn with your device and walks you through the absolute basics.

From here, you have two options. Either you load a demo project and start browsing right away, or you set up mappings manually.

Option 1: Demo project

The demo project is made for a Mackie-compatible controller with display (e.g. X-Touch One, to browse presets) and a simple MIDI controller keyboard with knobs or encoders (to play and to adjust pre-mapped parameters). Very much as presented in the little demo video. If you don't have this kind of device, better start from scratch (Option 2).
  • Download the demo project (right click and save as RPP).
  • Open it in REAPER.
  • Open the ReaLearn instance on track "ReaLearn" and select the input/output corresponding to your Mackie-compatible device.
  • Open the ReaLearn instance on track "Instrument" (this instance could be anywhere, it's just an example) and select the input/output corresponding to your keyboard or controller box. Also use "Learn source" on each parameter adjustment mapping to assign them to the knobs/encoders of your specific controller.

Option 2: Set up mappings manually

This is a small tutorial, far from complete, just to give you an idea. Remember, ReaLearn is probably the most comprehensive and powerful controller tool available for REAPER. That power comes at a price though: You have VERY many options at your disposal, a large toolbox. In order to understand them and put them to good use, you might need to invest some time for experimentation and document reading. I will soon continue with my series of tutorial videos to show things step by step, that should make it easier in the future.
  • Add a new mapping in the main compartment and edit it.
  • Choose target "Pot: Browse presets".
  • Press "Learn source" and turn an endless rotary encoder on your controller. (You could also use previous/next-style buttons with mode "Incremental button").
  • At this point, you should already see the "Value" on the right change whenever you move the encoder.
  • We want to see the name of the currently selected preset. For this, first add another mapping with target "Pot: Browse presets" and change "Numeric feedback" to "Textual feedback" in the glue section.
  • If you have a supported MIDI hardware display, choose source MIDI => Display and the display protocol of your choice. Then you should see the preset name change when you move the encoder.
  • If you don't have one, you could use OSC, but that's beyond the scope of this little tutorial. So let's just choose source category "REAPER" and type "Speech". Also set "Feedback output" to something that's not "<None>" to enable feedback. Then you should hear your machine talking to you whenever you change the preset (Windows & macOS only)
  • Okay, now you can browse the complete list of presets, which can be a *very* long list. You can use target "Pot: Browse filter items" in order to filter this list with another encoder/buttons, e.g. to a specific instrument or character.
  • So now we can browse presets but can't hear them yet. Add another mapping with target "Pot: Preview preset" and map it to a button. Done. (Not all presets have previews!).
  • We still didn't actually load any preset. Add another mapping with "Pot: Load preset" and select the track ("Particular") and FX ("At position") to tell ReaLearn where to load the preset. There really must be an FX at that position, otherwise the target is inactive! So add some placeholder FX, e.g. "ReaSynth" at that position. Then press "Learn source" and press a button on your controller. Pressing this button should load the currently selected preset (in the corresponding plug-in). You need to have VST2 versions of the corresponding plug-ins installed. Plus, it doesn't work with Native Instruments plug-ins currently. Wave files are loaded in ReaSamplOmatic5000.
  • You probably want to control pre-mapped preset parameters, too: For each knob/encoder/fader, add one mapping. Set target to "FX parameter: Set value", choose track "Particular", FX "At position" and Parameter "<Dynamic>". As dynamic expression, enter "mapped_fx_parameter_indexes[0]" for the first pre-mapped parameter, "mapped_fx_parameter_indexes[1]" for the second one, and so on.

Future outlook

Some known issues that I would like to fix in the near future:
  • Save and restore pre-mapped parameters (right now if you close and open the project again, you need to load the preset *again* in order to adjust the pre-mapped parameters of that preset)
  • ... and whatever things you testers report as not working

Some things I would like to add in near or midterm future:
  • Add a target to mark a preset as favorite
  • Add a filter item kind "Favorite" to browse favorite presets only
  • Add name shortening (because hardware display size is very limited, I would add this as a general text feedback feature)
  • Add option to target "Pot: Preview preset" to audition the preset on a particular track instead of the global monitoring output
  • Add target "Pot: Set filter item" (in order to be able to use a button to apply a very specific filter, right now we can browse only)
  • Add option to "Pot: Browse filter items" to skip empty filters (those that result in an empty list of presets)
  • Add preset selector "Dynamic" to targets "Pot: Preview preset" and "Pot: Load preset" to dynamically define the preset to preview/load. Right now it always loads the preset which is currently selected within this specific ReaLearn instance. But with "Dynamic", one could implement a scrollable list which shows multiple preset entries at once and one could press the button beside it to preview/load exactly that preset. Of course, this would require either a device with multiple displays or a proper OSC layout.
  • Add display of current instance preset name in the status bar (and maybe beside the target value view).
  • Add an option to "Project: Browse tracks" to NOT select the track but set it as instance track instead. Then it would behave exactly like "Pot: Browse presets". Consistency is nice.
  • NEW: Make it possible to globally filter the list of instruments (requested by Puck)

Some things that I wish to see happening in more distant future:
  • Add preset selector "Particular" to targets "Pot: Preview preset" and "Pot: Load preset" to preview/load a very specific preset.
  • Support for other kinds of databases: Those new ReaLearn targets are called "Pot" and not "Nks"! For a good reason. I would like to support other preset databases as well, and not just sounds or effects, maybe also track templates, FX chains and so on. Maybe by starting to support REAPER media explorer databases. Possibly also SWS resources or a custom ReaLearn-defined database format that crawls available track templates and FX chains.
  • Ability to load presets for Native Instrument plug-ins

Last edited by helgoboss; 11-06-2022 at 02:10 PM.
helgoboss is online now   Reply With Quote
Old 11-03-2022, 11:34 AM   #16
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

As noted before, I’m excited!

I will definitely be testing but I hadn’t successfully used Realearn up until last night. So I figured I’d get that going first. I hit a couple snags but had some hello world moments as well. I watched the Realearn Basics series. Wonderful job with that!

Ultimately what I’m saying is that it’ll be a little while before I can test properly.
Puck is offline   Reply With Quote
Old 11-03-2022, 06:50 PM   #17
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,255
Default

Quote:
Originally Posted by helgoboss View Post
Looks like REAPER users, or at least the keyboard players among them, are on vacation or something. Let's see.
If you build it, they will come...
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 11-05-2022, 10:26 AM   #18
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

So I was able to get most things working.

I had a play with just basic Realearn first and made some baby steps there.

NKS Preset browsing:

1. I've tested about 4 plugins. The actual VST loads correctly but in each plugin so far it's just loaded the init preset. Maybe I'm missing something here?

2. I think we'll need some way to filter this original list of plugins. KK has most of my plugins scanned into it but I really only want access to maybe 15-20 tops whereas my current list is probably close to 200 including FX.

3. I take it that 0 (as in float value 0) means that a Pot: Browse Filter Items is "inactive?" For example, if the character type is at 0 then that means no character type is selected? It'd be nice if the textual feedback said "<none>" at that point.

4. I definitely have more thoughts but I'm going to leave it at that for now until I can dig in more.

Edit: 5. I haven’t done the parameter stuff yet but I didn’t see a function to change pages of parameters. Is that implemented?
.....

I love how responsive scrolling through the lists felt. I feel like this is going to be VERY good!

I was thinking about doing this is TouchOSC (it'd be really easy) but maybe you want to implement it in Realearn as well (hell, it maybe already possible) but I just want to be able to pick a random preset.

Last edited by Puck; 11-05-2022 at 10:53 AM.
Puck is offline   Reply With Quote
Old 11-06-2022, 01:43 PM   #19
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,255
Default

Quote:
Originally Posted by helgoboss View Post
Scale features, what's that? I thought the keyboard player is responsible for playing the right scale.
I guess you're being cheeky, but yea, it's a cheat so that e.g. drummers can play in key without a decade of piano lessons. Learning theory always put me off, but sometimes it's helpful to choose a random key to write in.

But something I've never seen is an arbitrary scale system where you can set an arbitrary note limitations over one or more octaves and force incoming MIDI to the nearest note.

I'm probably seeing this project as an opportunity to address some of the issues with NI's implemention (the biggest of which is obviously the lack of 3rd party plugin and controller support), so maybe it's not what you have in mind, but the other big problem is paging through parameters:

You'll often see 10 or more pages of 16 parameters, but you can't go directly from page 10 to 1 (that's another 9 clicks back), so it's pretty cumbersome to get around. Cycling a wrapped list with an encoder would be a huge improvement.

I'm wondering though how many people are really familiar with NKS. Maybe spelling out the acronym in your subject would net more interest?
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 11-06-2022, 01:53 PM   #20
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,185
Default

Quote:
Originally Posted by Puck View Post
So I was able to get most things working.

I had a play with just basic Realearn first and made some baby steps there.

NKS Preset browsing:

1. I've tested about 4 plugins. The actual VST loads correctly but in each plugin so far it's just loaded the init preset. Maybe I'm missing something here?

2. I think we'll need some way to filter this original list of plugins. KK has most of my plugins scanned into it but I really only want access to maybe 15-20 tops whereas my current list is probably close to 200 including FX.

3. I take it that 0 (as in float value 0) means that a Pot: Browse Filter Items is "inactive?" For example, if the character type is at 0 then that means no character type is selected? It'd be nice if the textual feedback said "<none>" at that point.

4. I definitely have more thoughts but I'm going to leave it at that for now until I can dig in more.

Edit: 5. I haven’t done the parameter stuff yet but I didn’t see a function to change pages of parameters. Is that implemented?
.....

I love how responsive scrolling through the lists felt. I feel like this is going to be VERY good!

I was thinking about doing this is TouchOSC (it'd be really easy) but maybe you want to implement it in Realearn as well (hell, it maybe already possible) but I just want to be able to pick a random preset.
1. I think you might be missing either that this only works with REAPER >= v6.69+dev1030 or that it only works for non-NI plug-ins (at the moment).

2. Good point. Let me think about this. Any idea how NI solves this on Komplete Kontrol keyboards? I'll put it into my list of midterm TODOs.

3. Mmh, actually it should display "All" if no filter item is selected. Where exactly do you see the "0"? Sure you have textual feedback enabled?

5. This can be done already by using general-purpose ReaLearn techniques: Declare one of the compartment parameters (e.g. Parameter 1) to represent a parameter page, simply by naming it "Parameter page" and giving it a value count, e.g. 10. Then use something like the following as dynamic expression of the "FX parameter: Set value" target: "mapped_parameter_indexes[8 * p1 + 0]". Changing that compartment parameter will then change banks. (mapped_parameter_indexes contains all banks and here we use the knowledge that each bank has exactly 8 slots)

6. Random preset: Yes, possible already. Add a mapping assigned to a button source and the target "Pot: Browse presets". Glue section: Set to "Press only" and use control transformation "y = rand()". Done.
helgoboss is online now   Reply With Quote
Old 11-06-2022, 02:02 PM   #21
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

Quote:
Originally Posted by helgoboss View Post
1. I think you might be missing either that this only works with REAPER >= v6.69+dev1030 or that it only works for non-NI plug-ins (at the moment).

2. Good point. Let me think about this. Any idea how NI solves this on Komplete Kontrol keyboards? I'll put it into my list of midterm TODOs.

3. Mmh, actually it should display "All" if no filter item is selected. Where exactly do you see the "0"? Sure you have textual feedback enabled?

5. This can be done already by using general-purpose ReaLearn techniques: Declare one of the compartment parameters (e.g. Parameter 1) to represent a parameter page, simply by naming it "Parameter page" and giving it a value count, e.g. 10. Then use something like the following as dynamic expression of the "FX parameter: Set value" target: "mapped_parameter_indexes[8 * p1 + 0]". Changing that compartment parameter will then change banks. (mapped_parameter_indexes contains all banks and here we use the knowledge that each bank has exactly 8 slots)

6. Random preset: Yes, possible already. Add a mapping assigned to a button source and the target "Pot: Browse presets". Glue section: Set to "Press only" and use control transformation "y = rand()". Done.

1. Friggin' duh. Sorry. Yes I'm sure it's my Reaper version. Will let ya know.

2. It's not really a problem on my keyboard. The plugin FX don't show up in the Instrument category. I don't use FX at all in KK so I think I can just delete them from the database. Doing that should increase usability quite a bit. Still we should have some way to filter further, especially with NI plugs not working yet.

3. I don't see a "0" I just meant that the value of the control is 0. I see an empty string at that point, "All" would be perfect but that doesn't seem to be working here. Textual feedback is working well other than that though, I can scroll through all of the categories and see all the text feedback coming through.

5. I will do as you say here but I don't quite "get it" That's not important I'll catch on at some point To be clear I understand what you are telling me to do. If I can't get it I'll comment back.

6. Awesome! I had a feeling that was already possible!
Puck is offline   Reply With Quote
Old 11-06-2022, 02:06 PM   #22
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,185
Default

Quote:
Originally Posted by foxAsteria View Post
I guess you're being cheeky, but yea, it's a cheat so that e.g. drummers can play in key without a decade of piano lessons. Learning theory always put me off, but sometimes it's helpful to choose a random key to write in.

But something I've never seen is an arbitrary scale system where you can set an arbitrary note limitations over one or more octaves and force incoming MIDI to the nearest note.

I'm probably seeing this project as an opportunity to address some of the issues with NI's implemention (the biggest of which is obviously the lack of 3rd party plugin and controller support), so maybe it's not what you have in mind, but the other big problem is paging through parameters:

You'll often see 10 or more pages of 16 parameters, but you can't go directly from page 10 to 1 (that's another 9 clicks back), so it's pretty cumbersome to get around. Cycling a wrapped list with an encoder would be a huge improvement.

I'm wondering though how many people are really familiar with NKS. Maybe spelling out the acronym in your subject would net more interest?
Haha yes, sorry, a bit cheeky maybe But part of this was meant as a serious question ... I really don't have any experience with the scale feature of Komplete. Maybe you can tell me more about it or post a quick link to some video.

Yes, for me it's also about tapping the full potential of NKS presets. It's cool what NI achieved there ... to get lots of plug-in manufacturers on board and following a preset standard! But implementation-wise (Komplete Kontrol hardware/software) I have the impression it's currently not much more than a toy for hobby musicians that allows them to scroll through their ever growing list of presets and have fun listening to them. It could be so much more in my opinion.

About the pages of parameters: Mmh, is it possible that this is already solved by answer 5 of my above replies to Puck? You could assign the "Parameter bank" parameter to a rotary encoder and that should do the job.

Good idea, changing the subject of this thread.
helgoboss is online now   Reply With Quote
Old 11-06-2022, 08:56 PM   #23
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

Oh no!

Where are you pulling this list from?

I tried to remove the locations from KK and rescan. Since that didn't work I did the same thing in Maschine and then restarded. I wonder what I would have to do to remove these plugins from the file you are parsing.

edit: oh and GREAT news. The recent reaper dev release makes the presets fire correctly which is just friggin' wild. Well done!

Edit 2: I just noticed that Bank/Type/SubType/ and Character don't filter down to only the possible tags. Right now I have Pendulate in the Instrument slot, and I can still scroll through every single Character I have, whether Pendulate has those tags or not. It's like that for all of the Filter Preset knobs.

Last edited by Puck; 11-06-2022 at 09:04 PM.
Puck is offline   Reply With Quote
Old 11-07-2022, 01:16 AM   #24
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,185
Default

Quote:
Originally Posted by Puck View Post
Oh no!

Where are you pulling this list from?

I tried to remove the locations from KK and rescan. Since that didn't work I did the same thing in Maschine and then restarded. I wonder what I would have to do to remove these plugins from the file you are parsing.

edit: oh and GREAT news. The recent reaper dev release makes the presets fire correctly which is just friggin' wild. Well done!

Edit 2: I just noticed that Bank/Type/SubType/ and Character don't filter down to only the possible tags. Right now I have Pendulate in the Instrument slot, and I can still scroll through every single Character I have, whether Pendulate has those tags or not. It's like that for all of the Filter Preset knobs.
The database is at "$HOME/Library/Application Support/Native Instruments/Komplete Kontrol/komplete.db3" on macOS and "%USERPROFILE%/AppData/Local/Native Instruments/Komplete Kontrol/komplete.db3" on Windows. No idea if rescan actually removes "orphan" entries from that database. We might need to solve this another way. Better I implement this filter on ReaLearn side.

SubType should filter down to the selected (parent) type. Bank should filter down to the selected (parent) instrument. That should already work.

Characters don't have such a strict parent/child relationship, they are more free and they are only assigned to presets, not to instruments. So there's nothing in the database that says "Pendulum should only have tags x, y and z". I think what you want is something that I mentioned in the list of planned midterm improvements: The ability to skip empty filters (those that result in an empty list of presets).
helgoboss is online now   Reply With Quote
Old 11-07-2022, 02:10 AM   #25
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

Sorry I missed that! Yes that’s exactly what I’m saying.
Puck is offline   Reply With Quote
Old 11-07-2022, 02:11 PM   #26
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,255
Default

Quote:
Originally Posted by helgoboss View Post
I really don't have any experience with the scale feature of Komplete. Maybe you can tell me more about it
It's why I bought my KK; though it's not as useful as I'd hoped. It works like this: Choose a scale, type and root note and all the corresponding notes light up on the keyboard. You can use that info 3 modes:

Code:
Mapped Mode (Default)
In Mapped mode, the notes are mapped to the keyboard according to the selected scale. Notes
outside of the selected scale are not active. Pressing the corresponding keys will trigger the next
available note in the selected scale. The Light Guide highlights the active keys via lit LEDs. The
Root Note is indicated by a brighter lit LED.
Smart Play – Playing and Editing Scales and Chords
Guide Mode
In Guide mode, the notes are mapped to the keyboard in the same way as in Mapped mode, how-
ever notes outside of the selected scale remain active. The mapping only affects the representa-
tion of the scale by means of the Light Guide.
Easy Mode
In Easy mode, the notes of the selected scale are mapped to the keyboard so that any scale can
be played using the white keys of the keyboard only. The black keys are inactive and pressing
them will not trigger any other notes.
Quote:
Originally Posted by helgoboss View Post
it's currently not much more than a toy for hobby musicians that allows them to scroll through their ever growing list of presets and have fun listening to them. It could be so much more in my opinion.
Yes and YES!
Also why the scale feature is lame; NI gives you a robust set of scales to choose from with the following caveats:

The hobby musician has no idea what scale will contain the notes they want (if indeed they even know the names of the notes). While it's a fun way to explore new scales at random or instantly get in key with a particular arrangement...

But usually I just want to lock in the 3-5 notes I found on the keyboard that go along with the other parts I just recorded, so I can experiment with them on other tracks and or later on when I've forgotten what I was playing I can at least be sure I'm still using the same notes.

Having only basic knowledge of theory, I can plug the notes into Reaper's scale finder and get a list of scales containing those notes...but I don't know yet what other notes I might end up adding. It would be so much more flexible and straightforward to highlight the notes on a VK and then all of my playing is restricted there.

I can also (maybe?) project the pseudo-scale for other musicians in the room to see the notes I'm currently using.

You are strictly limited to the scales supplied by NI and the scale cannot be set or changed globally. Since ReaLearn instances can communicate with each other, note-quantizing the incoming MIDI ands even change it on the fly across all instances.


Quote:
Originally Posted by helgoboss View Post
About the pages of parameters: Mmh, is it possible that this is already solved by answer 5 of my above replies to Puck? You could assign the "Parameter bank" parameter to a rotary encoder and that should do the job.
Yes I'm sure, I was more or less commenting on how easy it is to improve their formula. Ten+ non-wrapped pages of parameters is such a head-scratcher of a design flaw...
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 11-07-2022, 04:14 PM   #27
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

Furthering the parameter discussion:

I have a slick layout that’s 8x4 rotaries. I gather it’s already possible to do (as I said in the main thread, I’m coming around) but it’d be suuuper nice to use all 32 of rotaries and bank through them.
Puck is offline   Reply With Quote
Old 11-07-2022, 07:18 PM   #28
7enz
Human being with feelings
 
Join Date: Sep 2022
Posts: 383
Default

Quote:
Originally Posted by Puck View Post
Furthering the parameter discussion:

I have a slick layout that’s 8x4 rotaries. I gather it’s already possible to do (as I said in the main thread, I’m coming around) but it’d be suuuper nice to use all 32 of rotaries and bank through them.
i found the 2 best methods for changing parameters..
is utilising Realearn as the more versatile method.. can work without focus of plugin, and change parameters across a current project as well as a background projects(if setup correctly)

the other script(LBX SRD Smart knobs script version1) is not so versatile... meaning will ONLY work based on a plugin being focussed, and works on current focussed project(doesnt adjust parameters on background projects (despite being able to focus a plugin from inside another project)

however this LBXscript has quick ease of setup,also a monitoring aspect to the script(so you can see what you are changing) and you can also order and rearrange the parameters to suit!! It is as i mentioned the quick ease of use that makes this script very useful!!
-: there are quirks ie.. re arranging the order (sometimes) requires deleting saved preset and re-doing it

script can be only be utilised if there is a UI parameter on the FX plugin as shown in the video
So can be utilised with Kontakt or komplete


heres a quick demonstration i put together
https://www.youtube.com/watch?v=nWoXs3-8WuY

Last edited by 7enz; 11-07-2022 at 07:28 PM.
7enz is offline   Reply With Quote
Old 11-07-2022, 07:39 PM   #29
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

Quote:
Originally Posted by 7enz View Post
i found the 2 best methods for changing parameters..
is utilising Realearn as the more versatile method.. can work without focus of plugin, and change parameters across a current project as well as a background projects(if setup correctly)

the other script(LBX SRD Smart knobs script version1) is not so versatile... meaning will ONLY work based on a plugin being focussed, and works on current focussed project(doesnt adjust parameters on background projects (despite being able to focus a plugin from inside another project)

however this LBXscript has quick ease of setup,also a monitoring aspect to the script(so you can see what you are changing) and you can also order and rearrange the parameters to suit!! It is as i mentioned the quick ease of use that makes this script very useful!!
-: there are quirks ie.. re arranging the order (sometimes) requires deleting saved preset and re-doing it

script can be only be utilised if there is a UI parameter on the FX plugin as shown in the video
So can be utilised with Kontakt or komplete


heres a quick demonstration i put together
https://www.youtube.com/watch?v=nWoXs3-8WuY

Hey there!

This discussion is strictly about NKS. Native Instrument's preset standard. As of right now, helgoboss is trying to get rid of the need for having a "wrapper plugin" like Komplete Kontrol. So the "parameter" discussion here are the parameters that come pre-mapped with those presets.

Cool video though, I was always a fan of lb0's work!
Puck is offline   Reply With Quote
Old 11-08-2022, 09:38 AM   #30
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,185
Default

Quote:
Originally Posted by foxAsteria View Post
It's why I bought my KK; though it's not as useful as I'd hoped. It works like this: Choose a scale, type and root note and all the corresponding notes light up on the keyboard. You can use that info 3 modes:
If you need the lights above the keys, you would need a Komplete Kontrol keyboard I think. Interfacing with that keyboard is not in scope of ReaLearn at the moment, maybe in future at some point. There are other initiatives though which attempt to do this (not sure if they are one and the same):

- https://forum.cockos.com/showthread.php?t=191158
- https://forum.cockos.com/showthread.php?t=222331
helgoboss is online now   Reply With Quote
Old 11-08-2022, 11:45 AM   #31
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,255
Default

Quote:
Originally Posted by helgoboss View Post
If you need the lights above the keys, you would need a Komplete Kontrol keyboard I think.
Sorry I wasn't clear. I do have a KK. The lights aren't the feature I'm concerned with; just the quantizing of MIDI and global control of that via a virtual keyboard (manually highlight the notes we want to restrict incoming MIDI to).

NI provides a robust feature set in their scale system but leaves out the only things actually I or any hobbyist would need it for; global MIDI note filter (optionally quantize to nearest note), and manually definable scales (I couldn't care less what scale is called; I just want to choose the notes it contains).
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 11-08-2022, 11:57 AM   #32
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,185
Default

Quote:
Originally Posted by 7enz View Post
i found the 2 best methods for changing parameters..
is utilising Realearn as the more versatile method.. can work without focus of plugin, and change parameters across a current project as well as a background projects(if setup correctly)

the other script(LBX SRD Smart knobs script version1) is not so versatile... meaning will ONLY work based on a plugin being focussed, and works on current focussed project(doesnt adjust parameters on background projects (despite being able to focus a plugin from inside another project)

however this LBXscript has quick ease of setup,also a monitoring aspect to the script(so you can see what you are changing) and you can also order and rearrange the parameters to suit!! It is as i mentioned the quick ease of use that makes this script very useful!!
-: there are quirks ie.. re arranging the order (sometimes) requires deleting saved preset and re-doing it

script can be only be utilised if there is a UI parameter on the FX plugin as shown in the video
So can be utilised with Kontakt or komplete


heres a quick demonstration i put together
https://www.youtube.com/watch?v=nWoXs3-8WuY
It would actually make sense to add a similar GUI to ReaLearn. Feel free to request it on GitHub. Then one would have the speed and versatility of ReaLearn + a simple way to map FX parameters. Pre-mapped NKS parameters would also appear in the list.
helgoboss is online now   Reply With Quote
Old 11-08-2022, 04:48 PM   #33
7enz
Human being with feelings
 
Join Date: Sep 2022
Posts: 383
Default

Quote:
Originally Posted by helgoboss View Post
It would actually make sense to add a similar GUI to ReaLearn. Feel free to request it on GitHub. Then one would have the speed and versatility of ReaLearn + a simple way to map FX parameters. Pre-mapped NKS parameters would also appear in the list.
glad you saw the video..
ill have a little think about things re-feature request
before posting on github... ill try keep simplicity in mind
cheeRs
7enz is offline   Reply With Quote
Old 11-08-2022, 04:55 PM   #34
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,185
Default

Quote:
Originally Posted by 7enz View Post
glad you saw the video..
ill have a little think about things re-feature request
before posting on github... ill try keep simplicity in mind
cheeRs
You can keep the feature request pretty general and then we can discuss the details there. It will definitely be different than Smart Knobs because ReaLearn is conceptually different. The biggest difference is that it supports not only FX parameters. Let's see how we can still get a simple UI for this. I have some options in mind.
helgoboss is online now   Reply With Quote
Old 11-11-2022, 05:57 PM   #35
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

I cleaned up alot of komplete.db3 by getting rid of library/plugin locations and then deleting komplete.db3 so it rebuilt it.

I still have 30 or so AirMusicTech FX plugins that I can not get rid of for the life of me lol. I've looked in the registry for keys. I suppose I can uninstall them completely, I don't think I've used anything other than lo-fi.

(Edit: I uninstalled "Creative FX Collection" and it got rid of them, I'd still like to be able to filter a few more instruments out of there. I loved the idea of Komplete Kontrol and went crazy installing any and everything I could which I am now regretting

Funny thing is, I can't even add the Air FX plugins inside Komplete Kontrol. So it seems to be in some database somewhere.

Just as a follow-up. My filters don't say "<All>" when the value of the knob (I use faders actually) is at 0. Everything else about this works pretty well.

I was impressed with loading samples into RS5K. It uses your last settings in a RS5K instance (not exactly sure what the logic is, that seems right)

Maybe down the road you could add loading Wavs into RS5K in different modes/settings. One Target where it loads RS5K where it ignores midi note, and one that's semitone shifted so it lays the sample across the keyboard. Stuff like that. I'm just thinking out loud here. I love what you've done so far. I still need to get the parameters working and test those.

Last edited by Puck; 11-12-2022 at 09:22 PM.
Puck is offline   Reply With Quote
Old 11-12-2022, 08:12 PM   #36
Win Conway
Human being with feelings
 
Join Date: Dec 2010
Posts: 3,826
Default

Would be interested in this if the NI plugins ever work, good stuff.
__________________
Stop posting huge images, smaller images or thumbnail, it's not rocket science!
Win Conway is offline   Reply With Quote
Old 03-03-2023, 03:31 AM   #37
ZeRedbeard
Human being with feelings
 
Join Date: Mar 2020
Posts: 10
Default

Hi,

I'm researching things about how to bridge Reaper and NKS plugins. I wondered if you encountered anything regarding the color guide used for notes and keyswitches in NKS plugs? I'd love to have it reflected in the piano roll mode of the midi editor in reaper.
ZeRedbeard is offline   Reply With Quote
Old 05-07-2023, 04:29 AM   #38
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,185
Default

Quote:
Originally Posted by ZeRedbeard View Post
Hi,

I'm researching things about how to bridge Reaper and NKS plugins. I wondered if you encountered anything regarding the color guide used for notes and keyswitches in NKS plugs? I'd love to have it reflected in the piano roll mode of the midi editor in reaper.
Hi, sorry for the late reply. I didn't do research in this direction, don't know.
helgoboss is online now   Reply With Quote
Old 05-07-2023, 04:30 AM   #39
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,185
Default

Great news: The Pot targets are getting a big update and a visual Pot Browser.

https://forum.cockos.com/showthread.php?p=2675622
helgoboss is online now   Reply With Quote
Old 05-07-2023, 11:47 AM   #40
KennyG5000
Human being with feelings
 
Join Date: Nov 2022
Posts: 49
Default

In light of the fantastic news that Helgoboss has announced the all new pot browser implementation for Reaper, I thought I would post a quick video of what I have been working on for the last couple of months using Realearn's current implementation of the pot browser and Open Stage Control for the template. It already has a ton of potential used this way, so I am more than excited to see what this improved version can now add!



If anyone is interested in trying out this template with Open Stage Control let me know, and I can post the json for OSC and a reaper project where it is all mapped thanks!
KennyG5000 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 04:21 PM.


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