sfztools/sfizz

Support `lotimer / hitimer` on release regions

Opened this issue · 0 comments

I finally got around to testing functionality of the new lotimer / hitimer opcodes, on trigger=release regions. For context, read the discussion in #1237. While lotimer / hitimer works as predicted on trigger=attack regions, it does not function at all for trigger=release regions, resulting in both release samples sounding at the same time.

Below is some of the example code I used for testing:

<group>
lokey=60 hikey=72
ampeg_release=0.1
amp_veltrack=0

<region> // Sustain region
group=1
sample=samples/sustain.wav
trigger=attack
lokey=60
hikey=72
ampeg_release=0.1 // Release fade, overlaps with short and long release regions

<region> // Short release region
group=1
sample=samples/short_release.wav
trigger=release
lokey=60
hikey=72
lotimer=0
hitimer=0.499 // This release should trigger ONLY if the sustain region is held 0.499 seconds or less.
ampeg_attack=0.1 // Attack time for crossfading
ampeg_decay=0.3 // Gradual decay to smoothly transition out

<region> // Long release region
group=1
sample=samples/short_release.wav
trigger=release
lokey=60
hikey=72
lotimer=0.500 // This release should trigger ONLY if the sustain region is held 0.5 seconds or more.
ampeg_attack=0.1 // Attack time for crossfading
ampeg_decay=0.3 // Gradual decay to smoothly transition out

See #1237 for further context. @redtide said to reopen the issue if I had any issues. I did comment a request to reopen, but I don't have permissions to reopen the issue.

Thanks for looking into this!
Pat