- New: Added support for the Polyend Tracker (PTI) instrument format (thanks to Douglas Carmichael).
- New: Added support for the Renoise instrument (XRNI) format (thanks to Douglas Carmichael).
- New: Added support for the Synthstrom Deluge instrument format (thanks to Douglas Carmichael).
- New: Added support for the Elektron Tonverk preset (TVPST) (thanks to Douglas Carmichael).
- New: Added support for the Roland MV-8000/MV-8800 patch format (MV0) (thanks to Douglas Carmichael).
- New: Added support for the Roland ZEN-Core sound format (SVZ) (thanks to Douglas Carmichael).
- New: Added support for the Synclavier Regen timbre/library format (SFLC) (thanks to Douglas Carmichael).
- New: Added support for the Roland MC-707/MC-101 project format (MPJ) (thanks to Douglas Carmichael).
- New: Added support for the Fairlight CMI 3 - read only (thanks to PythonBlue).
- New: Added support for the Downloadable Sound format (DLS) - read only.
- User Interface
- New: Improved user interface for long lists of formats.
- New: Added menu item when right clicking a log message to open the mentioned folder (if there is one).
- Fixed: The source format list showed a stray comma before the file extensions (thanks to Douglas Carmichael).
- Backend
- New: Added support for sustain / 'loop until release' loop mode (the loop runs while the key is held and then plays the remainder of the sample on release, as opposed to a continuous loop) - Ableton, Ensoniq EPS/ASR, EXS24, NI Kontakt, Renoise, SoundFont 2, SFZ, SXT, Tonverk (thanks to Douglas Carmichael).
- New: Added support for filter cutoff keyboard-tracking: Ableton Sampler, Akai AKP/AKM, Akai S1000, Bliss, Ensoniq, EXS, Omnisphere, SXT, Roland, SFZ, Synthstrom Deluge, TAL Sampler, TX16W, Waldorf, Yamaha YSFC.
- New: Added several new tags for category detection.
- New: Added an opt-in metadata option "Category tag at name start declares the category" (off by default): many commercial libraries prefix each preset name with its category (e.g. 'PAD Solina', 'BASS Growler'). When enabled, such a prefix takes precedence over keyword matches elsewhere in the name, which could otherwise win accidentally (e.g. 'BELL Vibrato Strings' was detected as Strings instead of Bell), and common abbreviations (BRAS, DRM, FLUT, GRAN, ORG, PERC, PHYS, PLUK, POLY, REES, STRG, SWEP, VOC) are recognized as well. Also added 'Reese' as a Bass category tag (thanks to Douglas Carmichael).
- New: Added an opt-in Snap loops to zero-crossings processing option.
- New: Added a Transpose processing option (-24 to 24 semitones, CLI -Zp): moves the root notes of all samples so the presets play higher or lower without changing which sample is mapped to which key (thanks to Douglas Carmichael).
- Fixed: Ignores hidden files/folders and the known Windows system folders when checking for empty-folder (thanks to Douglas Carmichael).
- Fixed: A library name typed with its file ending (e.g. "MyLibrary.xrni") produced a doubled-up file name ("MyLibrary_xrni.xrni") - the ending is now recognized for every destination format (thanks to Douglas Carmichael).
- Fixed: The "Trim start and end" processing option cut the audio to the zone's start/end but left the loop points at their old positions, so a trimmed sample with a non-zero start got a displaced loop - the loop end could even point past the end of the trimmed audio. The loop points now move with the cut (thanks to Douglas Carmichael).
- Fixed: Fixed some potential NullPointerExceptions.
- 1010music (thanks to Douglas Carmichael)
- Fixed: The amplitude decay and release times were written with a different time scale than the one used when reading them back (25 seconds instead of 38 seconds full-scale), so a converted blackbox/Bento preset played its decay and release noticeably shorter than the source. The write scale now matches the read scale.
- disting EX (thanks to Douglas Carmichael)
- Fixed: A misplaced parenthesis in the amplitude decay conversion divided only the decay time (not hold plus decay) by the time constant, so any hold time was effectively dropped from the written decay.
- Elektron Tonverk Multisample (thanks to Douglas Carmichael)
- New: Relabelled "Elektron Tonverk Multisample" to not confuse it with the new "Elektron Tonverk Preset".
- Fixed: Loops were dropped when reading the multi-sample mapping (.elmulti/.eldrum) format - the loop was parsed but never attached to the sample zone, so converted instruments lost their loop.
- Fixed: A mapping slot without explicit sample-trim points read a sample start and end of -1 instead of the whole sample (e.g. a converted Waldorf QPAT then showed a sample start and end of -1 on the device).
- EXS24
- New: Read/write filter envelope depth from/to modulation matrix.
- Fixed: Loop type was not applied.
- Fixed: Envelope times were converted from the EXS24 parameter linearly, but the device applies a fourth-power curve, so short times were greatly overstated - and the attack stage additionally skipped even the linear scaling, coming out about 12.7 times too long on top of that. A quick attack (e.g. 7.5 ms) was read as over a second, so plucked and struck instruments faded in too slowly to be heard and appeared silent. Envelope times are now converted with the hardware-calibrated curve seconds = 10 * (parameter / 127)^4, matching Logic to within one percent (thanks to Douglas Carmichael).
- FLAC/OGG
- Fixed: FLAC or OGG samples stored inside a ZIP archive (e.g. discoDSP Bliss or DecentSampler libraries) could fail to decompress.
- Fixed: Stereo (multi-channel) samples stored in a compressed format were truncated to half their length when decompressed while writing to an uncompressed destination.
- Fixed: Implemented workaround for converting 32-bit FLAC files (might not always work).
- Fixed: The number of sample frames (and the bit resolution) of an OGG file was reported as -1, since Vorbis does not store them in its header. Every destination format that works with the sample length wrote corrupt values for OGG sources - e.g. a Waldorf Quantum/Iridium preset converted from an SFZ with OGG samples wrote its loop points as large negative numbers instead of [0..1] fractions, so the device could not resolve the sample maps and showed the "Locate Samples" screen. The frame count is now read from the granule position of the last Ogg page (thanks to Douglas Carmichael).
- Fixed: Decoding an OGG file dropped the final Vorbis block (about 10ms for a 44.1kHz file): the Java Sound wrapper around the decoder stops draining it at the last whole block and ignores the end-of-stream length trim. Every converted sample came out slightly short and sample loops ending at (or near) the end of the file lost their loop end. OGG files are now decoded with a direct decoder that drives the same underlying engine but emits all sample frames - the output length matches the granule position of the last Ogg page, so sample positions and loop points are sample-exact (thanks to Douglas Carmichael).
- Maschine 1
- Fixed: File version number was always written as 0.
- Maschine 2/3 (thanks to Douglas Carmichael)
- Fixed: The modulation (filter/pitch) envelope times were converted incorrectly. When reading, the attack and decay were left in milliseconds instead of seconds (a thousand times too long) and the release skipped the time-curve mapping entirely; when writing, the release skipped that mapping as well. The modulation envelope now uses the same conversion as the amplitude envelope.
- MPC
- Fixed: Program in XTY file was not read.
- Omnisphere
- New: Added support for reading envelope slopes.
- New: If the required folder structure is not found when reading an Omnisphere preset, the files are now also searched in the same folder as the preset file.
- Fixed: Reading an Omnisphere preset with multiple sample voice elements did only return the samples of the last voice.
- Fixed: Save formatting of ampersand character when writing.
- SoundFont 2 (thanks to Douglas Carmichael)
- New: A note is logged when the analyzed sample pitches of a preset consistently contradict its root keys by whole octaves, so presets that will sound octaves off are visible before converting (several E-mu E4 Producer Series presets carry roots one octave above the samples' true pitch) - the new Transpose processing option can correct this.
- New: Added a "Keep mismatched stereo samples as mono" source option (off by default). Some SoundFonts - notably commercial E-mu banks - carry unreliable stereo links that flag two unrelated mono samples as a stereo pair; if their left and right halves also differ in length they were welded into a single stereo sample. When the option is enabled a length mismatch keeps the two samples separate as mono (a pitch or sample-rate mismatch always does). It is off by default because some banks contain genuine stereo pairs whose channels differ slightly in length.
- Fixed: "Marker" presets that reference no samples (commercial SoundFonts often include one or two named after the vendor or copyright, e.g. "E-mu Systems 2007") were converted into empty instruments. Presets without any samples are now skipped.
- Fixed: Marker presets whose samples contain only digital silence are now skipped as well - the E-mu E4 Producer Series banks mark their vendor presets with half a second of dithered silence instead of no sample at all.
- Fixed: Stereo pairs with one channel that simply carries extra frames at its start (its loop and its length are offset by the same amount, e.g. every right channel sample in the DigitalSoundFactory E-mu E4 banks is 1 frame longer and loops 1 frame later) are now re-aligned when the channels are combined, instead of writing a skewed stereo file and warning about a loop mismatch.
- Fixed: The "left and right samples do not match" notices (differing pitch, sample rate or length) are now only shown when the "log unsupported attributes" option is enabled, so a normal conversion of a quirky bank is no longer flooded with warnings.
- TX16W
- Fixed: First check if the referenced absolute sample file path exists before searching all local folders.
- Waldorf Quantum/Iridium (thanks to Douglas Carmichael)
- New: The preset Author and Bank fields can now be set with the Author and Bank creator options (or the CLI parameters QPATAuthor / QPATBank); leaving them empty keeps the values from the source. This lets a converted library be tagged so its presets are grouped and browsable by author and bank on the device.
- New: A layered preset - one that stacks several samples on the same note (e.g. a body plus a swell, common in rompler banks) - is now spread across the three oscillators instead of collapsing into one, so the sound keeps its full body. Each set of zones that would sound simultaneously gets its own oscillator (up to three).
- Fixed: Sample Loop mode 2 was not set to alternating but backwards.
- Fixed: Samples were referenced with a leading drive number (an absolute path such as
4:samples/...). This caused two problems on the device: a preset placed on a drive other than the hard-coded one showed the "Find Sample Map" screen and the samples had to be located by hand, and the device doubled the prefix when using its own "Export -> With Samples" (e.g.3:2:samples/...), so the samples could not be backed up. Sample paths are now written relative to the preset, which the device resolves against the folder the preset was loaded from - the samples load automatically on any drive and export/back up cleanly (confirmed on Iridium OS 4). - Fixed: A very short envelope time (at or below 0.06 seconds - in particular a zero attack, decay or release) was written as an out-of-range parameter value; exactly zero produced negative infinity. The corrupt value could cause a click at the start of every note on the device. Such times are now clamped to the shortest representable value.
- Fixed: A very short but non-zero envelope attack, decay or release (below the ~0.06 second device minimum) collapsed to parameter value 0, i.e. an instant stage, which still clicked on note-on and note-off for samples that do not start or end at a zero crossing. Non-zero times are now clamped up to the shortest audible value instead of to instant, while a genuine zero stays an instant stage (verified on Iridium hardware).
- Fixed: A patch with more than one sample map (a multi-oscillator sample-based patch) wrote every map's resource offset as 0, so on the device maps 2 and 3 were read overlapping map 1 and their samples could not be located - the device showed the "Find Sample Map" screen. Each map's offset is now written as the running total of the preceding maps' lengths (verified on Iridium hardware).
- Fixed: An amplitude envelope with no attack and no decay that sustains below full level popped at the start of every note - the device snapped to the 100% attack peak and instantly dropped to the sustain level. Such an envelope is now written flat (full sustain) with the sustain level folded into the sample gain, so the loudness is unchanged but the discontinuity is gone.
- Fixed: A sample zone without an explicit start/end (e.g. converted from a format that stores only loop points) was written with a sample start and end of -1; the whole sample is now used.
- Fixed: A preset created from a single sample played at a fixed pitch instead of following the keyboard, because the Particle oscillator was not switched to its "Normal" sample mode (thanks to Douglas Carmichael).
- Fixed: Sample start/end and loop positions are now clamped to the [0..1] range expected by the device. Source formats may reference positions slightly beyond the length of the audio data, e.g. loop points authored for the original sample but shipped with a lossy-compressed file that decodes to a marginally shorter length.