kpmuzik
Active Member
As the developer of Section Leader, I now present a multi script far less ambitious but hopefully far more usable: the Variable Delay Compensator (VDC).
Before I continue, I want to shout-out the currently available solutions for making "laggy" libraries easier to work with:
So first, I'd like to demonstrate the vernacular I've come to use regarding delay compensation: "If a library's legato transition takes 50ms to sound, it has 50ms of lag and therefore requires 50ms of lead (rhymes with "seed") to compensate." Basically, "lead" here is short for "lead time" as I got tired of saying "negative delay".
Alright, so let's take a look at the UI:
Indeed, it's not skinned this time, but I wanted to focus on "function" before going all-out on the "form".
As for how this works, we have lead conditions that choose lead algorithms. Lead conditions are defined by rulesets that are comprised of up to 4 rules that must all be satisfied before choosing its respective lead algorithm. Lead algorithms define the first-note leads and legato-note leads for up to 8 velocity ranges, each of which are identified by their max velocity.
Please refer to the attached PDF manual for all the details!
Changelog:
v1.6 (10/11/23)
Before I continue, I want to shout-out the currently available solutions for making "laggy" libraries easier to work with:
- @Ihnoc's CSS Control Panel (also a Kontakt multi script but geared towards CSS, CSW, and CSB)
- @ToadsworthLP's Foresight (a VST3 MIDI effect w/PDC)
So first, I'd like to demonstrate the vernacular I've come to use regarding delay compensation: "If a library's legato transition takes 50ms to sound, it has 50ms of lag and therefore requires 50ms of lead (rhymes with "seed") to compensate." Basically, "lead" here is short for "lead time" as I got tired of saying "negative delay".
Alright, so let's take a look at the UI:
Indeed, it's not skinned this time, but I wanted to focus on "function" before going all-out on the "form".
As for how this works, we have lead conditions that choose lead algorithms. Lead conditions are defined by rulesets that are comprised of up to 4 rules that must all be satisfied before choosing its respective lead algorithm. Lead algorithms define the first-note leads and legato-note leads for up to 8 velocity ranges, each of which are identified by their max velocity.
Please refer to the attached PDF manual for all the details!
Changelog:
v1.6 (10/11/23)
- Added support for acknowledging notes extended by sustain pedal (CC64). If the pedal is depressed before the last note-off, the next note-on will use a legato-note delay instead of a first-note as long as the pedal is still depressed.
- Added the “Original Note-Length Timing” mode made available by a new button in the Advanced Options page.
- Fixed issue with hanging notes occurring when transport-activation is on and DAW playback is stopped for certain virtual instruments in certain DAWs.
- Fixed issue with CC activity still being delayed when transport-activation should have suspended all delays.
- Now requires a least Kontakt 6.8.0 (up from 6.7.1).
v1.5.1 (9/12/23)
- Improved auto-bypass behavior by allowing keyswitches and other state-changing messages to pass through while transport isn't running.
- Added transport-based activation. Script bypasses itself if transport isn't detected so script-induced delays only occur during DAW playback. Stopped transport also resets state.
- Added "Advanced Options" page
- Global offset is moved here
- Added ability to set "playback gap" (used to be a hidden value): When forced to move an event "out of the way" to preserve note order in applying legato algorithms, this is the size of the gap it leaves between the event it "shoved" and the new event. This keeps note-on/-off events from ending up too close together for the instrument to process properly.
- Added toggle for transport-based activation (active by default)
- Added one-note trill support for CSS (bundled CSS preset now utilizes this): A lead algorithm can optionally send the extra note (as a blip) required to fully select a trill in CSS.
- Added version number to script title
- Improved status display when algorithm selection is underdetermined
- Fixed behavior of bypassed rulesets so that they properly can't be activated
- Fixed possible hanging notes upon transport stop when transport-based activation is on
- Fixed various issues possible when using different channels simultaneously in "Channel = Alg" mode
- Fixed oversight allowing queued keyswitches/CCs to default to channel 1 when used in a rule
- Fixed value_edit focus issue for rule editors
- Non-momentary keyswitches now transmit both a note-on and a note-off when released to play just before a playable note
- Fixed issue with channel-based logic implementation to keep queued events from affecting those of other channels
- Renormalized bundled CSS preset (+75ms) so advertised delay (upper-right) corresponds much more closely with the negative track delay you'll need to use
- Added option for channel-based logic
- Resaved multi script in Kontakt 6.7.1 for Kontakt 6 compatibility
Attachments
Last edited: