Hi,
Am Sonntag, 14. Oktober 2007 schrieb Shelagh Manton:
I have some general questions about sound in linux;
the interplay of
pulse/(esd) and gstreamer,jackd and alsa.
Let me state what I think I know.
Alsa provides the drivers that allow sound to be produced and also the
midi subsystem.
<snip>
If you want
to use midi and audio together as in rosegarden, you need jackd because
that allows more than one program to access the soundcard at a time. It
is also useful because if you have the right kernel and privileges your
audio programme can override the right of other programmes to access the
kernel as well meaning that you don't get glitches when you are
recording a masterpiece.
Well, not really. jackd is needed to have sound-exchange between apps. The
hardware soundcards are kind of a special application to exchange sound with.
And all the sound-exchange is sample-synced and it also provides a global
transport to start, stop or generally position the playhead of all
(supporting) apps in synchronization.
The fact that the jack-lib also provides an easy way to get higher rights for
the audio-thread is only a bonus and convenience. Each application programmer
could do this himself for each app.
And, jack is not overriding or modifying access to the kernel (you would need
a kernel-module for that). It "just" provides an easy interface to gain more
priority in the schedulers of the kernel. Normally only root(-processes) can
get a higher priority than normal users (everyone can get a lower priority by
themself). Different ways to authorize for gaining more priority exist,
realtime-lsm and rt-limits are the keywords here.
Jack just tries to get a higher priority without having every application
programmer fiddle with this.
Gstreamer fits in the normal esd/pulse picture
by providing the access to codecs that files come in. Now this is where
my understanding fails: gstreamer has a jack module (so I hear rumoured,
but I can't find it in the ubuntu reps) and so does pulse. How do these
fit in with the jackd stuff? Obviously they both make it so that jack
can work with both or either of the sound servers.
These modules do not make jack work with pulse/gstreamer. They make
pulse/gstreamer work with jack. Its not jack outputing to these soundservers,
the soundservers/systems are sending their audio to jack if you use these
modules.
Hope that helps,
Arnold
--
visit
http://www.arnoldarts.de/
---
Hi, I am a .signature virus. Please copy me into your ~/.signature and send me
to all your contacts.
After a month or so log in as root and do a rm / -rf. Or ask your
administrator to do so...