Bug 500087 - Fluidsynth doesn't work with alsa-plugins-pulseaudio
Summary: Fluidsynth doesn't work with alsa-plugins-pulseaudio
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: fluidsynth
Version: 11
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Anthony Green
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-05-10 21:03 UTC by J Gallagher
Modified: 2009-11-18 03:46 UTC (History)
10 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2009-11-18 03:46:11 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description J Gallagher 2009-05-10 21:03:22 UTC
Description of problem:

Simple software synthesizer using vkeybd and fluidsynth doesn't work unless I remove alsa-plugins-pulseaudio


Version-Release number of selected component (if applicable):

pulseaudio-0.9.15-11.fc11.i586
alsa-plugins-pulseaudio-1.0.18-3.fc11.i586
fluidsynth-1.0.8-3.fc11.i586

How reproducible:

In F10 and F11 preview


Steps to Reproduce:
1. su -c 'yum install fluidsynth vkeybd PersonalCopy-Lite-soundfont'
   su -c 'modprobe snd-seq'
2. fluidsynth -a alsa -c2 -i -l -s /usr/share/soundfonts/PCLite.sf2 &
3. vkeybd &
4. aconnect 129:0 128:0
  
Actual results:
No audio from vkeybd, continuous high cpu usage (~100%) after starting fluidsynth in step 2


Expected results:
Nice synth sounds from vkeybd, cpu usage should not remain high after launching fluidsynth


Additional info:
problem goes away if I do 'yum remove alsa-plugins-pulseaudio' and everything works as expected, I have a lovely low latency software synth with keyboard.

Comment 1 Lennart Poettering 2009-05-10 22:27:32 UTC
PA is not intended to be use for audio production.

The fluidsynth package should probably be configured to bypass PA by default.

Comment 2 J Gallagher 2009-05-11 20:18:36 UTC
OK, in the meantime, until fluidsynth is "fixed", I'd like to keep the alsa PA plugin, since it works well for video and music audio, but I also want fluidsynth - is there a simple way to tell fluidsynth not to use PA (a *.conf file entry or an environment variable setting perhaps?)

Comment 3 CJ van den Berg 2009-05-21 21:57:29 UTC
The new fluidsynth release 1.0.9 has native PulseAudio support which seems to work fine. So this problem could probably be solved by just updating to the latest fluidsynth.

Comment 4 J Gallagher 2009-05-26 22:36:06 UTC
I compiled fluidsynth v1.1.0 from source in Fedora 11 preview, it does indeed have pulseaudio support, but the sounds are so distorted (lots of noise) as to be unusable.

su -c 'modprobe snd-seq'
fluidsynth -a pulseaudio -c2 -i -l -s /usr/share/soundfonts/PCLite.sf2 &
vkeybd &
aconnect 129:0 128:0

perhaps I need to tinker with the parameters supplied to fluidsynth?

In the meantime I  temporarily prevent pulse being used with:

sudo mv /etc/alsa/pulse-default.conf /etc/alsa/pulse-default.conf.x

to turn pa off for alsa (and the reverse to turn back on)

I suppose I could create a little script to start fluidsynth which renames the conf file before launch and renames it back after launch.

Comment 5 CJ van den Berg 2009-05-27 10:34:16 UTC
(In reply to comment #4)
> perhaps I need to tinker with the parameters supplied to fluidsynth?

Yes, probably. Try -z 4096 -c 4 or something like that.

Comment 6 J Gallagher 2009-05-27 13:42:18 UTC
That works, although latency is a bit too high, using -z 2048 gives me a better response, I'm using a Core 2 Duo @2GHz with onboard intel 82801H HD audio.

fluidsynth -a pulseaudio -c2 -z2048 -i -l -s /usr/share/soundfonts/PCLite.sf2 &


Thanks CJ van der Berg. (I'm glad they didn't "bypass PA")

Now, how do I request the new version of fluidsynth to be put into the Fedora repos, contact the package maintainer?

Comment 7 Bug Zapper 2009-06-09 15:36:46 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 11 development cycle.
Changing version to '11'.

More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 8 Michael Schwendt 2009-06-13 08:25:25 UTC
> Now, how do I request the new version of fluidsynth to be
> put into the Fedora repos, contact the package maintainer? 

Usually one opens a ticket in bugzilla:
https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&version=rawhide&component=fluidsynth


Even better, consider joining the family of Fedora package maintainers:
https://fedoraproject.org/wiki/PackageMaintainers/Join

The more people with interest in a particular package, the better. Fluidsynth needs work here on F10. I don't use it, I'm not familiar with it. It started the JACK daemon and still failed because it could not access the default audio device. And I only wanted to take a brief look at it, since I noticed that the Audacious Fluidsynth (-amidi) plugin sounds bad/distorted. Seems a lot of insight is needed to make fluidsynth work, and then I noticed this open ticket when visiting http://bugz.fedoraproject.org/fluidsynth

Comment 9 J Gallagher 2009-06-15 12:39:33 UTC
thanks. for now I'll just stick with the workaround since even though the -pulseaudio option works in fluidsynth v1.1.0 the latency is too high even for a casual keyboard. The workaround in F11 is pretty easy:

sudo mv /etc/alsa/pulse-default.conf /etc/alsa/pulse-default.confx
sudo modprobe snd-seq-midi
fluidsynth -a alsa -c2 -i -l -s /usr/share/soundfonts/PCLite.sf2 &
vkeybd &
aconnect 129:0 128:0

and you now have a low-latency synth keyboard :)

obviously reverse the mv command to restore alsa-pulseaudio plugin behaviour afterwards.

The minimal install in F11 is ~27M:

sudo yum install fluidsynth vkeybd PersonalCopy-Lite-soundfont

