Korg Kronos - Software
Developers User Community Resources
This
files area is intended to support the community of
Kronos owners who are also software developers.
As a community effort, we are working together to develop
a more
comprehensive "Programmers Reference" for the Kronos.
All related discussion on Korg
Kronos software development is hosted by KorgForums.com in the forum
section Computer
Programmers – Software Developers..
The thread I started is here.
Please use this alias
for email, or via KorgForums.
Thanks, Tim.
General Kronos Tips
Kronos Karma Combi Switching Technique
- A summary tutorial on using Karma on the Kronos to switch up to 4
Timbres on and off, without any polyphony loss, and maintain use of the
Realtime control knobos in the Combi.
Process
for integrating new programs into a Kronos with no free program banks (2021) - (PDF) A
summary tutorial on how to use PCGTools to load a 3rd party sound set
when you have no free banks and a non-factory program layout.
There is a spreadsheet tool for helping automate the creation of data for needed
PCGtools Reference Changer for this process. See below for a more advanced script to generate reference changer lists from a Combi set based on factory program locations.
Kron
MIDI
Related
Combi Data Structures - Excel file to assist creating your own software
data structures for the Kronos Combi. (Nov 2012) |
Link
|
|
|
PCG
File Related
Overview of PCG File Format (based on examination of Kronos PCG files from OS 2.1) Partial information, not guaranteed correct! (April 2014) | Link
|
|
|
Scripts
and Programming Tools
Perl
Scripts to parse Kronos text file documentation into CSV or similar
formats for use in software (Nov 2012) |
Link
|
|
|
MIDI Libraries
MIDI Library written in Python ( It is specific to the Krome but should be similar to Kronos) Contributed by bmames00 (July 2014)
|
Link
|
|
|
Sysex Filer
This is a utility I wrote as a general development tool for sysex and MIDI, to debug and support other programs. It has a
couple of special functions that might be useful to the Kronos community:
1) Ability to copy and merge Timbres within or between Combis
2) Ability to convert Triton (and compatible) Combis to Kronos Combis.
It
does not convert programs - maybe someday I'll be able to add that
capability. Just having the Combi converted is a big time saver though.
Note: This is unsupported freeware. Developed and tested on Windows 7 32 bit and Windows 10 64 bit.
Version 1.6 update - December 2016. The Combi copy/merge function now support IFX copy and remap also.
Preview the help files here:
SysexFiler Help File - General
SysexFiler Help File - Copying Kronos Timbres
SysexFiler Help File - Triton to Kronos Combi Conversion
Download the program - Version 1.6.0.0 December 2016
Download
PCG2INS - Translate Kronos PCG files into Cakewalk (Sonar) Instrument Definition (INS) files
This utility takes a PCG from the Kronos and generates an Instrument File for Sonar
This
defines the correct bank change commands for the Kronos, and lets you
use the actual Kronos program names within Sonar when you create a
Patch Change event:
Whenever
you change the programs in your Kronos, you can save a PCG file and
then re-run this program to update the INS file. Sonar will re-read the
INS file the next time it starts and use the updated program names.
PCG2INS is a Windows Console program. To open a command window, type CMD.EXE in the Start Menu search text box.
There is no installation process other than unzipping. The
downloaded file (PCG2INS_v101_distribution.zip) should contain
the EXE and three INS files that are used to build the output file.
Unzip
the distribution file into any folder of your choice, and CD to that
folder. You can use the folder you normally store PCG files to
make it convenient.
The
output file is written to the same folder, with the same name as the
PCG file but with the extension changed to .INS. Sonar only accepts .INS files.
The
INS file will contain two "Instruments" selectable in Sonar, one for
Programs and one for Combis. You have to decide which way you
want to map the Kronos, and unfortunately the selction is global, not
per-project. Sonar does not handle dynamic selection of Programs
or Combis.
Once
Sonar has been configured to use the INS file, you can easily keep it
updated from current PCG files, and Sonar will use the updated
definitions.
One easy way to quickly update with new PCG versions
is to create a shortcut to PCG2INS on your desktop, and then drag a PCG
file onto it. It will run and put the output INS file in the same
folder as PCG2INS (which should be the one Sonar is using).
The program has
been tested PCG files generated by Kronos OS 3.0.x. The PCG files
I tested with have included "all" data.
Note: This is unsupported freeware. Developed and tested on Windows 7 32 bit.
- Download the program - Version 1.1.0 (29 November, 2015)
Download PCG2INS
To load the INS file in Sonar:
- Menu: Edit / Preferences
- On left column, select Instruments
- Click "Define" in the right pane.
- Click "Import"
- Navigate to the folder where you saved the INS file that was generated, and select it. Click OK.
- Select "Kronos (Prog)" and "Kronos (Combi)" on the list of instruments to Import (shift click for the second one). Click OK
- "Kronos (Prog)" and "Kronos (Combi)" should now appear on the list of instruments.
- Click Close
-
In the list under "Output/Channel" scroll to find the Kronos MIDI
output. Select channel 1 though channel 16 (Click on Channel 1,
then Shift-Click on channel 16)
-
On the right list under "uses instrument" click on "Kronos
(Prog)" or "Kronos (Combi)". A line should appear from the Kronos MIDI channels to
the Kronos entry.
- Click OK on the Preferences dialog.
PCG Program / Combi Usage Report Formatter
One
of the great things about the Kronos is the huge number of programs and
libraries that are available. The related downside is the shortage
of program banks to store them.
Many of us filled all internal
program banks years ago. Korg was unwilling to make any
improvements in program bank storage, so for a long-time Kronos owner, loading new banks and
libraries feels like playing this puzzle:
The excellent PCG Tools
program by Michel Keijzers can generate reports of used programs (among
many other functions). While very handy and detailed, the large report
is not ideal for quickly answering the question "What can I delete or
overwrite without breaking something else?
I developed
some post-processing scripts to help this process. It is a Windows
command-line process built around a Perl script for much of the text
formatting, and a Windows executable to create the usage data for
Combi's by Setlists.
The output is in text files.
The Used Program list (short form - providing only the ID of the Combi or Setlist slot referencing the program):
...
I-A051 : NIACIN Wah (Pitchbend) UsedBy: I-A004,005/25,
I-A054 : CX-3 Organ 888 SW1 V2 UsedBy: I-A050,005/4,
I-A055 : MOD-7 E.Piano Pad SW1 UsedBy: I-A044,005/8,
I-A056
: Piano Wire
SW1 UsedBy:
I-B027,I-C001,I-C023,I-D059,I-D069,005/16,
I-A060 : Custom Clav Knob5_6 UsedBy: I-A078,I-B023,I-B033,
I-A061 : VectorianBellscape SW1_2 UsedBy: I-E031,005/17,
I-A063 : The Mist Singing Softly UsedBy: I-A118,I-E111,U-G033,U-G036,U-G096,
...
The Used Program list (long form - providing Combi or Setlist slot ID and names referencing the program):
...
I-A051 : NIACIN Wah (Pitchbend)
I-A004 Organic Niacinism
Setlist 005/25 Preload Set List / CX-3
I-A054 : CX-3 Organ 888 SW1 V2
I-A050 Funky Drawbars
Setlist 005/4 Preload Set List / CX-3
I-A055 : MOD-7 E.Piano Pad SW1
I-A044 Tine E.P. & Pan Pad(EP1)
Setlist 005/8 Preload Set List / MOD-7
I-A056 : Piano Wire SW1
I-B027 Massssssive Pad
I-C001 Electus Grandus
I-C023 Chasing Vector SW1
I-D059 AtmosphereThingSweep Rbn
I-D069 Tangerine Skies
Setlist 005/16 Preload Set List / AL-1
...
The Unused Program list :
...
I-A075 : TB Rez Square Unused
I-A077 : Darkside X-Bass Unused
I-A094 : 5th World Stab Unused
I-A096 : Porta Stab -Y VJS Unused
I-A110 : Transformer Lead VJS_Kn6 Unused
I-A122 : TechnoMix Control =C2= Unused
I-B003 : Bright Mono Piano Unused
I-B007 : Classic Piano Knob6 Unused
...
The Used Combi list (short form - providing only the Setlist bank/slot referencing the Combi):
...
I-A048 : ZERO G Pianoforte UsedBy: 001/1,
I-A055 : Orchestral Woodwinds UsedBy: 006/14,008/14,
I-A062 : Reminiscing..... UsedBy: 001/0,
I-A064 : Piano & Constant Voices UsedBy: 001/11,
I-A065 : Orange Ninja Split UsedBy: 001/23,001/25,
I-A080 : G.Piano-Stack 1 UsedBy: 001/4,
I-A092 : Guardians of Light o7 UsedBy: 000/26,006/27,007/26,008/27,
I-B000 : California Phase Shifter UsedBy: 001/10,005/20,
I-B027 : Massssssive Pad UsedBy: 001/36,
...
The Used Combi list (long form - providing Setlist bank/slot and setlist bank/slot names referencing the Combi):
...
U-F033 : I'm Down <-3>
Setlist 003/13 Abbey Road 01 /
Setlist 003/66 Abbey Road 01 /
Setlist 003/117 Abbey Road 01 /
U-F034 : Yellow Sub
Setlist 003/43 Abbey Road 01 /
Setlist 003/82 Abbey Road 01 /
U-F035 : In My Life harpsi
Setlist 003/70 Abbey Road 01 / In My Life
Setlist 003/87 Abbey Road 01 / In My Life
Setlist 003/116 Abbey Road 01 / In My Life
U-F036 : Octopus Garden
Setlist 003/113 Abbey Road 01 /
...
The Unused Combi list :
...
I-A075 : TB Rez Square Unused
I-A077 : Darkside X-Bass Unused
I-A094 : 5th World Stab Unused
I-A096 : Porta Stab -Y VJS Unused
I-A110 : Transformer Lead VJS_Kn6 Unused
I-A122 : TechnoMix Control =C2= Unused
I-B003 : Bright Mono Piano Unused
I-B007 : Classic Piano Knob6 Unused
...
The
final format I find the most useful - an ASCII graphical
presentation of usage. The idea is to quickly identify areas where
programs could be consolidated or re-organized.
ASCII Chart of Program Useage for t_180701_usage_output.csv
Key:
"*" Prog referenced by a Combi or Setlist "_" Non-Init Prog
Unreferenced " " Init Program
--------------------------------------------------------------
0
32
64
96
127
I-A
|*********_*__******___**_**_*_*_|____**____*_**___*_*__***___**_*|*****_***_*_*_****************_*|_*************_***********_*****
I-B
|***_***_***__**_***__****__***_*|**************_********_***_****|*****_**__****__*_*_********__**|********************************
I-C
|********************************|*******************_************|****__**************************|**_********************_********
I-D
|*********_*****_*************_**|********_*******_********_******|********__**************_*******|*****************_**************
I-E
|*_******************************|**********_*****************_*_*|***__************_********_*****|*___********__********_****__*__
I-F
|*_***__***___*_*_*___***_*_*___*|****_******_**_**_*******__*_*_*|*****_**_***********************|*****************_**************
U-A
|*******__***___*****___*********|*****__***___*__*_***_*_***_***_|__*____***_*_*_*_*______*_**_*_*|***************_*__***__**___*__
U-B
|********************************|****************************_**_|********************************|*********__*****_**********_****
U-C
|*******__*********__**********__|******__************************|***********************_****____|__****_*_**_*___******_______*_*
U-D
|_*__****___*_*_______*__**_*___*|***______*_*__***_*_**___*____**|*__*_***__****_****__**__*__*__*|***_***____**_____*_*__*_**____*
U-E
|***_*___***_*______*___*__*__***|________________*________**____*|___**__**_*____***___*_***_*____|*__*_**________**********_*___**
U-F
|______*_*_*_____*___***_**__*__*|*_*_____*_***_*_*__*______*_____|___*______*_______**_*______*___|______*___________*____*________
U-G
|*_______________________________|________________________________|_______________
|
U-AA|*_*_____*___*_*_*__
__ __ _ _ _ |_____ __ *__ ___ __________
__*|_ ___ _ ___________________|_______
________**_____________*
U-BB|________________________________|_____*__________________________|___________________*______*_____|___*__*______*__________________
U-CC|_____*___*_***__**______________|_________________*____________
|
_*__*___________________|_*__________*___________________
U-DD|******_******_*_*____***_______*|_*____*_______________*________*|____*_*_____________*____*______|__________________*_***______***
U-EE|______*_________________________|________________________________|_____*_________*__*_____________|___________*
U-FF|_****_*********_*******_***___**|*
*
|
|
_
_
U-GG|*_*__***_*_*
***________________|__****_*_**_____**___*_**__*__*_|______**_****_*******_**
|
___
ASCII Chart of Combi Useage for t_180701_usage_output.csv
Key:
"*" Combi referenced by a Setlist "_" Non-Init Combi
Unreferenced " " Init Combi
--------------------------------------------------------------
0
32
64
96
127
I-A
|*_**_****_____*____*____________|__________*____**______*______*_|**______________*___________*___|________________________________
I-B
|*__________________________*_*__|___________*____________*__*_*__|*___**_____*_____*___*_____*____|_____________________*_____*____
I-C
|_*______________**______________|____*______*_*_______________**_|_____*____*____*__________*_____|___________*___________________*
I-D
|_____________________________*__|__*_____________________________|____**____________*____________*|*
I-E
|________________________________|___*__________*_________________|________________________________|________________________________
I-F
|
|
|
|
I-G
|____________________________
*_|______
|
|
U-A
|
|
|
|
U-B
|________________________________|________________________________|_________
|
U-C
|__
|
|
|
U-D
|________________________________|
|
|
U-E
|______________
|
|
____
|
U-F
|******_*****__**_******_*******_|******
|
|
U-G
|*****************_**______**_***|***_****_**___*_*_**************|**_***_**_********__*__*_*_*_**_|******_****_*******_**___******
Intructions:
Dowload the ZIP file here.
It contains: Process_Usage_Report.cmd, PCGparseSetlist.exe, Kronos_Used_Unused_Programs.pl, README-Kronos_Used_Unused_Programs.txt
First extract this ZIP into the folder where you have your PCG files.
You should have Perl installed. Perl 5.20-something should be fine.
You should have PCG Tools installed.
(Note:
The following was developed and tested on Windows 10 64 bit, with Perl
5.22.1 and PCG Tools 3.0.0. YMMV on different versions)
1) First, run PCG Tools, open PCG file, click on "Generate List..."
2) Generate Patch Report
Patch is default report setting.
Select "Comma Separated Values" output file format
Edit report output path to folder where PCG files is located
Set the output name to {pcgbase}_patch_output.csv.
For example, if your PCGfile is named "mypcgfile.pcg", the default
filename will be mypcgfile_output.txt
Change the patch report to include the word patch, like this
"mypcgfile_patch_output.txt"
Click Generate. (note Excel will open. Just close it)
3) Generate Usage Report
At the upper left of the List Generator dialog, Change List Type to "Program Usage List"
It should still be selected, but verify "Comma Separated Values" is the output file format
The path the the output folder should still be correct.
Change the patch report to include the word usage, like this
"mypcgfile_usage_output.txt"
Click Generate. (note Excel will open. Just close it)
4) Open a Command window (CMD.EXE) and change to the folder where your PCG file is located.
5) Run the commmand script:
Process_Usage_Report.cmd mypcgfile
Note: Just use the bare filename of your original PCG file, no need to add .pcg suffix
The seven output files are generated in the same folder. Their names are appended based on the PCG file name:
mypcgfile_usage_output.usedprog.txt
mypcgfile_usage_output.longusedprog.txt
mypcgfile_usage_output.unusedprog.txt
mypcgfile_usage_output.usedcombi.txt
mypcgfile_usage_output.longusedcombi.txt
mypcgfile_usage_output.unusedcombi.txt
mypcgfile_usage_output.ascii.txt
If
you want to open the output files automatically for viewing, I
recommend the free NotePad ++. Windows Notepad cannot open multiple files in
tabs, so it is not used.
PCG Reference Changer List Generator
PCGTools <https://www.kronoshaven.com/pcgtools/>
has a useful feature for changing program references in Combi's and Setlists.
This is needed when you have a set of Combis that are assuming a standard
factory layout of the programs. If you're like me, you have extensively customized your
program layout since running out of program banks over 10 years ago (see Usage Reporter
above), so the "factory layout" is ancient history. PCGtools
supports loading a file with the reference changes, but it can be
tedious to
create the file manually when it requires hundreds of entries. This
script automates the
process of creating the reference changer file. It reads the content
listing of a PCG containing
a bank of Combis that is using factory set references, and the patch
listing of your current Kronos PCG to provide the current program
locations.
The
script will
report if any of the programs referenced in the Combi bank do not exist
in your
current Kronos configuration. You can decide if you want to add those
programs to your Kronos, or later manually edit the Combi to use a
program that you do have.
The matching of the references is
made by comparing program names. My personal convention is to save factory programs that I tweak
with a new name, so I don't worry about a vastly modified program being
matched as the original factory program. (PCGtools report generator does offer an optional CRC value, so you are free to
modify the script confirm name matches as well as the CRC matching)
Download the Python script file here.
Notes:
The following assumes you're using Windows since PCGtools
is on Windows, but Python is cross platform. It is tested with output listings from PCGtools 3.1.0. Usage:
Python Kronos_Ref_Changer-CCL.py <combi-pcg-list.txt>
<my-current-pcg.txt>
<ref-changer-output.txt>
combi-pcg-list.txt
--- Combi Content List (subtype Long), ASCII Table, List from PCG Tools of Combi that needs references changed while
Master File is set to PRELOADK2.PCG')
my-current-pcg.txt
--- Patch List, ASCII Table, generated from PCG Tools from Kronos customized
PCG
saved from your Kronos
- Step
1: Make sure the PCGtools Master File is set to the factory PCG for your
Kronos. it will be "PRELOADK2.PCG" for Kronos 2.
- Step
2: Open the PCG file of the Combi's you want to change references with in
PCGTools
- Step
3: Use Generate List / Combi Content List, List Subtype Long / ASCII
Table. Save list as
"combi-pcg-list.txt" or your choice of name
- Step
4: In PCGTools, load your Kronos current configuration PCG file. (You probably
want to change the Master File back to this PCG) Use Generate List / Patch List
/ ASCII Table. Save list as
"my-current-pcg.txt" or your choice of name
-
- Step 5: Verify Python is installed properly. From Command Window, type "Python
-V". It should print Python 3.10.2
(or a later version number) Download and install if needed <https://www.python.org/downloads/>
-
- Step 6: Run reference changer script:
C:>
python Kronos_Ref_Changer-CCL.py <combi-pcg-list.txt>
<my-current-pcg.txt>
<ref-changer-output.txt>
The
reference changer list should be created in the current directory as
"ref-changer-output.txt"
Step 7: Open the PCG file of the Combi's you want to change references in PCGTools
again (Make sure it is the only PCG file loaded for this step) Select
one Combi, and click the "Timbres…" button. Look at the program
references for the programs in the Timbre, and note them.
From
the menu, Tools / Program Reference Changer / From File. Select the file you just created
"ref-changer-output.txt". Click OK, and there will be a progress bar
as the reference are updated.
Now with the same Combi selected, click the
"Timbres…" button. Ensure that the program references for the
programs in the Timbre have changed.
Step
8: Save the modified Combi PCG to a new file using Save As…
Step
9: Load the combis into your Kronos, and
verify that the Timbre's reference the proper programs.
Example Output - Normal Run
C:\DEV\PythonCode>python
Kronos_Ref_Changer-CCL.py
c:\Kronos\K2_EnnE_combi-content_output.txt c:\Kronos\t2_230903_output.txt c:\Kronos\refchanger2.txt
Opening c:\Kronos\K2_EnnE_combi-content_output.txt and c:\Kronos\t2_230903_output.txt for read
Opening c:\Kronos\refchanger2.txt for output
Created Custom
Combi programs used dictionary with
430 items
Created my
library dictionary with 2492 items
0 do not exist
430 entries in refs
430 sorted entries in refs
430 unique entries in refs
Example Output - Some referenced programs are not present in Kronos
C:\DEV\PythonCode>python Kronos_Ref_Changer-CCL.py c:\Kronos\K2_EnnE_combi-content_output.txt c:\Kronos\t2_230827_output.txt c:\Kronos\refchanger1.txt
Opening c:\Kronos\K2_EnnE_combi-content_output.txt and c:\Kronos\t2_230827_output.txt for read
Opening c:\Kronos\refchanger1.txt for output
Created Custom Combi programs used dictionary with 430 items
Created my library dictionary with 2487 items
"DONKADrums" Key doesn't exist in my set
"Winter Vox Pad" Key doesn't exist in my set
"Hollywood Strings" Key doesn't exist in my set
"The Power & The Glory" Key doesn't exist in my set
"Electro Clash Bass" Key doesn't exist in my set
"Vaporization Pad" Key doesn't exist in my set
6 do not exist
430 entries in refs
430 sorted entries in refs
430 unique entries in refs