What's new

SFZ half pedaling

dore_m

New Member
@DSmolken Sorry for hijacking the other thread about documenting SFZ. Decided to move this half pedaling thread here.

I made a mockup that works fairly well for half pedaling, and it's only a few lines:

<curve>curve_index=11
v000=0
v032=0
v042=.1
v064=.3
v072=.4
v073=1
v127=1

<group> //Sustain samples

sustain_cc=90 //re-route default sustain pedal to CC90
ampeg_dynamic=1 //allow envelope to update on CC64 change
ampeg_attack=.005 ampeg_decay=0.5 ampeg_release=.8 //initialize default envelope
ampeg_release_shape=-6 //set the sustain curve dropoff curvature
ampeg_releasecc64=15 //make maximum release time 15 seconds
ampeg_release_curvecc64=11 //use the curve_index 11

I'm having some pianists try it out to see if its what they'd like. Meanwhile, I think it would be even better to control the LPF with the pedal CC64. Is it possible to get CC64 to control filter cutoff, but then only allow the cutoff to decrease? This would really simulate a half-pedal as the high frequencies are damped more than the low bass strings, but the high frequencies don't appear again as the note dies.
 

DSmolken

Senior Member
You could do something very similar to ampeg_release with fileg_release. Just remember two things... filter coutoff modulation (so the depth of the filter cutoff envelope) is measured in cents, so it'll be a larger amount of Hertz for the higher notes, and the base filter cutoff is measured in Hertz with configurable keytracking.

Not sure if that's a good thing or a bad thing in your scenario, but this might end up being a delicate balancing act to get it to behave as you want.
 
OP
D

dore_m

New Member
Thread starter
  • Thread Starter
  • Thread Starter
  • #3
Another SFZ question - as I've already implemented this in Kontakt. I'm looking to use a one pole band rejection filter so that low velocities sound darker. I think I should just use eqN_vel2gain for this, and I think I can probably manage it. However, I only want velocities from 0-64 to have an effect. Is there a way to create a custom velocity curve for this particular application?
 

DSmolken

Senior Member
Yes, though it'd be mildly kludgy. I think this is how it works...

EqN_vel2gain won't let you use curvecc, so if you want nothing above velocity 64, then split your instrument into two modules. One is lovel=65 and has no filter. The other is hivel=64, has eqN_vel2gain set up, and also eqN_gain as a fixed offset, so the eqN_gain and eqN_vel2gain will add up to zero at velocity=64, and then add up to negative numbers below that.

You could do eqN_gain_oncc131 and then apply curvecc with that, I thiiink, though not 100% sure if curvecc works with the extended CCs. But I'm not sure if that might not be a bad idea anyway... CC131 is a global parameter, and if you play a note then play another note, then CC131 changes. Depending on how the SFZ player interprets this, this might cause the new note's CC131 to be used to recalculate EQ values for all currently ringing previously played notes. You could try that and see what happens, I've used CC131 to make velocity tracking adjustable in some synth-type instruments, but if you play a hard chord down low then follow up with a very soft high note it might end up eating into your hard chord's frequencies.
 
OP
D

dore_m

New Member
Thread starter
  • Thread Starter
  • Thread Starter
  • #5
Got it. Don't know why I didn't think of that. I'll give it a try
 
Top Bottom