[Top][All Lists]

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

Re: [fluid-dev] More commits on the way to 1.1.1

From: josh
Subject: Re: [fluid-dev] More commits on the way to 1.1.1
Date: Fri, 04 Dec 2009 19:32:32 -0800
User-agent: Internet Messaging Program (IMP) H3 (4.1.6)

Quoting Rui Nuno Capela <address@hidden>:
please note that the issue does not affect GM soundfonts, which certainly
have way more instruments defined than synth number of channels. my
question is exactly about those non-GM/GM2/GS soundfonts that have only one
or a couple of instrument presets defined. as it happens, for instance, on
a soundfont with only one instrument preset, defined at bank=0 and
program=0 (which is most common, afaics) _all_ synth channels get initially
assigned to that very same preset. how come? old behavior (< 1.1.0) was
only the first would get it, leaving all the rest unassigned which i
believe is the right thing to do. what's the use of replicating the same
instrument all over the synth channel space ? my argument is leave them
unassigned as before.

As I mentioned, previous FluidSynth versions would assign incremental program numbers to each channel. So MIDI Channel 1 would be program 1, channel 2 program 2, etc. There wasn't really any reason for that behavior. What I was referring to, was not GM SoundFont files, but GM MIDI files. Some GM MIDI files may assume that program 1 is the default for all channels, which it should be for GM compliance.

I'm not really convinced that having the previous policy of incremental program assignment is better than having it be GM compliant, since it would still be assigning the whole channel space, just different instruments for every channel. So you would still end up with instruments assigned to all channels, except in the case where the SoundFont happens to not have instruments on those program #s.

Or perhaps I'm overlooking something? Did previous versions of FluidSynth not have instruments assigned to every channel in incremental fashion?

- fluid_synth_program_reset() seems to disregard all previous calls to
fluid_synth_unset_program(), reassigning the default/initial bank and
program setting to any explicitly unassigned channels.

Yes, I know.  I had mentioned this previously and suspected that you
probably wanted the channel to be unset for good.  I'll check and see
what this will entail.

this issue is somewhat a side-effect to the previous one or vice-versa. in
my pov, fluid_synth_program_reset() should reset all channel programs to
their initial assignment, yes. but problem may lie on that initial
assignment and that is what is questionable from the previous issue. see?

I think I need to get a better idea of what you are experiencing as far as the previous behavior compared to what it is now. As far as I know, it was as I described above (all channels get assigned instruments, just that now its all program 1, not incremental). Which doesn't seem to be a problem to me. If you still feel it is a problem, we can hold some sort of a vote or something.

- i may be doing something wrong but i'm having a hard time wrt. bank
offsets specially on soundfont initial load and/or early channel
assignment (presets).

Hmm.  What sort of problems are you having with this?  Are the bank
offsets not working as expected, as far as which preset gets assigned?

it seems that bank offsets are not playing well at initialization (right
after a sfont gets loaded). for a certain time (enough to get me hairy :)
it seems that bank/programs are being resolved as if bank_offset have not
been set at all. however, it seems, that after one calls
fluid_synth_program_reset() at least, all gets to normal. you see, all
these 3 issues are somewhat related and i made my own effort in dissecting
all this, all done by trial-and-error :)

That sounds like another event queuing issue. I thought I had all those ironed out. I'll see if there is anything that could affect the bank offsets in that regard.

hope all these gets clarified before final 1.1.1 (all issues refer to
fluidsynth svn trunk r275)

Yes, lets get these resolved before 1.1.1 release.

rncbc aka Rui Nuno Capela

Thanks for your patience on this. It hasn't been an easy task making FluidSynth thread safe and trying to remain compatible with previous versions.



reply via email to

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