I think I got most of this right, except enable-floats. What's wrong with this?
cd fluidsynth-2.0.0.beta1 && mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS_RELEASE="-ffast-math -O3 -enable-floats=true" .. I still get "Samples type=float: no (using double)" in the summary before it builds. On Wed, May 30, 2018 at 6:36 PM, Geoff Plitt <ge...@gweb.org> wrote: > Great feedback, thanks! > > >> ---------------------------------------------------------------------- >> >> Message: 1 >> Date: Wed, 30 May 2018 08:54:19 +0200 >> From: Marcus Weseloh <mar...@weseloh.cc> >> To: FluidSynth mailing list <fluid-dev@nongnu.org> >> Subject: Re: [fluid-dev] Raspbian / Pi Zero - force hard float >> compile? >> Message-ID: >> <CAGNoLaOrzW8Qg=ymwosbexmyimq5pxkvge4j+asq0bvjrv6...@mail.gm >> ail.com> >> Content-Type: text/plain; charset="utf-8" >> >> Hi Geoff, >> >> you seem to be fine on the hard-float front, at least where FluidSynth is >> concerned. The armv6l in the uname output *might* be an indicator that the >> system as a whole has been compiled with soft-float, but that could be >> wrong. uname output can be set arbitrarily, best to check a few other >> executables from your distro. >> >> Your platform is not very powerful, so you can't expect too much from >> running FluidSynth on it. >> >> There are a few compile time tweaks you can try (cmake options): >> >> - Make sure you are using the "Release" build type: >> -DCMAKE_BUILD_TYPE=Release >> - Use optimisation flags --fffast-math and maybe also -O3: >> -DCMAKE_C_FLAGS_RELEASE="--ffast-math -O3" >> - use float instead of double for maths in Fluidsynth: -enable-floats=true >> >> Then you would have to decide what you want to optimise for: >> 1. Low latency >> 2. High polyphony >> >> Pick one, you can't have both. At least not on your hardware. >> >> If you don't care about latency at all (i.e you are simply rendering >> audio and >> don't mind waiting a few seconds until the whole song has been rendered), >> you can use fast-render to file: >> fluidsynth -F output.wav ... >> >> In all other cases you will need to limit the polyphony (number of >> simultaneous voices that FluidSynth can render). FluidSynth's default of >> 256 is probably way too high for your platform. You could start by >> reducing >> the polyphony until you don't experience any issues anymore, then increase >> it again slightly. But leave it a little safety margin: >> >> fluidsynth -o synth.polyphony=128 ... >> >> If you want to go for really low latency, you will need to use a custom >> kernel with something like the preempt-rt patches applied. Then hand-tweak >> your IRQ latencies, decrease the polyphony to something in the region of >> 40-60 and reduce the buffer size and buffer count used by FluidSynth to >> the >> lowest levels your audio driver supports. I'm running FluidSynth on >> similar >> (but slightly more powerful) hardware and can achieve very low latency >> using this kind of setup. It takes quite a bit of work getting everything >> tuned right, but it is possible. >> >> If you don't care about high latency but still want "real time" playback, >> then you can try increasing the buffer size and buffer counts used by >> FluidSynth (see fluidsynth --help, I can't remember the switches at the >> moment). >> >> And if you don't need chrous or reverb effects, switch them off (-R0 and >> -C0) >> >> If you were on a platform with multiple cores, you could use the >> parallel-rendering mode of FluidSynth. But your CPU only has one core, so >> that is not an option. >> >> >> In real-time playback situations, keeping FluidSynth happy with the >> polyphony limit is the most important bit. As soon as it gets into an >> overflow situation and audio output starts to break, it does take quite >> some time for it to get back on track, at least in my experience. So avoid >> that situation at all costs, by reducing polyphony to safe levels. >> >> >> Long story short: I think you can get FluidSynth to work reasonably well >> even on your platform, it all depends on what you want to achieve. And >> upgrading to a RPi 3+ would definitely make everything a lot easier! :-) >> >> Cheers, >> >> Marcus >> >> >> compile FluidSynth with "--ffast-math" and maybe also "-O3" compile time >> options: >> cmake .. -D >> >>
_______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev