Jan & David: In my opinion, limiting the polyphony (I presume that is what you mean by "limiting the voices") does not adversely affect the sound.
What is using up the CPU, is voices still being 'sounded' that have long before faded to where they are inaudible. If Fluidsynth works similarly to the EMU10K1/2 (Soundblaster & Audigy) chip, it should 'take-out' the oldest voices first, though I don't know if that is actually the case. I think the Soundblaster and Audigy soundcards have a polyphony limit of 64 (I have also heard that the limit is actually 48). And since the pieces sounded fine on my Soundblaster card, I tried setting the polyphony to 64, and it also sounded perfectly good, and cut down the processor load significantly. Trying that worked fine, with no detectable degradation in sound. Since I use Qsynth, I change this by changing the "Polyphony" parameter of the "Audio" tab (visible after clicking the "Setup" button. I do not know how to make the same change using command-line parameters. - Aere -----Original Message----- From: David Henningsson <di...@ubuntu.com> Reply-to: FluidSynth mailing list <fluid-dev@nongnu.org> To: FluidSynth mailing list <fluid-dev@nongnu.org> Subject: Re: [fluid-dev] problems with fluidsynth 1.1.6 on a raspberry pi Date: Sun, 18 Nov 2012 12:51:58 +0100 On 11/18/2012 11:07 AM, Jan Newmarch wrote: > Thanks to Christian and Aere. Here are some more results on a file > nightsin.kar of various choices using pidstat: > > Version flags sound font cpu % memory % comments > 1.1.5 none FluidR3_GM 75% 43% unlistenable > 1.1.5 -z 4096 FluidR3_GM 70% 43% unlistenable > 1.1.5 -z 4096 GeneralUser 76% 20% unlistenable > 1.1.6 none FluidR3_GM 80% 40% still distorting > 1.1.6 -z 4096 FluidR3_GM 75% 40% distorts when > usage > 90% > 1.1.6 -z 4096 GeneralUser 65% none shown > distorts when usage > 90% Thanks for providing a good test case. I'm not familiar with pidstat - could you state the command line do you use for this, for an accurate comparison? It looks like the CPU % maybe does not differ that much. Actually, I recently got hold of a Nexus 7 running Ubuntu [1], which has a Tegra 3 core. When running NIGHTSIN.KAR (found at [2]), it does indeed use a lot of CPU. It runs fine for the most part, but occasionally breaks up. (This is with -z 4096.) Running a quick perf analysis of it, the top CPU using functions are: 30% - fluid_rvoice_dsp_interpolate_4th_order 27% - fluid_rvoice_buffers_mix 13% - fluid_iir_filter_apply 9% - fluid_revmodel_processmix The interpolation can be reduced, but only inside the shell it seems like, so that would help some (at the expense of quality, as usual). Reducing the number of voices would be the first thing to try IMO, that is usually not that hearable hopefully. But this is indeed an interesting optimisation problem. At least fluid_rvoice_buffers_mix should be able to run faster I believe. I'll do some experiments with it when I have some more time. // David [1] https://wiki.ubuntu.com/Nexus7 [2] http://www.swissdom.cc/midis/karaoke-internacional-1/n/ _______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev -- Sincerely, AereSincerely, Aere Sincerely, Aere
_______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev