Home › Forums › General › General MIDI discussion › Midi Messages send "BANK" change messages
Tagged: korg N series, Korg N364
- This topic has 15 replies, 4 voices, and was last updated 2 years, 11 months ago by
goodweather.
-
AuthorPosts
-
May 3, 2019 at 12:56 pm #114660
Somehow my original message dissapeared, i would like to know howto “build a bankmessage” for Korg N364.
I know howto send note and midichannel “the basics”. But i can’t quite figure out howto change bank given the little info i found.
Could someone help me construct it? In decimal would be nice, but hex or bin ok.
Here is the info i found i can’t see it say anything about bankchange, i would guess these type of ino not available in a usermanual, so where can one find it service manuals or? How did he find out these things?[ KORG N264/N364 SysEx – A Quick Reference Guide ]
Compiler: Kenneth Jonsson (http://user.tninet.se/~ufn204a)
Updated: April 29, 1998.All pages & tables refer to the N264/N364 Reference Guide.
x = global MIDI channel: 0 through F (equals 1 through 16)
———————————————————————–
GENERAL N264/N364 SYSEX CODE:
———————————————————————–
SysEx start F0
KORG ID number 42
MIDI channel 3x
N-series ID 35
Function code
Data
SysEx end F7
———————————————————————–
DUMP REQUESTS:
———————————————————————–
Current program F0 42 3x 35 10 F7 *
Current combination F0 42 3x 35 19 F7 *Global data F0 42 3x 35 0E 00 F7
Pattern set F0 42 3x 35 09 00 F7
Drumkits F0 42 3x 35 0D 00 F7
All programs F0 42 3x 35 1C 00 F7
All combinations F0 42 3x 35 1D 00 F7
All sequencer songs F0 42 3x 35 18 00 F7
All data F0 42 3x 35 0F 00 F7Current mode F0 42 3x 35 12 F7
* = N264/N364 must be in prog or combi mode respectively
———————————————————————–
MODE SELECT:
———————————————————————–
Combination mode F0 42 3x 35 4E 00 00 F7
Program mode F0 42 3x 35 4E 02 00 F7
Sequencer mode F0 42 3x 35 4E 04 00 F7Global mode F0 42 3x 35 4E 06 00 F7
Disk mode F0 42 3x 35 4E 07 00 F7Combi edit mode F0 42 3x 35 4E 01 00 F7
Prog edit mode F0 42 3x 35 4E 03 00 F7
Seq edit mode F0 42 3x 35 4E 05 00 F7
———————————————————————–
ERROR / ACKNOWLEDGEMENT MESSAGES:
———————————————————————–
In-data format error F0 42 3x 35 26 F7
Data load completed F0 42 3x 35 23 F7
Data load error F0 42 3x 35 24 F7
Write completed F0 42 3x 35 21 F7
Write error F0 42 3x 35 22 F7
———————————————————————–
PROG / COMBI / DRUM PARAMETER EDIT (CUMBERSOME!):
———————————————————————–
Prog write request F0 42 3x 35 11 0b nn F7
Combi write request F0 42 3x 35 1A 0b nn F7
Prog/combi param change F0 42 3x 35 41 yy zz vv ww F7 *
Drum kit param change F0 42 3x 35 53 0k ss 0p vv ww F7b = bank number: A=0, B=1
nn = prog/combi number: 00 through 99 (decimal)
yy = parameter number LSB (see tables 8 through 12 on page 225)
zz = parameter number MSB ( – ” – )
vv = value LSB (see note 13 on page 220)
ww = value MSB ( – ” – )
* = N264/N364 must be in prog edit mode to change current prog
parameters, and in combi edit mode to change current combi
parameters.
k = drum kit number: A1=0, A2=1, B1=2, B2=3
ss = index number: 00 through 59 (decimal)
p = parameter number (see table 13 on page 225)
———————————————————————–
MISCELLANEOUS (NON-SYSEX):
———————————————————————–
Select seq song F3 0s (s = 0 through 9)
Start seq play FA
Continue seq play FB
Stop seq play FC
Seq position F2 yy zzMaster volume F0 7F gg 04 01 yy zz F7
Master balance F0 7F gg 04 02 yy zz F7
Master balance center F0 7F gg 04 02 00 40 F7General MIDI mode on F0 7E gg 09 01 7F
Instrument ID request F0 7E gg 06 01 7F (see table 1-4 on page 214)Timing clock F8
Active sensing FEgg = global MIDI channel: 00 through 0F, or 7F for any channel
yy = LSB: 00 through 7F
zz = MSB: 00 through 7FMay 3, 2019 at 1:23 pm #114661Are all messages starting with F0 sysexmessages?
Here is by the way how javascript handling it, i think it take it in hex also.
Bankchange message for Korg N364 anyone?message = [240, 126, 127, 6, 1, 247]; // device ID request
outputPort = midi.outputs.get(portID);
outputPort.send(message);May 3, 2019 at 1:34 pm #114662Ok think i solved it, found something. I guess it means that bankchange is not a sysex message.
Is that true for all synths?
Anyhow Nice!file:///C:/Users/jonas/Downloads/_home_httpd_data_media-data_8_BankChangeKorg-.pdf
May 3, 2019 at 9:47 pm #114664Exactly!
it is about the same on all synths.Program change is usually a channel message like 0xCm 0x00/7F where m is 0 to F and is your midi channel 0-15 and where the second byte is O to 127 (00 to 7F)
Bank change is a controller message like 0xBm 0x20 0x00 to 0x07 where m is 0 to F and is your midi channel 0-15 and where the second byte is the copntroller number (0x20 or 32 in this case) and the third byte is in my example O to 7 allowing to select a bank 1 to 8.
It is in this third byte of the bank change message that you will have differences between the synths (but also in the 2nd byte of the program change message)
May 3, 2019 at 11:58 pm #114668afaik bank select is standardized by midi specs. It is a bit more complicated than simple control change messages as it consists of two 7-bit msb/lsb parts. There may exist some synths that are using only one of them. It is quite well explained here: https://www.mutools.com/info/docs/mulab/using-bank-select-and-prog-changes.html
Ctrlr uses the Lua script language, not Java script. Syntax is somewhat similar. No need to do most of the hard work, you will just access components of Ctrlr and/or use the Juce libraries (not all classes are implemented in Ctrlr – e.g. audio classes wouldn’t make much sense): https://docs.juce.com/master/index.html
Best way to learn Ctrlr is to check how others have done it e.g. start with the demo panels from Roman: http://ctrlr.org/demo-panels/May 4, 2019 at 9:48 am #114673Well, when I wrote my answer I simplified the bank message which contains indeed 2 controller messages (and at the same time I told myself that I was sure someone would react 😉 )…
So, for bank message you need to send 0xBm 0x00 0x00 then 0xBm 0x20 0xsomething
The something can be different from one synth to another one depending on the organisation of the programs.
Example on Sub37: 16 real banks of 16 programs but the “something” is only 0 or 1 because each virtual bank contains 128 programs (0-127) each
Example on Pro2: 8 real banks of 99 programs. The something is in that case 0-7 while for programs only 0-98 is recognized even if each virtual bank can handle 128 programsMay 4, 2019 at 11:13 am #114674Just as someone said it seem just to be two control messages.
Korg X Series/N364/264/Trinity Series/ Z1/Z1EX
BANK A
Message Value
Controller 0 0
Controller 32 0
Program Change 0-99 (0-127)
BANK B
Message Value
Controller 0 0
Controller 32 1
Program Change 0-99 (0-127)
BANK C
Message Value
Controller 0 0
Controller 32 2
Program Change 0-99 (0-127)
BANK D
Message Value
Controller 0 0
Controller 32 3
Program Change 0-99 (0-127)
BANK S/M (Trinity)
Message Value
Controller 0 0
Controller 32 4
Program Change 0-99 (0-127)
GM BANK (X and N Series)
Message Value
Controller 0 56
Controller 32 0
Program Change 1-128
GM DRUM BANK (X and N Series)
Message Value
Controller 0 62
Controller 32 0
Program Change *June 15, 2019 at 4:32 pm #115212Regarding Midi Control of my N364 “using Javascript”
Well i came so far i can load the banks and i have no problem changing programs within banks
***EXCEPT FOR the drum bank***? Is it really a bank? Because the drum sets listed as program 128 to 236 in GM bank it is uttely confusing. Does this mean Korg N364 do not have dedicated midichannel 10 for drums?
I can reach Drum bank “patch 128 in GM bank” it is easy, resting within the program banks not combi banks.
You first tell what mode to put synt into equal “program mode” and send the 3 part message two control messages followed by a program message, to get there.
In all banks except GM drum i can just send a program message to set “instrument” in this case drumkit. Something like outportarr[outportindex].send(192,10,4)
But when drumBank selected it do not work “because it seem like the kits in bank are just patches in the GM bank 128-136”. I just do not get howto change kit. And it get very confusing looking into the cakewalk instrumentfile. A hint anyone?
What does it mean
Patch[7169] = N364 Prog GM
Patch[7937] = N364 GM Drums
Patch[ * ] = 0. .127
Key[7937, 0] = N364 GM Kit
Key[7937, 16] = N364 Power Kit
Key[7937, 25] = N364 Dance Kit
Key[7937, 26] = N364 Analog Kit
Key[7937, 33] = N364 Jazz Kit
Key[7937, 41] = N364 Brush Kit
Key[7937, 48] = N364 Orch Kit
Key[7937, 65] = N364 Perc Kit
Drum[7937, * ] = 1Below code work to change between banks, and the code to select patches in bank simple “except it do not work in drumbank, because it is just patches?”
function sendBankN364(){
selectSequenserMode();
bankNr=document.getElementById(“selBank”).selectedIndex;
//alert(bankNr);
if (bankNr<6 && bankNr>1) {selectProgramMode();bankNr=bankNr-2;synthMode=”instrument”;GM=0}
else if (bankNr>5){selectCombiMode();bankNr=bankNr-6;synthMode=”combi”;GM=0}
else if (bankNr==1){selectProgramMode();GM=56;bankNr=0;}
else if (bankNr==0){selectProgramMode();GM=62;bankNr=0;}
//alert(bankNr);
settingChange = [176,0,GM];
outportarr[outportindex].send(settingChange);
settingChange = [176,32,bankNr];
outportarr[outportindex].send(settingChange);
settingChange = [192,0];
outportarr[outportindex].send(settingChange);
}function selectSequenserMode(){
settingChange=[0xf0,0x42,0x30,0x35,0x4e,0x04,0x00,0xf7];
outportarr[outportindex].send(settingChange);
}function selectCombiMode(){
settingChange=[0xf0,0x42,0x30,0x35,0x4e,0x00,0x00,0xf7];
outportarr[outportindex].send(settingChange);
}function selectProgramMode(){
settingChange=[0xf0,0x42,0x30,0x35,0x4e,0x02,0x00,0xf7];
outportarr[outportindex].send(settingChange);
}function sendProgram() {
//Set program on the track
programTRX = document.getElementById(“prog_sel”).value;
//Set channel
sysexC = 192 + channelTRX-1;
//Build message for midi synth
settingChange = [sysexC, programTRX];
//Send to midiport
if (outportarr.length>0) {outportarr[outportindex].send(settingChange);}
}June 16, 2019 at 2:24 pm #115214I am a bit familiar with this Korg mess as I am working on a Korg 05R/W panel ATM.
First: you probably meant program Nr. 128 to 136 (not 236).
Look at the midi implementation chart, page 214 of the manual. At the bottom program/bank changes are explained. Prog 128 to 136 do have special values (btw. very weird ones). The same applies to my Korg 05R/W.
June 16, 2019 at 3:56 pm #115215Well that is such a total mess, i do not even know where to begin to decrypt that one.
They really sucked writing manuals back in the days.Well in javascript to reach drum bank first you set mode by first sending type of setting message.
settingChange=[0xf0,0x42,0x30,0x35,0x4e,0x02,0x00,0xf7];
outportarr[outportindex].send(settingChange);
Ok so now we are in program mode, where our drums is.Next we need the message to drumbank.
GM=62;bankNr=0;
//The two control messages
settingChange = [176,0,GM];
outportarr[outportindex].send(settingChange);
settingChange = [176,32,bankNr];//And then you must send a program change i guess this must be program 0 but it ends up being 128?
settingChange = [192,0];
outportarr[outportindex].send(settingChange);So the above works, but what numbers to use for program 129,130,131,132,133,134,135,136 i don’t get it?
settingChange = [192,x]; ???
You have any idea for those other kits, 192,0 is defintily working for program “kit” at 128 but that may just be fluke.
And 192,1 192,2 and so on definitly do not.You have an idea or hint, because that manual is awful.
June 16, 2019 at 4:17 pm #115216I do not even get what the below means, is it a three part message to send, ?
3e must be 62 controler 0 message
And 00 contoller 32 message?
So what is the last byte, something like?
settingChange = [192,25]; for prg 131 ?
settingChange = [192,16]; for prg 130 ?Well i just have to try i guess.
3e,00,00 =129
3e,00,10 =130
3e,00,19 =131
3e,00,20 =132
3e,00,28 =133
3e,00,40 =134
3e,00,18 =135
3e,00,30 =136June 16, 2019 at 4:27 pm #115217Well i tried to set the values sending just program change when at 129 i send program 16,24 and so on, did not work.
But maybe they must be part of a full bank message, probably…I will contruct those and report on success and failure.
It is kind of weird with bank changes that just change programs in the GM bank.-
This reply was modified 3 years, 9 months ago by
JT64.
June 16, 2019 at 10:57 pm #115223…
3e,00,00 =129
3e,00,10 =130
3e,00,19 =131
3e,00,20 =132
3e,00,28 =133
3e,00,40 =134
3e,00,18 =135
3e,00,30 =136These are combined bank / program change values.
Here a snippet of my Korg 05R/W code. Change to program Nr. 136:
-- select bank 3 panel:sendMidiMessageNow(CtrlrMidiMessage(bankSelect.."00 3e")) -- select patch panel:sendMidiMessageNow(CtrlrMidiMessage(programChange.."30"))
With Lua for Ctrlr it is a thousand times easier to do and this is just a snippet but I think you will get the point.
June 17, 2019 at 10:20 pm #115243Yeah it works, program change in the drumbank of N-series and its cousins do need a full bank message to be set.
It get a bit messy codewise either drop the kits as banks in bank optionlist. Or make a special case for programs in “drum/GM bank”.
And special cases does not feel right, i think i list the kits as individual banks in option list, because they all need a bank message. And i already have the messages for Korg N364 in an own file.
So i keep the generality of program change.
April 8, 2020 at 10:31 pm #117741Students who are dealing with stress due to pending assignments can approach our professional assignment help UK. We ensure you to complete your entire assignment within the limited time provided by you. Our prompt and cheap offers never compromise on the quality of the assignment. Our primary objective is to produce quality writing through our expert writers.
April 25, 2020 at 7:56 pm #117897The link provided by Possemo above has changed.
here is the new link: http://www.mutools.com/info/M8/docs/mulab/using-bank-select-and-prog-changes.html -
This reply was modified 3 years, 9 months ago by
-
AuthorPosts
- The forum ‘General MIDI discussion’ is closed to new topics and replies.