|
Korg Forums A forum for Korg product users and musicians around the world. Moderated Independently. Owned by Irish Acts Recording Studio & hosted by KORG USA
|
View previous topic :: View next topic |
Author |
Message |
timg11 Senior Member
Joined: 04 Jun 2008 Posts: 461
|
Posted: Sat Nov 17, 2012 6:26 pm Post subject: Kronos SW Developers - user-created 'programmers ref' |
|
|
I am starting this thread to engage the community of Kronos owners who are also software developers. Sorry for the large post.
First, I must give Korg a lot of credit for providing the MIDI Implementation data, which is very useful and accurate in the areas that are covered. But if you have actually implemented software, you have probably found some details that are missing or confusing. I propose that we work together to develop a more comprehensive "Programmers Reference" for the Kronos.
At this point, I have personally only worked closely with the Combi (CombiAndSongTimbreSet.txt) and the Effects (Effect.txt) documentation. By making this a community effort we can all contribute what we learn from our individual “deep dives” into any particular area of the Kronos.
I have a few files to contribute to start the project. First is a spreadsheet that shows how the effects-specific parameter data fits into the Combi data structures. This data is represented as * in the Korg document. Although the largest number of bytes defined in any Kronos effect is currently 25, 64 bytes are reserved for the 12 IFXs and 2 each MFX and TFX. It took me a while to figure out how those 64 byte blocks fit into the * gaps in the Combi specification, since they appear to be different sizes. My file KronosCombiDataStructures.xlsx makes it clearer. On the 2nd tab there is a mapping of the offsets in the Combi file to the data structures within and their sizes. I have also included a set of data structures that correspond to the Combi. I used the spreadsheet to make sure my data structures matched exactly to the almost 8000 bytes in a Combi.
I can't guarantee everything is correct, but they are accurate enough to enable my program to convert Triton Studio Combis into Kronos Combis (except for the programs themselves and arpeggiator / Karma).
I have also explored parameters a bit. Many Combi parameters are defined in the CombiAndSongTimbreSet.txt (in the "TYP|SOC|SUB|PID|IDX" columns at the right). However, there are some that are missing. For example, the effects parameters are not documented.
In the process of turning the files like CombiAndSongTimbreSet.txt into data that I can use in my programs, I have developed some Perl scripts to parse those files. One parses the Effect.txt file and outputs CSV format (such as 1,0,8,7,0,"St. Amp Simulation","Amplifier Type","00~02","SS~6L6") that I can easily load (KorgKronosEffect.pl). I have also created one to parse out the parameter information (KorgParameterMapExtract.pl). These took a while to write and debug. If you need something like this, you are free to adapt them to your own purposes. Please upload your modifications so we can all benefit.
What is still needed to be done from the community, to better document the Kronos?
One important area is to understand and define the _meaning_ of parameters that are not simple integer types (like a 0-127 for volume). An example is Banks. The values 00..0x1E map to INT-A through U-GG. There are 14 banks, but the range is 0-30 decimal. How do they map? It turns out that banks are documented in KRONOS_MIDI_SysEx.txt, but many other enumerated types are not documented. Another example is frequency ranges used in the EFX. While some are simple integers, others use a varying step size of hertz/parameter unit to approximate an exponential mapping. Other than incrementing through all the values on the Kronos and observing the parameter change messages, I don't know how to determine mapping of parameter value to frequency. Even numeric values do not always map directly to the parameter value. LFO frequency, portamento or envelope times are examples when the parameter value has a relation to the actual value that is not a 1 to 1 mapping.
This would be an excellent area for those who have figured these things out to share your findings.
The area of the Programs is also wide open for contribution. Looking at Prog_HD-1.txt, there are a many data structures that are common to Combis, but some are not. Understanding the MS Bank UUId and MS Numbering formats would be very helpful information. The EXi definitions are also unexplored territory for me.
Above and beyond the MIDI implementation, there is also the PCG file format which (as far as I know) not officially documented. Michel Keijzers has obviously done a lot of work to figure that out, but I can't speak for him on whether his is able and willing to share any of the details.
I should point out that I'm not suggesting reverse engineering the internals of the Kronos - I'm not that "brave". This effort is about working with the provided interfaces (MIDI and supported files) and enabling developers to create software to augment the functionality. My hope is that if we work together we can spend more time developing our software’s features and functions (and thus improving the Kronos), and spend less time on figuring out the necessary details.
Also, I don't expect people to post their source code. The useful information to be shared is in the data structures, or even simple text files describing particular parameter mappings or file formats. If you can share those, regardless of the language you program in, others can put the information to use, and save us all a lot of time and effort. By posting in this forum, it becomes a resource for all to use and build on.
I have created a page for related files, including the ones I mentioned above. There is an email link on that page that you can use to provide additional files that I will upload (or PM me here).
What do you think? Is this worthwhile effort? Will you help? |
|
Back to top |
|
|
Francois Approved Merchant
Joined: 06 May 2003 Posts: 4854 Location: Northants - UK
|
Posted: Sat Nov 17, 2012 9:18 pm Post subject: |
|
|
Cannot help you out, but I applaud the idea. _________________
Kronoscopie, tout sur le Kronos en français
http://www.kronoscopie.fr |
|
Back to top |
|
|
Sharp Site Admin
Joined: 02 Jan 2002 Posts: 18197 Location: Ireland
|
Posted: Sun Nov 18, 2012 4:29 pm Post subject: |
|
|
I take it you don't need me to upload anything now?
Sorry for the delay but I was about to start today on this.
Regards
Sharp _________________
|
|
Back to top |
|
|
michelkeijzers Approved Merchant
Joined: 08 Feb 2007 Posts: 9113 Location: Netherlands
|
Posted: Mon Nov 19, 2012 11:43 am Post subject: |
|
|
I'm afraid I cannot help really, since I never really checked the MIDI implementation data itself. I use however those documents to analyze the PCG file format, which have a lot in common.
However, the PCG file format is proprietary and I cannot give much information about it, I had to sign a contract with Korg for that.
Btw, the order of the enumeration types is mostly equal as on the synth so you have to manually type it from the order on the synth itself.
If there are questions I might be able to answer them if possible, so I will put a notify on this thread _________________
Developer of the free PCG file managing application for most Korg workstations: PCG Tools, see https://www.kronoshaven.com/pcgtools/ |
|
Back to top |
|
|
timg11 Senior Member
Joined: 04 Jun 2008 Posts: 461
|
Posted: Mon Nov 19, 2012 10:34 pm Post subject: |
|
|
Sharp wrote: | I take it you don't need me to upload anything now?
Sorry for the delay but I was about to start today on this.
Regards
Sharp |
Sharp, I'm happy to host - it is no problem.
BTW, I recall that you are a software developer - do you have any information that you have discovered about the Kronos that you are able to share? |
|
Back to top |
|
|
Sharp Site Admin
Joined: 02 Jan 2002 Posts: 18197 Location: Ireland
|
Posted: Tue Nov 20, 2012 12:34 am Post subject: |
|
|
I'm afraid I don't to be honest.
I can probably help with writing tools to remotely control the KRONOS, but I'm not able to do anything with their PCG file format.
If I can help anyway I will.
Regards
Sharp. |
|
Back to top |
|
|
timg11 Senior Member
Joined: 04 Jun 2008 Posts: 461
|
Posted: Mon Apr 28, 2014 10:20 pm Post subject: |
|
|
This thread has been quiet since I started it a couple of years ago. I haven't had much time to devote to programming, but I have recently done a little work on PCG files. I documented my discoveries on the PCG File Format along the way. In case anyone ever wants a head start, I have uploaded the spreadsheet to my Kronos SW Dev page
Thanks to michelkeijzers for his help, and to daz for the information he posted back in 2010 (which is actually for the Oasys, but still very helpful). |
|
Back to top |
|
|
bmames00
Joined: 11 Jul 2014 Posts: 1 Location: Ohio
|
Posted: Fri Jul 11, 2014 1:08 am Post subject: |
|
|
I have developed a Python library I use for for controlling my Krome workstation via a web interface that I am willing to share. In the process, I have corrected numerous errors in the MIDI Implementation chart published by Korg. I am running it on Linux with the intention of putting it onto a Raspberry Pi. The Python library is platform independent. _________________ Music is life |
|
Back to top |
|
|
timg11 Senior Member
Joined: 04 Jun 2008 Posts: 461
|
Posted: Sun Jul 13, 2014 6:53 pm Post subject: |
|
|
bmames00, thanks for chiming in. I thought there were more developers around, but this thread has been pretty quiet. I've been off working on other things for a while as well, but am always interested in adding to the available information for programmers.
I'd be happy to add your information to my site linked above. PM me and we'll figure out a way to transfer the files. |
|
Back to top |
|
|
michelkeijzers Approved Merchant
Joined: 08 Feb 2007 Posts: 9113 Location: Netherlands
|
Posted: Sun Jul 13, 2014 8:25 pm Post subject: |
|
|
I probably can help with questions regarding the chunk information for certain PCG file formats.
Also there are some software developers for making software for Korg synths, but not many, and some are more active than others, or at least variable over longer time. _________________
Developer of the free PCG file managing application for most Korg workstations: PCG Tools, see https://www.kronoshaven.com/pcgtools/ |
|
Back to top |
|
|
timg11 Senior Member
Joined: 04 Jun 2008 Posts: 461
|
|
Back to top |
|
|
scottgblood Full Member
Joined: 25 Nov 2014 Posts: 119
|
Posted: Wed Dec 03, 2014 6:27 pm Post subject: |
|
|
timg11 wrote: | This thread has been quiet since I started it a couple of years ago. I haven't had much time to devote to programming, but I have recently done a little work on PCG files. I documented my discoveries on the PCG File Format along the way. In case anyone ever wants a head start, I have uploaded the spreadsheet to my Kronos SW Dev page
Thanks to michelkeijzers for his help, and to daz for the information he posted back in 2010 (which is actually for the Oasys, but still very helpful). |
I haven't got my hands on the Kronos yet, waiting for my V2 to be delivered, however once it comes, the first thing (after my initial play) I plan on doing is writing software for this beast.
Its quite common that the most required functionality is some form of on screen editor that is free, so I will be fighting my way through this.
Am kind of hoping korg will assist with this, but if necessary I will work out any formats I have to and post the results on here.
In the mean time if anyone needs something writing for the .net framekwork (yes I know it isn't the best choice of languages but I am DNA's \ Contracted not to write in other languages at the moment cause of my job) I am happy to assist.
Thanks. _________________ Scott
Music Programming Geek in c++, c# and asm |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|