[Top][All Lists]

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

Re: [fluid-dev] Feature Request for fluidsynth PRESET CHANGE

From: Josh Green
Subject: Re: [fluid-dev] Feature Request for fluidsynth PRESET CHANGE
Date: Wed, 09 Jan 2008 02:21:09 -0800


On Tue, 2008-01-08 at 19:35 +0100, Lutz Morelater wrote:
> Hi,
> some time ago I wrote about a feature I would have liked to be implemented in 
> fluidsynth. Because I never had enough time to look after that I had 
> forgotten about it. Now it is time to let it live up again ;-)
> The feature I would like fluidsynth to have is about the Preset Change 
> command.
> Normally, it works like this:
> Fluidsynth receives "preset change XXX on channel YYY". It then switches off 
> the sound currently playing on that channel YYY and turns on sound XXX for 
> this channel. This is the standard behaviour of this MIDI command.
> BUT:
> even on today's fast computers this means, we can select one sound at a time 
> only. We can combine several channels to play simultanously but we can never 
> have two or more instruments on the very same channel and change between 
> them. We also might need additional software that merges several MIDI 
> channels into one channel.
> This is where my request enters the stage.
> Why not have a second mode for the PRESET CHANGE command that does not switch 
> sounds for a channel but toggle them? So, when receiving "preset change XXX 
> on channel YYY" what happens is that if XXX is already playing on that 
> channel YYY the sound will be switched off, and if ABC is playing on that 
> channel YYY then both sounds are now playing, i.e. XXX and at the same time 
> ABC.
> This feature would be really nice to have. It is like pulling and pushing the 
> stops of a church organ with the PRESET CHANGE command. There are several 
> nice sound fonts that contain interesting synth sounds well worth combining 
> like stops, and we could then combine just about any sound with another sound 
> very easyly. Setting more than 128 sounds could be possible by using the bank 
> change command.
> Another request which is an extension of the above request.
> Looking at hardware synths, keyboards etc. we might find an option for the 
> PRESET CHANGE command that does not switch sounds but complete presets.
> When receiving a PRESET CHANGE command in this mode the synth does not only 
> set/switch sounds for one channel, it also sets the sounds for all channels, 
> their chorus and hall values, footswitch settings, volume settings etc. The 
> channel parameter of this command is ignored while in that mode.  wonder if 
> fluidsynth could have this mode too, so that a simple PRESET CHANGE command 
> sent by any MIDI device would let fluidsynth load one/several soundfont 
> files, set the sounds for all channel, set volume, chorus and hall values. I 
> think that would be great.
> So, this would mean there are three different modes for the PRESET CHANGE 
> command, and if fluidsynth knew all of them it could even switch itself from 
> one mode to another, depending on its settings.
> What do You think?
> Kind regards,
> Crypto.

Sounds like layering to me :)  As you may or may not know it is indeed
possible to combine instrument sounds together in a single SoundFont
instrument.  This would require editing the file of course though.  I
assume you mean having 2 or more sounds sound when a note is pressed,
rather than trying to sort out which MIDI notes should be applied to
which instrument.

There is also a MIDI router feature of FluidSynth, which allows for some
interesting things like splitting the keyboard and perhaps even
layering.  I'm not real familiar with its syntax though.

One of the things I'm currently working on is a new XML based format for
creating virtual banks.  I'm planning on using this for defining a
session in Swami, to be able to combine instruments from multiple other
files, split them over the keyboard or layer them.  This would also
accomplish this task.

Its a good idea indeed to be able to do this on the fly.  Hopefully it
will be easier to accomplish this in the not too distant future.

Best regards,

reply via email to

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