Creating Styles using MIDI Files
Moderators: Sharp, X-Trade, Pepperpotty, karmathanever
Creating Styles using MIDI Files
There are some details in the manual and in the forum for creating MIDI files that can be imported for adding Styles.
I exported a Style and examined it using MIDI Editor.
I see a few SYSEx commands in the exported MIDI file.
Does anyone know anything about these commands.
And whether these are required when we create Style MIDI file using any DAW.
Side Note: I am creating a custom Python program for creating this - which will implement few other interesting things. When done, I will share it for free use by anyone)
For example: here is one:
F0 42 3F 78 01 66 31 63 76 31 F7
These types of messages are sent before every marker.
From KORG X3 manuals and other sources I know the following:
F0 42 3F 78 << this is the header that is pretty much a constant
01 << is a function code
66 31 63 76 31 << data for that function
F7 << constant that indicates the end of the sysex command.
Thanks in advance
br Sri.
I exported a Style and examined it using MIDI Editor.
I see a few SYSEx commands in the exported MIDI file.
Does anyone know anything about these commands.
And whether these are required when we create Style MIDI file using any DAW.
Side Note: I am creating a custom Python program for creating this - which will implement few other interesting things. When done, I will share it for free use by anyone)
For example: here is one:
F0 42 3F 78 01 66 31 63 76 31 F7
These types of messages are sent before every marker.
From KORG X3 manuals and other sources I know the following:
F0 42 3F 78 << this is the header that is pretty much a constant
01 << is a function code
66 31 63 76 31 << data for that function
F7 << constant that indicates the end of the sysex command.
Thanks in advance
br Sri.
Sri,
When you create a Style using a DAW you don't think about SysEx messages, because they're not needed. When you export the file, everything happens in the background and then you simply load the file into the keyboard. As far as writing a program? That's a whole different thing. I think 'Nemik' , one of the fellow korg users on the forum knows a lot more about these stuff, because he monitors all these messages with midi ox and more. Hopefully he'll chime in....
When you create a Style using a DAW you don't think about SysEx messages, because they're not needed. When you export the file, everything happens in the background and then you simply load the file into the keyboard. As far as writing a program? That's a whole different thing. I think 'Nemik' , one of the fellow korg users on the forum knows a lot more about these stuff, because he monitors all these messages with midi ox and more. Hopefully he'll chime in....
- Nemik
- Approved Merchant
- Posts: 1749
- Joined: Mon Jan 27, 2014 11:54 pm
- Location: Hilton Head Island, SC
- Contact:
that's what is for SysEx.A System Exclusive code set begins with 11110000 (240 decimal or F0 hex), followed by the manufacturer ID#, then by an unspecified number of data bytes of any ranges from 0-127) and ends with 11110111 (decimal 247 or F7 hex), meaning End of SysEx message. No other coded are to be transmitted during a SysEx message (except a system real time message). Normally, after the manufacturer ID, each maker will have its own instrument model subcode, so a Yamaha DX7 will ignore a Yamaha SY77's patch dump. In addition, most instruments have a SysEx ID # setting so more than one of the same instruments can be on a network but not necessarily respond to a patch dump not intended for it.

Like Sam wrote: SysEx has nothing to Style, at least nothing you can use for your project.
BTW, Korg style is partially encoded, without decryption key you can't do anything.
Nemik
Korg Kronos2-61, Korg Pa600, Korg Pa4x, Korg Pa5x,Novation UltraNova, Akai Professional MPK49, Akai Professional MPK225 , Alesis QX-49, APC25 Keys, Launchpad MK2, Korg nanoPad2
MOTU Midi Express XT, FCB1010 with UnO, Behringer X2222 USB, TASCAM Model 24 Mixer, Presonus AudioBox96, M-Track Plus
Fl Studio 21, Ableton Live 11 Suite.
Performers Heaven
Korg Kronos2-61, Korg Pa600, Korg Pa4x, Korg Pa5x,Novation UltraNova, Akai Professional MPK49, Akai Professional MPK225 , Alesis QX-49, APC25 Keys, Launchpad MK2, Korg nanoPad2
MOTU Midi Express XT, FCB1010 with UnO, Behringer X2222 USB, TASCAM Model 24 Mixer, Presonus AudioBox96, M-Track Plus
Fl Studio 21, Ableton Live 11 Suite.
Performers Heaven
Sam/Nemik
Thanks for your responses.
I see the SYSEx messages when I export a Style from Pa600 as a Midi file.
Since Korg PA600 Manual describes how to build a Midi file for Style (using whatever tool one chooses) and does not mention anything about SYSEx, I am pretty sure it is optional. Will confirm soon.
I am sure there are many folks who create styles on the DAW and import into PA600 - without those SysEx messages. So I am sure the confirmation is already there.
Nemik, SysEX messages data include a checksum - and vendors do not disclose the checksum algorithm. Of course they also do not say anything much about SysEX - but only sell those details to tool developers under NDA and $$$.
Regarding the python and MIDI, I am in very comfortable home grounds.
br Sri.
Thanks for your responses.
I see the SYSEx messages when I export a Style from Pa600 as a Midi file.
Since Korg PA600 Manual describes how to build a Midi file for Style (using whatever tool one chooses) and does not mention anything about SYSEx, I am pretty sure it is optional. Will confirm soon.
I am sure there are many folks who create styles on the DAW and import into PA600 - without those SysEx messages. So I am sure the confirmation is already there.
Nemik, SysEX messages data include a checksum - and vendors do not disclose the checksum algorithm. Of course they also do not say anything much about SysEX - but only sell those details to tool developers under NDA and $$$.
Regarding the python and MIDI, I am in very comfortable home grounds.
br Sri.
- Nemik
- Approved Merchant
- Posts: 1749
- Joined: Mon Jan 27, 2014 11:54 pm
- Location: Hilton Head Island, SC
- Contact:
I love your enthusiasm, but is no any Daw which will directly edit Korg Style.
Korg Style (.sty) is not only Midi, is contain so much other info which have to be separate in order to use normal DAW.
Korg style contain STS sounds setting, Pad Setting, FX setting and many more.
The closest ever software which can read this is Korg Pa Manager, but is not provide Style Midi track edit, at least not yet.
Never say never, maybe some day somebody find the way and share with us.
Korg Style (.sty) is not only Midi, is contain so much other info which have to be separate in order to use normal DAW.
Korg style contain STS sounds setting, Pad Setting, FX setting and many more.
The closest ever software which can read this is Korg Pa Manager, but is not provide Style Midi track edit, at least not yet.

Never say never, maybe some day somebody find the way and share with us.

Nemik
Korg Kronos2-61, Korg Pa600, Korg Pa4x, Korg Pa5x,Novation UltraNova, Akai Professional MPK49, Akai Professional MPK225 , Alesis QX-49, APC25 Keys, Launchpad MK2, Korg nanoPad2
MOTU Midi Express XT, FCB1010 with UnO, Behringer X2222 USB, TASCAM Model 24 Mixer, Presonus AudioBox96, M-Track Plus
Fl Studio 21, Ableton Live 11 Suite.
Performers Heaven
Korg Kronos2-61, Korg Pa600, Korg Pa4x, Korg Pa5x,Novation UltraNova, Akai Professional MPK49, Akai Professional MPK225 , Alesis QX-49, APC25 Keys, Launchpad MK2, Korg nanoPad2
MOTU Midi Express XT, FCB1010 with UnO, Behringer X2222 USB, TASCAM Model 24 Mixer, Presonus AudioBox96, M-Track Plus
Fl Studio 21, Ableton Live 11 Suite.
Performers Heaven
- Nemik
- Approved Merchant
- Posts: 1749
- Joined: Mon Jan 27, 2014 11:54 pm
- Location: Hilton Head Island, SC
- Contact:
You can't import .sty (style) to DAW.Sam CA wrote:The question is though, what happens to all those extra "Style-specific" information? Do they get filtered out altogether and don't even make it to the midi file? Or they're there but your DAW ignores them?
You need export to SMF on Korg, then you have .mid (midi) which have only midi tracks and on begging Korg SysEx with Korg Signature.
Basic Midi have GM header or customized whatever they for customize.
Yamaha styles is plain midi with Yamaha SysEx header.
I did tried once on exported midi with markers from Korg change Markers for Yamaha and after I changed header and ext from .mid to .sty (forced) load to Tyros 4 and was working.

Nemik
Korg Kronos2-61, Korg Pa600, Korg Pa4x, Korg Pa5x,Novation UltraNova, Akai Professional MPK49, Akai Professional MPK225 , Alesis QX-49, APC25 Keys, Launchpad MK2, Korg nanoPad2
MOTU Midi Express XT, FCB1010 with UnO, Behringer X2222 USB, TASCAM Model 24 Mixer, Presonus AudioBox96, M-Track Plus
Fl Studio 21, Ableton Live 11 Suite.
Performers Heaven
Korg Kronos2-61, Korg Pa600, Korg Pa4x, Korg Pa5x,Novation UltraNova, Akai Professional MPK49, Akai Professional MPK225 , Alesis QX-49, APC25 Keys, Launchpad MK2, Korg nanoPad2
MOTU Midi Express XT, FCB1010 with UnO, Behringer X2222 USB, TASCAM Model 24 Mixer, Presonus AudioBox96, M-Track Plus
Fl Studio 21, Ableton Live 11 Suite.
Performers Heaven
I exported a style from my pa as .mid and looked at it in cubase a long time ago, looked neat but more work than I wanted.
It's got markers all over it to define the different sections etc.
https://www.youtube.com/watch?v=TlarFz5UZOU
It's got markers all over it to define the different sections etc.
https://www.youtube.com/watch?v=TlarFz5UZOU
PA600 Studio One3
Sam/Nemik
You make good points - pretty consistent with my own perspective here.
I think PA600, while exporting Style to MIDI, is using two mechanisms for Korg proprietary information.
Sysex (which goes just before every markup) and the Control change commands 114-119.
I am including an excerpt from my Python program printout of a Style exported as MIDI. (does not matter what Style it is - but for curious, it is Bhajan-3 from Indian Set). The entire file has about 5000 lines and so I am just showing just a few sample lines.
I am sure that by changing the values of 114-119 systematically and observing one can figure out what style parameters they represent. I am not worried about these - as I can simply use the range of values I see in the MIDI file. About Sysex, hopefully I can just ignore them without any loss.
Sri.
P.S. As you can see below, information is all in text and so I can do powerful text manipulations of these, using text editors (which DAWs can never do, but sure they can do GUI stuff better) to create/generate/modify and manage large families of styles on my Laptop.
===================================
......
......Fragment 1 This is the starting part
......
sysex data=(66,63,120,1,105,50,99,118,49) time=0 <--- Note Sysex
<meta> <-- Note marker for I2CV1
<meta>
<meta>
control_change channel=9 control=11 value=100 time=0
control_change channel=9 control=0 value=120 time=0 <--
control_change channel=9 control=32 value=64 time=0 <--
program_change channel=9 program=58 time=0 <-- Sound Selection
control_change channel=9 control=114 value=21 time=0 <-- Start of
control_change channel=9 control=115 value=108 time=0 <- Secret
control_change channel=9 control=116 value=0 time=0 <- controllers
control_change channel=9 control=117 value=0 time=0
control_change channel=9 control=118 value=0 time=0
control_change channel=9 control=119 value=1 time=0 <-- end
control_change channel=10 control=11 value=100 time=0
control_change channel=10 control=0 value=120 time=0
control_change channel=10 control=32 value=64 time=0
program_change channel=10 program=41 time=0
control_change channel=10 control=114 value=21 time=0
control_change channel=10 control=115 value=108 time=0
control_change channel=10 control=116 value=0 time=0
control_change channel=10 control=117 value=0 time=0
control_change channel=10 control=118 value=0 time=0
control_change channel=10 control=119 value=1 time=0
control_change channel=8 control=11 value=100 time=0
control_change channel=8 control=0 value=121 time=0
control_change channel=8 control=32 value=0 time=0
.......
.......Fragment 2: shows some actual music notes
.......
note_on channel=12 note=48 velocity=99 time=0
note_on channel=13 note=55 velocity=37 time=0
note_on channel=13 note=60 velocity=35 time=0
note_on channel=14 note=79 velocity=47 time=0
note_on channel=14 note=67 velocity=65 time=0
note_on channel=14 note=76 velocity=66 time=0
note_on channel=14 note=72 velocity=66 time=0
note_off channel=14 note=72 velocity=64 time=0.017857124999999998
note_off channel=9 note=81 velocity=64 time=0.026785687499999995
note_off channel=9 note=102 velocity=64 time=0.025297593749999996
note_on channel=13 note=64 velocity=37 time=0.0014880937499999998
note_off channel=9 note=58 velocity=64 time=0.061011843749999996
note_on channel=11 note=52 velocity=77 time=0.15327365624999997
note_on channel=12 note=60 velocity=113 time=0
note_on channel=9 note=102 velocity=125 time=0
note_on channel=9 note=96 velocity=81 time=0
note_on channel=9 note=80 velocity=114 time=0
note_on channel=9 note=58 velocity=93 time=0
note_off channel=12 note=48 velocity=64 time=0.011904749999999999
note_off channel=9 note=80 velocity=64 time=0.040178531249999996
note_off channel=9 note=96 velocity=64 time=0.008928562499999999
note_off channel=9 note=58 velocity=64 time=0.01636903125
note_off channel=9 note=102 velocity=64 time=0.0044642812499999995
note_on channel=11 note=55 velocity=74 time=0.061011843749999996
note_on channel=12 note=48 velocity=93 time=0
note_on channel=9 note=96 velocity=96 time=0
.......
....... Fragment 3: shows end of music notes and start of F1CV1 part
.......
note_off channel=13 note=64 velocity=64 time=0.01041665625
note_off channel=11 note=52 velocity=127 time=0
sysex data=(66,63,120,1,102,49,99,118,49) time=0.0014880937499999998
<meta>
<meta>
<meta>
control_change channel=9 control=11 value=127 time=0
control_change channel=9 control=0 value=120 time=0
control_change channel=9 control=32 value=64 time=0
program_change channel=9 program=58 time=0
control_change channel=9 control=114 value=21 time=0
control_change channel=9 control=115 value=108 time=0
control_change channel=9 control=116 value=0 time=0
control_change channel=9 control=117 value=0 time=0
control_change channel=9 control=118 value=0 time=0
control_change channel=9 control=119 value=1 time=0
control_change channel=10 control=11 value=100 time=0
control_change channel=10 control=0 value=120 time=0
control_change channel=10 control=32 value=64 time=0
program_change channel=10 program=41 time=0
control_change channel=10 control=114 value=21 time=0
control_change channel=10 control=115 value=108 time=0
control_change channel=10 control=116 value=0 time=0
control_change channel=10 control=117 value=0 time=0
control_change channel=10 control=118 value=0 time=0
control_change channel=10 control=119 value=1 time=0
control_change channel=8 control=11 value=100 time=0
control_change channel=8 control=0 value=121 time=0
control_change channel=8 control=32 value=0 time=0
program_change channel=8 program=33 time=0
control_change channel=8 control=114 value=21 time=0
control_change channel=8 control=115 value=108 time=0
control_change channel=8 control=116 value=0 time=0
control_change channel=8 control=117 value=0 time=0
.......
....... Fragment 4: shows pattern of program and control changes
.......
control_change channel=14 control=11 value=100 time=0
control_change channel=14 control=0 value=121 time=0
control_change channel=14 control=32 value=64 time=0
program_change channel=14 program=10 time=0
control_change channel=14 control=114 value=21 time=0
control_change channel=14 control=115 value=108 time=0
control_change channel=14 control=116 value=0 time=0
control_change channel=14 control=117 value=0 time=0
control_change channel=14 control=118 value=0 time=0
control_change channel=14 control=119 value=1 time=0
control_change channel=15 control=11 value=100 time=0
control_change channel=15 control=0 value=121 time=0
control_change channel=15 control=32 value=0 time=0
program_change channel=15 program=0 time=0
note_on channel=9 note=96 velocity=107 time=0
note_off channel=9 note=96 velocity=64 time=0
note_on channel=9 note=58 velocity=127 time=0
note_on channel=9 note=96 velocity=119 time=0
note_on channel=9 note=86 velocity=127 time=0
note_on channel=9 note=73 velocity=114 time=0
note_on channel=9 note=70 velocity=127 time=0
note_on channel=9 note=82 velocity=127 time=0
note_on channel=9 note=81 velocity=125 time=0
note_on channel=9 note=102 velocity=127 time=0
note_on channel=9 note=36 velocity=127 time=0
note_on channel=10 note=86 velocity=127 time=0
......
..... Fragment 5: Shows the start of V1C1 part
......
note_off channel=14 note=84 velocity=127 time=0
note_off channel=14 note=64 velocity=64 time=0
sysex data=(66,63,120,1,118,49,99,118,49) time=0.0014880937499999998
<meta>
<meta>
<meta>
control_change channel=9 control=11 value=127 time=0
control_change channel=9 control=0 value=120 time=0
control_change channel=9 control=32 value=64 time=0
program_change channel=9 program=58 time=0
control_change channel=9 control=114 value=21 time=0
control_change channel=9 control=115 value=108 time=0
control_change channel=9 control=116 value=0 time=0
control_change channel=9 control=117 value=0 time=0
control_change channel=9 control=118 value=0 time=0
.....
......
......
You make good points - pretty consistent with my own perspective here.
I think PA600, while exporting Style to MIDI, is using two mechanisms for Korg proprietary information.
Sysex (which goes just before every markup) and the Control change commands 114-119.
I am including an excerpt from my Python program printout of a Style exported as MIDI. (does not matter what Style it is - but for curious, it is Bhajan-3 from Indian Set). The entire file has about 5000 lines and so I am just showing just a few sample lines.
I am sure that by changing the values of 114-119 systematically and observing one can figure out what style parameters they represent. I am not worried about these - as I can simply use the range of values I see in the MIDI file. About Sysex, hopefully I can just ignore them without any loss.
Sri.
P.S. As you can see below, information is all in text and so I can do powerful text manipulations of these, using text editors (which DAWs can never do, but sure they can do GUI stuff better) to create/generate/modify and manage large families of styles on my Laptop.
===================================
......
......Fragment 1 This is the starting part
......
sysex data=(66,63,120,1,105,50,99,118,49) time=0 <--- Note Sysex
<meta> <-- Note marker for I2CV1
<meta>
<meta>
control_change channel=9 control=11 value=100 time=0
control_change channel=9 control=0 value=120 time=0 <--
control_change channel=9 control=32 value=64 time=0 <--
program_change channel=9 program=58 time=0 <-- Sound Selection
control_change channel=9 control=114 value=21 time=0 <-- Start of
control_change channel=9 control=115 value=108 time=0 <- Secret
control_change channel=9 control=116 value=0 time=0 <- controllers
control_change channel=9 control=117 value=0 time=0
control_change channel=9 control=118 value=0 time=0
control_change channel=9 control=119 value=1 time=0 <-- end
control_change channel=10 control=11 value=100 time=0
control_change channel=10 control=0 value=120 time=0
control_change channel=10 control=32 value=64 time=0
program_change channel=10 program=41 time=0
control_change channel=10 control=114 value=21 time=0
control_change channel=10 control=115 value=108 time=0
control_change channel=10 control=116 value=0 time=0
control_change channel=10 control=117 value=0 time=0
control_change channel=10 control=118 value=0 time=0
control_change channel=10 control=119 value=1 time=0
control_change channel=8 control=11 value=100 time=0
control_change channel=8 control=0 value=121 time=0
control_change channel=8 control=32 value=0 time=0
.......
.......Fragment 2: shows some actual music notes
.......
note_on channel=12 note=48 velocity=99 time=0
note_on channel=13 note=55 velocity=37 time=0
note_on channel=13 note=60 velocity=35 time=0
note_on channel=14 note=79 velocity=47 time=0
note_on channel=14 note=67 velocity=65 time=0
note_on channel=14 note=76 velocity=66 time=0
note_on channel=14 note=72 velocity=66 time=0
note_off channel=14 note=72 velocity=64 time=0.017857124999999998
note_off channel=9 note=81 velocity=64 time=0.026785687499999995
note_off channel=9 note=102 velocity=64 time=0.025297593749999996
note_on channel=13 note=64 velocity=37 time=0.0014880937499999998
note_off channel=9 note=58 velocity=64 time=0.061011843749999996
note_on channel=11 note=52 velocity=77 time=0.15327365624999997
note_on channel=12 note=60 velocity=113 time=0
note_on channel=9 note=102 velocity=125 time=0
note_on channel=9 note=96 velocity=81 time=0
note_on channel=9 note=80 velocity=114 time=0
note_on channel=9 note=58 velocity=93 time=0
note_off channel=12 note=48 velocity=64 time=0.011904749999999999
note_off channel=9 note=80 velocity=64 time=0.040178531249999996
note_off channel=9 note=96 velocity=64 time=0.008928562499999999
note_off channel=9 note=58 velocity=64 time=0.01636903125
note_off channel=9 note=102 velocity=64 time=0.0044642812499999995
note_on channel=11 note=55 velocity=74 time=0.061011843749999996
note_on channel=12 note=48 velocity=93 time=0
note_on channel=9 note=96 velocity=96 time=0
.......
....... Fragment 3: shows end of music notes and start of F1CV1 part
.......
note_off channel=13 note=64 velocity=64 time=0.01041665625
note_off channel=11 note=52 velocity=127 time=0
sysex data=(66,63,120,1,102,49,99,118,49) time=0.0014880937499999998
<meta>
<meta>
<meta>
control_change channel=9 control=11 value=127 time=0
control_change channel=9 control=0 value=120 time=0
control_change channel=9 control=32 value=64 time=0
program_change channel=9 program=58 time=0
control_change channel=9 control=114 value=21 time=0
control_change channel=9 control=115 value=108 time=0
control_change channel=9 control=116 value=0 time=0
control_change channel=9 control=117 value=0 time=0
control_change channel=9 control=118 value=0 time=0
control_change channel=9 control=119 value=1 time=0
control_change channel=10 control=11 value=100 time=0
control_change channel=10 control=0 value=120 time=0
control_change channel=10 control=32 value=64 time=0
program_change channel=10 program=41 time=0
control_change channel=10 control=114 value=21 time=0
control_change channel=10 control=115 value=108 time=0
control_change channel=10 control=116 value=0 time=0
control_change channel=10 control=117 value=0 time=0
control_change channel=10 control=118 value=0 time=0
control_change channel=10 control=119 value=1 time=0
control_change channel=8 control=11 value=100 time=0
control_change channel=8 control=0 value=121 time=0
control_change channel=8 control=32 value=0 time=0
program_change channel=8 program=33 time=0
control_change channel=8 control=114 value=21 time=0
control_change channel=8 control=115 value=108 time=0
control_change channel=8 control=116 value=0 time=0
control_change channel=8 control=117 value=0 time=0
.......
....... Fragment 4: shows pattern of program and control changes
.......
control_change channel=14 control=11 value=100 time=0
control_change channel=14 control=0 value=121 time=0
control_change channel=14 control=32 value=64 time=0
program_change channel=14 program=10 time=0
control_change channel=14 control=114 value=21 time=0
control_change channel=14 control=115 value=108 time=0
control_change channel=14 control=116 value=0 time=0
control_change channel=14 control=117 value=0 time=0
control_change channel=14 control=118 value=0 time=0
control_change channel=14 control=119 value=1 time=0
control_change channel=15 control=11 value=100 time=0
control_change channel=15 control=0 value=121 time=0
control_change channel=15 control=32 value=0 time=0
program_change channel=15 program=0 time=0
note_on channel=9 note=96 velocity=107 time=0
note_off channel=9 note=96 velocity=64 time=0
note_on channel=9 note=58 velocity=127 time=0
note_on channel=9 note=96 velocity=119 time=0
note_on channel=9 note=86 velocity=127 time=0
note_on channel=9 note=73 velocity=114 time=0
note_on channel=9 note=70 velocity=127 time=0
note_on channel=9 note=82 velocity=127 time=0
note_on channel=9 note=81 velocity=125 time=0
note_on channel=9 note=102 velocity=127 time=0
note_on channel=9 note=36 velocity=127 time=0
note_on channel=10 note=86 velocity=127 time=0
......
..... Fragment 5: Shows the start of V1C1 part
......
note_off channel=14 note=84 velocity=127 time=0
note_off channel=14 note=64 velocity=64 time=0
sysex data=(66,63,120,1,118,49,99,118,49) time=0.0014880937499999998
<meta>
<meta>
<meta>
control_change channel=9 control=11 value=127 time=0
control_change channel=9 control=0 value=120 time=0
control_change channel=9 control=32 value=64 time=0
program_change channel=9 program=58 time=0
control_change channel=9 control=114 value=21 time=0
control_change channel=9 control=115 value=108 time=0
control_change channel=9 control=116 value=0 time=0
control_change channel=9 control=117 value=0 time=0
control_change channel=9 control=118 value=0 time=0
.....
......
......
Sam/Nemik
You make good points - pretty consistent with my own perspective here.
I think PA600, while exporting Style to MIDI, is using two mechanisms for Korg proprietary information.
Sysex (which goes just before every markup) and the Control change commands 114-119.
I am including an excerpt from my Python program printout of a Style exported as MIDI. (does not matter what Style it is - but for curious, it is Bhajan-3 from Indian Set). The entire file has about 5000 lines and so I am just showing just a few sample lines.
I am sure that by changing the values of 114-119 systematically and observing one can figure out what style parameters they represent. I am not worried about these - as I can simply use the range of values I see in the MIDI file. About Sysex, hopefully I can just ignore them without any loss.
Sri.
P.S. As you can see below, information is all in text and so I can do powerful text manipulations of these, using text editors (which DAWs can never do, but sure they can do GUI stuff better) to create/generate/modify and manage large families of styles on my Laptop.
===================================
......
......Fragment 1 This is the starting part
......
sysex data=(66,63,120,1,105,50,99,118,49) time=0 <--- Note Sysex
<meta> <-- Note marker for I2CV1
<meta>
<meta>
control_change channel=9 control=11 value=100 time=0
control_change channel=9 control=0 value=120 time=0 <--
control_change channel=9 control=32 value=64 time=0 <--
program_change channel=9 program=58 time=0 <-- Sound Selection
control_change channel=9 control=114 value=21 time=0 <-- Start of
control_change channel=9 control=115 value=108 time=0 <- Secret
control_change channel=9 control=116 value=0 time=0 <- controllers
control_change channel=9 control=117 value=0 time=0
control_change channel=9 control=118 value=0 time=0
control_change channel=9 control=119 value=1 time=0 <-- end
control_change channel=10 control=11 value=100 time=0
control_change channel=10 control=0 value=120 time=0
control_change channel=10 control=32 value=64 time=0
program_change channel=10 program=41 time=0
control_change channel=10 control=114 value=21 time=0
control_change channel=10 control=115 value=108 time=0
control_change channel=10 control=116 value=0 time=0
control_change channel=10 control=117 value=0 time=0
control_change channel=10 control=118 value=0 time=0
control_change channel=10 control=119 value=1 time=0
control_change channel=8 control=11 value=100 time=0
control_change channel=8 control=0 value=121 time=0
control_change channel=8 control=32 value=0 time=0
.......
.......Fragment 2: shows some actual music notes
.......
note_on channel=12 note=48 velocity=99 time=0
note_on channel=13 note=55 velocity=37 time=0
note_on channel=13 note=60 velocity=35 time=0
note_on channel=14 note=79 velocity=47 time=0
note_on channel=14 note=67 velocity=65 time=0
note_on channel=14 note=76 velocity=66 time=0
note_on channel=14 note=72 velocity=66 time=0
note_off channel=14 note=72 velocity=64 time=0.017857124999999998
note_off channel=9 note=81 velocity=64 time=0.026785687499999995
note_off channel=9 note=102 velocity=64 time=0.025297593749999996
note_on channel=13 note=64 velocity=37 time=0.0014880937499999998
note_off channel=9 note=58 velocity=64 time=0.061011843749999996
note_on channel=11 note=52 velocity=77 time=0.15327365624999997
note_on channel=12 note=60 velocity=113 time=0
note_on channel=9 note=102 velocity=125 time=0
note_on channel=9 note=96 velocity=81 time=0
note_on channel=9 note=80 velocity=114 time=0
note_on channel=9 note=58 velocity=93 time=0
note_off channel=12 note=48 velocity=64 time=0.011904749999999999
note_off channel=9 note=80 velocity=64 time=0.040178531249999996
note_off channel=9 note=96 velocity=64 time=0.008928562499999999
note_off channel=9 note=58 velocity=64 time=0.01636903125
note_off channel=9 note=102 velocity=64 time=0.0044642812499999995
note_on channel=11 note=55 velocity=74 time=0.061011843749999996
note_on channel=12 note=48 velocity=93 time=0
note_on channel=9 note=96 velocity=96 time=0
.......
....... Fragment 3: shows end of music notes and start of F1CV1 part
.......
note_off channel=13 note=64 velocity=64 time=0.01041665625
note_off channel=11 note=52 velocity=127 time=0
sysex data=(66,63,120,1,102,49,99,118,49) time=0.0014880937499999998
<meta>
<meta>
<meta>
control_change channel=9 control=11 value=127 time=0
control_change channel=9 control=0 value=120 time=0
control_change channel=9 control=32 value=64 time=0
program_change channel=9 program=58 time=0
control_change channel=9 control=114 value=21 time=0
control_change channel=9 control=115 value=108 time=0
control_change channel=9 control=116 value=0 time=0
control_change channel=9 control=117 value=0 time=0
control_change channel=9 control=118 value=0 time=0
control_change channel=9 control=119 value=1 time=0
control_change channel=10 control=11 value=100 time=0
control_change channel=10 control=0 value=120 time=0
control_change channel=10 control=32 value=64 time=0
program_change channel=10 program=41 time=0
control_change channel=10 control=114 value=21 time=0
control_change channel=10 control=115 value=108 time=0
control_change channel=10 control=116 value=0 time=0
control_change channel=10 control=117 value=0 time=0
control_change channel=10 control=118 value=0 time=0
control_change channel=10 control=119 value=1 time=0
control_change channel=8 control=11 value=100 time=0
control_change channel=8 control=0 value=121 time=0
control_change channel=8 control=32 value=0 time=0
program_change channel=8 program=33 time=0
control_change channel=8 control=114 value=21 time=0
control_change channel=8 control=115 value=108 time=0
control_change channel=8 control=116 value=0 time=0
control_change channel=8 control=117 value=0 time=0
.......
....... Fragment 4: shows pattern of program and control changes
.......
control_change channel=14 control=11 value=100 time=0
control_change channel=14 control=0 value=121 time=0
control_change channel=14 control=32 value=64 time=0
program_change channel=14 program=10 time=0
control_change channel=14 control=114 value=21 time=0
control_change channel=14 control=115 value=108 time=0
control_change channel=14 control=116 value=0 time=0
control_change channel=14 control=117 value=0 time=0
control_change channel=14 control=118 value=0 time=0
control_change channel=14 control=119 value=1 time=0
control_change channel=15 control=11 value=100 time=0
control_change channel=15 control=0 value=121 time=0
control_change channel=15 control=32 value=0 time=0
program_change channel=15 program=0 time=0
note_on channel=9 note=96 velocity=107 time=0
note_off channel=9 note=96 velocity=64 time=0
note_on channel=9 note=58 velocity=127 time=0
note_on channel=9 note=96 velocity=119 time=0
note_on channel=9 note=86 velocity=127 time=0
note_on channel=9 note=73 velocity=114 time=0
note_on channel=9 note=70 velocity=127 time=0
note_on channel=9 note=82 velocity=127 time=0
note_on channel=9 note=81 velocity=125 time=0
note_on channel=9 note=102 velocity=127 time=0
note_on channel=9 note=36 velocity=127 time=0
note_on channel=10 note=86 velocity=127 time=0
......
..... Fragment 5: Shows the start of V1C1 part
......
note_off channel=14 note=84 velocity=127 time=0
note_off channel=14 note=64 velocity=64 time=0
sysex data=(66,63,120,1,118,49,99,118,49) time=0.0014880937499999998
<meta>
<meta>
<meta>
control_change channel=9 control=11 value=127 time=0
control_change channel=9 control=0 value=120 time=0
control_change channel=9 control=32 value=64 time=0
program_change channel=9 program=58 time=0
control_change channel=9 control=114 value=21 time=0
control_change channel=9 control=115 value=108 time=0
control_change channel=9 control=116 value=0 time=0
control_change channel=9 control=117 value=0 time=0
control_change channel=9 control=118 value=0 time=0
.....
......
......
You make good points - pretty consistent with my own perspective here.
I think PA600, while exporting Style to MIDI, is using two mechanisms for Korg proprietary information.
Sysex (which goes just before every markup) and the Control change commands 114-119.
I am including an excerpt from my Python program printout of a Style exported as MIDI. (does not matter what Style it is - but for curious, it is Bhajan-3 from Indian Set). The entire file has about 5000 lines and so I am just showing just a few sample lines.
I am sure that by changing the values of 114-119 systematically and observing one can figure out what style parameters they represent. I am not worried about these - as I can simply use the range of values I see in the MIDI file. About Sysex, hopefully I can just ignore them without any loss.
Sri.
P.S. As you can see below, information is all in text and so I can do powerful text manipulations of these, using text editors (which DAWs can never do, but sure they can do GUI stuff better) to create/generate/modify and manage large families of styles on my Laptop.
===================================
......
......Fragment 1 This is the starting part
......
sysex data=(66,63,120,1,105,50,99,118,49) time=0 <--- Note Sysex
<meta> <-- Note marker for I2CV1
<meta>
<meta>
control_change channel=9 control=11 value=100 time=0
control_change channel=9 control=0 value=120 time=0 <--
control_change channel=9 control=32 value=64 time=0 <--
program_change channel=9 program=58 time=0 <-- Sound Selection
control_change channel=9 control=114 value=21 time=0 <-- Start of
control_change channel=9 control=115 value=108 time=0 <- Secret
control_change channel=9 control=116 value=0 time=0 <- controllers
control_change channel=9 control=117 value=0 time=0
control_change channel=9 control=118 value=0 time=0
control_change channel=9 control=119 value=1 time=0 <-- end
control_change channel=10 control=11 value=100 time=0
control_change channel=10 control=0 value=120 time=0
control_change channel=10 control=32 value=64 time=0
program_change channel=10 program=41 time=0
control_change channel=10 control=114 value=21 time=0
control_change channel=10 control=115 value=108 time=0
control_change channel=10 control=116 value=0 time=0
control_change channel=10 control=117 value=0 time=0
control_change channel=10 control=118 value=0 time=0
control_change channel=10 control=119 value=1 time=0
control_change channel=8 control=11 value=100 time=0
control_change channel=8 control=0 value=121 time=0
control_change channel=8 control=32 value=0 time=0
.......
.......Fragment 2: shows some actual music notes
.......
note_on channel=12 note=48 velocity=99 time=0
note_on channel=13 note=55 velocity=37 time=0
note_on channel=13 note=60 velocity=35 time=0
note_on channel=14 note=79 velocity=47 time=0
note_on channel=14 note=67 velocity=65 time=0
note_on channel=14 note=76 velocity=66 time=0
note_on channel=14 note=72 velocity=66 time=0
note_off channel=14 note=72 velocity=64 time=0.017857124999999998
note_off channel=9 note=81 velocity=64 time=0.026785687499999995
note_off channel=9 note=102 velocity=64 time=0.025297593749999996
note_on channel=13 note=64 velocity=37 time=0.0014880937499999998
note_off channel=9 note=58 velocity=64 time=0.061011843749999996
note_on channel=11 note=52 velocity=77 time=0.15327365624999997
note_on channel=12 note=60 velocity=113 time=0
note_on channel=9 note=102 velocity=125 time=0
note_on channel=9 note=96 velocity=81 time=0
note_on channel=9 note=80 velocity=114 time=0
note_on channel=9 note=58 velocity=93 time=0
note_off channel=12 note=48 velocity=64 time=0.011904749999999999
note_off channel=9 note=80 velocity=64 time=0.040178531249999996
note_off channel=9 note=96 velocity=64 time=0.008928562499999999
note_off channel=9 note=58 velocity=64 time=0.01636903125
note_off channel=9 note=102 velocity=64 time=0.0044642812499999995
note_on channel=11 note=55 velocity=74 time=0.061011843749999996
note_on channel=12 note=48 velocity=93 time=0
note_on channel=9 note=96 velocity=96 time=0
.......
....... Fragment 3: shows end of music notes and start of F1CV1 part
.......
note_off channel=13 note=64 velocity=64 time=0.01041665625
note_off channel=11 note=52 velocity=127 time=0
sysex data=(66,63,120,1,102,49,99,118,49) time=0.0014880937499999998
<meta>
<meta>
<meta>
control_change channel=9 control=11 value=127 time=0
control_change channel=9 control=0 value=120 time=0
control_change channel=9 control=32 value=64 time=0
program_change channel=9 program=58 time=0
control_change channel=9 control=114 value=21 time=0
control_change channel=9 control=115 value=108 time=0
control_change channel=9 control=116 value=0 time=0
control_change channel=9 control=117 value=0 time=0
control_change channel=9 control=118 value=0 time=0
control_change channel=9 control=119 value=1 time=0
control_change channel=10 control=11 value=100 time=0
control_change channel=10 control=0 value=120 time=0
control_change channel=10 control=32 value=64 time=0
program_change channel=10 program=41 time=0
control_change channel=10 control=114 value=21 time=0
control_change channel=10 control=115 value=108 time=0
control_change channel=10 control=116 value=0 time=0
control_change channel=10 control=117 value=0 time=0
control_change channel=10 control=118 value=0 time=0
control_change channel=10 control=119 value=1 time=0
control_change channel=8 control=11 value=100 time=0
control_change channel=8 control=0 value=121 time=0
control_change channel=8 control=32 value=0 time=0
program_change channel=8 program=33 time=0
control_change channel=8 control=114 value=21 time=0
control_change channel=8 control=115 value=108 time=0
control_change channel=8 control=116 value=0 time=0
control_change channel=8 control=117 value=0 time=0
.......
....... Fragment 4: shows pattern of program and control changes
.......
control_change channel=14 control=11 value=100 time=0
control_change channel=14 control=0 value=121 time=0
control_change channel=14 control=32 value=64 time=0
program_change channel=14 program=10 time=0
control_change channel=14 control=114 value=21 time=0
control_change channel=14 control=115 value=108 time=0
control_change channel=14 control=116 value=0 time=0
control_change channel=14 control=117 value=0 time=0
control_change channel=14 control=118 value=0 time=0
control_change channel=14 control=119 value=1 time=0
control_change channel=15 control=11 value=100 time=0
control_change channel=15 control=0 value=121 time=0
control_change channel=15 control=32 value=0 time=0
program_change channel=15 program=0 time=0
note_on channel=9 note=96 velocity=107 time=0
note_off channel=9 note=96 velocity=64 time=0
note_on channel=9 note=58 velocity=127 time=0
note_on channel=9 note=96 velocity=119 time=0
note_on channel=9 note=86 velocity=127 time=0
note_on channel=9 note=73 velocity=114 time=0
note_on channel=9 note=70 velocity=127 time=0
note_on channel=9 note=82 velocity=127 time=0
note_on channel=9 note=81 velocity=125 time=0
note_on channel=9 note=102 velocity=127 time=0
note_on channel=9 note=36 velocity=127 time=0
note_on channel=10 note=86 velocity=127 time=0
......
..... Fragment 5: Shows the start of V1C1 part
......
note_off channel=14 note=84 velocity=127 time=0
note_off channel=14 note=64 velocity=64 time=0
sysex data=(66,63,120,1,118,49,99,118,49) time=0.0014880937499999998
<meta>
<meta>
<meta>
control_change channel=9 control=11 value=127 time=0
control_change channel=9 control=0 value=120 time=0
control_change channel=9 control=32 value=64 time=0
program_change channel=9 program=58 time=0
control_change channel=9 control=114 value=21 time=0
control_change channel=9 control=115 value=108 time=0
control_change channel=9 control=116 value=0 time=0
control_change channel=9 control=117 value=0 time=0
control_change channel=9 control=118 value=0 time=0
.....
......
......
Sam/Nemik
Sorry aout the duplicate posts. I wanted to be sure that the reply was getting posted -- as the response was too slow leaving me in a confounded state.
I also notice that this publish process was some how swallowing some text sections allied with META tag - confusing them for HTML.
So here I am including them in plain format without the less than greater than characters.
Sri.
meta message marker text='v1cv1' time=0
meta message set_tempo tempo=571428 time=0
meta message time_signature numerator=4 denominator=4 clocks_per_click=24
Sorry aout the duplicate posts. I wanted to be sure that the reply was getting posted -- as the response was too slow leaving me in a confounded state.
I also notice that this publish process was some how swallowing some text sections allied with META tag - confusing them for HTML.
So here I am including them in plain format without the less than greater than characters.
Sri.
meta message marker text='v1cv1' time=0
meta message set_tempo tempo=571428 time=0
meta message time_signature numerator=4 denominator=4 clocks_per_click=24
- Nemik
- Approved Merchant
- Posts: 1749
- Joined: Mon Jan 27, 2014 11:54 pm
- Location: Hilton Head Island, SC
- Contact:
@ sridharar
What you really trying to do?
I just wrote is no way you can make style directly, you can only prepare midi with markers and import them to style.
I understand you are Python programmer, good for you.
I use to do programming myself, but mostly in VB.net.
You got to believe me on this, I did tried almost anything, many ways to make easy creating styles, but on the end I figure out the best way is make them directly on Korg board.
Sam made a few videos how to do from midi.
I did some tutorial on website some basic how can be done in FL Studio.
https://performersheaven.com/en/resourc ... -fl-studio
Other way is connect your DAW midi output to Korg Midi input, configure channels, filter SysEx and Bank Select and using midi notes on Daw have access to real time preview in record mode on Korg.
Bottom line is, you need to first musician, then programmer to make style.
If you try few times do this on board, you give up trying any magic shortcuts on computer.

What you really trying to do?
I just wrote is no way you can make style directly, you can only prepare midi with markers and import them to style.
I understand you are Python programmer, good for you.

I use to do programming myself, but mostly in VB.net.
You got to believe me on this, I did tried almost anything, many ways to make easy creating styles, but on the end I figure out the best way is make them directly on Korg board.

Sam made a few videos how to do from midi.
I did some tutorial on website some basic how can be done in FL Studio.
https://performersheaven.com/en/resourc ... -fl-studio
Other way is connect your DAW midi output to Korg Midi input, configure channels, filter SysEx and Bank Select and using midi notes on Daw have access to real time preview in record mode on Korg.
Bottom line is, you need to first musician, then programmer to make style.
If you try few times do this on board, you give up trying any magic shortcuts on computer.

Nemik
Korg Kronos2-61, Korg Pa600, Korg Pa4x, Korg Pa5x,Novation UltraNova, Akai Professional MPK49, Akai Professional MPK225 , Alesis QX-49, APC25 Keys, Launchpad MK2, Korg nanoPad2
MOTU Midi Express XT, FCB1010 with UnO, Behringer X2222 USB, TASCAM Model 24 Mixer, Presonus AudioBox96, M-Track Plus
Fl Studio 21, Ableton Live 11 Suite.
Performers Heaven
Korg Kronos2-61, Korg Pa600, Korg Pa4x, Korg Pa5x,Novation UltraNova, Akai Professional MPK49, Akai Professional MPK225 , Alesis QX-49, APC25 Keys, Launchpad MK2, Korg nanoPad2
MOTU Midi Express XT, FCB1010 with UnO, Behringer X2222 USB, TASCAM Model 24 Mixer, Presonus AudioBox96, M-Track Plus
Fl Studio 21, Ableton Live 11 Suite.
Performers Heaven
- Nemik
- Approved Merchant
- Posts: 1749
- Joined: Mon Jan 27, 2014 11:54 pm
- Location: Hilton Head Island, SC
- Contact:
is a special BB tags on forum to post code.sridharar wrote:Sam/Nemik
Sorry aout the duplicate posts. I wanted to be sure that the reply was getting posted -- as the response was too slow leaving me in a confounded state.
I also notice that this publish process was some how swallowing some text sections allied with META tag - confusing them for HTML.
So here I am including them in plain format without the less than greater than characters.

