This is a great idea, and a good educational video. I
noticed a couple of things I thought were maybe slightly
wrong as I watched it - I don't suppose you have a script
you could show us, as that would make it easier to comment?
Attached (you asked for it ;-).
Also, I'm not sure it's best to call this
'Basics'.
'Fundamentals' maybe would be a better word.
Great, I did think about it and didn't find a better word.
I'll use your's instead :) .
I would worry
that it will look rather confusing and maybe offputting if
this is used to introduce people to Linux audio. Maybe the
first thing people see should be something a bit less
theoretical, like a walkthrough in Ardour or something?
I absolutely agree; we'll not repell but cast people.
Therefore, I did avoid to call it something like
«introduction».
I think it's an excellent overview of the
underlying system
though, well done for doing it.
Thanks.
I think it's still too theoretically; maybe some screenshots
and a short jingle at the beginning and the end of the video
would be great.
Best regards
ce
********************************************
********************************************
Welcome to this video about Linux Audio.
This video provides information about the basic audio
architecture on Linux based systems.
=====
The base system needs three things:
* The hardware, this means a computer and any kind of audio
device
* The operating system kernel, in this case Linux
* A driver system to make your device work
In Linux, there are two driver systems. The older Open Sound
System - OSS -
and the newer Advanced Linux Sound Architecture.
You have to choose one of them; it is not possible to have
both assigned to a card.
For professional audio work, you should use ALSA. PLease note
that ALSA can emulate OSS,
so applications which only have an OSS interface can be also
used when running ALSA.
=====
As soon as your card is set up and the correct driver is
runnning, an audio application
can use it. Unfortunately, only one application at a time can
now use the device.
That's not what you want to happen, you want to have multiple
applications like synthesizers
and sequencers playing sound. So you're in need of a sound
server.
=====
The soundserver will grab the audio card.
Other applications which have a built in interface for the
soundserver will put the sound
not directly to the audio device but to the soundserver
instead.
The soundserver mixes the sound of the different applications
and plays it through the audio device.
You might have guessed that there are more than one
soundserver available on Linux.
=====
The KDE projects uses aRts and the Gnome project uses esound.
Professional audio users use the Jack soundserver.
Because a soundserver grabs the audio device for exclusive
usage, you can only have one soundserver running on an audio
device at the same time.
=====
arts gets automatically started as soon as your KDE session
starts. When you want to use further non-KDE audio
applications, you have at first to stop arts.
=====
The same for esound. esound gets automatically started as soon
as your Gnome session starts. When you want to use further
non-gnome audio applications, you have at first to stop
esound.
=====
Jack is a soundserver which is the right thing for
professional use. The main advantage is that Jack does not
simply merge audio from different applications.
Jack uses realtime capabilities of the linux kernel to ensure
that audio gets processed with absolutely correct timing.
Furthermore, Jack takes care about the applications which are
connected to it. If an application hangs, it gets
disconnected by jack and has to be reconnected again.
This way, one application can fail, but all others will not
stop playing sound.
To make an application a jack client, it needs built in jack
support. Meanwhile many applications have built in jack
support, and even media players like xmms offer a jack output
plugin.
=====
There's Portaudio which some people think it is also a sound
server, but it isn't. Portaudio is an audio abstraction
layer. Portaudio is used for example by Audacity.
Audacity is a tool for editing audio material like samples.
Audacity can be compiled for Windows, Mac OS ten and Linux as
well, so Audacity uses portaudio as a translator for the
different operating systems.
So, portaudio itself is not a sound server but an audio
abstraction layer.
=====
Finally, here's a configuration recommendation. Above the
hardware, use a Linux kernel of the 2.6 series. These have
built in ALSA support as well as realtime capabilities needed
by jack.
Furthermore, try to use the latest jack version you can get.
Jack is under heavy development, and every few days there's a
new version which includes long desired features.
On top of this, use applications which can output sound to
jack.
=====
If you plan to buy a special audio card, you have to know if
the desired device will be working on linux. You will not get
Linux drivers from the manufacturer itself.
To check it out, visit the homepage of your distribution or
the homepage of the ALSA project. You can also join the
ALSA-user or the linux audio user mailinglists.
Common on-board chips, like chips conforming to the AC 97
standard, will work. Most - but not all - PCI cards should
work as well.
Surprisingly, many USB devices will work, both audio and MIDI.
Please note that you can do audio on USB 1.1 connections. You
do not necessarily need USB 2.0.
Firewire audio cards do currently not work on linux based
systems.
=====
Here are some resources you should know. First of all, there's
the homepage of the ALSA project, including a hardware
database.
On the jack homepage, you should find the latest version of
jack.
The following page can be used to subscribe to the linux audio
user's mailing list.
The linux kernel can be found on
kernel.org, but configuring
and installing a kernel of your own isn't the easiest thing
to do for normal users.
You can contact the author of this video by e-Mail for asking
questions. The pages you have seen are also available as an
Open
Office.org presentation.
=====
A short Conclusion will close this video. You should use the
ALSA driver system in conjunction with Jack as a soundserver.
Applications you'd like to use need built jack support and
have to be startet explicitely as a jack client.
OK, I hope you have enjoyed this video, thanks for your time
and patience, and have fun with audio on Linux!