Synthstrom Deluge: carry filter & amplitude patch-cable modulations (keytrack, filter envelope, velocity)#161
Open
douglas-carmichael wants to merge 1 commit into
Conversation
…o QPAT The Deluge stores keyboard tracking, the filter envelope and velocity sensitivity as patch cables. Previously only the amplitude envelope and the static filter cutoff/resonance were read, so converted patches lost these: - Filter cutoff keyboard tracking (note -> filter frequency): written to the Waldorf Quantum/Iridium Filter1Keytrack/Filter2Keytrack (new), so a patch keeps its brightness up the keyboard instead of going dark in the upper octaves. - Filter modulation envelope (envelope2 -> filter frequency): its ADSR shape and amount now fill the filter cutoff envelope modulator. - Filter velocity (velocity -> filter frequency): fills the filter cutoff velocity modulator. - Amplitude velocity (velocity -> volume): fills the amplitude envelope modulator depth. The Waldorf QPAT creator already wrote the envelope/velocity amounts (always zero without a reader to fill them); only Filter1Keytrack/Filter2Keytrack is a new write. Patch-cable amounts map to a normalized [-1..1] depth via the new DelugeValues.patchAmountToModulationDepth, the single place to calibrate it.
acd05c9 to
7987d71
Compare
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 Deluge stores keyboard tracking, the filter envelope and velocity sensitivity as patch cables under
defaultParams. Until now the reader only picked up the amplitude envelope and the static filter cut-off/resonance, so a converted patch lost those modulations - most audibly, a patch with filter keyboard-tracking came out dark in the upper octaves because it could no longer open up as you played higher.This reads four patch-cable modulations and routes them to the shared model so any creator that supports them can write them:
note-> filter frequencyIFiltercutoff key-tracking (new)Filter1Keytrack/Filter2Keytrack(new write)envelope2-> filter frequencyFilter1Env*+Filter1EnvAmountvelocity-> filter frequencyFilter1VeloAmountvelocity-> volumeAmpVeloAmountNotes for review:
IFiltergainsgetCutoffKeyTracking()/setCutoffKeyTracking(double)(range [-1..1], 0 = no tracking), implemented inDefaultFilter(the only implementation - field, getter, setter,equals/hashCode). The other three modulations reuse existing model fields.Filter1Keytrack/Filter2Keytrackis a new write inWaldorfQpatCreator. It already wroteFilter1EnvAmount,Filter1VeloAmountandAmpVeloAmount, but no reader ever filled those depths, so they were always 0 - they now carry real values.DelugeValues.patchAmountToModulationDepth(= amount /0x3FFFFFE8), kept as the single calibration point.Verified end-to-end on a Deluge -> Waldorf Iridium conversion of a sampled pad: the
note->lpfFrequencyamount0x0F5C28F0becomesFilter1Keytrack0.62 (+24 %), theenvelope2->lpfFrequencyenvelope shape and amount carry across, andvelocity->volumebecomesAmpVeloAmount+100 %. Confirmed on the hardware - the patch is bright across the keyboard again.Documentation and CHANGELOG updated; a new limitation note records that effects (reverb / delay / chorus / etc.) are outside the multi-sample model, so a patch that leans on them can sound drier after conversion.
Based on current
main(includes #159). Follows up the Synthstrom Deluge support added in #152.