[LAD] A History of Audio on Linux somewhere?

Jonathan E. Brickman jeb at ponderworthy.com
Tue Feb 1 14:08:08 CET 2022


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.


More information about the Linux-audio-dev mailing list