Hallo, 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.
s/soundfont/soundfonts/g
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__