I was always impressed with the amount and quality of audio software in
Linux. When it all works, and is driven by someone who knows what
they're doing, it's essentially a high-end DAW production environment.
If it all worked smoothly, I am sure it could be one of Linux and Fedora
showcases.
I am a musical dilettante, so my attempts have been perhaps haphazard,
but I had a mixed luck: I was able to get everything to run, but the
setup seemed very brittle. I was not very successful debugging the
problems because the audio chain is pretty complex, what with the raw
devices, ALSA, PulseAudio and Jackd having overlapping roles, and lots
of obsolete and conflicting information on the web. I decided to write
to the development list in the hope of starting a technical discussion
that would result in either technical and/or configuration fixes, or at
least some documentation, that I could perhaps help develop.
I have been using the following programs:
play/aplay simple .wav players
espeak speech synthesizer
Qsynth/fluidsynth .midi players/synthesizers
audacity sound editor
pianobooster keyboard play-along teaching tool
Rosegarden w/lilypond music editor
Hydrogen drum synthesizer
Yoshimi synthesizer
rakarrack guitar effect processor
As I said, I was able to use all of them successfully, but I had
problems integrating them and keeping them up and running in the long
term. I wonder if I am doing something wrong, or are there technical
issues that I'm running into, currently on Fedora 25 but also on
previous versions.
Obviously, out of the box, simple sound obviously works: I can aplay a
.wav file, espeak works, and some of the synthesizers like audacity and
hydrogen simply work without any preconditions.
Other audio programs require starting Qsynth first: that seems to be the
case for Rosegarden, Yoshimi and pianobooster. What is puzzling is that
there seems to be a lot of hidden state: after running Qsynth for a
while, the simple sound (aplay, espeak) tend to no longer work: they
hang without producing any sound, even though Qsynth is no longer
running. I tried stracing them, but they just go into nanosleep() busy
loops on internal file descriptors, so it's not clear what exactly
they're blocking on. I ran into one glitch where qsynth somehow inserted
a .wav file as a soundfont in the configuration file, which prevented it
from working subsequently (I had to delete the
~/.config/rncbc.org/Qsynth.conf file).
I am planning to log some bugzilla reports, but I am not sure against
what subsystems: is it ALSA, or PulseAudio, or Gnome/pavucontrol, or
Qsynth. Specifically, I'd like to address the following issues:
- simple sound (aplay, espeak) failing after running fancy synthesized
sound apps (Qsynth): I'd need guidance what to test to find the hidden
state that causes that.
- fancy sound apps (Rosegarden/pianobooster) silently failing without
the synthesizer (Qsynth) running first. I'd like to discuss what could
be done to at least produce some error messages directing users to set
up synthesizers first, or maybe to automatically start the required
synthesizers.