I was doing some work with FluidSynth yesterday, and I had a problem with the release phase of the volume envelope.
First, some background…
With wind controllers the control sequence goes like this:
- CC2’s start and rise as the player starts to blow a note
- the note-on is issued when the velocity can be reliably calculated (usually after about 20msec), and the note starts to sound
- the CC2’s continue as the note is played
- the player stops blowing and the CC2s decline to zero
- the note-off is issued
The release phase of the ADSR envelope is triggered by the note-off command. When you are playing a wind sound with a keyboard you need the release phase to make it sound like a wind instrument because the volume is still high when the noteoff is issued. That’s not true with a wind controller - the note-off only occurs when the volume (CC2) has reached zero, so the release phase is never heard.
With the soundfont I was using, the release was too long (0.4 sec) and it meant that I had a problem playing play quick staccato notes. I was hearing the release phase of the previous note as the CC2s for the new note were starting (before the note-on). It was there for only a short time, but I could hear it clearly.
I hadn’t appreciated this subtlety before, and I realised that the volume envelopes for keyboard playing and wind controller playing should be different.