Hi I recompiled 1.1.6 with polyphony set to 64. There doesn't seem to be a command line option to reset parameters like this, but it shouldn't be too hard to add one. Yes I know, use fluid_settings_setXXX in the code...
Anyway... no better. Still hits CPU above 99% (!) and distorts accordingly. (The pidstat command I used was pidtat -C fluidsynth - u -r 5 for 5 second periods.) David gives perf figures of 30% - fluid_rvoice_dsp_interpolate_4th_order 27% - fluid_rvoice_buffers_mix 13% - fluid_iir_filter_apply 9% - fluid_revmodel_processmix I ran perf (from linux-tools Debian pkg) on the RPi for nightsin.kar using two soundfonts and got 32.07% fluid_rvoice_buffers_mix 26.89% fluid_rvoice_dsp_interpolate_4th_order 12.99% fluid_iir_filter_apply 11.00% fluid_revmodel_processmi for the FluidR3_Gm and 29.49% fluid_rvoice_buffers_mix 23.71% fluid_rvoice_dsp_interpolate_4th_order 14.89% fluid_revmodel_processmix 12.53% fluid_iir_filter_apply for the GeneralUser soundfont (which sounds a bit better). No significant difference. Jan -- On Sun, 2012-11-18 at 08:31 -0700, Aere Greenway wrote: > 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. sysstat > > 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 > > _______________________________________________ > fluid-dev mailing list > fluid-dev@nongnu.org > https://lists.nongnu.org/mailman/listinfo/fluid-dev -- Dr Jan Newmarch Head of ICT and Commerce (Higher Education) P 61 3 9286 9971 M +61 4 0117 0509 F 61 3 9286 9100 W www.boxhill.edu.au W jan.newmarch.name E j.newma...@boxhill.edu.au E j...@newmarch.name _______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev