David, and all: As requested in the e-mail below, I re-ran my tests on an Ubuntu 12.04 partition, on a 2.5 gigahertz machine.
Per your instructions, I re-built, and re-installed the release-candidate fluidsynth, and verified that the newly-generated software was actually being used. I re-ran the tests, with results as follows: Ran test 1 (Impromptu 2 - Sunlight on the Water): Played perfectly - no underruns. Qjackctl RT-percentage hovering around 18%. Ran test 2 (Impromptu - Forest Breezes): Checked the "Chorus" checkbox, to introduce more overhead. Played perfectly - no underruns. Qjackctl RT-percentage hovering around 19%. TEST CONCLUSIONS: The tests ran successfully on an Ubuntu 12.04 (i386) 2.5 gigahertz unit-processor. As I recall from the prior testing, there was significantly less real-time load (as displayed by qjackctl). Given the problems I had getting qjackctl to co-exist with the generated version of fluidsynth, I am puzzled by why I had no problems with my Ubuntu partition. My guesses why are as follows: 1. I had previously done some testing of a Rosegarden fix, and it has similar dependencies to fluidsynth. Notably, it wants jackd1 (rather than jackd2, which qjackctl causes to be installed). All this was in-place and working before I attempted to build fluidsynth. 2. I am using Ubuntu, rather than Xubuntu. I have attached a text file with my build listings, which you can compare with the similar listings attached to my prior e-mail, allowing you to investigate fluidsynth jack dependencies (or lack thereof). Sincerely, Aere On Sat, 2012-08-04 at 19:04 +0200, David Henningsson wrote: > On 08/03/2012 03:39 PM, S. Christian Collins wrote: > > Even on my Intel Core i7 (2.8 GHz quad-core) I am able to get Fluidsynth > > to cause xruns when playing really fast on a stereo piano sound that I > > have (voice polyphony at 256). > > After some searching I believe I found what causes the performance to drop. > > I've just committed a patch that sets the default build type to > RelWithDebInfo (if someone prefers another default, let me know). > > As a test, could you rerun with the -DCMAKE_BUILD_TYPE=RelWithDebInfo, > so that the build now looks like the below, and see if it improves > performance? Thanks! > > mkdir build > cd build > cmake .. -DLIB_SUFFIX= -DCMAKE_BUILD_TYPE=RelWithDebInfo > make > sudo make install > sudo ldconfig > > // David -- Sincerely, Aere
aere@aere-Dell-DE051:~/fluidsynth-1.1.6/build$ make Scanning dependencies of target libfluidsynth [ 2%] Building C object src/CMakeFiles/libfluidsynth.dir/drivers/fluid_alsa.c.o [ 5%] Building C object src/CMakeFiles/libfluidsynth.dir/bindings/fluid_rtkit.c.o [ 7%] Building C object src/CMakeFiles/libfluidsynth.dir/drivers/fluid_jack.c.o [ 10%] Building C object src/CMakeFiles/libfluidsynth.dir/drivers/fluid_oss.c.o [ 12%] Building C object src/CMakeFiles/libfluidsynth.dir/drivers/fluid_pulse.c.o [ 15%] Building C object src/CMakeFiles/libfluidsynth.dir/utils/fluid_conv.c.o [ 17%] Building C object src/CMakeFiles/libfluidsynth.dir/utils/fluid_hash.c.o /home/aere/fluidsynth-1.1.6/src/utils/fluid_hash.c: In function ‘fluid_hashtable_unref’: /home/aere/fluidsynth-1.1.6/src/utils/fluid_hash.c:642:3: warning: ‘g_atomic_int_exchange_and_add’ is deprecated (declared at /usr/include/glib-2.0/glib/gatomic.h:66): Use 'g_atomic_add' instead [-Wdeprecated-declarations] [ 20%] Building C object src/CMakeFiles/libfluidsynth.dir/utils/fluid_list.c.o [ 23%] Building C object src/CMakeFiles/libfluidsynth.dir/utils/fluid_ringbuffer.c.o [ 25%] Building C object src/CMakeFiles/libfluidsynth.dir/utils/fluid_settings.c.o [ 28%] Building C object src/CMakeFiles/libfluidsynth.dir/utils/fluid_sys.c.o [ 30%] Building C object src/CMakeFiles/libfluidsynth.dir/sfloader/fluid_defsfont.c.o [ 33%] Building C object src/CMakeFiles/libfluidsynth.dir/sfloader/fluid_ramsfont.c.o [ 35%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_adsr_env.c.o [ 38%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_chorus.c.o [ 41%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_iir_filter.c.o [ 43%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_lfo.c.o [ 46%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_rvoice.c.o [ 48%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_rvoice_dsp.c.o [ 51%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_rvoice_event.c.o [ 53%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_rvoice_mixer.c.o /home/aere/fluidsynth-1.1.6/src/rvoice/fluid_rvoice_mixer.c: In function ‘fluid_mixer_get_mt_rvoice’: /home/aere/fluidsynth-1.1.6/src/rvoice/fluid_rvoice_mixer.c:700:3: warning: ‘g_atomic_int_exchange_and_add’ is deprecated (declared at /usr/include/glib-2.0/glib/gatomic.h:66): Use 'g_atomic_add' instead [-Wdeprecated-declarations] [ 56%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_rev.c.o [ 58%] Building C object src/CMakeFiles/libfluidsynth.dir/synth/fluid_chan.c.o [ 61%] Building C object src/CMakeFiles/libfluidsynth.dir/synth/fluid_event.c.o [ 64%] Building C object src/CMakeFiles/libfluidsynth.dir/synth/fluid_gen.c.o [ 66%] Building C object src/CMakeFiles/libfluidsynth.dir/synth/fluid_mod.c.o [ 69%] Building C object src/CMakeFiles/libfluidsynth.dir/synth/fluid_synth.c.o [ 71%] Building C object src/CMakeFiles/libfluidsynth.dir/synth/fluid_tuning.c.o [ 74%] Building C object src/CMakeFiles/libfluidsynth.dir/synth/fluid_voice.c.o [ 76%] Building C object src/CMakeFiles/libfluidsynth.dir/midi/fluid_midi.c.o [ 79%] Building C object src/CMakeFiles/libfluidsynth.dir/midi/fluid_midi_router.c.o [ 82%] Building C object src/CMakeFiles/libfluidsynth.dir/midi/fluid_seqbind.c.o [ 84%] Building C object src/CMakeFiles/libfluidsynth.dir/midi/fluid_seq.c.o [ 87%] Building C object src/CMakeFiles/libfluidsynth.dir/drivers/fluid_adriver.c.o [ 89%] Building C object src/CMakeFiles/libfluidsynth.dir/drivers/fluid_mdriver.c.o [ 92%] Building C object src/CMakeFiles/libfluidsynth.dir/drivers/fluid_aufile.c.o [ 94%] Building C object src/CMakeFiles/libfluidsynth.dir/bindings/fluid_cmd.c.o [ 97%] Building C object src/CMakeFiles/libfluidsynth.dir/bindings/fluid_filerenderer.c.o Linking C shared library libfluidsynth.so [ 97%] Built target libfluidsynth Scanning dependencies of target fluidsynth [100%] Building C object src/CMakeFiles/fluidsynth.dir/fluidsynth.c.o Linking C executable fluidsynth [100%] Built target fluidsynth aere@aere-Dell-DE051:~/fluidsynth-1.1.6/build$ ls -lap total 112 drwxrwxr-x 6 aere aere 4096 Jul 31 13:40 ./ drwxrwxr-x 9 aere aere 4096 Jul 31 13:34 ../ -rw-rw-r-- 1 aere aere 27695 Jul 31 13:36 CMakeCache.txt drwxrwxr-x 8 aere aere 4096 Jul 31 13:41 CMakeFiles/ -rw-rw-r-- 1 aere aere 2257 Jul 31 13:36 cmake_install.cmake -rw-rw-r-- 1 aere aere 11244 Jul 31 13:40 cmake-results.txt -rw-rw-r-- 1 aere aere 904 Jul 31 13:36 cmake_uninstall.cmake -rw-rw-r-- 1 aere aere 5682 Jul 31 13:36 config.h -rw-r--r-- 1 aere aere 4271 Jul 31 13:36 CPackConfig.cmake -rw-r--r-- 1 aere aere 4477 Jul 31 13:36 CPackSourceConfig.cmake drwxrwxr-x 3 aere aere 4096 Jul 31 13:36 doc/ -rw-rw-r-- 1 aere aere 221 Jul 31 13:36 fluidsynth.pc -rw-rw-r-- 1 aere aere 2366 Jul 31 13:36 fluidsynth.spec drwxrwxr-x 4 aere aere 4096 Jul 31 13:36 include/ -rw-rw-r-- 1 aere aere 8188 Jul 31 13:36 Makefile drwxrwxr-x 3 aere aere 4096 Jul 31 13:41 src/ aere@aere-Dell-DE051:~/fluidsynth-1.1.6/build$ sudo make install [ 97%] Built target libfluidsynth [100%] Built target fluidsynth Install the project... -- Install configuration: "" -- Installing: /usr/local/lib/pkgconfig/fluidsynth.pc -- Installing: /usr/local/bin/fluidsynth -- Removed runtime path from "/usr/local/bin/fluidsynth" -- Installing: /usr/local/lib/libfluidsynth.so.1.5.2 -- Installing: /usr/local/lib/libfluidsynth.so.1 -- Installing: /usr/local/lib/libfluidsynth.so -- Installing: /usr/local/include/fluidsynth.h -- Installing: /usr/local/include/fluidsynth/audio.h -- Installing: /usr/local/include/fluidsynth/event.h -- Installing: /usr/local/include/fluidsynth/gen.h -- Installing: /usr/local/include/fluidsynth/log.h -- Installing: /usr/local/include/fluidsynth/midi.h -- Installing: /usr/local/include/fluidsynth/misc.h -- Installing: /usr/local/include/fluidsynth/mod.h -- Installing: /usr/local/include/fluidsynth/ramsfont.h -- Installing: /usr/local/include/fluidsynth/seq.h -- Installing: /usr/local/include/fluidsynth/seqbind.h -- Installing: /usr/local/include/fluidsynth/settings.h -- Installing: /usr/local/include/fluidsynth/sfont.h -- Installing: /usr/local/include/fluidsynth/shell.h -- Installing: /usr/local/include/fluidsynth/synth.h -- Installing: /usr/local/include/fluidsynth/types.h -- Installing: /usr/local/include/fluidsynth/voice.h -- Installing: /usr/local/include/fluidsynth/version.h -- Installing: /usr/local/share/man/man1/fluidsynth.1 aere@aere-Dell-DE051:~/fluidsynth-1.1.6/build$ TESTING ON AUGUST 4TH: aere@aere-Dell-DE051:~$ cd fluidsynth-1.1.6 aere@aere-Dell-DE051:~/fluidsynth-1.1.6$ ls acinclude.m4 CMakeLists.txt doc m4 README-OSX aclocal.m4 compile fluidsynth.anjuta Makefile.am src AUTHORS config.guess fluidsynth.pc.in Makefile.in THANKS autogen.sh config.sub fluidsynth.spec.in missing TODO bindings configure include mkinstalldirs build configure.ac INSTALL NEWS ChangeLog COPYING install-sh README cmake_admin depcomp ltmain.sh README.cmake aere@aere-Dell-DE051:~/fluidsynth-1.1.6$ cd build aere@aere-Dell-DE051:~/fluidsynth-1.1.6/build$ ls CMakeCache.txt CPackConfig.cmake install_manifest.txt CMakeFiles CPackSourceConfig.cmake Makefile cmake_install.cmake doc results-build-make-install.txt cmake-results.txt fluidsynth.pc src cmake_uninstall.cmake fluidsynth.spec config.h include aere@aere-Dell-DE051:~/fluidsynth-1.1.6/build$ cmake .. -DLIB_SUFFIX= -DCMAKE_BUILD_TYPE=RelWithDebInfo -- Checking whether system has ANSI C header files -- ANSI C header files - found -- checking for module 'lash-1.0>=0.3' -- package 'lash-1.0>=0.3' not found -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) ************************************************************** Summary: libsndfile: yes (with ogg vorbis support) D-Bus: yes PulseAudio: yes JACK: yes ALSA: yes PortAudio: no OSS: yes MidiShare: no CoreAudio: no CoreMIDI: no Windows: no LADSPA support: no LASH support: no LADCCA support: no OS/2 DART support: no Audio to file driver: yes Readline: yes (NOTE: GPL library) Samples type=float: no (using double) Profiling: no Debug: no Trap on FPE (debug): no Check FPE (debug): no ************************************************************** -- Configuring done -- Generating done -- Build files have been written to: /home/aere/fluidsynth-1.1.6/build aere@aere-Dell-DE051:~/fluidsynth-1.1.6/build$ aere@aere-Dell-DE051:~/fluidsynth-1.1.6/build$ make [ 2%] Building C object src/CMakeFiles/libfluidsynth.dir/drivers/fluid_alsa.c.o [ 5%] Building C object src/CMakeFiles/libfluidsynth.dir/bindings/fluid_rtkit.c.o [ 7%] Building C object src/CMakeFiles/libfluidsynth.dir/drivers/fluid_jack.c.o /home/aere/fluidsynth-1.1.6/src/drivers/fluid_jack.c:95:1: warning: missing initializer [-Wmissing-field-initializers] /home/aere/fluidsynth-1.1.6/src/drivers/fluid_jack.c:95:1: warning: (near initialization for ‘last_client_mutex.unused’) [-Wmissing-field-initializers] [ 10%] Building C object src/CMakeFiles/libfluidsynth.dir/drivers/fluid_oss.c.o [ 12%] Building C object src/CMakeFiles/libfluidsynth.dir/drivers/fluid_pulse.c.o [ 15%] Building C object src/CMakeFiles/libfluidsynth.dir/utils/fluid_conv.c.o [ 17%] Building C object src/CMakeFiles/libfluidsynth.dir/utils/fluid_hash.c.o /home/aere/fluidsynth-1.1.6/src/utils/fluid_hash.c: In function ‘fluid_hashtable_unref’: /home/aere/fluidsynth-1.1.6/src/utils/fluid_hash.c:642:3: warning: ‘g_atomic_int_exchange_and_add’ is deprecated (declared at /usr/include/glib-2.0/glib/gatomic.h:66): Use 'g_atomic_add' instead [-Wdeprecated-declarations] [ 20%] Building C object src/CMakeFiles/libfluidsynth.dir/utils/fluid_list.c.o [ 23%] Building C object src/CMakeFiles/libfluidsynth.dir/utils/fluid_ringbuffer.c.o [ 25%] Building C object src/CMakeFiles/libfluidsynth.dir/utils/fluid_settings.c.o [ 28%] Building C object src/CMakeFiles/libfluidsynth.dir/utils/fluid_sys.c.o [ 30%] Building C object src/CMakeFiles/libfluidsynth.dir/sfloader/fluid_defsfont.c.o /home/aere/fluidsynth-1.1.6/src/sfloader/fluid_defsfont.c: In function ‘fluid_defpreset_noteon’: /home/aere/fluidsynth-1.1.6/src/sfloader/fluid_defsfont.c:582:53: warning: variable ‘z’ set but not used [-Wunused-but-set-variable] [ 33%] Building C object src/CMakeFiles/libfluidsynth.dir/sfloader/fluid_ramsfont.c.o /home/aere/fluidsynth-1.1.6/src/sfloader/fluid_ramsfont.c: In function ‘fluid_rampreset_noteon’: /home/aere/fluidsynth-1.1.6/src/sfloader/fluid_ramsfont.c:892:53: warning: variable ‘z’ set but not used [-Wunused-but-set-variable] [ 35%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_adsr_env.c.o [ 38%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_chorus.c.o [ 41%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_iir_filter.c.o [ 43%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_lfo.c.o [ 46%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_rvoice.c.o [ 48%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_rvoice_dsp.c.o [ 51%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_rvoice_event.c.o [ 53%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_rvoice_mixer.c.o /home/aere/fluidsynth-1.1.6/src/rvoice/fluid_rvoice_mixer.c: In function ‘fluid_mixer_get_mt_rvoice’: /home/aere/fluidsynth-1.1.6/src/rvoice/fluid_rvoice_mixer.c:700:3: warning: ‘g_atomic_int_exchange_and_add’ is deprecated (declared at /usr/include/glib-2.0/glib/gatomic.h:66): Use 'g_atomic_add' instead [-Wdeprecated-declarations] [ 56%] Building C object src/CMakeFiles/libfluidsynth.dir/rvoice/fluid_rev.c.o [ 58%] Building C object src/CMakeFiles/libfluidsynth.dir/synth/fluid_chan.c.o [ 61%] Building C object src/CMakeFiles/libfluidsynth.dir/synth/fluid_event.c.o [ 64%] Building C object src/CMakeFiles/libfluidsynth.dir/synth/fluid_gen.c.o [ 66%] Building C object src/CMakeFiles/libfluidsynth.dir/synth/fluid_mod.c.o [ 69%] Building C object src/CMakeFiles/libfluidsynth.dir/synth/fluid_synth.c.o /home/aere/fluidsynth-1.1.6/src/synth/fluid_synth.c: In function ‘fluid_synth_nwrite_float’: /home/aere/fluidsynth-1.1.6/src/synth/fluid_synth.c:2374:33: warning: variable ‘bytes’ set but not used [-Wunused-but-set-variable] [ 71%] Building C object src/CMakeFiles/libfluidsynth.dir/synth/fluid_tuning.c.o [ 74%] Building C object src/CMakeFiles/libfluidsynth.dir/synth/fluid_voice.c.o [ 76%] Building C object src/CMakeFiles/libfluidsynth.dir/midi/fluid_midi.c.o /home/aere/fluidsynth-1.1.6/src/midi/fluid_midi.c: In function ‘fluid_midi_file_read_event’: /home/aere/fluidsynth-1.1.6/src/midi/fluid_midi.c:440:52: warning: variable ‘mi’ set but not used [-Wunused-but-set-variable] /home/aere/fluidsynth-1.1.6/src/midi/fluid_midi.c:440:48: warning: variable ‘sf’ set but not used [-Wunused-but-set-variable] [ 79%] Building C object src/CMakeFiles/libfluidsynth.dir/midi/fluid_midi_router.c.o [ 82%] Building C object src/CMakeFiles/libfluidsynth.dir/midi/fluid_seqbind.c.o [ 84%] Building C object src/CMakeFiles/libfluidsynth.dir/midi/fluid_seq.c.o [ 87%] Building C object src/CMakeFiles/libfluidsynth.dir/drivers/fluid_adriver.c.o [ 89%] Building C object src/CMakeFiles/libfluidsynth.dir/drivers/fluid_mdriver.c.o [ 92%] Building C object src/CMakeFiles/libfluidsynth.dir/drivers/fluid_aufile.c.o [ 94%] Building C object src/CMakeFiles/libfluidsynth.dir/bindings/fluid_cmd.c.o [ 97%] Building C object src/CMakeFiles/libfluidsynth.dir/bindings/fluid_filerenderer.c.o Linking C shared library libfluidsynth.so [ 97%] Built target libfluidsynth [100%] Building C object src/CMakeFiles/fluidsynth.dir/fluidsynth.c.o /home/aere/fluidsynth-1.1.6/src/fluidsynth.c: In function ‘main’: /home/aere/fluidsynth-1.1.6/src/fluidsynth.c:298:7: warning: variable ‘connect_lash’ set but not used [-Wunused-but-set-variable] Linking C executable fluidsynth [100%] Built target fluidsynth aere@aere-Dell-DE051:~/fluidsynth-1.1.6/build$ aere@aere-Dell-DE051:~/fluidsynth-1.1.6/build$ sudo make install [sudo] password for aere: [ 97%] Built target libfluidsynth [100%] Built target fluidsynth Install the project... -- Install configuration: "RelWithDebInfo" -- Up-to-date: /usr/local/lib/pkgconfig/fluidsynth.pc -- Installing: /usr/local/bin/fluidsynth -- Removed runtime path from "/usr/local/bin/fluidsynth" -- Installing: /usr/local/lib/libfluidsynth.so.1.5.2 -- Up-to-date: /usr/local/lib/libfluidsynth.so.1 -- Up-to-date: /usr/local/lib/libfluidsynth.so -- Up-to-date: /usr/local/include/fluidsynth.h -- Up-to-date: /usr/local/include/fluidsynth/audio.h -- Up-to-date: /usr/local/include/fluidsynth/event.h -- Up-to-date: /usr/local/include/fluidsynth/gen.h -- Up-to-date: /usr/local/include/fluidsynth/log.h -- Up-to-date: /usr/local/include/fluidsynth/midi.h -- Up-to-date: /usr/local/include/fluidsynth/misc.h -- Up-to-date: /usr/local/include/fluidsynth/mod.h -- Up-to-date: /usr/local/include/fluidsynth/ramsfont.h -- Up-to-date: /usr/local/include/fluidsynth/seq.h -- Up-to-date: /usr/local/include/fluidsynth/seqbind.h -- Up-to-date: /usr/local/include/fluidsynth/settings.h -- Up-to-date: /usr/local/include/fluidsynth/sfont.h -- Up-to-date: /usr/local/include/fluidsynth/shell.h -- Up-to-date: /usr/local/include/fluidsynth/synth.h -- Up-to-date: /usr/local/include/fluidsynth/types.h -- Up-to-date: /usr/local/include/fluidsynth/voice.h -- Up-to-date: /usr/local/include/fluidsynth/version.h -- Up-to-date: /usr/local/share/man/man1/fluidsynth.1 aere@aere-Dell-DE051:~/fluidsynth-1.1.6/build$ sudo ldconfig aere@aere-Dell-DE051:~/fluidsynth-1.1.6/build$ aere@aere-Dell-DE051:~/fluidsynth-1.1.6/build$ which fluidsynth /usr/local/bin/fluidsynth aere@aere-Dell-DE051:~/fluidsynth-1.1.6/build$ ldd /usr/local/bin/fluidsynth | grep fluid libfluidsynth.so.1 => /usr/local/lib/libfluidsynth.so.1 (0x00bcb000) aere@aere-Dell-DE051:~/fluidsynth-1.1.6/build$ Ran test 1 (Impromptu 2 - Sunlight on the Water): Played perfectly - no underruns. Qjackctl RT-percentage hovering around 18%. Ran test 2 (Impromptu - Forest Breezes): Checked the "Chorus" checkbox, to introduce more overhead. Played perfectly - no underruns. Qjackctl RT-percentage hovering around 19%.
_______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev