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.
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev

Reply via email to