Korg NanoKontrol Studio
-
- KVRist
- Topic Starter
- 156 posts since 1 Apr, 2014
Hello
I want to start coding the Script for this controller because I found no one.
Does someone knows which other controller script could I take as example to start with?
Thanks
I will upload the last versions here so everyone can use it
I want to start coding the Script for this controller because I found no one.
Does someone knows which other controller script could I take as example to start with?
Thanks
I will upload the last versions here so everyone can use it
-
- KVRist
- 138 posts since 20 Oct, 2015
You could look into the livid CTRL:R one... The livid script are pretty cool woth a prototypes framework for stuff like step sequencer and controls... Otherwise one of the newer ones like the maschine jam or behringer x-touch
- KVRAF
- 8845 posts since 6 Jan, 2017 from Outer Space
I would start with this:
https://www.bitwig.com/en/community/con ... ol2_1.html
https://www.bitwig.com/en/community/con ... ol2_1.html
-
- KVRist
- 138 posts since 20 Oct, 2015
Also you could look into the code from the akai midimix or the novation launchkontrol XL... Those are similar in the controls they have and could be a matter of only changing the midi notes and CCs they listen to
-
- KVRist
- Topic Starter
- 156 posts since 1 Apr, 2014
That is what I was wondering now, how to know the notes and CCs which the NanoKontrol Studio uses.
I have seen things like this,
, and I'm wondering how to get those values
I have seen things like this,
Code: Select all
var CC =
{
CYCLE : 0x2E,
REW : 0x2B,
FF : 0x2C,
STOP : 0x2A,
PLAY : 0x29,
REC : 0x2D,
PREV_TRACK : 0x3A,
NEXT_TRACK : 0x3B,
SET : 0x3C,
PREV_MARKER : 0x3D,
NEXT_MARKER : 0x3E,
SLIDER1 : 0x00,
SLIDER8 : 0x07,
KNOB1 : 0x10,
KNOB8 : 0x17,
S1 : 32,
S8 : 0x27,
M1 : 48,
M8 : 0x37,
R1 : 64,
R8 : 0x47
};
-
- KVRist
- 138 posts since 20 Oct, 2015
well one thing you can do is have a callback set on midi, and just log its values... a code example of how I did it:
The SILENT variable can be changed to true once you are done with the script so you dont have to manually comment or delete every println
Code: Select all
...script setup ( loadApi and stuff)...
var SILENT = false;
function init()
{
host.getMidiInPort(0).setMidiCallback(onMidi);
host.getMidiInPort(0).setSysexCallback(onSysex);
}
function onMidi(status, data1, data2){
log('MIDI:'+status + ' - '+data1+" - "+data2);
}
function onSysex(data){log('SYSEX: '+data)};
function log(msg){
SILENT || println(msg);
}
-
- KVRist
- Topic Starter
- 156 posts since 1 Apr, 2014
thanks a lot! I'll check todaybrunomolteni wrote: ↑Tue Nov 20, 2018 3:45 pm well one thing you can do is have a callback set on midi, and just log its values... a code example of how I did it:
The SILENT variable can be changed to true once you are done with the script so you dont have to manually comment or delete every printlnCode: Select all
...script setup ( loadApi and stuff)... var SILENT = false; function init() { host.getMidiInPort(0).setMidiCallback(onMidi); host.getMidiInPort(0).setSysexCallback(onSysex); } function onMidi(status, data1, data2){ log('MIDI:'+status + ' - '+data1+" - "+data2); } function onSysex(data){log('SYSEX: '+data)}; function log(msg){ SILENT || println(msg); }
-
- KVRist
- Topic Starter
- 156 posts since 1 Apr, 2014
Sorry for my late reply...brunomolteni wrote: ↑Tue Nov 20, 2018 3:45 pm well one thing you can do is have a callback set on midi, and just log its values... a code example of how I did it:
The SILENT variable can be changed to true once you are done with the script so you dont have to manually comment or delete every printlnCode: Select all
...script setup ( loadApi and stuff)... var SILENT = false; function init() { host.getMidiInPort(0).setMidiCallback(onMidi); host.getMidiInPort(0).setSysexCallback(onSysex); } function onMidi(status, data1, data2){ log('MIDI:'+status + ' - '+data1+" - "+data2); } function onSysex(data){log('SYSEX: '+data)}; function log(msg){ SILENT || println(msg); }
Addid that code to my script I get something like this,
My question is, from where are coming following values?? What do they mean?
I guess those are "SYSEX", why I cannot see it if I'm calling the function,
Code: Select all
function onSysex(data){log('SYSEX: '+data)};
-
- KVRist
- 138 posts since 20 Oct, 2015
Hey olaims those are hex versions of the same numbers you are getting on the console... Lookup hex conversion
-
- KVRist
- Topic Starter
- 156 posts since 1 Apr, 2014
Ok, I'm using the CC numbers anyway and it is working.
I'm fighting to program the logic, but it seems to work
The only "problem" is that I have no idea of how to control the LEDs
I'll put the script on Github when I have some time
I'm fighting to program the logic, but it seems to work
The only "problem" is that I have no idea of how to control the LEDs
I'll put the script on Github when I have some time
-
- KVRist
- 138 posts since 20 Oct, 2015
For the LEDs Usually it's just a case of sending a midi note to the same note/cc that the control has.. for ex. If you want to turn on a led on a button that sends a note 50, just send back a midi note 50 to the controller... The velocity usually controls the color/behavior ( rgb color on Rgb leds, turned on/off/blinking )
-
- KVRist
- Topic Starter
- 156 posts since 1 Apr, 2014
-
- KVRist
- Topic Starter
- 156 posts since 1 Apr, 2014
with the Index and so on.... I'm fighting because I don't know how to work with it on a dynamic way.
Also some groups are not working correctly with the Index, when the group is opened. It always jumps one index back when is out of the group, like
4 is a group
1-2-3-4-4a-4b-5-6
the index work like
1-2-3-4-4a-4b-4-5-6
With the lights not so much success but I'll try to investigate it further.
Also some groups are not working correctly with the Index, when the group is opened. It always jumps one index back when is out of the group, like
4 is a group
1-2-3-4-4a-4b-5-6
the index work like
1-2-3-4-4a-4b-4-5-6
With the lights not so much success but I'll try to investigate it further.
-
- KVRer
- 1 posts since 22 Nov, 2023
AUTO-ADMIN: Non-MP3, WAV, OGG, SoundCloud, YouTube, Vimeo, Twitter and Facebook links in this post have been protected automatically. Once the member reaches 5 posts the links will function as normal.
Hello there! I've been working on taking olaims' script and cleaning up the code, and starting to add some new features (like jog wheel support).Soaria nanoKontrol Studio driver (https://github.com/kayateia/nanoKONTROLStudio)
(github -> kayateia -> nanoKONTROLStudio)
I'm not planning on maintaining it super intensely, but I'm using it myself, and it works alright I still haven't fixed the LED support, but at this point, I probably won't... I've had to turn them off entirely to stop the "screen saver" distraction.