[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] FluidSynth velocity to attenuation curve

From: Ebrahim Mayat
Subject: Re: [fluid-dev] FluidSynth velocity to attenuation curve
Date: Tue, 19 Feb 2008 09:00:58 -0500

On Feb 16, 2008, at 10:15 PM, S. Christian Collins wrote: 
> I would like to propose that the FluidSynth velocity-to-attenuation 
> curve be made more sensitive. I have done a comparison between the 
> Sound Blaster Audigy's hardware SoundFont synth and FluidSynth and
> found 
> that at low velocities, FluidSynth is considerably louder than the 
> Audigy. I have created a package including actual numbers and a chart 
> for those interested. The package also includes a SoundFont and MIDI 
> file for performing your own tests. You can download it here:
> http://www.schristiancollins.com/temp/velo_curve_test.tar.gz

Hello Chris 
Very revealing observations indeed but I'd like some more specifics.

In your graph, velocity is measured in the range of 7 to 127. This I
imagine, is some sort of a MIDI scale for "playing strength" ?
In this context, what velocity ranges would correspond to pp, p, mp, mf,
f and ff ? Is the dB scale in terms of SPL or relative to some sound
intensity reference ? In essence, what I am really asking is how were
the sound intensity levels measured ? 
The second series of Middle C tones have interesting changes of timbres
Is this the result of tones triggered by the same velocity ? If so, was
this done simply by sample selection or some kind of sound processing
like a variation in envelope generator range ? 

(It is of course well known that dynamic range varies with instrument
type. Wind instruments, for example, have a very small dynamic range in
comparison to that of the piano.) 
The third tone series seems to have a different dynamic range in
comparison to the first but I can't say for sure. 

> The velocity-to-attenuation modulator is set by default to 96 dB. It 
> can range anywhere from 0 (no velocity curve) to 144 (maximum
> velocity 
> curve). On the Audigy, the default 96 dB setting creates quite a 
> dynamic range between loud and soft, but on FluidSynth there isn't
> much 
> variance at all. If I set an instrument to 144 dB velocity curve, it
> is 
> better, but FluidSynth's 144 dB setting is still not even as
> sensitive 
> as the Audigy's 96 dB! As a result, FluidSynth instruments lack 
> expressiveness and dynamic range.
> In my customized FluidSynth package, I have set the default 
> velocity-to-attenuation to 144 dB, although this still does not help 
> instruments that override the default setting. Changing the default
> to 
> 144 dB isn't a proper fix, but for anyone who wants to know, I
> changed 
> line 188 in fluid_synth.c from:
> fluid_mod_set_amount(&default_vel2att_mod, 960.0);
> to
> fluid_mod_set_amount(&default_vel2att_mod, 1440.0);

There is a clear audible difference when playing fluidsynth compiled
with your new setting i.e. the keyboard is certainly more responsive to
variations in playing strength which in my terms is a combination of
degrees of pressure and velocity of on-key actions. 
> This is something that should be fixed at a deeper level, though,
> which 
> I don't have the know-how to fix.

I agree, with some more tuning and experimentation an increased degree
of variation of velocity responsiveness could be achieved. 

While the point that the synthesis engine of FS needs to be
comprehensively revised has been broached before by Josh Green and
others, your insight into the limited dynamic range of FS could well be
a good point to start. 
My $0.02 E 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]