How PulseAudio works

In an effort to better understand how each of the PulseAudio components interact with each other, I’ve done a small diagram that roughly shows how each component connects and interacts:

PulseAudio system diagram, version 2

You’re free to use this diagram on your own site or documentation, as per the license that covers it (see the footer). However, I do ask you for credit and attribution if you use it. The image is also licensed under the GFDL, just in case you need it for free documentation.

The diagram is also available as a Dia diagram.

Share this article!

  • Digg it!
  • Slashdot it!
  • Share on Facebook
  • Bookmark it!

Sound off!

Write your own

Opinions

  1. Mojo Says:

    Thanks for the great diagram. I came across this serendipitously as I was just looking into PulseAudio on my own and thinking about the possibility of using it on my desktop and home network. I have a couple questions…

    Question one is regarding multiple network sinks…

    On our home network, we are building a machine for the closet to be our router and a central server for our media. I have thought about running a the server as a music server as well. Not just for storing our collective music collection, but also as a house-wide jukebox that we can all control. If I set up PulseAudio on the server and on all the desktops, will the sound output from the various desktop machines (living room and personal computers), will the audio output be synchronized between the machines? In other words, if I have the output going to say the living room machine and my bedroom PC, will there be any noticable latency between the outputs? Like an audible delay between them? I don’t want to have someone in earshot of two of the outputs to hear an echo of the music as it comes out one computer slightly before the another. I had this problem using my desktop as a jukebox before and streaming the audio using icecast2. It would be slightly delayed on the other machines and sound screwy.

    My second question is about JACK audio…

    I have recently set up JACK with the realtime kernel on Ubuntu Studio 7.10 on my desktop, as I want to do some music production. I have my guitar rig and a MIDI keyboard, and soon will get a good microphone for vocals to mix in. How does JACK play into a system with PulseAudio? Do they play nice together? Or is PulseAudio also a relatime solution that could (or should) replace JACK? I am very curious about the interaction between the two audio systems, and where they may either compliment or overlap each other.

    Thanks!

    Mojo

  2. Rudd-O Says:

    If you use RTP to broadcast audio to your LAN (make sure you set the correct broadcast routes on all machines!) then you should not experience audio drift. The correct way is to push the audio into the proper PulseAudio sink, and connect that sink (within PulseAudio) using the module-null stuff to a module-combine or module-rtp sink that casts the audio through the local network.

    About jack, I have NO idea — sorry.

  3. Mojo Says:

    Looking a little further I found that the pulseaudio-module-jack package is not included in the Ubuntu repositories. Ubuntu 7.10 (I’m using the Ubuntu Studio release) includes PulseAudio 0.9.6-1. I tried using gDebi to install the pulseaudio-module-jack package from Debian but it still didn’t work. I have been told that it works better in 0.9.6-2 but that I should really try 0.9.7 from source. In the next couple days I’ll give it all a go again with the source-compiled PulseAudio. Thanks again for the feedback.

    Mojo

  4. Résolution des problèmes de son sous Ubuntu II (PulseAudio) « ((fluoblog)) Says:

    […] crédit: rudd-o […]