On 12/15/2009 07:41 PM, [email protected] wrote: > Ahh, and I thought that was going to be the golden commit. >
aha, ya know, all that glitters ain't gold :) > Quoting Rui Nuno Capela <[email protected]>: >> >> re. svn trunk r278 >> >> fluid_synth_unset_program() seems to do its deeds now, but ... >> >> that fallback logic needs work still. or else. for example, simple >> soundfonts which define fewer instruments/presets than the number of >> available channels, are now set initially unassigned, as reported by >> fluid_synth_get_channel_info(). > > > I'm not seeing that. I just loaded up a SoundFont in QSynth 0.3.4 with > only one preset and it was assigned to every channel, except 10 which is > unassigned due to lack of percussion preset. Program/preset 0/0 should > get assigned to every channel except 10. Am I misunderstanding what you > are seeing? > stop right there :) is that's the last released version of qsynth 0.3.4 that's old enough and surely is *not* the new api, neither fluid_synth_get_channel_info() nor fluid_synth_unset_program(). please try with current svn trunk: svn co https://qsynth.svn.sourceforge.net/svnroot/qsynth/trunk qsynth-svn build it straight: cd qsynth-svn make -f Makefile.svn ./configure && make ./qsynth and that will get you to qsynth 0.3.4.11, the one i fuss with ;) > >> furthermore, any attempt to assign any >> other bank/program to a channel, via fluid_synth_bank_select() and >> fluid_synth_program_change(), are strangely refused or will fallback to >> unassigned or default preset quite immediately. >> > > > Weird. I'm not seeing that in QSynth 0.3.4 though. I tried a SoundFont > which has 2 banks of instruments and was able to select from other banks > just fine, at least according to the channels dialog. > you can select but it won't stay that way for long, at least on my lab. pressing reset button, which implies fluid_synth_program_reset() will just put all channels back to default bank/program and not the assigned ones. > >> one other thing, more like a question, is fluid_synth_program_reset() >> really supposed to reset all channels to the default bank/program >> assignment and disregard any explicit or discrete bank/program change >> made so far? i am not sure, but i think that is in complete disruption >> with older behavior or semantics from pre 1.1.0 >> > > fluid_synth_program_reset() is supposed to work just as before, that is > (from the API reference): > > Resend a bank select and a program change for every channel. > right, but that's not what it is doing, at least when probed with fluid_synth_get_channel_info(). nb. older qsynth 0.3.4 is probably reading channel information via fluid_synth_get_channel_preset(), instead of fluid_synth_get_channel_info(), remember? > > So it should just resend the bank and program which is already assigned, > which might cause a new preset to become assigned if the loaded > SoundFont stack or bank offsets have changed. If you are seeing > something else, then that is a bug. > > Do you have some updated QSynth code I could test with? Perhaps there > is something going wrong with some of the new functions or something. > Or maybe I didn't understand what exactly you are experiencing. Do you > have any reproducible steps I could use to observe the problems you are > seeing? > qsynth 0.3.4.11 as in svn trunk has this new "unset" option on the channels' context menu, so you can try that too. cheers -- rncbc aka Rui Nuno Capela [email protected] _______________________________________________ fluid-dev mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/fluid-dev
