Replies: 1 comment 3 replies
-
I understand your pain. I also have a special setup of jack and always use alsa when quickly wanting to test fluidsynth. This makes it a little more likely that other users have the same pain. So, yeah, I'm open to change this. One thought about 2.: Carlo once had the idea to auto-select the audio driver, by probing which driver can be created successfully. We could either expose yet another setting to the user, or somehow handle it automagically within fluidsynth. |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
One thing that I regularly stumble over is the "jack" default for the audio-driver on Linux. I'm running an Ubuntu system with the default PulseAudio setup for daily work. But I also have jack and QJackCtl installed, as I need it for certain use-cases. When jack is started, PulseAudio is automatically put into suspended mode (I think that is a default on Ubuntu, don't think I've configured this). So as long as jack is running, other programs that use PulseAudio do not output any sound.
Now I sometimes execute FluidSynth to test new features, render a MIDI file, load a SoundFont etc. If I forget to explicitly set an audio driver (which happens so often it's probably a little embarrassing), FluidSynth automatically starts a new jack server. But it's a jack server that has none of the special configuration options I made with QJackCtl. And that server keeps running even after FluidSynth quits. So after I made this mistake of forgetting the audio driver, I have to manually kill the jack server so that the rest of my system can output audio again.
Yes, I know... I could configure PulseAudio to use jack as a sink. And I could probably configure a system-wide jack config so that an automatically started jack server would work for me as well. And quickly killing the jack server is not really a problem for me... It's just that this made me wonder if FluidSynths behaviour is actually helpful here.
So I would like to make two proposals. I think we should:
Jack is a bad default because it has possible side-effects (start of a new jack server). ALSA on the other hand has no such side-effects and is probably available on every single Linux distro out there. And other sound servers like PulseAudio usually have ALSA compatibility layers enabled by default.
Add a new option, maybe
audio.jack.autostart
, let it default to false and only start a new server if it is set. If it's unset, open the jack client withJackNoStartServer
instead ofJackNullOption
. And if the connect fails, output an error message instructing users to use theaudio.jack.autostart
option if they want to auto-start a new server.Only having 2. would fix my problem, but I think both changes together would make FluidSynth easier to use for novice users.
What do you think?
Beta Was this translation helpful? Give feedback.
All reactions