[linux-audio-dev] Correct sustain pedal emulation (midi hold controller) ?

Benno Senoner sbenno at gardena.net
Mon Oct 27 16:00:55 UTC 2003


Alfons Adriaensen wrote:

>On Mon, Oct 27, 2003 at 12:44:45PM +0100, Benno Senoner wrote:
>
>  
>
>>Assume no sustain pedal for now.
>>When I press C2 I hear the note. When I release it the sound does not 
>>vanish immediately but takes a small amout of time to decay due to the 
>>release envelope. If after releasing C2 I immediately press C2 again I 
>>hear two C2 notes for a brief time.
>>    
>>
>
>  
>
>>Now same situation as above but with the sustain pedal pressed.
>>You hear the first C2, release it (the corresponding note-off is 
>>postponed) and then press C2 again.
>>In that case is it correct that you must hear two sustained C2 notes.
>>Or must the first C2 be forced to get faded out  / muted ?
>>If not (eg you hear two sustained C2 notes), how far can this go ?
>>Can there be 3, 4 etc sustained notes on the same key too ?
>>    
>>
>
>Most synths will just restart the note on the same voice in both cases,
>i.e. begin a new attack phase at the level the previous (same) note had
>reached during its release. So there will one be at most one note of a
>particular pitch at the same time.
>
Keep in mind that linuxsampler streams its samples from disk so we can 
use very large sample sets.
There exist many high quality piano samples in .GIG format that have 4-8 
layers (velocity splits) for
pedal up and pedal down samples.
My question is mainly how to switch these samples.
What do you mean with "i.e. begin a new attack phase at the level the 
previous (same) note had
reached during its release" ?
You mean velocity level ?
Assume I press C2 with velocity 50 pedal up, the C2-pedalup (associated 
to velocity 50) sample sounds.
Now I press the sustain pedal and press C2 with velocity 100.
What should the sampler do ? Quickly fade out the C2-pedalup 
(velocity-50) note and trigger the
C2-pedaldown (velocity 100) note ?
And of course when you release the pedal all sustained notes will get a 
note-off.

for example I ordered  the PMI Steinway D Grandioso sample (5 GB of 
piano samples) in .GIG format
(see here for an mp3 demo, description etc: 
http://www.timespace.com/data/downloads/itemdetail.asp?ID=1133 )

 and I want that this library plays perfectly in linuxsampler thus we 
need some inputs for good sustain pedal
implementation.
As said we are not talking about string resonance emulation (yet), we 
just want those wonderful sample libs
to play correctly in linuxsampler and this includes correct (withhin the 
limits imposed by sampling) correct
sustain pedal emulation.

----
from a a review in SoS: 
http://www.soundonsound.com/sos/oct02/articles/sample_grandioso.htm:

One of the features that adds extra realism to Steinberg's /The Grand/ 
VST Instrument is its ability to crossfade between the sustain pedal up 
and down samples when you press and release the sustain pedal. While 
it's not currently possible to do this with /GigaStudio/, PMI will 
overcome this with a clever utility called /Virtuoso/, which provides 
the same functionality in /GigaStudio/ when combined with the /Virtuoso/ 
patches in the library. I say 'will' because although the /Virtuoso/ 
patches are supplied, the /Virtuoso/ utility itself isn't ready yet.
----

Is that feature called "re-pedaling" ?
IMHO it would be pretty easy to implement if you always start both 
samples (pedal-up and pedal-down) and then
crossfade between the two when the user presses the pedal. (besides from 
the fact that you need to defer note-offs
the pedal is down).
Or does that sound bad ?

The more and better inputs you will give us about how to implement 
sustain the more likely linuxsampler will
implement it correctly.

>Small pedantic note: a piano has more than one string per note, but
>you always play them all together :-) It's one of the reasons why a
>decent piano sound is quite hard to synthesize.
>
>  
>
Yes string resonance is the problem and not trivial to emulate (eg GEM 
RealPiano and The Grand VSTi perform some
kind of emulation), but for now let's focus to good playback of these 
high quality multi GByte instrument libraries.
Then if some skilled DSP developers want to join our quest and add 
string resonance (like The Grand VSTi does) then
even better.

cheers,
Benno
http://www.linuxsampler.org  
A professional grade sampler for Linux




More information about the Linux-audio-dev mailing list