I am pleased to (finally!) release kronos.factory 1.0, which is now available on my x.factory Librarians Products Page.
During the month of March, there is a 25% discount launch offer if you enter the code KRONOS in the coupon box and then press UPDATE COUPON
This has been a very long journey due to limited spare time to devote to programming (and a very fine summer last year cut it down even more!) and the flexibility (read complexity) of the Kronos file format to have any permutation of banks in it.
kronos.factory can be downloaded on the following links: http://xfactory-librarians.co.uk/installation.html, and if you do not already have Java on your system, then follow the guide here http://xfactory-librarians.co.uk/java.html
Finally, a public thanks for Galf2, who has been assisting me in the beta test process and who has provided invaluable support and ideas.
=== 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
- 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.)
=== It's been a long, long time....
Why, the heck has it taking so long to produce this software, as I started working on it in May 2017!!, and then why are some operations lengthy? It's because of all the permutations and things to check, and the fact that the PCG format does not contain a fixed set of items - for example, you may have no program banks, you may have some in any permutation or you may have them all!
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
- 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
- A wave sequence move inside a bank
- A wave sequence move to another bank
- A reordering of the banks
- A renumbering of a bank!