On Wed, 30 Jan 2013, Aere Greenway wrote:
On 01/30/2013 12:33 AM, Holger Marzen wrote:
On Tue, 29 Jan 2013, Aere Greenway wrote:
Rosegarden and Fluidsynth Developers:
In working with Fluidsynth problems, the Fluidsynth developers have
wondered why I insist on using JACK with Qsynth, rather than just
configuring it to use PulseAudio. Yesterday I finally found out why I
do this, but what the cause of the problem is, possibly both sets of
developers (together) might be able to postulate.
Here are the steps of a test you can do to illustrate the problem:
1. Configure Qsynth to use "pulseaudio" instead of "jack". Even doing
this can cause hangs if you have more than one engine configured. Best
approach is to not restart the engine when it prompts you, instead,
terminating Qsynth, and bring it back up after completing the
configuration changes.
Using Pulse and JACK works here by disabling Pulseaudio clients to start
it (autospawn = no in /etc/pulse/client.conf) and starting Pulseaudio in
QjackCtl. See http://www.marzen.de/Holger/pulseaudio_and_jack/
Fluidsynth is available as a DSSI module to be used in Rosegarden. No
problems at all AND lower latencies.
Holger:
Thank you very much for the information. It could help me a lot. I will save
it for reference.
I have tested the Fluidsynth DSSI before. It seemed to work fine, but it
seemed to me there was a lot of per-track special setup I had to do in order
to use it. Qsynth seems to work better for me, but perhaps it's because I
have vanquished one set of demons, and have not worked long enough to defeat
the other set.
I use Fluidsynth-DSSI because *everything* important is stored when
Rosegarden writes its .rg-file. Different soundfonts, different
instruments... no problem. I use separate instances of Fluidsynth-DSSI
for bass drum, snare, left tom and so on.
Specially for drum and bass sounds you won't notice any latency or
jitter. Rosegarden and DSSI-plugins (Fluidsynth-DSSI, Hexter, Whysynth)
is a very good combination when you need exact timings.
If you have more than 15 instruments/instances then you have to
recompile Fluidsynth-DSSI and change
#define FSD_CHANNEL_COUNT 25
in fluidsynth-dssi.h
24 because Rosegarden allows 24 synth plugin instruments and "plus 1"
because of a strange initialization race condition. If FSD_CHANNEL_COUNT
is set to N then the Nth instrument isn't restored when loading the
.rg-file.
Best regards
Holger