fluid-dev
[Top][All Lists]
Advanced

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

Re: [fluid-dev] Fluidsynth's volume is too "dynamic"


From: Pedro Lopez-Cabanillas
Subject: Re: [fluid-dev] Fluidsynth's volume is too "dynamic"
Date: Thu, 28 Jan 2010 12:24:36 +0100
User-agent: KMail/1.9.6 (enterprise 20070904.708012)

On Wednesday, January 27, 2010, address@hidden wrote:
> I think router_default and router_clear are probably working as
> defined.  

I Agree, this behavior has not changed ever, IIRC.

> Are you referring to the sustain pedal in regards to 
> velocity?  I'm pretty sure a sustain pedal is just on or off.  I'm a
> little confused still, about what you are experiencing.  Is the volume
> during sustain just not loud enough, or something else?  If you could
> help me clarify that in my own mind, it would be much appreciated :)

I think he talks about the standard MIDI control change message (CC 64 dec., 
0x40). When the value is < 63 it is off, and >= 64 it is on.
http://www.midi.org/techspecs/midimessages.php#3

If you don't have a MIDI keyboard/pedal that sends this message, you can 
simulate one using my program VMPK (http://vmpk.sf.net). Small howto:
1. View->Extra controls (activate the toolbar if it is hidden).
2. Press the "Edit" button at the left of the toolbar (or menu: Edit->Extra 
Controllers)
3. Press "Add", Label: sustain, MIDI Controller: 64, Type: Switch, leave the 
default off and on values. Press OK.
Now, you have a switch button labeled "sustain". When you click on it, it 
becomes green and sends a message CC=64 value=127 to the output port, if you 
click on it again, it sends a CC=64 value=0 and the button becomes gray. 

In FluidSynth, route_clear deactivates *everything*: all the controllers, not 
only sustain. I mean that after the following commands:
 
route_clear
router_begin note
router_end

FluidSynth will recognize notes, but not controllers or program changes, or 
any other message types. To activate controllers again, you need to execute 
the commands:

router_begin cc
router_end

The same for program changes. You can restore them again with:

router_begin prog
router_end

Regards,
Pedro




reply via email to

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