if you programmer ,... act like one.

Code: Select all
here comes programming codes :)
Nemik
Korg Kronos2-61, Korg Pa600, Korg Pa4x, Korg Pa5x,Novation UltraNova, Akai Professional MPK49, Akai Professional MPK225 , Alesis QX-49, APC25 Keys, Launchpad MK2, Korg nanoPad2
MOTU Midi Express XT, FCB1010 with UnO, Behringer X2222 USB, TASCAM Model 24 Mixer, Presonus AudioBox96, M-Track Plus
Fl Studio 21, Ableton Live 11 Suite.
Performers Heaven
Korg Kronos2-61, Korg Pa600, Korg Pa4x, Korg Pa5x,Novation UltraNova, Akai Professional MPK49, Akai Professional MPK225 , Alesis QX-49, APC25 Keys, Launchpad MK2, Korg nanoPad2
MOTU Midi Express XT, FCB1010 with UnO, Behringer X2222 USB, TASCAM Model 24 Mixer, Presonus AudioBox96, M-Track Plus
Fl Studio 21, Ableton Live 11 Suite.
Performers Heaven
Nemik
I was looking for a way attach a text file -- but I just could not see a simple way to do that. So I ended up using simple cut and paste, not catching that there were some tags embedded. I was alert to it, I would have disabled HTML in the post.
CODE button would have ring a bell if I was actually attaching Computer Program/Code.
Sri.
I was looking for a way attach a text file -- but I just could not see a simple way to do that. So I ended up using simple cut and paste, not catching that there were some tags embedded. I was alert to it, I would have disabled HTML in the post.
CODE button would have ring a bell if I was actually attaching Computer Program/Code.
Sri.