KORG sound format specific classes and definitions.
Classes in this namespace provide access to Korg's sample based instrument files which are used by Korg Trinity, Triton, OASYS, M3 and Kronos synthesizer keyboards.
At the moment these classes only support read support, but no write support yet.
Sample based instruments are spread in KORG's format over individual files:
- .KSF Sample File (KSFSample): contains exactly one audio sample (mono). So each audio sample is stored in its own .KSF file. It also stores some basic meta informations for the sample, i.e. loop points.
- .KMP Multi Sample File (KMPInstrument): groups individual .KSF sample files to one logical group of samples. This file just references the actual .KSF files by file name. It also provides some articulation informations, for example it maps the individual samples to regions on the keyboard, but it does not even provide support for velocity splits or layers.
The upper two file types are used by KORG for many years and their internal file format has remained nearly unchanged over that long period, and has also remained consistent over many different synthesizer keyboard models and series. Due to this however, the articulation informations stored in those two files are too primitive for being used directly on modern keyboards. That's why the following file type exists as well:
- .PCG Program File: contains a complete bank list of "programs" (sounds / virtual instruments) and "combinations" (combi sounds), along with all their detailed articulation informations and references to the .KSF sample files. The precise internal format of this file type differs quite a lot between individual keyboard models, series and even between different OS versions of the same keyboard model. The individual sound definitions in this file references the individual (separate) sound files, defines velocity splits, groups individual mono samples to stereo samples and stores all synthesis model specific sound settings like envelope generator settings, LFO settings, MIDI controllers, filter settings, etc.
Unfortunately this library does not provide support for .PCG files yet.