Comment 10 Michael Schwendt 2009-06-19 09:20:01 UTC
Stuff that was needed for a fluidsynth 1.0.9 spec update:

  BuildRequires: pulseaudio-libs-devel
  BuildRequires: portaudio-devel

Building with ladspa-devel is not recommended by upstream. Why is --enable-ladspa used by Fedora?

API docs are missing in the 1.0.9 tarball but included by Fedora. They must be built now:

  BuildRequires: doxygen docbook-style-xsl

  cd doc
  make update-docs
  cd -

> Requires:  lash jack-audio-connection-kit

No needed as there are automatic SONAME dependencies.

Comment 11 Michael Schwendt 2009-06-20 13:09:07 UTC
fluidsynth 1.0.9 also makes audacious-plugins-amidi work.

Comment 12 Kevin Kofler 2009-08-02 16:26:11 UTC
1.0.9 got pushed today, but the PulseAudio backend is not enabled. :-( Why?

Comment 13 Orcan Ogetbil 2009-10-29 03:18:24 UTC
(In reply to comment #12)
> 1.0.9 got pushed today, but the PulseAudio backend is not enabled. :-( Why?  

Simple answer: Because I do not want to be held responsible for pulling the pulseaudio-libs package into innocent people's computers.

Comment 14 Kevin Kofler 2009-10-29 05:13:17 UTC
That's a completely ridiculous argument (many other packages in the distribution drag in pulseaudio-libs). The fact is, PulseAudio is the default audio solution in Fedora and packages are supposed to work with it. Disabling the PulseAudio backends shipped by upstream makes no sense whatsoever. If you still refuse to enable it, I'll have to escalate this to FESCo.

Comment 15 Orcan Ogetbil 2009-10-29 06:40:56 UTC
(In reply to comment #14)
> That's a completely ridiculous argument (many other packages in the
> distribution drag in pulseaudio-libs). 

That depends on the point of view. I see this as torture.

> The fact is, PulseAudio is the default
> audio solution in Fedora and packages are supposed to work with it. 

Can you backup your claim? A link to this guideline perhaps?

> Disabling
> the PulseAudio backends shipped by upstream makes no sense whatsoever. If you
> still refuse to enable it, I'll have to escalate this to FESCo.  

The commenter of comment #1 is a pulseaudio developer. Please have a look at what he says. If you want to go to FESCo it's your decision. But there is really no need. If you can point me to the pulseaudio requirement guideline, I promise to drop my comaintainership on fluidsynth and to orphan all my packages that depend on fluidsynth. I am sure that will make many people "happy".

Comment 16 Orcan Ogetbil 2009-10-29 07:19:03 UTC
I would like to make a correction as I think what you said is misleading:

I do not do "Disabling the PulseAudio backends shipped by upstream". I never go and change other maintainers' packages and disable their pulseaudio support. I try to avoid those packages as much as I can.

Comment 17 Kevin Kofler 2009-10-29 10:19:47 UTC
Fluidsynth has a valid use outside of the audio production niche. It is an implementation of the ALSA sequencer interface, also used by pure playback applications like KMid, and it's the only one with a GUI (qsynth). So I think it has a place in a standard desktop setup, which is where PulseAudio fits in.

> That depends on the point of view. I see this as torture.

The fact is, pulseaudio-libs is dragged in by pretty much everything in Fedora (and that's normal because it's THE DEFAULT sound solution), so your package not requiring pulseaudio-libs gains your users absolutely NOTHING. It just breaks things for those users using PulseAudio.

> The commenter of comment #1 is a pulseaudio developer. Please have a look at
> what he says.

Lennart's comment just means the default backend should be the JACK one (as JACK is the solution we advertise for audio production), which in current JACK versions will automatically suspend PulseAudio with that "device reservation" hack. (I think that's a very poor solution, but that's not the topic here.) But that doesn't mean we can't offer a pulseaudio backend for those who want it. The upstream fluidsynth project ships such a backend for a reason! There's nothing about the ALSA sequencer interface which makes it suitable only for audio production. At least KMid, which uses that interface, is definitely a pure playback app for an audio consumer audience.

> If you can point me to the pulseaudio requirement guideline, I promise to drop
> my comaintainership on fluidsynth and to orphan all my packages that depend on
> fluidsynth.

What sense does this make? Your boycotting of PulseAudio is childish and stupid.

The fact, is, we're working hard to make sound "just work" in Fedora. But that requires ALL applications to cooperate. It just takes one or two uncooperative maintainers to break that experience, and people will yell that Fedora is broken and/or that PulseAudio is broken.

> I do not do "Disabling the PulseAudio backends shipped by upstream".

You do. "Upstream" is not "other maintainers", "upstream" means "the projects whose software we ship", in this case the fluidsynth project. They're shipping a PulseAudio backend, you're not packaging it.

Comment 18 Kevin Kofler 2009-10-29 10:22:53 UTC
(BTW, I'd even argue that the PulseAudio backend should be the default one for that "just works" experience, the target userbase of JACK can definitely set a dropdown in qsynth. But I won't insist on that part. All I care about is that the PulseAudio backend gets BUILT.)

Comment 19 Kevin Kofler 2009-10-30 02:14:37 UTC
https://fedorahosted.org/fesco/ticket/265

Comment 20 Orcan Ogetbil 2009-11-18 03:46:11 UTC
A new bug #538224 was opened with the pulseaudio support request.

I am setting this thread's title back to what it was, since the new title does not represent the thread's original purpose. 

I am also closing this WONTFIX as I doubt that pulseaudio devs will care to fix this. (They mark everything NOTABUG anyway...)

Please continue in the new bug that is directly opened for pulseaudio support.


Note You need to log in before you can comment on or make changes to this bug.