[PD] Re: multiple fluid~'s sharing large soundfonts

Frank Barknecht fbar at footils.org
Sun Mar 21 16:08:03 CET 2004

Larry Troxler hat gesagt: // Larry Troxler wrote:
> On Sunday 21 March 2004 06:30, Frank Barknecht wrote:
> > I have another idea in regard to the API. Would it be apt, to make the
> > sharing explicit in a second creation argument to fluid. I'm thinking
> > of the way, that the "pool" external make a shared data space that is
> > named by creation argument or changed through a "set somepool"
> > message.
> >
> > A similar case would be the table family like [tabread tablename]
> > which get the name of a shared array as creation arg, or with "set".
> >
> > This would look so, that [fluid~ /soundfonts/nskit.sf2 DRUMS] will
> > share its data with another [fluid~ /soundfonts/nskit.sf2 DRUMS]
> > instance, but not with [fluid~ /soundfonts/fluid.sf2 PIANO]
> >
> Ah, that's the idea I was looking for. This seems logical and consistent with 
> the rest of PD, but I think there are some details missing.
> In your example, what should happen if an object [fluid~ 
> /soundfonts/trumpet.sf2 DRUMS] is added? Should/can this be undefined 
> behavior? 

Uhm, that's a hard one. Undefined behaviour should be avoided, at
least undefined API behaviour. We will have to think deeper about
this, but I won't find more time for this today anymore. 

> Also, using this method, how would you create a fluid~ object that is in a 
> group with out initially loading a soundfont? For this reason should we 
> instead use an option syntax like "fluid~ [sounfont] group=<groupname>"?. If 
> done this way, this syntax could also be handing for specifying fluidsynth 
> parameters like number of voices.

This looks like a case for flext-attributes. But I'd like to mention,
that Norbert Schnell of ICRAM recently developed a fluidsynth~ object
for Max/MSP (OS9 and -X), which I would like to be compatible with.
See http://www.ircam.fr/equipes/temps-reel/maxmsp/fluidsynth.html for
source code. This might rule out attributes. 

> > A message "load /soundfonts/tb303.sf2" to the "DRUMS"-tagged fluid~s
> > will change them all, but not the "PIANO"-tagged. 
> By "change", don't you really mean "add"? The way load currently works is that 
> the soundfont is added to the synthesizer; it doesn't replace any currently 
> loaded soundfonts.

Yes, I was unclear here. Of course it adds. 

> >Doing a "set DRUMS"
> > to the PIANO-fluid~ could set the soundfont of that one to tb303.sf2.
> >
> This one also isn't clear to me because I don't know what you mean by "the 
> soundfont" if there is more than one loaded. 


I often forget that more than one soundfonts get loaded with load. 

> Also, just to be clear, you're 
> suggesting a new "set" message? 

It doesn't have to be "set", but basically: yes. Or we could enforce,
that soundfont-sharing *has* to be specified by creation argument.
This would also free us a bit from some of above problems. But adding
a "set" message should probably be discussed with Norbert as well.
Maybe we should take this discussion over to fluid-dev (as well)?

Now I'm off for the rest of (Europe) day.

 Frank Barknecht                               _ ______footils.org__

More information about the Pd-list mailing list