kronos.factory BETA 0.5 Preview

The Kronos Music Workstation is the single instrument designed for live performing musicians

Moderators: Derek, parametric, Saul

User avatar Wales
Global Moderator
Global Moderator
Posts: 4684
Joined: Fri Dec 07, 2007 1:00 am

kronos.factory BETA 0.5 Preview

Unread post by Derek » Sat Dec 29, 2018 9:59 am


Hi, all

I was determined to make another preview release before the end of the year, and here is the 0.5 BETA preview, which will be the final preview before the first release.

This has been a very long journey due to limited spare time to devote to programming (and a very fine summer cut it down even more!) and the flexibility (read complexity) of the Kronos file format to have any permutation of banks in it.

Also, following feedback from beta testing, it came apparent that my plan to only support OS 3.0 file formats would exclude a lot of files. In my own collection of files, I found I had the following breakdown of files:
19 % V1.0/V1.1
17 % V1.5/V1.6
30 % V2.x
34 % V3.x

I.e., I would have been excluding 66% of my own files if I only supported V3.x That was quite a surprise statistic

Therefore, I dived into understanding the differences between the different OS versions, which opened up another world of complexity, particularly with V1.5 files and how they extended the format to maintain compatibility with V1.0 files - which all then disappeared in V2.0 and above!

So, what is in this release
  • Full support for all known OS file format versions.
  • Wave Sequences are further decoded to allow you to see the individual steps (and move and copy them) and the sample each step is using
  • Ability to drag and drop from older version files to newer versions with the appropriate version migrations taking place
  • More visual feedback on what is happening during complex/lengthy operations
  • Drag and drop support extended down to all visible objects
  • Not a program feature itself, but my testing regime expanded to test read/copy/write operations of as many files as possible and checking 100% perfect results. Over 200 files are being successfully tested.
  • Minimum Java version is now Java 8 as Java 7 is no longer getting security updates as Oracle have dropped public support for it.
Also, a reminder that a key feature that I am quite proud of is drag and drop reordering of banks, or you can renumber a bank, if there are spare banks available. Of course if you do this, anything referencing data inside the banks is updated to reflect the change.

kronos.factory is effectively in beta preview, and you can download via the following links
Windows Installer
OS X Installer and any Java system
Linux Installer

Instructions on how to install are here, and if you do not already have Java on your system, then follow the guide here

Finally, a public thanks for Galf2, who has been assisting me in the beta test process and who has provided invaluable support.


Known issues
  • The screen resolution issue if working on a device with a hi definition monitor (I will sort as part of a later java migration)
  • The software (and all my librarians) is NOT compatible with Java 9 and above. Java 9 introduces a major change to Java which broke several libraries that I was using. I have now migrated away from those and was making good progress with making my applications Java 9 compatible until I discovered a major bug in Java 9 MIDI Port Naming on Windows (OS X is fine!) that corrupts port names, which needs fixing by Oracle (Java vendor) before I can complete the migration
  • Now that I have introduced reference checks, then there is a performance hit when opening some tree branches. It is OK for most items on a reasonably fast computer, but there is a huge delay when opening KSC drum sample branches due to the number of items to check to see if they are referencing any sample on display. I need to look into how I can optimise for this. I have added in progress monitoring, so you will know what is happening.
  • Copy referenced objects requires suitable free data spaces, and currently fails silently if non are available. I will add error reporting in a later release and also the options to create data banks if space is available. I will also add some menu items to allow you to query a selection and see how much space is required for referenced items (e..g a Set List is using XXX Combis, which are using YYY HD-1 Programs and ZZZ EXi programs, which are using NNN Wave Sequences, Drum Kits, etc.)

My future roadmap is as follows. Hopefully 1.0 will be out by end of Jan with the current progress I am making. :)
  • 0.6 - 0.9 bug fixing. Completion of documentation
  • 1.0 First release
  • 1.1 Song file support
  • 1.2 Writing of KSC and KGE files (they are currently read only to "peek" at the data in them)
  • 2.0 Library Support
  • 3.0 MIDI Support (if the demand/interest is there)
Feedback and comments are welcome.


