Repository navigation
Changelog entries for all open fix PRs, collected so the PRs merge conflict-free - #283
Closed
douglas-carmichael wants to merge 5 commits into
Closed
douglas-carmichael wants to merge 5 commits into
douglas-carmichael wants to merge 5 commits into
Conversation
Every open fix PR inserted its changelog entry near the same lines of the 19.2.0 section, so each merged PR turned the remaining ones into trivial conflicts. The entries now live in this one commit - one section per format in alphabetical order, entries of the same format merged under one heading - and the fix PRs no longer touch the changelog at all, so they merge cleanly in any order. Each PR quotes its entry in its description as well.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
douglas-carmichael
added a commit
to douglas-carmichael/ConvertWithMoss
that referenced
this pull request
Jul 29, 2026
The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR git-moss#283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…ame pattern (#280) * Disting EX: accept the creator's _RR round-robin suffix in the file name pattern The creator names round-robin samples with an '_RR<n>' suffix but the detector's file name pattern only accepted '_R<n>'. Since the pattern must match the whole name, such files did not match at all and the note, key-switch and velocity information of every round-robin sample was lost when reading. The pattern accepts both spellings now. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
* DecentSampler: read unit-less volume values as linear amplitude A volume value without a dB unit is a linear amplitude but was scaled as 'value times 6dB': volume="0.5" (-6dB) read as +3dB, and an explicit volume="1.0" (0dB) read as +6dB and thus differed from an absent attribute. Unit-less values now convert as 20*log10(value). * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…r envelope depths (#278) * SFZ: anchor crossfades inside the zone range and write negative filter envelope depths The key and velocity crossfade ranges (xfin/xfout) were anchored outside of the zone's range, where the zone does not even play, and for zones at the range edges the 0/127 clamps collapsed the fade range: a fade at the top of a full-velocity zone was written as the empty range 127..127 and lost. The fades are now written inside the zone's range. A negative filter envelope depth (a downward sweep) was silently dropped by the '> 0' gate; the opcode is now also written for negative depths, matching the SF2 fix of the same defect. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…277) * Reason NN-XT: decode the velocity fade-out from its inverted storage The velocity fade-out was read raw although it is stored inverted - 0x80 means off, otherwise the value is 127 minus the fade range, exactly as the writer in the same class encodes it. A zone without a fade read as a fade over the whole velocity range, and a fade of e.g. 27 velocities read as one of 100. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…#276) * TAL Sampler: always write the volume and default a missing one to 0dB The creator omitted the volume attribute for 0dB zones, but the reader's default for a missing attribute decoded to about -21.8dB (raw 0 through the volume law), so every zone of a read-back .talsmpl dropped by that amount. The volume is now always written and the reader's default is the raw value which represents 0dB. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…n signed read (#275) * DLS: fix the pitch envelope times, the fine tune unit and a big-endian signed read The pitch envelope was built with the times of EG1 (the amplitude envelope) instead of its own EG2 times. The fine tune of a region is stored in cents but was divided by 32768 as if it were a semi-tone fraction, which erased the detune of every region. While verifying, the signed 16 bit accessor of the RIFF chunk framework turned out to read big-endian although RIFF is little-endian throughout - the region fine tune, its only user, additionally came out byte-swapped. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
) * NI Kontakt: skip the zones of muted groups and honor soloed groups The muted and soloed flags of Kontakt 4.2/5+ groups were parsed but never used, so the zones of muted groups - often alternate articulations parked by the sound designer - stacked onto the active ones. Zones of muted groups are now skipped; if any group is soloed, only the soloed groups are converted. The missing-group consistency check of the zone loop is unchanged. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…dulator (#273) * NI Maschine: write the velocity to volume amount from the velocity modulator Both the Maschine 1 and Maschine 2 writers took the velocity to volume amount from the amplitude envelope modulation depth (which defaults to 1.0) instead of the velocity modulation amount of the zone - the slot the readers correctly fill. A source without velocity response became fully velocity sensitive. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…source (#271) * Ensoniq EPS/ASR: fix the pitch bend unit and the filter key tracking source The pitch bend range was passed as semitones into the model's cents field, so the bend wheel effectively did nothing on converted instruments. The filter keyboard tracking was read from the filter envelope amount instead of the filter key amount field, which the wave-sample already provides. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…er and the envelope depth source (#270) * Ensoniq Mirage: fix the oscillator mix gain law, the phantom OSC2 layer and the envelope depth source The oscillator mix cross-fade computed linear amplitudes (10^(dB/20) times an equal-power coefficient) but stored them through setGain, which expects dB - every level relationship was destroyed and a muted second oscillator became full volume. The cross-fade coefficients are now converted to dB and added onto the wave-sample level. The second oscillator zone was added to its group unconditionally (a detuned phantom layer on every program) and additionally to the first group when the mix was active (the same zone twice); it is now added once, only when the mix opens it. The envelope modulation depth was taken from the velocity-sensitivity parameter although 0 means 'velocity has no effect', so most programs lost their amplitude envelope; the envelope now always applies with full depth and the parameter feeds the velocity modulation amount of the level and the filter cutoff. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
… loop detune source (#269) * Ableton: fix unset envelope levels, stripped modulation signs and the loop detune source An unset envelope start or end level was written as 1.0 although Live's default is silence, so a slow-attack pad converted with no swell (the envelope ramped from full to full) and unset pitch-envelope levels became a full-depth offset; unset start/end levels are now 0, unset hold/sustain levels 1. The filter and aux (pitch) envelope amounts were read through Math.abs, so downward sweeps inverted on reading. The detune of the sustain loop was read from the multi-sample part element - the zone tuning, which was already applied - instead of the sustain loop element, so the zone detune doubled up as loop tuning after a round trip. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…envelope levels (#268) * Roland ZEN-Core: read the partial pan and velocity window and signed envelope levels The reader only collected the wave numbers of the tone partials and ignored their pan and velocity range, so a stereo instrument - two hard-panned partials over two mono multi-samples, which is also what the creator writes - collapsed into stacked centered zones, and velocity-layered tones sounded all layers at once. Each partial's zones now receive its pan and velocity window, and a partial whose right wave number differs from its left one is read as a stereo pair. The levels of the pitch and TVF envelopes are signed 16 bit values (the writer already writes them signed) but were read unsigned, which turned e.g. a pitch envelope starting at -1023 into one starting at the positive maximum. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…ange and 12 bit unpacking (#267) * Akai legacy formats: fix signed reads, tuning and volume laws, bend range and 12 bit unpacking MPC2000/3000: the tune of a program pad and of a SND sample were read unsigned, so every negatively tuned pad came out drastically sharp. S1000/S3000: the pitch bend range was passed as semitones into the model's cents field; the program volume (0..1) was written directly as the dB gain of every zone, overwriting the per-layer loudness; the fraction byte of the fixed point keygroup tunings was treated as signed, so negative fine tunes came out a semitone flat, and the sample header tuning in literal cents is no longer rescaled. AKP/AKM: the same bend range unit defect; the multi part volume was multiplied onto the dB gain (a no-op for 0dB zones) instead of added as a dB offset and the part panning was scaled twice as wide as the field. S900/S950: the fractional nominal pitch was applied with an inverted sign, so an off-pitch recording was doubled instead of corrected, and the loudness offset was read unsigned. MPC60: the 12 bit sample data was unpacked with the low nibble at 1/16 weight and byte-swapped; the bits are now left-justified as in the reference implementation. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
* TX16Wx: fix the wave ID scope and the pitch envelope depth scale The wave IDs of a written program restarted at 0 for every group although they must be unique across the program, so all regions of a multi-group program resolved to the waves of the last group. The reader also shared one zone object per wave between all regions referencing it, so their key and velocity ranges overwrote each other; every region now gets its own zone object. The depth of a pitch envelope was written in cents of the full model depth but read as a fraction of 4800 cents, which inflated it 2.5 times on every read. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…tion range (#265) * Renoise: read and write the pitch envelope depth via the pitch modulation range The depth of a pitch envelope was hard-coded to 1.0 when reading, which equals the model maximum of 120 semitones, although the full swing of the bipolar pitch AHDSR device is the pitch modulation range of the mixer device (12 semitones by default) - and the depth was discarded when writing. The depth is now derived from the pitch modulation range when reading, and writing chooses the range from the model depth (clamped to 1..96 semitones). Since the range scales every modulation device targeting the pitch, the pitch LFO amplitude conversion uses the same range. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…-one-shots and kit drum tuning (#264) * Synthstrom Deluge: fix the velocity amount slot, the loop mode of non-one-shots and kit drum tuning The velocity to volume patch cable was read into and written from the amplitude envelope modulation depth instead of the velocity modulation amount of the zone, so a source without velocity response became fully velocity sensitive and vice versa. An instrument without loops which is not a one-shot was written with the loop mode ONCE, which ignores a note-off on the device; it is now written with CUT, which stops the play-back on a note-off. The transpose and cents of a kit drum were discarded when reading a kit since the pad note is used as the root - they are now read as a pitch offset, so pitched kit drums keep their tuning. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…the +12dB boost and the tune range (#263) * Korg KMP/KSF: fix the stereo split criterion, the sample start mask, the +12dB boost and the tune range Writing split-stereo zones sorted them into the left and right KMP by their tuning instead of their panning, which left the left KMP empty. The sample start of a KSF was masked with 0xFFF instead of 0xFFFFFF although the comment already documents 3 bytes, so starts of 4096 frames or more wrapped around. The +12dB boost flag summed the linear powers instead of adding 12dB to the gain. The tuning was cast into the single byte tune field without range handling, so more than +-1.27 semitones wrapped around; whole semitones are now folded into the original key and only the remaining cents are written. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…nd duplicated performances (#262) * Yamaha YSFC: fix the envelope time quantization, the doubled tuning and duplicated performances The lookup from seconds into the envelope time table compared against the truncated integer value of the table entries (which range from 0.2 to 90 seconds), so every sub-second time landed on the first entry whose neighbour reaches 1 second - about 0.9 seconds - in all written AEG, FEG and PEG times. The tuning of a zone was written to both the keybank and the element although the device and the reader sum the two, which doubled the detune; the element tuning is now left neutral. When reading performances, the performance source was added to the result list inside the part loop instead of after it, so a multi-part performance was output once per part. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…yout, the cutoff velocity modulator and the group panning (#261) * Logic EXS24: fix the velocity sensitivity, the new-parameter block layout, the cutoff velocity modulator and the group panning The velocity sensitivity of the volume envelope was read and written inverted (-60dB means full sensitivity but was treated as none), so a written EXS did not respond to velocity in Logic although a round trip masked the defect. The parameters with IDs above 255 were written with all IDs first and all values afterwards while the reader and Logic expect interleaved records, and the padding loop wrote 4 zero bytes per unused slot into the value stream of the old parameter block - the envelope delay and the attack slope were lost from every written file. The velocity modulation of the filter cutoff was formatted but never added to the file. The panning of a group was decoded from two's complement a second time although the group already decodes it when read, which sent every left-panned group hard left. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…unt source (#260) * Waldorf QPAT: fix the pitch matrix amount offset and the velocity amount source The amount of a matrix entry routing a free envelope to the oscillator pitch was decoded with an offset of -1.0 although the creator encodes the amount as value = depth + 0.5, so every positive amount was read as a negative one (+50% as -25%) and +100% was read as 0 and dropped. The creator also wrote AmpVeloAmount from the amplitude envelope modulation depth instead of the velocity modulation amount of the zone, which turned a source with 0% velocity sensitivity into +100%. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…defects (#259) * 1010music: fix the blackbox loop cross-fade attribute and four bento defects The loop cross-fade of a blackbox pad was read from the loop-end attribute instead of the fade-amount attribute, so virtually every looped pad got a cross-fade spanning the entire loop. In a bento project an OMNI performance instrument was written with MIDI input channel 'Off' (the blackbox got the same fix in 19.1.0), the loop type and cross-fade of a cell were assigned from themselves instead of the default loop (ping-pong loops read as forward), the sample length was treated as an absolute end position although it is the play-back length, and the root velocity was written as half the width of the velocity range instead of its mid-point. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
… on the boundary key (#258) * Elektron Tonverk: do not let adjacent multi-sample key ranges overlap on the boundary key The upper bound of a zone and the lower bound of the following zone evaluated the identical mid-point expression, so both zones owned the boundary key: a chromatic multi-sample double-triggered nearly every note with a copy transposed one semitone down. The lower bound now continues one key above the previous zone's upper bound, exactly like the velocity ranges already did. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
… signed parameters signed and let envelope value 0 be instant (#257) * Roland S-7xx: add the panning stages instead of multiplying, read the signed parameters signed and let envelope value 0 be instant The three panning stages (patch, partial and sample mix) were multiplied, so a centered stage - the default - erased the panning of all others: the stereo image of every factory patch built from hard-panned sample pairs collapsed to doubled mono. On the Northstar Drumscapes library CD-ROM all 3765 panned zones were read dead center; they now carry their pans. Five signed parameters (TVF envelope depth, pitch envelope depth, cutoff velocity sensitivity, cutoff key follow, TVA level key follow - all documented -63..63 and read signed in their sibling fields) were read unsigned, inverting and overranging every negative value. The envelope time law missed that 0 means instant, so every stage was at least 302 ms long - including a fabricated 302 ms delay before every note, which 3204 zones of the same CD-ROM carried into the converted files. The identical law of the MV-8000 already handles the 0 case. Envelope times which are really programmed are unchanged. A loop cross-fade was fabricated from the fractional address bytes of the loop points; the S-7xx has no loop cross-fade parameter. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…e crossfade mix-ups (#256) * NI Kontakt: fix the Kontakt 1 cutoff scale, the NKM clip key and three crossfade mix-ups The filter cutoff of a Kontakt 1 file is stored logarithmically normalized to [0..1] but was read as a frequency in Hertz - a mid-range filter became a low-pass below 1 Hz and the converted preset was practically silent. Writing was already correct, which is why round trips through ConvertWithMoss hid it. The upper key limit of an instrument in a Kontakt 1 multi was stored via setClipKeyLow, so the clip range became [high..127] and destinations which apply it dropped or mis-clipped most zones. The upper velocity crossfade of a written Kontakt 1 file was calculated from the lower velocity crossfade value; the loop cross-fade was the cross-fade fraction (0..1) cast to a whole number, so every cross-fade became 0 samples although the field is a length in samples; and the lower velocity crossfade of a Kontakt 4.2/5+ zone was read from the lower key crossfade field (the velocity getter existed unused). * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…ance decade and keep negative envelope amounts (#255) * SoundFont 2: apply preset-level generators to defaults, fix the resonance decade and keep negative envelope amounts Generators which only appear on the preset level were dropped entirely when the instrument level did not carry the same generator, although the specification defines them as offsets to the default value in that case. A preset whose global zone transposes a plain instrument down an octave was read an octave too high, preset-level attenuation and envelope offsets vanished, and a preset-level filter offset never created a filter. The offset is now applied to the instrument value or to the generator's default, and it is sign-converted on the unsigned lookup path as well. The filter resonance was read as centibels divided by 100 instead of 10, so every resonance came out ten times too small and each round trip divided it by ten again; writing was already correct. Negative pitch and filter envelope modulation amounts (downward sweeps) were dropped when writing although both generators are signed in the format and reading them was already correct. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…ection (#254) * WAV: decode and encode the sample chunk's unity note in the right direction The sample chunk stores a note with a negative fine tuning as the next higher unity note with the complementary positive fraction. The correction was applied in the wrong direction on both sides: reading added 1 to the unity note where 1 must be subtracted, writing subtracted where it must add. The two errors cancelled between our own reader and writer, which is why round trips never showed it - but any WAV from another tool whose pitch fraction is above 50 cents was read two semitones off, and every written WAV with a negative fine tuning carried a unity note two semitones below what conforming samplers expect. Additionally the fine-tuning merge in WavFileSampleData was not gated on the root being unset, so a sample chunk with a fraction above 50 cents overwrote the root key which the preset format itself supplied - a Bitwig multisample zone with an explicit root ended up more than two octaves off. The chunk's root key and fine tuning are now only used when the format does not provide a root of its own. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…brary CD-ROM banks (#252) * E-mu Emulator III: repair the truncated zone sample indices of the library CD-ROM banks Many banks of the E-mu library CD-ROMs were mastered with a tool chain which wrote the 16 bit sample number of a zone through 8 bits: the low byte is the true sample slot modulo 256, the high byte is zero or stale garbage. A preset whose samples sit above slot 256 therefore played completely unrelated material and a number whose garbage high byte survived pointed outside of the bank and lost the zone. The true slot is inferred per preset from the note names which the E-mu sample names carry, the preset name occurring in the sample names and the feasibility of each 256-page against the sample table; a preset whose evidence is ambiguous keeps its stored numbers. Across the eight library CD-ROMs this repairs 4756 sample references in 821 presets of 32 banks and brings the missing-sample reports down from 641 to 37; all other banks are read bit-identically to before. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
…249) * ISO/IMG: read the Emulator III images of the shared E-mu filesystem An image which uses the proprietary E-mu disk filesystem was handed to the Emulator IV alone. The EIII, EIIIX and ESI samplers write the same filesystem, so a CD-ROM of theirs was identified correctly and then rejected with 'No Emulator IV banks found' - the generic format could not read the very images the E-mu Emulator III format reads directly. Both formats are tried on such an image now. Neither can read the banks of the other, so a format which finds nothing only means the image belongs to the other one; the image is reported as empty only when both come up empty. Reading the banks was split out of the two detectors so that they no longer report an empty image themselves. Verified on 'EIIIX Vol. 13 Dance 2000': 755 presets through the ISO/IMG format where it found none before, and the E-mu Emulator IV images are unchanged at 2885 presets over two CD-ROMs. The filesystem is also named 'E-mu Emulator III/EOS' now instead of only 'E-mu EOS', which claimed the wrong sampler for half of these images. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
git-moss
pushed a commit
that referenced
this pull request
Jul 29, 2026
* E-mu Emulator III: do not create a filter which cannot be heard A low-pass parked above the audible range only counted as the bypass state of the samplers when the resonance, the envelope amount, the key tracking and the velocity amount were all zero. Many banks leave their default velocity-to-cutoff or key tracking in place, so those zones still got a filter - written at the maximum cutoff the destination allows, where it changes nothing but does split an instrument into separate modulation sets. The reported 'VFX Miami Pad' is four zones of which three sit at the fully open 0xEF; they carry velocity 71 and tracking 0x40 and therefore kept a filter at Renoise's maximum of 127. Only a negative envelope or velocity amount lowers the cutoff, and the key tracking lowers it below the root key, so the smaller of the cutoff and its value at the lowest key of the zone decides. Taking the smaller of the two matters: a positive tracking must never lift a cutoff which is audible at the root over the limit. Measured over four library CD-ROMs: 19201 of the 23327 filters at or above 20 kHz are dropped and every one of the 10333 audible filters is kept, unchanged in number before and after. * Move the changelog entry to the collected changelog PR #283 The open fix PRs all inserted their changelog entries near the same lines, so every merged PR turned the remaining ones into conflicts. The entries of the whole batch are collected in PR #283 and quoted in each PR's description; the fix branches no longer touch the changelog, so they merge cleanly in any order.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The open fix PRs (#246-#249, #252-#282) all inserted their changelog entries near the same lines of the 19.2.0 section - so every merge would have turned the remaining PRs into trivial-but-annoying changelog conflicts. To keep the whole batch mergeable in any order:
CHANGELOG.mdat all. Their code changes are in disjoint files, so they now merge cleanly in any order and any subset. Each PR quotes its changelog entry in its description.Merge it whenever it suits - after the whole batch, or cherry-pick lines as you take individual PRs; since you groom the changelog anyway, feel free to just treat this as raw material.