On 1/25/22 9:18 AM, Len Ovens wrote:
On Tue, 25 Jan 2022, Philip Rhoades wrote:
I am just a regular user of Linux audio but I am
interested in the
history of how software was developed and what problems they were
meant to solve on Linux eg OSS, ALSA, Jack etc and more recently
PipeWire.
Is there such a documented history already in existence on the web
somewhere? (ie NOT a HOWTO) - that would be intelligible to non-audio
professionals?
Funny that. I started using Linux in the early 90s. I had no sound
card at the time and did music on tape with one track with sync,
giving me 7 audio tracks and 16 (well 32 if I wanted but 16 was enough
to cover the few synths I had) tracks of midi. For that sequencing I
used an Atari Mega. Sound cards were more than my small budget could
afford and so I ignored OSS till I got one. I had just figgured OSS
well enough to use a bit when ALSA showed up and so was annoyed that I
had to figgure out a new audio server. However, my low memory, low
speed mother boards of the time meant audio was more of a curiosity.
By the time I got something I could actually do sound on (a P4 single
core) Jack on top of alsa was the way to do things.
All that to say, even though I have been using Linux from the roll
your kernel monthly days, I can't really say much about audio history.
--
Len Ovens
www.ovenwerks.net
Ditto. I saw most of it (started in Linux in '93 or '94), but that
doesn't mean I understand much of it. OSS I don't think I got to work
at all though I tried on my Sound Blaster 16, ALSA I did early but
didn't have enough computing power to do much. Things started to get
slightly practical for me with ZynAddSubFX and then Yoshimi, JACK to
ALSA, in the early 2000's.
Clearly OSS and ALSA were and are there in order that sound better than
case-speaker beeps can occur :-) I still remember a few amazing efforts
using that case speaker. APIs on top have been developed for app
connection and timing, JACK obviously being the one with the essential
goodies for anything except smooth playback and simple recording. But
gradually, for very high quality playback, better buffering, and
automatic friendly coexistence of many audio apps simultaneously, Pulse
arrived, after it effectively replaced one or two (three?) predecessors
of generally similar intent. Along with this came GStreamer, another
layer which handles codecs and video synchronization, for quite a while
with Pulse or direct to ALSA, direct to JACK having been developed too.
In more recent years automatic coexistence of JACK and Pulse was worked
out (at considerable effort...) in some distros and with certain tools;
but with all of that we have several layers to juggle, separate
server-level code for each, the whole being very not simple, and
therefore relatively easy to break. Pipewire seems to be an effort to
integrate and, to an extent, reimplement APIs at the ALSA/JACK/Pulse
levels, and it is excellent for many purposes now, and getting better.
One thing which Pipewire appears to be doing already with some
surprising facility, if I understand what I have just heard, is to take
the video sync capability of GStreamer and integrate it with the JACK
API, and apparently fully automatically.
That's probably all I think I know; corrections solicited :-) It does
amuse me to have written the above given some of the folks whom I know
are on this list :-) Many many thanks :-)
J.E.B.