Why, the heck is it taking so long to produce this software, and then why are some operations lengthy? All the permutations and things to check! For example in a PCG file , there are
  • 20 Program (Voice) banks (x 128 Programs) that may or may not be there in any combination...
  • But after Bank I-F there are the preset GM banks (9 of them!) before the other User banks carry on from U-A onwards
  • And Program banks can be either HD-1 (ROMPLER) or EXi (Virtual Instrument) banks
  • There are 14 Combi Banks that may or may not be there in any combination...
  • There are 15 Wave Sequence banks that may or may not be there in any combination, and the first bank has 150 Wave Sequences, the rest 32 (so lots of fun if you move a 32 element bank to the first one and vice versa)
  • There are 15 Drum Kit banks that may or may not be there in any combination, and the first bank has 50 Drum Kits, the rest 16 (so lots of fun if you move a 16 element bank to the first one and vice versa)
  • Drum Pattern Tracks are totally free form, there may be up to 1,000 of them and they do not have to be sequentially numbered....
  • The only thing fixed is Set Lists where there are 128 of them with 128 entries
I think you can see from that there is a fair bit to work through and ensure it is all working, and it then gets interesting if you are trying to keep references linked when you move things, or you wish to copy referenced objects when you copy data to another file (e.g. copy a program and have the programs copied as well). For example if you move a wave sequence and want to update Program references to the Wave Sequences
  • Is a Program Bank a HD-1 Bank?
  • Yes, are any of the 128 Programs in a Program Bank a Normal Voice or a Drum Voice?
  • Normal Voice, check oscillator 1 always and only oscillator 2 if it is a double oscillator voice
  • For each of the 8 trigger zones in an oscillator, is it off, a sample or a wave sequence?
  • If Wave Sequence then has it been affected by the move?
  • If so then remap the Wave Sequence reference to take account of the change (and just to make life interesting you need to convert between a single index in the trigger zone and the Wave Sequence Bank/Wave Sequence Number (with the first bank being 150 elements in length and the rest 32
and of course the "move" within a file can be
  • A wave sequence move inside a bank
  • A wave sequence move to another bank
  • A reordering of the banks
  • A renumbering of a bank!
So, this is the most complex synth I have ever worked through in terms of writing a patch librarian for! :)
Derek Cook
User avatar Cayman Islands
Global Moderator
Global Moderator
Posts: 349
Joined: Tue Oct 18, 2011 11:54 pm

Re: kronos.factory BETA 0.5 Preview

Unread post by jima » Sat Dec 29, 2018 11:58 am

Congratulations, Derek, a labour of love to be sure! If only I had a Kronos...
Yamaha EX5, AN1X, TG500, Moog Werkstatt, Korg Wavestation SR, Sigma, Legacy Digital, Nord Modular G2, G2 Engine, Focusrite PRO 40, MIDISPORT 8x8/s, Uno, Arturia BeatStep, V Collection, Pigments | Love keyboards but so little time :(
User avatar Germany
Specialist Moderator
Specialist Moderator
Posts: 1858
Joined: Fri Oct 31, 2008 1:00 am

Re: kronos.factory BETA 0.5 Preview

Unread post by Miks » Sat Dec 29, 2018 2:45 pm

Albeit not owning a Kronos myself- superb job Derek! ((i)) :clap: ((i)) :clap: ((i))
My (key related) gear (in alphabetical order):
Ferrofish: B4000+
Kawai: K1 II
Korg: M1 (up'd to EX, w/ 'Cool Blue'), M1REX (w/ 'Cool Blue'), Poly-800
Roland: D-50, D-110, D-550, PG-1000
Yamaha: AW1600, DX7IID (w/ 'Cool Blue'), EX5R, RM50, RX5, SY99 (w/ 'Cool Blue'), TG500, TX-802, YMM2
Sector101: SYEMB05 (5x), SYEMB06 (3x), EXFLM2 (1kit), MCD Sweet16 (1x), WaveBlade 8MB Card (1x) & 1x Programmer Unit for WaveBlade
User avatar Wales
Global Moderator
Global Moderator
Posts: 4684
Joined: Fri Dec 07, 2007 1:00 am

Re: kronos.factory BETA 0.5 Preview

Unread post by Derek » Sat Dec 29, 2018 8:39 pm

Thanks, guys

There's times when I do things like this, when I wonder what the heck I am doing it for, as it takes so much time away from music. But I enjoy the intellectual challenge of programming, and there are is still no series of librarians that does quite what I want....
Derek Cook
Post Reply

Return to “Korg Kronos Forum”