Welcome to another installment of Your Korg Kronos and You. Lately it’s been all about the things you can do with SYSEX (System Exclusive) messages and the Korg Kronos. In the first installment I wrote about how to get modal ans switch modes on the Kronos from program to combi to global and so on and so forth.
Installment number 2 was all about Karma. I laid out the commands you would need to turn Karma on and off and toggle all the switches and buttons on the front panel related to Karma.
Now comes some really cool stuff I’m going to layout the commands to switch banks and choose specific programs or combis depending on what mode your are in on the keyboard. So here is how it works: If you want to use SYSEX to choose a combi you must put the Kronos into Karma mode. Do that by sending this command:
F0 42 30 68 4E 00 F7
For program mode use this command:
F0 42 30 68 4E 02 F7
Now the rest of this is the same whether you are in Program Mode or Combi Mode. You send the same string in either mode to make your bank and program changes. So here we go.
It is a little quirky on how it works. You can’t just change banks and expect to go from Internal-A to Internal-D. You also have to send along a program change. Effectively what you are doing is choosing a sound, for example, sound number three on Internal-D. Another gotcha is most of the programs in Combi Mode and in Program Mode are numbered from 000 – 127. A couple of the banks have programs numbered 001 – 128 to conform to the General MIDI specification.
From now I will use the word program when referring to sounds in program mode and combi when referring to patches in combi mode.
So, in order to accomplish changing banks and programs on the Kronos you need to send two lines of SYSEX. Let’s say we want to choose program number three on bank I-C. You would send the following SYSEX strings:
make sure the Kronos is in Program Mode
F0 42 30 68 4E 02 F7
B0 00 00
B0 20 02
This tells the Kronos to choose Steel Drums SW 1 (or whatever sound you have stored in that location)
Combis work the same way
make sure the Kronos is in Combi Mode
F0 42 30 68 4E 00 F7
B0 00 00
B0 20 02
This tells the Kronos to choose Random Scattered Colours (or whatever combi you have stored in that location)
I’ve created a chart for the Bank Buttons on the front of the Kronos
Program/Combi – Bank Change Patch numbers are 0-127
Button I – A B0 00 00 B0 20 00 C0 XX <== (XX value must be 00 – 7F)
Button I – B B0 00 00 B0 20 01 C0 XX
Button I – C B0 00 00 B0 20 02 C0 XX
Button I – D B0 00 00 B0 20 03 C0 XX
Button I – E B0 00 00 B0 20 04 C0 XX
Button I – F B0 00 00 B0 20 05 C0 XX
Button I – G B0 00 79 B0 20 00 C0 XX – Patches in Program Mode are 1-128 because the is the General Midi Bank.
Button U -A B0 00 00 B0 20 08 C0 XX
Button U – B B0 00 00 B0 20 09 C0 XX
Button U – C B0 00 00 B0 20 0A C0 XX
Button U – D B0 00 00 B0 20 0B C0 XX
Button U – E B0 00 00 B0 20 0C C0 XX
Button U – F B0 00 00 B0 20 0D C0 XX
Button U – G B0 00 00 B0 20 0E C0 XX
The last number in the row C0 03 must be a number from 0 to 127 to choose the right program/combi location. Since it’s SYSEX it also has to be in hex form. Here’s a chart with the numbers from 0 – 127 in hex form:
So Why did I post all this? I spent a lot of time trying to figure this out. I use Cakewalk Sonar and one of the things you can do with it is send out SYSEX dumps when you load a project. I wanted to be able to set my Kronos with some patches I created for specific tasks automatically depending on what I’m doing.
It’s fairly straight forward. I did find while sending SYSEX in Sonar, I had to be sure to end my strings with F7. That basically tells the Kronos “I’m done sending my message now. go on about your business.”
For some reason it’s been difficult to track down how to do bank and program changes with System Exclusive on the Kronos. I decided I needed to share the knowledge. If you have any questions or comments, ping me in the comments below. I’d be happy to answer what I can.
I have a Korg M1 with some sounds I would love to convert to my Kronos.
Could this be done.?
Thank you in advance.
Hi James. I’m guessing the easiest way to accomplish this would be to sample the sounds you are after and then build patches on the Kronos based on those sounds. The M1 has a different architecture than the Kronos so I’m pretty positive that there would not be a way to do a one to one copy of individual sounds.
I did find this video that might help but note that you will still need to sample the original samples from the M1.
Hope you find that helpful!
I am searching for the SYSEX Transpose for Kronos.
Can you help me please?
Hi Bernd. Sorry it took me so long to get to this. My blog doesn’t seem to notify me every time someone leaves a comment.
Here SYSEX for a global transpose. This is assuming you want to raise the pitch for all MIDI note on events coming from the Kronos.
F0 42 30 68 43 0F 00 00 01 00 00 00 XX F7
Where XX is 00 up to 0C on the chart in the post above. 00 is no pitch change 01 is up one semitone 02 is up two semi tones etc.
To get semi tones below 0 use this SYSEX string:
F0 42 30 68 43 0F 00 00 01 00 7F 7F XX F7
Where XX is 7E down to 74 on the chart in the post above. 7E is minus one semitone, 7D is minus 2 semitones, etc.
I’ll report back as soon as I figure out the master tune in cents as well. Plus I may also look into transposing individual parts in a sound patch an a multi.
Hi Mike! Thanks for all the hard work You’re putting into this..! A quick question; If I want to change setlists with sysex, how would I go about that..? I can send a sysex string to tell the Kronos to go into setlist mode, but what command do I need to change the setlist? Is there also a way point to a certain patch in it..?
Hi Jonas. Thanks for commenting. You can do this in setlist mode also with one caveat.
First, put your Kronos in setlist mode. Then feed it this sysex string:
B0 00 00
B0 20 02
C0 XX Where XX is a hex number between 0 and 15 (00-FF) See the chart in the post for the exact numbers. This will choose setlist 0 – setlist 15.
Now for the caveat: Right now it only seems to work on the first page. The thing I haven’t figured out yet is how to switch pages. The Kronos doesn’t appear to send SYSEX when you hit the page buttons in setlist view. I’ll see if I can track that down and I’ll report back here.
Hope that helps a bit.
Hi Mike many thanks for this cool stuff.
I was wondering if you could help me to find how to get the ge numbers (A B C D) of current combi ?
Or where to find the Kronos sysex v3 doc ?
Hi Patrice. The best I could come up with as far as documentation goes is a link to a version 2.1 document here: http://www.korg.com/us/support/download/manual/0/84/3055/
The best way I have found to get SYSEX commands is to use a program like MIDI OX and use the MIDI monitor to see what is returned as you move sliders, turn knobs and push buttons.
I hope that helps a bit. As I dive deeper, if I figure it out, I’ll be sure to let you know.
Hi Mike thanks, I have this one …
But it is not up to date …
We must do some Reverse engineering to go forward …
I’ve developped a little tool to randomize existing combis
to create new ones faster (via Web Midi ) …
It is almost ok, I still have to found how to run/stop the 4 ge(s) with sysex…
You can check it here if you are interrested:
Anyway, many thanks for the reply. 😉
It’s been a while that I am trying to find a solution to a problem and m unable to fix it, if possible could you please help me.
I own a korg M3 and I have a non-responsive display as a result m unable to use the (KEY TRANSPOSE) in global Global Mode
I have an ipad connected to my Korg M3 and I use Setlist maker ( http://www.arlomedia.com/apps/setlistmaker/main/home.html ) from where i kind-of control my M3 while playing LIVE
Now the solution that I require is how do I TRANSPOSE my korg M3 by sending a SYSEX.
I read the solution provided to “Bernd Krings “but that is on kronos. But how do I get this to work on my M3
On kronos the sysex string is
F0 42 30 68 43 0F 00 00 01 00 00 00 XX F7
Where XX is 00 up to 0C
On Korg M3 the manual says
Master Coarse Tune ( Control Transpose (chromatic step) in Global )
[ F0,7F,0g,04,04,vv,mm,F7 ]
3rd byte g : Global Channel 6th byte
vv : Value(LSB) 7th byte
mm : Value(MSB) mm,vv = 34,00:-12, 40,00:+00, 4C,00:+12
I cannot figure this out (LSB) (MSB) stuff, everything I try… it’s not working.
Can you please Help.
Sorry for such a late response. Work has definitely gotten in the way of MIDI nerdery 😛
My suggestion would be to use a program like MIDI OX http://www.midiox.com/ and it’s MIDI Monitor. Press the transpose button and see what comes back. That’s how I’ve been doing some of the Kronos stuff. If I had my best guess, I would tend to think the M3 may use the same string as the Kronos but with a different byte for the Device ID. I could be totally wrong though since they are different keyboards and most likely have different architectures.
you can use a program called set list maker.Just create a midi preset on the correct chanel put it in learn mode and press the buttons on your kronos set list maker will record your button pressing along as the kronos is sending (Global midi filter)and you can send the recorded sysex program change cc’setc it back to your kronos. You can even attatch the midi inf to a certain song in your the setlist. url bellow.
by the way to change from combi to program withought having to put the krownos in combi or program mode by hand use the following sysex strings.And send the Msb and Lsb afterwards. To chose the program bank etc.
For combi F0 42 35 68 4E 00 F7
For program F0 42 35 68 4E 02 F7
Loved the info, but I seem to still be struggling a bit. I use Logic Pro X and would like to bring the patch list and bank info to be able to make patch selections from the DAW. I am able to get it to work for Banks in program mode, but then changing modes from Program to Combi doesn’t work. I was hoping that there would be a way to use the sysex info to push program mode with the bank and patch mode but it doesn’t seem like it has the options envelope when using custom bank call. Or I am just too lost. Any ideas on doing this in Logic X?
I’m a Sonar guy. I looked at Logic way back when and almost bought it but they discontinued it for Windows 🙁
I’m not quite sure how you would handle that in Logic. Maybe the best bet would be to create a keystroke that sends the SYSEX to the Kronos. Or perhaps create a custom button that switches the mode by send the SYSEX string. I know in Sonar there is a somewhat robust scripting language where you can do all manner of things but if my Kronos is close enough, it’s just as easy to press the Combi/Program buttons. Hope that helps.
i’ve been searching for a long time about how to control
the kronos transport with MMC midi machine control sysex,but not
from a DAW,only with a teensy 3.2 as a midi controller,programmed
with an arduino ide.
Do you know the sysex messages to send to control the transport:
START,STOP,REC,PAUSE,REWIND,FORWARD,and so on…?
It would be helpful 🙂
Hey Patrick I haven’t gotten to the transport controls yet. I need to do another article but time has been short. Go download MIDI Ox and turn on the MIDI monitor and press the buttons and you should be able to see the SYSEX that way.
Hi,MIKE,you are right with midi ox;i did some scan and get this:
TIMESTAMP IN PORT STATUS DATA1 DATA2 CHAN NOTE EVENT
0005BBD0 1 — FC — — — — Stop
0005BBD0 1 — F2 00 00 — — Song Position Ptr
0005BBD1 1 — FA — — — — Start
0005BBD3 1 — FC — — — — Stop
0005BBFF 1 — FA — — — — Start
0005BBFF 1 — FC — — — — Stop
0005BC4E 1 — FA — — — — Start
But how do you write it in an array of sysex?
I think it’s not working the same as the other controls!
Cheers , patrick
What i’ve been looking for, are real time controls from the teensy
all these controls work!
now i’m looking to control the “play/record” of the midi track,and the sysex going out of kronos is:
Sending the exact one does’nt do anything,i think the track channel
selection of the midi track is missing…
Sorry to hammer your mail…cheers,patrick
Glad you were able to get most of it sorted out. I’m not familiar with the teensy library but I think you may be right. If you are able to target the track channel you should be able to record on the fly as well. Maybe again, using MIDI OX, try putting the Kronos into sequence mode and Mute/Unmute a track one at a time and see where the value in the returned SYSEX increases and I would guess that would indicate the channel. Not sure if that is helpful or not but may be a good place to start. Cheers, Mike