[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[fluid-dev] Problems With Rosegarden Using Qsynth or Fluidsynth When Usi

From: Aere Greenway
Subject: [fluid-dev] Problems With Rosegarden Using Qsynth or Fluidsynth When Using PulseAudio Instead Of JACK
Date: Tue, 29 Jan 2013 10:52:58 -0700
User-agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130106 Thunderbird/17.0.2

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.

2. Bring up the newly-re-configured Qsynth, which now uses PulseAudio. If you were using JACK (QjackCtl) before, you may have to reboot before doing it.

3. In a terminal window, cd to a folder having MIDI ('.mid') files, then enter the following statement:
pmidi -l
On my machine, it produces the following lines referencing the Qsynth ports (I have 2 qsynth engines):
129:0     FLUID Synth (Qsynth1)             Synth input port (Qsynth1:0)
130:0     FLUID Synth (Qsynth2)             Synth input port (Qsynth2:0)

4. In the terminal window, use the information printed by the prior statement to enter a statement to play a MIDI file. On my machine, I did the following:
pmidi -p 129:0 TheCarpenters-MaybeItsYou.mid

5. Notice that it plays, and you can hear the sound. Notice that the indicator light of the engine shows activity. You can terminate it early after hearing that it plays (control-c will stop it).

6. Launch Rosegarden (it doesn't matter if it is the latest version, or the oldest version you have). Answer any welcome message.

7. Return to the terminal window without doing anything in the Rosegarden window (other than answering the welcome message), and re-enter the statement that you used to play the MIDI-file using pmidi. Notice that the indicator-light of the Qsynth engine flashes, showing activity, but also notice that there is no sound. Terminate pmidi using control-c.

8. Terminate Rosegarden, and repeat step 7, noticing the result (no sound) is the same.

9. Terminate Qsynth, noticing (if you have a memory-space monitor running) that the memory used for the soundfonts of both engines is not released.

10. In the terminal window, enter the following statement:
pmidi -l
You will see that the client and port for the 2nd engine is still there.

11. At this point, the only way to allow Qsynth to produce sound again, is to reboot. If you log-out, and log back in, the memory will be reclaimed, but when you fire-up a new Qsynth, and attempt to play the MIDI-file again, there is still no sound.

It appears that bringing-up Rosegarden is the step that causes the problem. If instead, I brought up MusE, there was no problem, and MusE could even use the Qsynth ports for playing. In another test, when I tried to use the Qsynth ports in Rosegarden for playing, Qsynth showed activity, but there was no sound.

If you configure Qsynth to use JACK for its audio, you don't encounter this problem. I use Qsynth with Rosegarden all the time. I'm sure I've run into this problem before - probably multiple times. But all I remember of it, is that you have to use jack (the default) with Qsynth.

But before we conclude it to be a problem with Qsynth alone, be aware that what started me down this line of testing, is that I fired-up Fluidsynth in a terminal window, using pulseaudio for its audio, and it worked fine with my new MIDI device.

But when I tried to use it with Rosegarden, though it saw the Fluidsynth device, and I could map my MIDI playback device to use it, there was no sound. And that thereafter, though my new MIDI device seemed to be sending to it okay, but there was no sound. In this case, eventually error messages started coming out of Fluidsynth, saying it couldn't allocate (something) for each specific note played.

-- Sincerely, Aere

reply via email to

[Prev in Thread] Current Thread [Next in Thread]