<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<feed xmlns="http://www.w3.org/2005/Atom">

	<title>Pulsar</title>
	<link rel="self" href="http://freedesktop.org/software/pulseaudio/planet/atom.xml"/>
	<link href="http://freedesktop.org/software/pulseaudio/planet/"/>
	<id>http://freedesktop.org/software/pulseaudio/planet/atom.xml</id>
	<updated>2013-06-19T17:00:27+00:00</updated>
	<generator uri="http://www.planetplanet.org/">Planet/2.0 +http://www.planetplanet.org</generator>

	<entry xml:lang="en-US">
		<title type="html">PulseAudio 4.0 and more</title>
		<link href="http://arunraghavan.net/2013/06/pulseaudio-4-0-and-more/"/>
		<id>http://arunraghavan.net/?p=1433</id>
		<updated>2013-06-04T02:45:41+00:00</updated>
		<content type="html">&lt;p&gt;And we&amp;#8217;re back &amp;#8230; PulseAudio 4.0 is &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2013-June/017467.html&quot;&gt;out&lt;/a&gt;! There&amp;#8217;s both a short and super-detailed changelog in the &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/PulseAudio/Notes/4.0&quot;&gt;release notes&lt;/a&gt;. For the lazy, this release brings a bunch of Bluetooth stability updates, better low latency handling, performance improvements, and a whole lot more. :)&lt;/p&gt;

&lt;p&gt;One interesting thing is that for this release, we kept a parallel &lt;code&gt;next&lt;/code&gt; branch open while &lt;code&gt;master&lt;/code&gt; was frozen for stabilising and releasing. As a result, we&amp;#8217;re already well on our way to 5.0 with 52 commits since 4.0 already merged into &lt;code&gt;master&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;And finally, I&amp;#8217;m excited to announce PulseAudio is going to be carrying out two great projects this summer, as part of the Google Summer of Code! We are going to have Alexander Couzens (lynxis) working on a rewrite of module-tunnel using libpulse, mentored by Tanu Kaskinen. In addition to this, Damir Jelić (poljar) working on improvements to resampling, mentored by Peter Meerwald.&lt;/p&gt;

&lt;p&gt;That&amp;#8217;s just some of the things to look forward to in coming months. I&amp;#8217;ve got a few more things I&amp;#8217;d like to write about, but I&amp;#8217;ll save that for another post.&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">PulseAudio in GSoC 2013</title>
		<link href="http://arunraghavan.net/2013/04/pulseaudio-in-gsoc-2013/"/>
		<id>http://arunraghavan.net/?p=1426</id>
		<updated>2013-04-11T11:34:48+00:00</updated>
		<content type="html">&lt;p&gt;That&amp;#8217;s right &amp;#8212; PulseAudio will be participating in the Google Summer of Code again this year! We had a great set of students and projects last year, and you&amp;#8217;ve already seen some their work in the last release.&lt;/p&gt;

&lt;p&gt;There are some more details on &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2013-April/016899.html&quot;&gt;how to get involved&lt;/a&gt; on the mailing list. We&amp;#8217;re looking forward to having another set of smart and enthusiastic new contributors this year!&lt;/p&gt;

&lt;p&gt;p.s.: Mentors and students from organisations (GStreamer and BlueZ, for example), do feel free to get in touch with us if you have ideas for projects related to PulseAudio that overlap with those other projects.&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">The Biggest Myths</title>
		<link href="http://0pointer.de/blog/projects/the-biggest-myths.html"/>
		<id>http://0pointer.de/blog/projects/the-biggest-myths.html</id>
		<updated>2013-01-26T01:43:00+00:00</updated>
		<content type="html">&lt;p&gt;Since we first proposed &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/systemd&quot;&gt;systemd&lt;/a&gt;
for inclusion in the distributions it has been frequently discussed in
many forums, mailing lists and conferences. In these discussions one
can often hear certain myths about systemd, that are repeated over and
over again, but certainly don't gain any truth by constant
repetition. Let's take the time to debunk a few of them:&lt;/p&gt;

&lt;ol&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd is monolithic.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;If you build systemd with all configuration options enabled you
will build 69 individual binaries. These binaries all serve different
tasks, and are neatly separated for a number of reasons. For example,
we designed systemd with security in mind, hence most daemons run at
minimal privileges (using kernel capabilities, for example) and are
responsible for very specific tasks only, to minimize their security
surface and impact. Also, systemd parallelizes the boot more than any
prior solution. This parallization happens by running more processes
in parallel. Thus it is essential that systemd is nicely split up into
many binaries and thus processes. In fact, many of these
binaries&lt;sup&gt;[1]&lt;/sup&gt; are separated out so nicely, that they are very
useful outside of systemd, too.&lt;/p&gt;

&lt;p&gt;A package involving 69 individual binaries can hardly be called
&lt;i&gt;monolithic&lt;/i&gt;. What is different from prior solutions however,
is that we ship more components in a single tarball, and maintain them
upstream in a single repository with a unified release cycle.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd is about speed.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Yes, systemd is fast (&lt;a href=&quot;https://plus.google.com/108087225644395745666/posts/LyPQgKdntgA&quot;&gt;A
pretty complete userspace boot-up in ~900ms, anyone?&lt;/a&gt;), but that's
primarily just a side-effect of doing things &lt;i&gt;right&lt;/i&gt;. In fact, we
never really sat down and optimized the last tiny bit of performance
out of systemd. Instead, we actually frequently knowingly picked the
slightly slower code paths in order to keep the code more
readable. This doesn't mean being fast was irrelevant for us, but
reducing systemd to its speed is certainly quite a misconception,
since that is certainly not anywhere near the top of our list of
goals.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd's fast boot-up is irrelevant for
servers.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;That is just completely not true. Many administrators actually are
keen on reduced downtimes during maintenance windows. In High
Availability setups it's kinda nice if the failed machine comes back
up really fast. In cloud setups with a large number of VMs or
containers the price of slow boots multiplies with the number of
instances. Spending minutes of CPU and IO on really slow boots of
hundreds of VMs or containers reduces your system's density
drastically, heck, it even costs you more energy. Slow boots can be
quite financially expensive. Then, fast booting of containers allows
you to implement a logic such as &lt;a href=&quot;http://0pointer.de/blog/projects/socket-activated-containers.html&quot;&gt;socket
activated containers&lt;/a&gt;, allowing you to drastically increase the
density of your cloud system.&lt;/p&gt;

&lt;p&gt;Of course, in many server setups boot-up is indeed irrelevant, but
systemd is supposed to cover the whole range. And yes, I am aware
that often it is the server firmware that costs the most time at
boot-up, and the OS anyways fast compared to that, but well, systemd
is still supposed to cover the whole range (see above...), and no,
not all servers have such bad firmware, and certainly not VMs and
containers, which are servers of a kind, too.&lt;sup&gt;[2]&lt;/sup&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd is incompatible with shell scripts.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;This is entirely bogus. &lt;i&gt;We&lt;/i&gt; just don't use them for the boot
process, because we believe they aren't the best tool for that
specific purpose, but that doesn't mean systemd was incompatible with
them. You can easily run shell scripts as systemd services, heck, you
can run scripts written in &lt;i&gt;any&lt;/i&gt; language as systemd services,
systemd doesn't care the slightest bit what's inside your
executable. Moreover, we heavily use shell scripts for our own
purposes, for installing, building, testing systemd. And you can stick
your scripts in the early boot process, use them for normal services,
you can run them at latest shutdown, there are practically no
limits.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd is difficult.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;This also is entire non-sense. A systemd platform is actually much
simpler than traditional Linuxes because it unifies
system objects and their dependencies as systemd units. The
configuration file language is very simple, and redundant
configuration files we got rid of. We provide uniform tools for much
of the configuration of the system. The system is much less
conglomerate than traditional Linuxes are. We also have pretty
comprehensive documentation (&lt;a href=&quot;http://www.freedesktop.org/wiki/Software/systemd&quot;&gt;all linked
from the homepage&lt;/a&gt;) about pretty much every detail of systemd, and
this not only covers admin/user-facing interfaces, but also developer
APIs.&lt;/p&gt;

&lt;p&gt;systemd certainly comes with a learning curve. Everything
does. However, we like to believe that it is actually simpler to
understand systemd than a Shell-based boot for most people. Surprised
we say that? Well, as it turns out, Shell is not a pretty language to
learn, it's syntax is arcane and complex. systemd unit files are
substantially easier to understand, they do not expose a programming
language, but are simple and declarative by nature. That all said, if
you are experienced in shell, then yes, adopting systemd will take a
bit of learning.&lt;/p&gt;

&lt;p&gt;To make learning easy we tried hard to provide the maximum
compatibility to previous solutions. But not only that, on many
distributions you'll find that some of the traditional tools will now
even tell you -- while executing what you are asking for -- how you
could do it with the newer tools instead, in a possibly nicer way.&lt;/p&gt;

&lt;p&gt;Anyway, the take-away is probably that systemd is probably as
simple as such a system can be, and that we try hard to make it easy
to learn. But yes, if you know sysvinit then adopting systemd will
require a bit learning, but quite frankly if you mastered sysvinit,
then systemd should be easy for you.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd is not modular.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Not true at all. At compile time you have a number of
&lt;tt&gt;configure&lt;/tt&gt; switches to select what you want to build, and what
not. And &lt;a href=&quot;http://freedesktop.org/wiki/Software/systemd/MinimalBuilds&quot;&gt;we
document&lt;/a&gt; how you can select in even more detail what you need,
going beyond our configure switches.&lt;/p&gt;

&lt;p&gt;This modularity is not totally unlike the one of the Linux kernel,
where you can select many features individually at compile time. If the
kernel is modular enough for you then systemd should be pretty close,
too.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd is only for desktops.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;That is certainly not true. With systemd we try to cover pretty
much the same range as Linux itself does. While we care for desktop
uses, we also care pretty much the same way for server uses, and
embedded uses as well. You can bet that Red Hat wouldn't make it a
core piece of RHEL7 if it wasn't the best option for managing services
on servers.&lt;/p&gt;

&lt;p&gt;People from numerous companies work on systemd. Car manufactureres
build it into cars, Red Hat uses it for a server operating system, and
GNOME uses many of its interfaces for improving the desktop. You find
it in toys, in space telescopes, and in wind turbines.&lt;/p&gt;

&lt;p&gt;Most features I most recently worked on are probably relevant
primarily on servers, such as &lt;a href=&quot;http://0pointer.de/blog/projects/socket-activated-containers.html&quot;&gt;container
support&lt;/a&gt;, &lt;a href=&quot;http://0pointer.de/blog/projects/resources.html&quot;&gt;resource
management&lt;/a&gt; or the &lt;a href=&quot;http://0pointer.de/blog/projects/security.html&quot;&gt;security
features&lt;/a&gt;. We cover desktop systems pretty well already, and there
are number of companies doing systemd development for embedded, some
even offer consulting services in it.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd was created as result of the NIH syndrome.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;This is not true. Before we began working on systemd we were
pushing for Canonical's Upstart to be widely adopted (and Fedora/RHEL
used it too for a while). However, we eventually came to the
conclusion that its design was inherently flawed at its core (at least
in our eyes: most fundamentally, it leaves dependency management to
the admin/developer, instead of solving this hard problem in code),
and if something's wrong in the core you better replace it, rather
than fix it. This was hardly the only reason though, other things that
came into play, such as the licensing/contribution agreement mess
around it. NIH wasn't one of the reasons, though...&lt;sup&gt;[3]&lt;/sup&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd is a freedesktop.org project.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Well, systemd is certainly hosted at fdo, but freedesktop.org is
little else but a repository for code and documentation. Pretty much
any coder can request a repository there and dump his stuff there (as
long as it's somewhat relevant for the infrastructure of free
systems). There's no cabal involved, no &quot;standardization&quot; scheme, no
project vetting, nothing. It's just a nice, free, reliable place to
have your repository. In that regard it's a bit like SourceForge,
github, kernel.org, just not commercial and without over-the-top
requirements, and hence a good place to keep our stuff.&lt;/p&gt;

&lt;p&gt;So yes, we host our stuff at fdo, but the implied assumption of
this myth in that there was a group of people who meet and then agree
on how the future free systems look like, is entirely bogus.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd is not UNIX.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;There's certainly some truth in that. systemd's sources do not
contain a single line of code originating from original UNIX. However,
we derive inspiration from UNIX, and thus there's a ton of UNIX in
systemd. For example, the UNIX idea of &quot;everything is a file&quot; finds
reflection in that in systemd all services are exposed at runtime in a
kernel file system, the &lt;tt&gt;cgroupfs&lt;/tt&gt;. Then, one of the original
features of UNIX was multi-seat support, based on built-in terminal
support. Text terminals are hardly the state of the art how you
interface with your computer these days however. With systemd we
brought native &lt;a href=&quot;http://0pointer.de/blog/projects/multi-seat.html&quot;&gt;multi-seat&lt;/a&gt;
support back, but this time with full support for today's hardware,
covering graphics, mice, audio, webcams and more, and all that fully
automatic, hotplug-capable and without configuration. In fact the
design of systemd as a suite of integrated tools that each have their
individual purposes but when used together are more than just the sum
of the parts, that's pretty much at the core of UNIX philosophy. Then,
the way our project is handled (i.e. maintaining much of the core OS
in a single git repository) is much closer to the BSD model (which is
a true UNIX, unlike Linux) of doing things (where most of the core OS
is kept in a single CVS/SVN repository) than things on Linux ever
were.&lt;/p&gt;

&lt;p&gt;Ultimately, UNIX is something different for everybody. For us
systemd maintainers it is something we derive inspiration from. For
others it is a religion, and much like the other world religions there
are different readings and understandings of it. Some define UNIX
based on specific pieces of code heritage, others see it just as a set
of ideas, others as a set of commands or APIs, and even others as a
definition of behaviours. Of course, it is impossible to ever make all
these people happy.&lt;/p&gt;

&lt;p&gt;Ultimately the question whether something is UNIX or not matters
very little. Being technically excellent is hardly exclusive to
UNIX. For us, UNIX is a major influence (heck, the biggest one), but
we also have other influences. Hence in some areas systemd will be
very UNIXy, and in others a little bit less.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd is complex.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;There's certainly some truth in that. Modern computers are complex
beasts, and the OS running on it will hence have to be complex
too. However, systemd is certainly not more complex than prior
implementations of the same components. Much rather, it's simpler, and
has less redundancy (see above). Moreover, building a simple OS based
on systemd will involve much fewer packages than a traditional Linux
did. Fewer packages makes it easier to build your system, gets rid of
interdependencies and of much of the different behaviour of every
component involved.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd is bloated.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Well, &lt;i&gt;bloated&lt;/i&gt; certainly has many different definitions. But in
most definitions systemd is probably the opposite of bloat. Since
systemd components share a common code base, they tend to share much
more code for common code paths. Here's an example: in a traditional
Linux setup, sysvinit, start-stop-daemon, inetd, cron, dbus, all
implemented a scheme to execute processes with various configuration
options in a certain, hopefully clean environment. On systemd the code
paths for all of this, for the configuration parsing, as well as the
actual execution is shared. This means less code, less place for
mistakes, less memory and cache pressure, and is thus a very good
thing. And as a side-effect you actually get a ton more functionality
for it...&lt;/p&gt;

&lt;p&gt;As mentioned above, systemd is also pretty modular. You can choose
at build time which components you need, and which you don't
need. People can hence specifically choose the level of &quot;bloat&quot; they
want.&lt;/p&gt;

&lt;p&gt;When you build systemd, it only requires three dependencies: glibc,
libcap and dbus. That's it. It can make use of more dependencies, but
these are entirely optional.&lt;/p&gt;

&lt;p&gt;So, yeah, whichever way you look at it, it's really not
&lt;i&gt;bloated&lt;/i&gt;.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd being Linux-only is not nice to the BSDs.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Completely wrong. The BSD folks are pretty much uninterested in
systemd. If systemd was portable, this would change nothing, they
still wouldn't adopt it. And the same is true for the other Unixes in
the world. Solaris has SMF, BSD has their own &quot;rc&quot; system, and they
always maintained it separately from Linux. The init system is very
close to the core of the entire OS. And these other operating systems
hence define themselves among other things by their core
userspace. The assumption that they'd adopt our core userspace if we
just made it portable, is completely without any foundation.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd being Linux-only makes it impossible for Debian to adopt it as default.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Debian supports non-Linux kernels in their distribution. systemd
won't run on those. Is that a problem though, and should that hinder
them to adopt system as default? Not really. The folks who ported
Debian to these other kernels were willing to invest time in a massive
porting effort, they set up test and build systems, and patched and
built numerous packages for their goal. The maintainance of both a
systemd unit file and a classic init script for the packaged services
is a negligable amount of work compared to that, especially since
those scripts more often than not exist already.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd could be ported to other kernels if its maintainers just wanted to.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;That is simply not true. Porting systemd to other kernel is not
feasible. We just use too many Linux-specific interfaces. For a few
one might find replacements on other kernels, some features one might
want to turn off, but for most this is nor really possible. Here's a
small, very incomprehensive list: &lt;tt&gt;cgroups, fanotify, umount2(),
/proc/self/mountinfo &lt;/tt&gt;(including notification)&lt;tt&gt;, /dev/swaps &lt;/tt&gt;(same)&lt;tt&gt;,
udev, netlink, &lt;/tt&gt;the structure of&lt;tt&gt; /sys, /proc/$PID/comm,
/proc/$PID/cmdline, /proc/$PID/loginuid, /proc/$PID/stat,
/proc/$PID/session, /proc/$PID/exe, /proc/$PID/fd, tmpfs, devtmpfs,
&lt;/tt&gt;capabilities, namespaces of all kinds, various&lt;tt&gt; prctl()s, &lt;/tt&gt;numerous&lt;tt&gt;
ioctls, &lt;/tt&gt;the&lt;tt&gt; mount() &lt;/tt&gt;system call and its semantics&lt;tt&gt;, selinux, audit,
inotify, statfs, O_DIRECTORY, O_NOATIME, /proc/$PID/root, waitid(),
SCM_CREDENTIALS, SCM_RIGHTS, mkostemp(), /dev/input, ...&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;And no, if you look at this list and pick out the few where you can
think of obvious counterparts on other kernels, then think again, and
look at the others you didn't pick, and the complexity of replacing
them.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd is not portable for no reason.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Non-sense! We use the Linux-specific functionality because we need
it to implement what we want. Linux has so many features that
UNIX/POSIX didn't have, and we want to empower the user with
them. These features are incredibly useful, but only if they are
actually exposed in a friendly way to the user, and that's what we do
with systemd.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd uses binary configuration files.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;No idea who came up with this crazy myth, but it's absolutely not
true. systemd is configured pretty much exclusively via simple text
files. A few settings you can also alter with the kernel command line
and via environment variables. There's nothing binary in its
configuration (not even XML). Just plain, simple, easy-to-read text
files.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd is a feature creep.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Well, systemd certainly covers more ground that it used to. It's
not just an init system anymore, but the basic userspace building
block to build an OS from, but we carefully make sure to keep most of
the features optional. You can turn a lot off at compile time, and
even more at runtime. Thus you can choose freely how much feature
creeping you want.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd forces you to do something.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;systemd is not the mafia. It's Free Software, you can do with it
whatever you want, and that includes not using it. That's pretty much
the opposite of &quot;forcing&quot;.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd makes it impossible to run syslog.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Not true, we carefully made sure when &lt;a href=&quot;http://0pointer.de/blog/projects/the-journal.html&quot;&gt;we introduced
the journal&lt;/a&gt; that all data is also passed on to any syslog daemon
running. In fact, if something changed, then only that syslog gets
more complete data now than it got before, since we now cover early
boot stuff as well as STDOUT/STDERR of any system service.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd is incompatible.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;We try very hard to provide the best possible compatibility with
sysvinit. In fact, the vast majority of init scripts should work just
fine on systemd, unmodified. However, there actually are indeed a few
incompatibilities, but we try to &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities&quot;&gt;document
these&lt;/a&gt; and explain what to do about them. Ultimately every system
that is not actually sysvinit itself will have a certain amount of
incompatibilities with it since it will not share the exect same code
paths.&lt;/p&gt;

&lt;p&gt;It is our goal to ensure that differences between the various
distributions are kept at a minimum. That means unit files usually
work just fine on a different distribution than you wrote it on, which
is a big improvement over classic init scripts which are very hard to
write in a way that they run on multiple Linux distributions, due to
numerous incompatibilities between them.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd is not scriptable, because of its D-Bus use.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Not true. Pretty much every single D-Bus interface systemd provides
is also available in a command line tool, for example in &lt;a href=&quot;http://www.freedesktop.org/software/systemd/man/systemctl.html&quot;&gt;&lt;tt&gt;systemctl&lt;/tt&gt;&lt;/a&gt;,
&lt;a href=&quot;http://www.freedesktop.org/software/systemd/man/loginctl.html&quot;&gt;&lt;tt&gt;loginctl&lt;/tt&gt;&lt;/a&gt;,
&lt;a href=&quot;http://www.freedesktop.org/software/systemd/man/timedatectl.html&quot;&gt;&lt;tt&gt;timedatectl&lt;/tt&gt;&lt;/a&gt;,
&lt;a href=&quot;http://www.freedesktop.org/software/systemd/man/hostnamectl.html&quot;&gt;&lt;tt&gt;hostnamectl&lt;/tt&gt;&lt;/a&gt;,
&lt;a href=&quot;http://www.freedesktop.org/software/systemd/man/localectl.html&quot;&gt;&lt;tt&gt;localectl&lt;/tt&gt;&lt;/a&gt;
and suchlike. You can easily call these tools from shell scripts, they
open up pretty much the entire API from the command line with
easy-to-use commands.&lt;/p&gt;

&lt;p&gt;That said, D-Bus actually has bindings for almost any scripting
language this world knows. Even from the shell you can invoke
arbitrary D-Bus methods with &lt;a href=&quot;http://dbus.freedesktop.org/doc/dbus-send.1.html&quot;&gt;dbus-send&lt;/a&gt;
or &lt;a href=&quot;http://developer.gnome.org/gio/unstable/gdbus.html&quot;&gt;gdbus&lt;/a&gt;. If
anything, this improves scriptability due to the good support of D-Bus
in the various scripting languages.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd requires you to use some arcane configuration
tools instead of allowing you to edit your configuration files
directly.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Not true at all. We offer some configuration tools, and using them
gets you a bit of additional functionality (for example, command line
completion for all settings!), but there's no need at all to use
them. You can always edit the files in question directly if you wish,
and that's fully supported. Of course sometimes you need to explicitly
reload configuration of some daemon after editing the configuration,
but that's pretty much true for most UNIX services.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd is unstable and buggy.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Certainly not according to our data. We have been monitoring the
Fedora bug tracker (and some others) closely for a long long time. The
number of bugs is very low for such a central component of the OS,
especially if you discount the numerous RFE bugs we track for the
project. We are pretty good in keeping systemd out of the list of
blocker bugs of the distribution. We have a relatively fast
development cycle with mostly incremental changes to keep quality and
stability high.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd is not debuggable.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;False. Some people try to imply that the shell was a good
debugger. Well, it isn't really. In systemd we provide you with actual
debugging features instead. For example: interactive debugging,
verbose tracing, the ability to mask any component during boot, and
more. Also, we provide &lt;a href=&quot;http://freedesktop.org/wiki/Software/systemd/Debugging&quot;&gt;documentation
for it&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It's certainly well debuggable, we needed that for our own
development work, after all. But we'll grant you one thing: it uses
different debugging tools, we believe more appropriate ones for the
purpose, though.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd makes changes for the changes' sake.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Very much untrue. We pretty much exclusively have technical
reasons for the changes we make, and we explain them in the various
pieces of documentation, wiki pages, blog articles, mailing list
announcements. We try hard to avoid making incompatible changes, and
if we do we try to document the why and how in detail. And if you
wonder about something, just ask us!&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd is a Red-Hat-only project, is private property
of some smart-ass developers, who use it to push their views to the
world.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Not true. Currently, there are 16 hackers with commit powers to the
systemd git tree. Of these 16 only six are employed by Red Hat. The 10
others are folks from ArchLinux, from Debian, from Intel, even from
Canonical, Mandriva, Pantheon and a number of community folks with
full commit rights. And they frequently commit big stuff, major
changes. Then, there are 374 individuals with patches in our tree, and
they too came from a number of different companies and backgrounds,
and many of those have way more than one patch in the tree. The
discussions about where we want to take systemd are done in the open,
on our IRC channel (&lt;tt&gt;#systemd&lt;/tt&gt; on freenode, you are always
weclome), on our &lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/systemd-devel&quot;&gt;mailing
list&lt;/a&gt;, and on public hackfests (&lt;a href=&quot;https://plus.google.com/events/cnklef88b85tb6tgf6ue3hn32lg&quot;&gt;such
as our next one in Brno&lt;/a&gt;, you are invited). We regularly attend
various conferences, to collect feedback, to explain what we are doing
and why, like few others do. We &lt;a href=&quot;http://0pointer.de/blog&quot;&gt;maintain blogs&lt;/a&gt;, engage in social
networks (&lt;a href=&quot;https://plus.google.com/104232583922197692623/posts&quot;&gt;we actually
have some pretty interesting content on Google+&lt;/a&gt;, and our &lt;a href=&quot;https://plus.google.com/communities/114587707547576757881&quot;&gt;Google+
Community is pretty alive, too&lt;/a&gt;.), and try really hard to explain
the why and the how how we do things, and to listen to feedback and
figure out where the current issues are (for example, from that
feedback we compiled this lists of often heard myths about
systemd...).&lt;/p&gt;

&lt;p&gt;What most systemd contributors probably share is a rough idea how a
good OS should look like, and the desire to make it happen. However,
by the very nature of the project being Open Source, and rooted in the
community systemd is just what people want it to be, and if it's not
what they want then they can drive the direction with patches and
code, and if that's not feasible, then there are numerous other
options to use, too, systemd is never exclusive.&lt;/p&gt;

&lt;p&gt;One goal of systemd is to unify the dispersed Linux landscape a
bit. We try to get rid of many of the more pointless differences of
the various distributions in various areas of the core OS. As part of
that we sometimes adopt schemes that were previously used by only one
of the distributions and push it to a level where it's the default of
systemd, trying to gently push everybody towards the same set of basic
configuration. This is never exclusive though, distributions can
continue to deviate from that if they wish, however, if they end-up
using the well-supported default their work becomes much easier and
they might gain a feature or two. Now, as it turns out, more
frequently than not we actually adopted schemes that where Debianisms,
rather than Fedoraisms/Redhatisms as best supported scheme by
systemd. For example, systems running systemd now generally store
their hostname in &lt;tt&gt;/etc/hostname&lt;/tt&gt;, something that used to be
specific to Debian and now is used across distributions.&lt;/p&gt;

&lt;p&gt;One thing we'll grant you though, we sometimes can be
smart-asses. We try to be prepared whenever we open our mouth, in
order to be able to back-up with facts what we claim. That might make
us appear as smart-asses.&lt;/p&gt;

&lt;p&gt;But in general, yes, some of the more influental contributors of
systemd work for Red Hat, but they are in the minority, and systemd is
a healthy, open community with different interests, different
backgrounds, just unified by a few rough ideas where the trip should
go, a community where code and its design counts, and certainly not
company affiliation.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd doesn't support &lt;tt&gt;/usr&lt;/tt&gt; split from the root directory.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Non-sense. Since its beginnings systemd supports the
&lt;tt&gt;--with-rootprefix=&lt;/tt&gt; option to its &lt;tt&gt;configure&lt;/tt&gt; script
which allows you to tell systemd to neatly split up the stuff needed
for early boot and the stuff needed for later on. All this logic is
fully present and we keep it up-to-date right there in systemd's build
system.&lt;/p&gt;

&lt;p&gt;Of course, we still don't think that &lt;a href=&quot;http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken&quot;&gt;actually
booting with &lt;tt&gt;/usr&lt;/tt&gt; unavailable is a good idea&lt;/a&gt;, but we
support this just fine in our build system. This won't fix the
inherent problems of the scheme that you'll encounter all across the
board, but you can't blame that on systemd, because in systemd we
support this just fine.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd doesn't allow your to replace its components.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Not true, you can turn off and replace pretty much any part of
systemd, with very few exceptions. And those exceptions (such as
journald) generally allow you to run an alternative side by side to
it, while cooperating nicely with it.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;b&gt;Myth: systemd's use of D-Bus instead of sockets makes it intransparent.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;This claim is already contradictory in itself: D-Bus uses sockets
as transport, too. Hence whenever D-Bus is used to send something
around, a socket is used for that too. D-Bus is mostly a standardized
serialization of messages to send over these sockets. If anything this
makes it more transparent, since this serialization is well
documented, understood and there are numerous tracing tools and
language bindings for it. This is very much unlike the usual
homegrown protocols the various classic UNIX daemons use to
communicate locally.&lt;/p&gt;&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;Hmm, did I write I just wanted to debunk a &quot;few&quot; myths? Maybe these
were more than just a few... Anyway, I hope I managed to clear up a
couple of misconceptions. Thanks for your time.&lt;/p&gt;

&lt;p&gt;&lt;small&gt;&lt;b&gt;Footnotes&lt;/b&gt;&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;&lt;small&gt;[1] For example, &lt;a href=&quot;http://www.freedesktop.org/software/systemd/man/systemd-detect-virt.html&quot;&gt;&lt;tt&gt;systemd-detect-virt&lt;/tt&gt;&lt;/a&gt;,
&lt;a href=&quot;http://www.freedesktop.org/software/systemd/man/systemd-tmpfiles.html&quot;&gt;&lt;tt&gt;systemd-tmpfiles&lt;/tt&gt;&lt;/a&gt;,
&lt;a href=&quot;http://www.freedesktop.org/software/systemd/man/systemd-udevd.service.html&quot;&gt;&lt;tt&gt;systemd-udevd&lt;/tt&gt;&lt;/a&gt; are.&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;&lt;small&gt;[2] Also, we are trying to do our little part on maybe
making this better. By exposing boot-time performance of the firmware
more prominently in systemd's boot output we hope to shame the
firmware writers to clean up their stuff.&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;&lt;small&gt;[3] And anyways, guess which project includes a library &quot;lib&lt;i&gt;nih&lt;/i&gt;&quot; -- Upstart or systemd?&lt;sup&gt;[4]&lt;/sup&gt;&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;&lt;small&gt;[4] Hint: it's not systemd!&lt;/small&gt;&lt;/p&gt;</content>
		<author>
			<name>Lennart Poettering</name>
			<uri>http://0pointer.de/blog</uri>
		</author>
		<source>
			<title type="html">PID EINS!</title>
			<subtitle type="html">Lennart's Blog</subtitle>
			<link rel="self" href="http://colin.guthr.ie/mezcalero/"/>
			<id>http://colin.guthr.ie/mezcalero/</id>
			<updated>2013-06-11T23:00:22+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">PulseAudio 3.0</title>
		<link href="http://arunraghavan.net/2012/12/pulseaudio-3-0/"/>
		<id>http://arunraghavan.net/?p=1412</id>
		<updated>2012-12-18T07:57:46+00:00</updated>
		<content type="html">&lt;p&gt;Yay, we just released PulseAudio 3.0! I&amp;#8217;m not going to rehash the changelog that you can find in the &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-December/015692.html&quot;&gt;release announcement&lt;/a&gt; as well as the longer &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/PulseAudio/Notes/3.0&quot;&gt;release notes&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I would like to thank the 36 contributors over the last 6 months who have made this release what it is and continue to demonstrate what a vibrant community we have!&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">PulseConf 2012: Report</title>
		<link href="http://arunraghavan.net/2012/11/pulseconf-2012-report/"/>
		<id>http://arunraghavan.net/?p=1380</id>
		<updated>2012-11-06T11:04:22+00:00</updated>
		<content type="html">&lt;p&gt;For those of you who missed my previous updates, we recently organised a PulseAudio miniconference in Copenhagen, Denmark last week. The organisation of all this was spearheaded by ALSA and PulseAudio hacker, &lt;a href=&quot;http://voices.canonical.com/david.henningsson/&quot;&gt;David Henningsson&lt;/a&gt;. The good folks organising the Ubuntu Developer Summit / Linaro Connect were kind enough to allow us to colocate this event. A big thanks to both of them for making this possible!&lt;/p&gt;

&lt;div id=&quot;attachment_1381&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://arunraghavan.net/wp-content/uploads/pulseconf.jpg&quot;&gt;&lt;img src=&quot;http://arunraghavan.net/wp-content/uploads/pulseconf-e1352181077652-943x1024.jpg&quot; alt=&quot;The room where the first PulseAudio conference took place&quot; title=&quot;PulseConf Room&quot; width=&quot;540&quot; height=&quot;586&quot; class=&quot;size-large wp-image-1381&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;The room where the first PulseAudio conference took place&lt;/p&gt;&lt;/div&gt;

&lt;p&gt;The conference was attended by the four current active PulseAudio developers: &lt;a href=&quot;http://colin.guthr.ie/&quot;&gt;Colin Guthrie&lt;/a&gt;, Tanu Kaskinen, David Henningsson, and myself. We were joined by long-time contributors Janos Kovacs and Jaska Uimonen from Intel, &lt;a href=&quot;http://www.themuso.com/&quot;&gt;Luke Yelavich&lt;/a&gt;, Conor Curran and Michał Sawicz.&lt;/p&gt;

&lt;p&gt;We started the conference at around 9:30 am on November 2nd, and actually managed to keep to the final &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-November/015135.html&quot;&gt;schedule&lt;/a&gt;(!), so I&amp;#8217;m going to break this report down into sub-topics for each item which will hopefully make for easier reading than an essay. I&amp;#8217;ve also put up some photos from the conference on the &lt;a href=&quot;https://plus.google.com/events/c203cr2jfibmc7tcemci11pgbq4&quot;&gt;Google+ event&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Mission and Vision&lt;/h3&gt;

&lt;p&gt;We started off with a broad topic &amp;#8212; what each of our personal visions/goals for the project are. Interestingly, two main themes emerged: having the most seamless desktop user experience possible, and making sure we are well-suited to the embedded world.&lt;/p&gt;

&lt;p&gt;Most of us expressed interest in making sure that users of various desktops had a smooth, hassle-free audio experience. In the ideal case, they would never need to find out what PulseAudio is!&lt;/p&gt;

&lt;p&gt;Orthogonally, a number of us are also very interested in making PulseAudio a strong contender in the embedded space (mobile phones, tablets, set top boxes, cars, and so forth). While we already find PulseAudio being used in some of these, there are areas where we can do better (more in later topics).&lt;/p&gt;

&lt;p&gt;There was some reservation expressed about other, less-used features such as network playback being ignored because of this focus. The conclusion after some discussion was that this would not be the case, as a number of embedded use-cases do make use of these and other &amp;#8220;fringe&amp;#8221; features.&lt;/p&gt;

&lt;h3&gt;Increasing patch bandwidth&lt;/h3&gt;

&lt;p&gt;Contributors to PulseAudio will be aware that our patch queue has been growing for the last few months due to lack of developer time. We discussed several ways to deal with this problem, the most promising of which was a periodic triage meeting.&lt;/p&gt;

&lt;p&gt;We will be setting up a rotating schedule where each of us will organise a meeting every 2 weeks (the period might change as we implement things) where we can go over outstanding patches and hopefully clear backlog. Colin has agreed to set up the first of these.&lt;/p&gt;

&lt;h3&gt;Routing infrastructure&lt;/h3&gt;

&lt;p&gt;Next on the agenda was a presentation by Janos Kovacs about the work they&amp;#8217;ve been doing at Intel with enhancing the PulseAudio&amp;#8217;s routing infrastructure. These are being built from the perspective of &lt;acronym title=&quot;In-Vehicle Infotainment&quot;&gt;IVI&lt;/acronym&gt; systems (i.e., cars) which typically have fairly complex use cases involving multiple concurrent devices and users. The slides for the talk will be put up here shortly (&lt;em&gt;edit: slides are now &lt;a href=&quot;http://arunraghavan.net/downloads/janos-pulseaudio-copenhagen.pdf&quot;&gt;available&lt;/a&gt;&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;The talk was mingled with a Q&amp;amp;A type discussion with Janos and Jaska. The first item of discussion was consolidating Colin&amp;#8217;s priority-based routing ideas into the proposed infrastructure. The broad thinking was that the ideas were broadly compatible and should be implementable in the new model.&lt;/p&gt;

&lt;p&gt;There was also some discussion on merging the module-combine-sink functionality into PulseAudio&amp;#8217;s core, in order to make 1:N routing easier. Some alternatives using te &lt;tt&gt;module-filter-*&lt;/tt&gt; were proposed. Further discussion will likely be required before this is resolved.&lt;/p&gt;

&lt;p&gt;The next steps for this work are for Jaska and Janos to break up the code into smaller logical bits so that we can start to review the concepts and code in detail and work towards eventually merging as much as makes sense upstream.&lt;/p&gt;

&lt;h3&gt;Low latency&lt;/h3&gt;

&lt;p&gt;This session was taken up against the background of improving latency for games on the desktop (although it does have other applications). The indicated required latency for games was given as 16 ms (corresponding to a frame rate of 60 fps). A number of ideas to deal with the problem were brought up.&lt;/p&gt;

&lt;p&gt;Firstly, it was suggested that the &lt;tt&gt;maxlength&lt;/tt&gt; buffer attribute when setting up streams could be used to signal a hard limit on stream latency &amp;#8212; the client signals that it will prefer an underrun, over a latency above maxlength.&lt;/p&gt;

&lt;p&gt;Another long-standing item was to investigate the cause of underruns as we lower latency on the stream &amp;#8212; David has already begun taking this up on the LKML.&lt;/p&gt;

&lt;p&gt;Finally, another long-standing issue is the buffer attribute adjustment done during stream setup. This is not very well-suited to low-latency applications. David and I will be looking at this in coming days.&lt;/p&gt;

&lt;h3&gt;Merging per-user and system modes&lt;/h3&gt;

&lt;p&gt;Tanu led the topic of finding a way to deal with use-cases such as &lt;acronym title=&quot;Music Player Daemon&quot;&gt;&lt;tt&gt;mpd&lt;/tt&gt;&lt;/acronym&gt; or multi-user systems, where access to the PulseAudio daemon of the active user by another user might be desired. Multiple suggestions were put forward, though a definite conclusion was not reached, as further thought is required.&lt;/p&gt;

&lt;p&gt;Tanu&amp;#8217;s suggestion was a split between a per-user daemon to manage tasks such as per-user configuration, and a system-wide daemon to manage the actual audio resources. The rationale being that the hardware itself is a common resource and could be handled by a non-user-specific daemon instance. This approach has the advantage of having a single entity in charge of the hardware, which keeps a part of the implementation simpler. The disadvantage is that we will either sacrifice security (arbitrary users can &amp;#8220;eavesdrop&amp;#8221; using the machine&amp;#8217;s mic), or security infrastructure will need to be added to decide what users are allowed what access.&lt;/p&gt;

&lt;p&gt;I suggested that since these are broadly fringe use-cases, we should document how users can configure the system by hand for these purposes, the crux of the argument being that our architecture should be dictated by the main use-cases, and not the ancillary ones. The disadvantage of this approach is, of course, that configuration is harder for the minority that wishes multi-user access to the hardware.&lt;/p&gt;

&lt;p&gt;Colin suggested a mechanism for users to be able to request access from an &amp;#8220;active&amp;#8221; PulseAudio daemon, which could trigger approval by the corresponding &amp;#8220;active&amp;#8221; user. The communication mechanism could be the D-Bus system bus between user daemons, and Ștefan Săftescu&amp;#8217;s Google Summer of Code work to allow desktop notifications to be triggered from PulseAudio could be used to get to request authorisation.&lt;/p&gt;

&lt;p&gt;David suggested that we could use the per-user/system-wide split, modified somewhat to introduce the concept of a &amp;#8220;system-wide&amp;#8221; card. This would be a device that is configured as being available to the whole system, and thus explicitly marked as not having any privacy guarantees.&lt;/p&gt;

&lt;p&gt;In both the above cases, discussion continued about deciding how the access control would be handled, and this remains open.&lt;/p&gt;

&lt;p&gt;We will be continuing to look at this problem until consensus emerges.&lt;/p&gt;

&lt;h3&gt;Improving (laptop) surround sound&lt;/h3&gt;

&lt;p&gt;The next topic dealt with being able to deal with laptops with a built-in 2.1 channel set up. The background of this is that there are a number of laptops with stereo speakers and a subwoofer. These are usually used as stereo devices with the subwoofer implicitly being fed data by the audio controller in some hardware-dependent way.&lt;/p&gt;

&lt;p&gt;The possibility of exposing this hardware more accurately was discussed. Some investigation is required to see how things are currently exposed for various hardware (my MacBook Pro exposes the subwoofer as a surround control, for example). We need to deal with correctly exposing the hardware at the ALSA layer, and then using that correctly in PulseAudio profiles.&lt;/p&gt;

&lt;p&gt;This led to a discussion of how we could handle profiles for these. Ideally, we would have a stereo profile with the hardware dealing with upmixing, and a 2.1 profile that would be automatically triggered when a stream with an LFE channel was presented. This is a general problem while dealing with surround output on HDMI as well, and needs further thought as it complicates routing.&lt;/p&gt;

&lt;h3&gt;Testing&lt;/h3&gt;

&lt;p&gt;I gave a rousing speech about writing more tests using some of the new improvements to our testing framework. Much cheering and acknowledgement ensued.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Ed.: some literary liberties might have been taken in this section&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Unified cross-distribution ALSA configuration&lt;/h3&gt;

&lt;p&gt;I missed a large part of this unfortunately, but the crux if the discussion was around unifying cross-distribution sound configuration for those who wish to disable PulseAudio.&lt;/p&gt;

&lt;h3&gt;Base volumes&lt;/h3&gt;

&lt;p&gt;The next topic we took up was base volumes, and whether they are useful to most end users. For those unfamiliar with the concept, we sometimes see sinks/sources where which support volume controls going to &gt; 0dB (which is the no=attenuation point). We provide the maximum allowed gain in ALSA as the maximum volume, and suggest that UIs show a marker for the base volume.&lt;/p&gt;

&lt;p&gt;It was felt that this concept was irrelevant, and probably confusing to most end users, and that we suggest that UIs do not show this information any more.&lt;/p&gt;

&lt;p&gt;Relatedly, it was decided that having a per-port maximum volume configuration would be useful, so as to allow users to deal with hardware where the output might get too loud.&lt;/p&gt;

&lt;h3&gt;Devices with dynamic capabilities (HDMI)&lt;/h3&gt;

&lt;p&gt;Our next topic of discussion was finding a way to deal with devices such as those HDMI ports where the capabilities of the device could change at run time (for example, when you plug out a monitor and plug in a home theater receiver).&lt;/p&gt;

&lt;p&gt;A few ideas to deal with this were discussed, and the best one seemed to be David&amp;#8217;s proposal to always have a separate card for each HDMI device. The addition of dynamic profiles could then be exploited to only make profiles available when an actual device is plugged in (and conversely removed when the device is plugged out).&lt;/p&gt;

&lt;h3&gt;Splitting of configuration&lt;/h3&gt;

&lt;p&gt;It was suggested that we could split our current configuration files into three categories: core, policy and hardware adaptation. This was met with approval all-around, and the pre-existing ability to read configuration from subdirectories could be reused.&lt;/p&gt;

&lt;p&gt;Another feature that was desired was the ability to ship multiple configurations for different hardware adaptations with a single package and have the correct one selected based on the hardware being run on. We did not know of a standard, architecture-independent way to determine hardware adaptation, so it was felt that the first step toward solving this problem would be to find or create such a mechanism. This could either then be used to set up configuration correctly in early boot, or by PulseAudio for do runtime configuration selection.&lt;/p&gt;

&lt;p&gt;Relatedly, moving all distributed configuration to &lt;tt&gt;/usr/share/...&lt;/tt&gt;, with overrides in &lt;tt&gt;/etc/pulse/...&lt;/tt&gt; and &lt;tt&gt;$HOME&lt;/tt&gt; were suggested.&lt;/p&gt;

&lt;h3&gt;Better drain/underrun reporting&lt;/h3&gt;

&lt;p&gt;David volunteered to implement a per-sink-input timer for accurately determining when drain was completed, rather than waiting for the period of the entire buffer as we currently do. Unsurprisingly, no objections were raised to this solution to the long-standing issue.&lt;/p&gt;

&lt;p&gt;In a similar vein, redefining the underflow event to mean a real device underflow (rather than the client-side buffer running empty) was suggested. After some discussion, we agreed that a separate event for device underruns would likely be better.&lt;/p&gt;

&lt;h3&gt;Beer&lt;/h3&gt;

&lt;p&gt;We called it a day at this point and dispersed beer-wards.&lt;/p&gt;

&lt;div id=&quot;attachment_1390&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://arunraghavan.net/wp-content/uploads/pulseconf-hackers.jpg&quot;&gt;&lt;img src=&quot;http://arunraghavan.net/wp-content/uploads/pulseconf-hackers-1024x577.jpg&quot; alt=&quot;PulseConf Hackers&quot; title=&quot;PulseConf Hackers&quot; width=&quot;540&quot; height=&quot;304&quot; class=&quot;size-large wp-image-1390&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Our valiant attendees after a day of plotting the future of PulseAudio&lt;/p&gt;&lt;/div&gt;

&lt;h3&gt;User experience&lt;/h3&gt;

&lt;p&gt;David very kindly invited us to spend a day after the conference hacking at his house in Lund, Sweden, just a short hop away from Copenhagen. We spent a short while in the morning talking about one last item on the agenda &amp;#8212; helping to build a more seamless user experience. The idea was to figure out some tools to help users with problems quickly converge on what problem they might be facing (or help developers do the same). We looked at the Ubuntu apport audio debugging tool that David has written, and will try to adopt it for more general use across distributions.&lt;/p&gt;

&lt;h3&gt;Hacking&lt;/h3&gt;

&lt;p&gt;The rest of the day was spent in more discussions on topics from the previous day, poring over code for some specific problems, and rolling out the first release candidate for the upcoming 3.0 release.&lt;/p&gt;

&lt;h3&gt;And cut!&lt;/h3&gt;

&lt;p&gt;I am very happy that this conference happened, and am looking forward to being able to do it again next year. As you can see from the length of this post, there are lot of things happening in this part of the stack, and lots more yet to come. It was excellent meeting all the fellow PulseAudio hackers, and my thanks to all of them for making it.&lt;/p&gt;

&lt;p&gt;Finally, I wouldn&amp;#8217;t be sitting here writing this report without support from Collabora, who sponsored my travel to the conference, so it&amp;#8217;s fitting that I end this with a shout-out to them. :)&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">grsec and PulseAudio (and Gentoo)</title>
		<link href="http://arunraghavan.net/2012/10/grsec-and-pulseaudio/"/>
		<id>http://arunraghavan.net/?p=1366</id>
		<updated>2012-10-30T08:49:50+00:00</updated>
		<content type="html">&lt;p&gt;This problem seems to bite some of our hardened users a couple of times a year, so thought I&amp;#8217;d blog about it. If you are using grsec and PulseAudio, you must &lt;em&gt;not&lt;/em&gt; enable &lt;tt&gt;CONFIG_GRKERNSEC_SYSFS_RESTRICT&lt;/tt&gt; in your kernel, else autodetection of your cards will fail.&lt;/p&gt;

&lt;p&gt;PulseAudio&amp;#8217;s module-udev-detect needs to access /sys to discover what cards are available on the system, and that kernel option disallows this for anyone but root.&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">PulseConf Schedule</title>
		<link href="http://arunraghavan.net/2012/10/pulseconf-schedule/"/>
		<id>http://arunraghavan.net/?p=1360</id>
		<updated>2012-10-29T12:45:47+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://voices.canonical.com/david.henningsson/&quot;&gt;David&lt;/a&gt; has now published a tentative &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-October/015012.html&quot;&gt;schedule&lt;/a&gt; for the PulseAudio Mini-conference (I&amp;#8217;m just going to call it PulseConf &amp;#8212; so much easier on the tongue).&lt;/p&gt;

&lt;p&gt;For the lazy, these are some of the topics we&amp;#8217;ll be covering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vision and mission &amp;#8212; where we are and where we want to be&lt;/li&gt;
&lt;li&gt;Improving our patch review process&lt;/li&gt;
&lt;li&gt;Routing infrastructure&lt;/li&gt;
&lt;li&gt;Improving low latency behaviour&lt;/li&gt;
&lt;li&gt;Revisiting system- and user-modes&lt;/li&gt;
&lt;li&gt;Devices with dynamic capabilities&lt;/li&gt;
&lt;li&gt;Improving surround sound behaviour&lt;/li&gt;
&lt;li&gt;Separating configuration for hardware adaptation&lt;/li&gt;
&lt;li&gt;Better drain/underrun reporting behaviour&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Phew &amp;#8212; and there are more topics that we probably will not have time to deal with!&lt;/p&gt;

&lt;p&gt;For those of you who cannot attend, the Linaro Connect folks (who are graciously hosting us) are planning on running Google+ Hangouts for their sessions. Hopefully we should be able to do the same for our proceedings. Watch this space for details!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;p.s.: A big thank you to my employer &lt;a href=&quot;http://www.collabora.com/&quot;&gt;Collabora&lt;/a&gt; for sponsoring my travel to the conference.&lt;/em&gt;&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">PulseConf!</title>
		<link href="http://arunraghavan.net/2012/10/pulseconf/"/>
		<id>http://arunraghavan.net/?p=1356</id>
		<updated>2012-10-04T08:41:01+00:00</updated>
		<content type="html">&lt;p&gt;For those of you who missed it, your friendly neighbourhood PulseAudio hackers are converging on Copenhagen in a month to discuss, plan and hack on the future of PulseAudio.&lt;/p&gt;

&lt;p&gt;We&amp;#8217;re doing this for the first time, so I&amp;#8217;m super-excited! David has &lt;a href=&quot;http://voices.canonical.com/david.henningsson/2012/10/04/pulseaudio-conference-less-than-a-month-away/&quot;&gt;posted details&lt;/a&gt; so if this is of interest to you, you should definitely join us!&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Pulseaudio conference – less than a month away!</title>
		<link href="http://voices.canonical.com/david.henningsson/2012/10/04/pulseaudio-conference-less-than-a-month-away/"/>
		<id>http://voices.canonical.com/david.henningsson/?p=184</id>
		<updated>2012-10-04T08:32:45+00:00</updated>
		<content type="html">&lt;p&gt;The first PulseAudio conference is approaching quickly. This is a shoutout for people who might be interested, but missed  &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-September/014673.html&quot; target=&quot;_blank&quot;&gt;the mailinglist announcement&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The conference will be Friday 2nd November 2012, and colocated with &lt;a href=&quot;http://uds.ubuntu.com&quot; target=&quot;_blank&quot;&gt;Ubuntu Developer Summit&lt;/a&gt; and &lt;a href=&quot;http://connect.linaro.org&quot; target=&quot;_blank&quot;&gt;Linaro Connect&lt;/a&gt;, in Bella Center, Copenhagen. &lt;/p&gt;
&lt;p&gt;There is no attendance fee, but you&amp;#8217;ll need a UDS or LC registration (which are also free) to be able to get into the conference area. (Note: LC might be the safer bet here as UDS ends on Thursday)&lt;/p&gt;
&lt;p&gt;There had been a &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-September/014674.html&quot; target=&quot;_blank&quot;&gt;few&lt;/a&gt; &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-September/014675.html&quot; target=&quot;_blank&quot;&gt;topics&lt;/a&gt; brought up on the mailinglist, but we welcome anyone who would like to contribute to constructive discussions and help to shape the future of PulseAudio!&lt;/p&gt;
&lt;p&gt;If you would like to attend, how about you write an email to the &lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss&quot; target=&quot;_blank&quot;&gt;pulseaudio-discuss mailinglist&lt;/a&gt; with the topic(s) you want to bring up, and maybe a small presentation with your background and interests? Of course, if you mostly want to listen in rather than bring your own topics, that&amp;#8217;s okay too!&lt;/p&gt;</content>
		<author>
			<name>David Henningsson</name>
			<uri>http://voices.canonical.com/david.henningsson</uri>
		</author>
		<source>
			<title type="html">A better sounding world » PulseAudio</title>
			<link rel="self" href="http://voices.canonical.com/david.henningsson/category/pulseaudio/feed/"/>
			<id>http://voices.canonical.com/david.henningsson/category/pulseaudio/feed/</id>
			<updated>2013-04-20T11:00:28+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Top five wrong ways to fix your audio</title>
		<link href="http://voices.canonical.com/david.henningsson/2012/07/13/top-five-wrong-ways-to-fix-your-audio/"/>
		<id>http://voices.canonical.com/david.henningsson/?p=143</id>
		<updated>2012-07-13T15:49:25+00:00</updated>
		<content type="html">&lt;p&gt;The audio stack in Linux/Ubuntu evolves over time. What used to be good advice is not necessarily good advice anymore. (That also means, that if you happen to read this blog post in 2019 or something, don&amp;#8217;t trust it!)&lt;br /&gt;
Here are some things that people try, and sometimes they even fix the problem, but are often bad in one way or the other. Or at least, they have side effects one needs to be aware of. So &amp;#8211; while there are valid exceptions, as a rule of thumb, don&amp;#8217;t do the following:&lt;/p&gt;
&lt;h3&gt;5. Don&amp;#8217;t add your user to the &amp;#8220;audio&amp;#8221; group&lt;/h3&gt;
&lt;p&gt;A user has access to the audio card if that person is either logged in &amp;#8211; both VT and GUI login counts, but not SSH logins, or if that user is in the &amp;#8220;audio&amp;#8221; group. However, on the level of access we&amp;#8217;re talking about here, only one user has access at a time. So the typical problem scenario goes like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;User Homer has an audio issue, and tries to fix it by adding himself to the audio group. This doesn&amp;#8217;t help to resolve the problem.&lt;/li&gt;
&lt;li&gt;Homer discovers his audio is muted, and unmutes it. Happy to have his audio issue resolved, he forgets he&amp;#8217;s still in the audio group, or doesn&amp;#8217;t realise it leads to problems.&lt;/li&gt;
&lt;li&gt;User Marge comes and wants to borrow the computer. Homer does a fast-user-switching so Marge can log in.&lt;/li&gt;
&lt;li&gt;Because Homer is in the audio group, he has still access to the audio device. If some software, e g PulseAudio, has the audio device opened, it blocks access to other software trying to use it.&lt;/li&gt;
&lt;li&gt;Now Marge has an audio issue!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;#8217;ve written a longer article about the audio group &lt;a href=&quot;https://wiki.ubuntu.com/Audio/TheAudioGroup&quot; title=&quot;The Audio Group&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;. In short, there are some usages for it, including that it is also the standard group name for assigning realtime priorities when used together with &lt;a href=&quot;http://jackaudio.org/&quot; title=&quot;Jack audio server&quot; target=&quot;_blank&quot;&gt;JACK&lt;/a&gt;. But don&amp;#8217;t leave a user in the audio group unless you have a good reason.&lt;/p&gt;
&lt;h3&gt;4. Don&amp;#8217;t try different &amp;#8220;model&amp;#8221; strings&lt;/h3&gt;
&lt;p&gt;A common way to try to get HDA Intel soundcards to work is to edit /etc/modprobe.d/alsa-base.conf and add the following line:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
options snd-hda-intel model=[something]&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&amp;#8230;where [something] are values you find in some file. Contrary to official documentation, this is in most cases obsolete. In particular, &lt;b&gt;avoid model=generic&lt;/b&gt; &amp;#8211; that is almost guaranteed to give you trouble. In many cases, when trying different models, you will find that you might fix one thing but break another.&lt;br /&gt;
In fact, there is only one model to try, and that is model=auto. If your machine happen to be one of those quirked to use an older model parser, changing to model=auto can improve the situation.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Instead do:&lt;/i&gt;&lt;br /&gt;
It still happens that BIOS/UEFI assigns the wrong values to pin nodes, which causes an output or input not to work correctly. If so, I recommend trying to tweak this with &lt;a href=&quot;http://voices.canonical.com/david.henningsson/2011/11/29/turn-your-mic-jack-into-a-headphone-jack/&quot; title=&quot;Turn your mic jack into a headphone jack!&quot;&gt;hda-jack-retask&lt;/a&gt;.&lt;br /&gt;
In some cases, trying different modules can actually be okay &amp;#8211; sometimes, these models point to lightweight fixups instead of the earlier, more heavyweight code that was used in previous kernels. (In this context, I have to mention that Takashi Iwai has done a fantastic job of converting the older models to the newer auto-parser.)&lt;/p&gt;
&lt;h3&gt;3. Don&amp;#8217;t upgrade ALSA drivers by following random blog posts&lt;/h3&gt;
&lt;p&gt;I&amp;#8217;ve seen far too many people reporting bugs on Launchpad where they&amp;#8217;ve been following some random blog post that tells you how to upgrade ALSA, and are having audio issues as a result. These guides are of varying quality and often come without good uninstall instructions, so you have no way to revert in case the upgrade did not solve your problem, or broke something else.&lt;/p&gt;
&lt;p&gt;First, something not everybody is aware of: 95% of ALSA code is in the kernel, and follows the kernel&amp;#8217;s release cycle. That means that even if &amp;#8220;/proc/asound/version&amp;#8221; says something that was released a year or two ago, don&amp;#8217;t panic. It&amp;#8217;s the kernel release that tells you how new your sound drivers are, so if you have a new kernel, and you see an ALSA release coming out, you are unlikely to gain from an upgrade.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Instead do:&lt;/i&gt;&lt;br /&gt;
In some case you do have an old kernel, and newer sound drivers can be worth a try. The Ubuntu Audio Developer&amp;#8217;s team provides daily snapshot drivers for HDA Intel cards. &lt;a href=&quot;https://wiki.ubuntu.com/Audio/UpgradingAlsa/DKMS&quot; title=&quot;DKMS builds for hda&quot; target=&quot;_blank&quot;&gt;Guide is available here&lt;/a&gt; and it also comes with proper uninstall instructions.&lt;br /&gt;
In the past we have also provided drivers for other cards, but due to the maintenance required to keep this up-to-date, in combination with that the vast majority of people&amp;#8217;s bugs concern HDA Intel anyway, this support has been discontinued.&lt;/p&gt;
&lt;h3&gt;2. Don&amp;#8217;t purge PulseAudio&lt;/h3&gt;
&lt;p&gt;First, PulseAudio itself isn&amp;#8217;t perfect, some of the bindings to PulseAudio aren&amp;#8217;t perfect, and some of the drivers are not perfect in the way PulseAudio wants to use it either. So there might be valid reasons to temporarily move it out of your way, even if it would be better to actually fix the problem and submit a bug fix patch (if you&amp;#8217;re capable of doing so).&lt;br /&gt;
But don&amp;#8217;t try uninstalling the PulseAudio package, as it has far too many dependencies.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Instead do:&lt;/i&gt;&lt;br /&gt;
If you just need direct access to your sound card, you can run the &amp;#8220;pasuspender&amp;#8221; command. You can either run &amp;#8220;pasuspender&amp;#8221; (in a terminal) to make PulseAudio stay away for the duration of the application. Or if you think that&amp;#8217;s simpler, just run &amp;#8220;pasuspender bash&amp;#8221; (in a terminal), start your application through the menu/dash/whatever you prefer, and when you&amp;#8217;re done, write &amp;#8220;exit&amp;#8221; in the terminal.&lt;br /&gt;
If you need to stop the PulseAudio process completely, execute these commands:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
echo autospawn=no &amp;gt; ~/.pulse/client.conf&lt;br /&gt;
pulseaudio -k&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
If you need PulseAudio back again, remove ~/.pulse/client.conf, then try to start an application that uses PulseAudio, and it should start automatically.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Unexpected side effects:&lt;/i&gt;
&lt;ul&gt;
&lt;li&gt;The Gnome sound settings, the sound indicator and the volume up/down keys relies on PulseAudio, so they won&amp;#8217;t work when PulseAudio is off.&lt;/li&gt;
&lt;li&gt;PulseAudio mixes audio, so that means that only one application at a time can output audio if PulseAudio is disabled (and you aren&amp;#8217;t using some other sound server).&lt;/li&gt;
&lt;li&gt;Several applications have PulseAudio backends. Some of them will need reconfiguration to use ALSA directly, some will just automatically redirect themselves, and some won&amp;#8217;t work at all.&lt;/li&gt;
&lt;li&gt;Bluetooth audio might not work without PulseAudio.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;1. Don&amp;#8217;t replace ALSA with OSS&lt;/h3&gt;
&lt;p&gt;OSS was the standard used before ALSA came along. These days, ALSA is much better, both when it comes to hardware support, and when it comes to how much software that supports outputting sound to either sound system. OSS is also entirely unsupported, at least by Ubuntu. In addition, I&amp;#8217;m not sure exactly how to get back to a working system after you&amp;#8217;ve tried OSS&amp;#8230;!&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Instead do:&lt;/i&gt;&lt;br /&gt;
If you know your problem is in ALSA, either drivers or userspace, try to track down and/or fix the bug, and talk to us about it. If you&amp;#8217;re running Ubuntu, file a bug against the alsa-driver package. You can also contact the alsa-devel mailinglist. While we won&amp;#8217;t guarantee responses due to the high volume of bugs/traffic, we are often able to help out.&lt;/p&gt;
&lt;h3&gt;Final notes&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;Note 1.&lt;/b&gt; HDA Intel cards are the built-in audio inputs and outputs on your motherboard (at least if you bought your computer after ~2006 or so). HDMI and DisplayPort audio are also HDA Intel cards, but they are covered in more detail &lt;a href=&quot;http://voices.canonical.com/david.henningsson/2012/04/14/audio-over-hdmi-and-displayport-in-ubuntu-12-04/&quot; title=&quot;Audio over HDMI and DisplayPort in Ubuntu 12.04&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Note 2.&lt;/b&gt; I have had some problems with spammers posting spam comments to my blog post. I don&amp;#8217;t want to spend too much time just reading spam and marking it as such, so I might close for comments in a relatively short period. Sorry for the inconvenience.&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>David Henningsson</name>
			<uri>http://voices.canonical.com/david.henningsson</uri>
		</author>
		<source>
			<title type="html">A better sounding world » PulseAudio</title>
			<link rel="self" href="http://voices.canonical.com/david.henningsson/category/pulseaudio/feed/"/>
			<id>http://voices.canonical.com/david.henningsson/category/pulseaudio/feed/</id>
			<updated>2013-04-20T11:00:28+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Writing a simple PulseAudio module.</title>
		<link href="http://brainyfeed.blogspot.com/2012/06/part-i-writing-simple-module.html"/>
		<id>tag:blogger.com,1999:blog-8870921695463486752.post-4908604350095851563</id>
		<updated>2012-06-15T02:07:48+00:00</updated>
		<content type="html">This post will describe the (little) progress I've made in the first week of coding and will try to provide a short but clear introduction to writing PulseAudio modules. A &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/Modules&quot;&gt;similar article&lt;/a&gt; exists on the PulseAudio wiki page, but I shall post this nevertheless as the next articles will be based on the code presented here. Finally, before checking the wiki page or going through this article, it is useful to know how to &lt;a href=&quot;http://colin.guthr.ie/2010/09/compiling-and-running-pulseaudio-from-git/&quot;&gt;compile and run PulseAudio from git&lt;/a&gt;. Note that, as the &lt;code&gt;README&lt;/code&gt; file says, the &lt;code&gt;configure&lt;/code&gt; script must be run with the &lt;code&gt;CFLAGS=&quot;-ggdb3 -O0&quot; LDFLAGS=&quot;-ggdb3&quot;&lt;/code&gt; environment variables, to be able to start from the build directory.&lt;br /&gt;&lt;br /&gt;PulseAudio modules are required to have two functions: &lt;code&gt;pa__init(pa_module*m)&lt;/code&gt; and &lt;code&gt;pa__done(pa_module*m)&lt;/code&gt;, which are called when the module is loaded and, respectively, unloaded (either by PulseAudio or because it has finished whatever it was doing). Other than &amp;nbsp;these functions, PulseAudio recognises a few others that provide some information about the module (such as the author or the description). However, these functions are not generally implemented directly, but rather created through the following macros defined in &lt;code&gt;pulsecore/module.h&lt;/code&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;PA_MODULE_AUTHOR(s)&lt;br /&gt;PA_MODULE_DESCRIPTION(s)&lt;br /&gt;PA_MODULE_USAGE(s)&lt;br /&gt;PA_MODULE_VERSION(s)&lt;br /&gt;PA_MODULE_DEPRECATED(s)&lt;br /&gt;PA_MODULE_LOAD_ONCE(b)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;code&gt;pulsecore/module.h&lt;/code&gt; also contains the &lt;code&gt;pa_module&lt;/code&gt; struct definition, which is explained on the &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/ModuleAPI&quot;&gt;Module API wiki page&lt;/a&gt;. One particularly relevant field of the structure is the &lt;code&gt;userdata&lt;/code&gt; field, because it's the only way to carry information from &lt;code&gt;pa__init&lt;/code&gt; to &lt;code&gt;pa__done&lt;/code&gt;. This is why modules will generally define a userdata &lt;code&gt;struct&lt;/code&gt; that contains all the relevant module data, and that is used by &lt;code&gt;pa__done&lt;/code&gt; to free whatever memory is allocated in &lt;code&gt;pa__init&lt;/code&gt;. This &lt;code&gt;struct&lt;/code&gt; is also used to pass data to core hooks that handle various events.&lt;br /&gt;&lt;br /&gt;Another important field in the &lt;code&gt;pa_module&lt;/code&gt; structure is the &lt;code&gt;core&lt;/code&gt; field. This contains a &lt;code&gt;pa_core&lt;/code&gt; &lt;code&gt;struct&lt;/code&gt;, which is defined in &lt;code&gt;pulsecore/core.h&lt;/code&gt; and is described on the &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/CoreAPI&quot;&gt;Core API wiki page&lt;/a&gt;. This field is particularly relevant because it is used when creating hooks.&lt;br /&gt;&lt;br /&gt;Creating and freeing hook slots is done through two functions defined in &lt;code&gt;pulsecore/hook-list.h&lt;/code&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;pa_hook_slot* pa_hook_connect(pa_hook *hook, pa_hook_priority_t prio, pa_hook_cb_t cb, void *data);&lt;br /&gt;void pa_hook_slot_free(pa_hook_slot *slot);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The core hook types are stored in the &lt;code&gt;hooks&lt;/code&gt; array in &lt;code&gt;pa_core&lt;/code&gt;, which is indexed according to the &lt;code&gt;pa_core_hook&lt;/code&gt; enum defined in &lt;code&gt;pulsecore/core.h&lt;/code&gt;. As an example, the hook that is called after a card has been created is referred to by &lt;code&gt;m-&amp;gt;core-&amp;gt;hooks[PA_CORE_HOOK_CARD_PUT]&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;pa_hook_priority_t&lt;/code&gt; is another &lt;code&gt;enum&lt;/code&gt; defined in &lt;code&gt;pulsecore/hook-list.h&lt;/code&gt; and can currently take the values &lt;code&gt;PA_HOOK_EARLY&lt;/code&gt;, &lt;code&gt;PA_HOOK_NORMAL&lt;/code&gt; or &lt;code&gt;PA_HOOK_LATE&lt;/code&gt;. However, these are just integers and the call can be adjusted to control the order in which hooks are run (e.g. &lt;code&gt;PA_HOOK_LATE+10&lt;/code&gt; will run after &lt;code&gt;PA_HOOK_LATE&lt;/code&gt;).&lt;br /&gt;&lt;br /&gt;The &lt;code&gt;pa_hook_cb_t&lt;/code&gt; is a function pointer defined in &lt;code&gt;pulsecore/hook-list.h&lt;/code&gt;, with the following definition:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;typedef pa_hook_result_t (*pa_hook_cb_t)(&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; void *hook_data,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; void *call_data,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; void *slot_data);&lt;br /&gt;&lt;/pre&gt;and the last parameter is used for whatever user data needs to be passed from the module to the hook callback function.&lt;br /&gt;&lt;br /&gt;Putting all this together, the following module is able to detect and log whenever a new card is plugged in:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;#ifdef HAVE_CONFIG_H&lt;br /&gt;#include &amp;lt;config.h&amp;gt;&lt;br /&gt;#endif&lt;br /&gt;&lt;br /&gt;#include &amp;lt;pulse/proplist.h&amp;gt;&lt;br /&gt;#include &amp;lt;pulse/xmalloc.h&amp;gt;&lt;br /&gt;&lt;br /&gt;#include &amp;lt;pulsecore/card.h&amp;gt;&lt;br /&gt;#include &amp;lt;pulsecore/core.h&amp;gt;&lt;br /&gt;#include &amp;lt;pulsecore/log.h&amp;gt;&lt;br /&gt;#include &amp;lt;pulsecore/module.h&amp;gt;&lt;br /&gt;&lt;br /&gt;#include &quot;module-desktop-notifications-symdef.h&quot;&lt;br /&gt;&lt;br /&gt;PA_MODULE_AUTHOR(&quot;Ștefan Săftescu&quot;);&lt;br /&gt;PA_MODULE_DESCRIPTION(&quot;Integration with the Desktop Notifications specification.&quot;);&lt;br /&gt;PA_MODULE_VERSION(PACKAGE_VERSION);&lt;br /&gt;PA_MODULE_LOAD_ONCE(TRUE);&lt;br /&gt;&lt;br /&gt;struct userdata {&lt;br /&gt;&amp;nbsp; &amp;nbsp; pa_hook_slot *card_put_slot;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;static pa_hook_result_t card_put_cb(pa_core *c, pa_card *card, void* userdata) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; pa_log_info(&quot;Card detected: %s.&quot;, pa_proplist_gets(card-&amp;gt;proplist, PA_PROP_DEVICE_DESCRIPTION));&lt;br /&gt;&amp;nbsp; &amp;nbsp; return PA_HOOK_OK;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;int pa__init(pa_module*m) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; struct userdata *u;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; m-&amp;gt;userdata = u = pa_xnew(struct userdata, 1);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; u-&amp;gt;card_put_slot = pa_hook_connect(&amp;amp;m-&amp;gt;core-&amp;gt;hooks[PA_CORE_HOOK_CARD_PUT], PA_HOOK_LATE, (pa_hook_cb_t) card_put_cb, u);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void pa__done(pa_module*m) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; struct userdata *u;&lt;br /&gt;&amp;nbsp; &amp;nbsp; pa_assert(m);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (!(u = m-&amp;gt;userdata))&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (u-&amp;gt;card_put_slot)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pa_hook_slot_free(u-&amp;gt;card_put_slot);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; pa_xfree(u);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;</content>
		<author>
			<name>Ștefan Săftescu</name>
			<email>noreply@blogger.com</email>
			<uri>http://brainyfeed.blogspot.com/search/label/pulseaudio</uri>
		</author>
		<source>
			<title type="html">Brainyfeed</title>
			<link rel="self" href="http://brainyfeed.blogspot.co.uk/feeds/posts/default/-/pulseaudio"/>
			<id>tag:blogger.com,1999:blog-8870921695463486752</id>
			<updated>2013-03-29T18:00:27+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Welcome</title>
		<link href="http://brainyfeed.blogspot.com/2012/05/welcome.html"/>
		<id>tag:blogger.com,1999:blog-8870921695463486752.post-1984763326041799923</id>
		<updated>2012-05-24T14:53:58+00:00</updated>
		<content type="html">Welcome to my blog!&lt;br /&gt;&lt;br /&gt;I've started this blog to document the progress on my &lt;a href=&quot;http://code.google.com/soc/&quot;&gt;Google Summer of Code&lt;/a&gt; 2012 project for &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/PulseAudio&quot;&gt;PulseAudio&lt;/a&gt;, but I will hopefully keep posting about other (more or less) interesting things I'm working on.&lt;br /&gt;&lt;br /&gt;The project aims to provide basic GUI integration and user feedback for device discovery events, through the &lt;a href=&quot;http://www.galago-project.org/specs/notification/0.9/index.html&quot;&gt;Desktop Notification specification&lt;/a&gt;. This will come as a PulseAudio module that will communicate through D-Bus to the notification system provided by the desktop environment. The module will be subscribing to the server to receive device discovery events and will be relaying that information to the user. If the user decides to take an action with respect to that device, this will be communicated back to the module (through the D-Bus Desktop Notification API) and the module will change the server state accordingly.  I have split the development into the following tasks:  &lt;br /&gt;&lt;ol&gt;&lt;li&gt;write a simple module to detect new devices;&lt;/li&gt;&lt;li&gt;add basic interaction with D-Bus through the Desktop Notification specification;&lt;/li&gt;&lt;li&gt;implement user feedback through DN;&lt;/li&gt;&lt;li&gt;implement persistence of user settings through the PulseAudio database;&lt;/li&gt;&lt;li&gt;improve the user intreface, from a usability point of view:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;should the user set a whole device as default or sinks/sources;&lt;/li&gt;&lt;li&gt;should there be separate notifications for each of the sinks and sources of a device;&lt;/li&gt;&lt;li&gt;what happens if a user ignores the notification etc.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;adapt the zeroconf module to integrate with this module well (e.g. add authentication prompt);&lt;/li&gt;&lt;li&gt;inspect other available user feedback/notification systems, such as Ubuntu's, and extend the module to provide for those mechanisms as well;&lt;/li&gt;&lt;li&gt;make some adjustments to the existing GUIs (such as disabling volume controls when pass-through mode is enabled).&lt;/li&gt;&lt;/ol&gt;I will start coding in about a week and I will try to post updates on my progress weekly. The posts will not be aimed only for those who have a good understanding of PulseAudio; I will try to explain what I discover and learn so that others who would want to start coding for PulseAudio can read through the posts easily and understand how everything works.&lt;br /&gt;&lt;br /&gt;I'm looking forward to this summer and to working on this project!</content>
		<author>
			<name>Ștefan Săftescu</name>
			<email>noreply@blogger.com</email>
			<uri>http://brainyfeed.blogspot.com/search/label/pulseaudio</uri>
		</author>
		<source>
			<title type="html">Brainyfeed</title>
			<link rel="self" href="http://brainyfeed.blogspot.co.uk/feeds/posts/default/-/pulseaudio"/>
			<id>tag:blogger.com,1999:blog-8870921695463486752</id>
			<updated>2013-03-29T18:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">The Magic Continues</title>
		<link href="http://colin.guthr.ie/2012/05/the-magic-continues/"/>
		<id>http://colin.guthr.ie/?p=484</id>
		<updated>2012-05-23T19:54:52+00:00</updated>
		<content type="html">&lt;p&gt;Hot on the heals of the awesome &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-May/013538.html&quot;&gt;PulseAudio 2.0&lt;/a&gt; release, I am very please to announce &lt;a href=&quot;http://blog.mageia.org/en/2012/05/22/mageia-2/&quot;&gt;Mageia 2&lt;/a&gt;! It's been a lot of very hard work and I inadvertently ended up doing a lot more than I had originally intended but I can't complain - while it was a lot of hard work and a massive time sink for the last few months, I certainly learned a great deal and feel I've contributed to a great user experience.&lt;span id=&quot;more-484&quot;&gt;&lt;/span&gt;So what makes Mageia magic? Well I like to think it's because we've got a great bunch of people involved - not only that, we have clear guidelines about how the whole project can never be owned by a corporate interest - it's a true community distro. If this is important to you, (and it should be!) then I encourage you to get involved and help us make it even more magic.&lt;/p&gt;
&lt;p&gt;Not only that, but while we're a young distro we come with a rich history: Mandriva. While the corporate side of Mandriva is still somewhat struggling, the breadth of experience our contributors have is much greater than our age would normally indicate.&lt;/p&gt;
&lt;p&gt;In terms of technology, I like to think we're a very forward facing distro. We're keen to adopt and contribute to the new &quot;plumbing&quot; layers being developed. Like pretty much every other distro out there, we've seen the value in this standardisation process and wholeheartedly adopted the new pid 1, &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/systemd&quot;&gt;systemd&lt;/a&gt;. Unlike some others, we've clearly stated that while Mageia 2 supports both systemd and sysvinit, Mageia 3 will focus solely on systemd. We do not see value in providing a half-hearted version of three different init systems and would much rather go &quot;all in&quot; and provide an excellent experience with the one that looks the strongest and offers the most compelling technical advantages. This will see us providing tools to help users administer their systems better and help with bug reports and fixes upstream too.&lt;/p&gt;
&lt;p&gt;We also strongly support our packagers and developers contributing directly upstream. Just recently the xsettings-kde project was removed from Mageia subversion and migrated into KDE git upstream such that other distros can contribute more easily.&lt;/p&gt;
&lt;p&gt;So for these reasons and many, many more, I feel we can continue to make the magic happen!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In terms of this release specifically, there are so many people to thank. In no particular order: Anne Nicolas, Thomas Backlund, Thierry Vignaud, Dexter Morgan, Pascal Terjan, Olivier Blin and many others on the development side, the many awesome folks in the QA team, those pesky bug reporters (some who were absolutely amazing and very understanding) and those who helped get the Artwork and Marketing side of things looking nice and slick. I'm sorry if I didn't mention you by name above, but there really are many, many lovely people involved and to thank everyone individually would just take too long! Rest assured, you are all awesome! Also thanks have to also go to the good folks involved in upstream projects. For me personally that's particularly Lennart Poettering, Kay Sievers, Michal Schmidt and Tom Gundersen (and others)  from systemd and Harald Hoyer from dracut (most of whole are Redhat employees with the exception of Tom who is an Arch contributor); Arun Raghavan, Tanu Kaskinen and David Henningsson from PulseAudio; to the KDE and GNOME projects and their many, many contributors and to everyone else supporting the use of Free software - don't be owned - own it!!!&lt;/p&gt;
&lt;div class=&quot;sociable&quot;&gt;&lt;div&gt;&lt;span class=&quot;sociable-tagline&quot;&gt;Share and Enjoy:&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2012%2F05%2Fthe-magic-continues%2F&amp;title=The%20Magic%20Continues&amp;bodytext=Hot%20on%20the%20heals%20of%20the%20awesome%20PulseAudio%202.0%20release%2C%20I%20am%20very%20please%20to%20announce%20Mageia%202%21%20It%27s%20been%20a%20lot%20of%20very%20hard%20work%20and%20I%20inadvertently%20ended%20up%20doing%20a%20lot%20more%20than%20I%20had%20originally%20intended%20but%20I%20can%27t%20complain%20-%20while%20it%20was%20a%20lot%20of&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/digg.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Digg&quot; alt=&quot;Digg&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcolin.guthr.ie%2F2012%2F05%2Fthe-magic-continues%2F&amp;title=The%20Magic%20Continues&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;StumbleUpon&quot; alt=&quot;StumbleUpon&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Fcolin.guthr.ie%2F2012%2F05%2Fthe-magic-continues%2F&amp;title=The%20Magic%20Continues&amp;notes=Hot%20on%20the%20heals%20of%20the%20awesome%20PulseAudio%202.0%20release%2C%20I%20am%20very%20please%20to%20announce%20Mageia%202%21%20It%27s%20been%20a%20lot%20of%20very%20hard%20work%20and%20I%20inadvertently%20ended%20up%20doing%20a%20lot%20more%20than%20I%20had%20originally%20intended%20but%20I%20can%27t%20complain%20-%20while%20it%20was%20a%20lot%20of&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/delicious.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;del.icio.us&quot; alt=&quot;del.icio.us&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.facebook.com/share.php?u=http%3A%2F%2Fcolin.guthr.ie%2F2012%2F05%2Fthe-magic-continues%2F&amp;t=The%20Magic%20Continues&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/facebook.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Facebook&quot; alt=&quot;Facebook&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fcolin.guthr.ie%2F2012%2F05%2Fthe-magic-continues%2F&amp;submitHeadline=The%20Magic%20Continues&amp;submitSummary=Hot%20on%20the%20heals%20of%20the%20awesome%20PulseAudio%202.0%20release%2C%20I%20am%20very%20please%20to%20announce%20Mageia%202%21%20It%27s%20been%20a%20lot%20of%20very%20hard%20work%20and%20I%20inadvertently%20ended%20up%20doing%20a%20lot%20more%20than%20I%20had%20originally%20intended%20but%20I%20can%27t%20complain%20-%20while%20it%20was%20a%20lot%20of&amp;submitCategory=science&amp;submitAssetType=text&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Yahoo! Buzz&quot; alt=&quot;Yahoo! Buzz&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://twitter.com/home?status=The%20Magic%20Continues%20-%20http%3A%2F%2Fcolin.guthr.ie%2F2012%2F05%2Fthe-magic-continues%2F&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/twitter.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Twitter&quot; alt=&quot;Twitter&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcolin.guthr.ie%2F2012%2F05%2Fthe-magic-continues%2F&amp;title=The%20Magic%20Continues&amp;annotation=Hot%20on%20the%20heals%20of%20the%20awesome%20PulseAudio%202.0%20release%2C%20I%20am%20very%20please%20to%20announce%20Mageia%202%21%20It%27s%20been%20a%20lot%20of%20very%20hard%20work%20and%20I%20inadvertently%20ended%20up%20doing%20a%20lot%20more%20than%20I%20had%20originally%20intended%20but%20I%20can%27t%20complain%20-%20while%20it%20was%20a%20lot%20of&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Google Bookmarks&quot; alt=&quot;Google Bookmarks&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fcolin.guthr.ie%2F2012%2F05%2Fthe-magic-continues%2F&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/identica.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Identi.ca&quot; alt=&quot;Identi.ca&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://slashdot.org/bookmark.pl?title=The%20Magic%20Continues&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2012%2F05%2Fthe-magic-continues%2F&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/slashdot.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Slashdot&quot; alt=&quot;Slashdot&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</content>
		<author>
			<name>Colin Guthrie</name>
			<uri>http://colin.guthr.ie</uri>
		</author>
		<source>
			<title type="html">Colin.Guthr.ie » pulseaudio</title>
			<subtitle type="html">Illegitimi non carborundum</subtitle>
			<link rel="self" href="http://colin.guthr.ie/tag/pulseaudio/feed/"/>
			<id>http://colin.guthr.ie/tag/pulseaudio/feed/</id>
			<updated>2013-06-19T17:00:23+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Three audio bugs that need your hardware info</title>
		<link href="http://voices.canonical.com/david.henningsson/2012/05/22/three-audio-bugs-in-12-04/"/>
		<id>http://voices.canonical.com/david.henningsson/?p=104</id>
		<updated>2012-05-22T16:29:10+00:00</updated>
		<content type="html">&lt;p&gt;Are you:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Missing speakers or internal mic in sound settings?&lt;/li&gt;
&lt;li&gt;Seeing a S/PDIF device show up for your USB device?&lt;/li&gt;
&lt;li&gt;Having no or extremely low sound from your internal microphone?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If so, I might need your help to be able to fix it for you!&lt;/p&gt;
&lt;p&gt;In Ubuntu 12.04 &amp;#8211; and very likely, other recent distribution releases as well &amp;#8211; there are at least these three audio bugs that need manual quirking for every machine. This means that you &lt;a href=&quot;https://wiki.ubuntu.com/Audio/AlsaInfo&quot;&gt;submit your hardware info&lt;/a&gt; in the meta-bug, I will look in that info for some ID numbers and include them in a list of devices for which a specific workaround has to be applied. We can&amp;#8217;t apply the workaround for &lt;i&gt;every&lt;/i&gt; device, as that could potentially cause problems for other devices.&lt;/p&gt;
&lt;p&gt;So if you&amp;#8217;re suffering from one of the bugs I&amp;#8217;m describing below, I could use your help to make sure they are fixed for future releases of Ubuntu and ALSA/PulseAudio. &lt;/p&gt;
&lt;h3&gt;Missing speakers or internal mic in sound settings&lt;/h3&gt;
&lt;p&gt;If you&amp;#8217;re suffering from one of the following problems:&lt;/p&gt;
&lt;p&gt; 1) In the sound settings dialog, when you plug your headphones into the designated 3.5 mm jack, there is a &amp;#8220;Headphones&amp;#8221; device correctly shown, but when you unplug it, there is no &amp;#8220;Speaker&amp;#8221; device shown, even though you have internal speakers on your computer.&lt;/p&gt;
&lt;p&gt; 2) In the sound settings dialog, when you plug your external microphone into the designated 3.5 mm jack, there is a &amp;#8220;Microphone&amp;#8221; (or similar) device correctly shown, but when you unplug it, there is no &amp;#8220;Internal Mic&amp;#8221; device shown, even though you have an internal mic on your computer.&lt;/p&gt;
&lt;p&gt;Then you might be suffering from &lt;a href=&quot;https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/946232&quot; title=&quot;bug 946232&quot;&gt;bug 946232&lt;/a&gt;. Please look in that bug for your device in that list, and if it is not there, try &lt;a href=&quot;https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/946232/comments/32&quot; title=&quot;comment 32&quot;&gt;the workaround&lt;/a&gt; and if it&amp;#8217;s working, add your alsa-info as suggested in the bug. Thanks!&lt;/p&gt;
&lt;h3&gt;S/PDIF device showing up for your USB device&lt;/h3&gt;
&lt;p&gt;If you have a USB headset, or another USB device that does not have any S/PDIF output, but yet sometimes there is an extra device called &amp;#8220;Digital Output (S/PDIF)&amp;#8221; for that device in Sound Preferences. If so, you&amp;#8217;re likely suffering from &lt;a href=&quot;https://bugs.launchpad.net/ubuntu/+source/alsa-lib/+bug/1002952&quot; title=&quot;bug 1002952&quot;&gt;bug 1002952&lt;/a&gt;. At the time of this writing there are also a few devices that are on their way to becoming fixed, if you have one of these, please help out with testing the proposed repository. There is more information in &lt;a href=&quot;https://bugs.launchpad.net/ubuntu/+source/alsa-lib/+bug/1002952&quot; title=&quot;bug 1002952&quot;&gt;bug 1002952&lt;/a&gt; about that.&lt;/p&gt;
&lt;h3&gt;Inverted Internal Mic&lt;/h3&gt;
&lt;p&gt;In this case, you have an internal mic showing up, but it seems not to work: it&amp;#8217;s either completely silent, or you can possibly pick a very small sound, with much background noise, even though you have set gain to maximum.&lt;/p&gt;
&lt;p&gt;There is something you could try. Install the pavucontrol application, start it and go to the &amp;#8220;Input Devices&amp;#8221; tab. Unlock the channels (click the keylock icon), then mute the right channel while keeping the left channel at the volume you want.&lt;br /&gt;
If the internal mic is now working correctly, you have an inverted internal mic, so that your right channel cancels out the left one. (Why the hardware is constructed that way is beyond me.)&lt;br /&gt;
This seems to be most common on Acer Aspire laptops, but I&amp;#8217;ve seen them on other laptops as well, and fixing these are more of a long term project as they are non-trivial kernel patches. So far I&amp;#8217;ve created &lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commit;h=18dcd3044e4c4b3ab6341c98e8d0e81e0d58d5e3&quot;&gt;a patch for Thinkpad U300s&lt;/a&gt;. Anyway, I would like to track the remaining ones in &lt;a href=&quot;https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1002978&quot; title=&quot;bug 1002978&quot;&gt;bug 1002978&lt;/a&gt;, so please add your system there according to the instructions.&lt;/p&gt;
&lt;p&gt;Last but not least &amp;#8211; thanks in advance for helping Ubuntu, as well as the greater Linux ecosystem (I&amp;#8217;ll make sure that the patches pushed into Ubuntu gets upstream as well)!&lt;/p&gt;</content>
		<author>
			<name>David Henningsson</name>
			<uri>http://voices.canonical.com/david.henningsson</uri>
		</author>
		<source>
			<title type="html">A better sounding world » PulseAudio</title>
			<link rel="self" href="http://voices.canonical.com/david.henningsson/category/pulseaudio/feed/"/>
			<id>http://voices.canonical.com/david.henningsson/category/pulseaudio/feed/</id>
			<updated>2013-04-20T11:00:28+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">I’m a Google Summer Coder!</title>
		<link href="http://zhengrong.wordpress.com/2012/05/21/im-a-google-summer-coder/"/>
		<id>http://zhengrong.wordpress.com/?p=5</id>
		<updated>2012-05-21T15:38:20+00:00</updated>
		<content type="html">&lt;p&gt;Horay! I participate in this year&amp;#8217;s Google Summer of Code and I&amp;#8217;ll be involvled in PulseAudio community to help enhance the logging and testing facilities.&lt;/p&gt;
&lt;p&gt;Let me first introduce what&amp;#8217;s GSoC (Google Summer of Code), it&amp;#8217;s a project hosted by Google every year to motivate students to be engaged in open source projects. Students will have a meaningful summer and be paid for their hard coding work. &lt;img src=&quot;http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;Then PulseAudio project. If you&amp;#8217;re using a modern Linux desktop, then chances are that you&amp;#8217;re already using this software. It&amp;#8217;s the component which helps to mix all the sounds from other applications and then output them into your speakers or headphones.&lt;/p&gt;
&lt;p&gt;Finally me &lt;img src=&quot;http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt;  I&amp;#8217;m a student from East China Normal University. Technically speaking, I&amp;#8217;m not majoring in computer science, nor anything related to it. But I&amp;#8217;m inspired by my friends and now I&amp;#8217;m happy to say that I could CODE! This is the coolest skill, that is, I can make almost anything into reality.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m so lucky to be chosen into PulseAudio community. I&amp;#8217;d love to thanks all the developers in this community. My mentor Arun, and the maintainer Colin, and Tanu even had a full code review on my proof of concept of circular log buffering patch!&lt;/p&gt;
&lt;p&gt;Well, let me share some tips how you would be better selected in GSoC.&lt;/p&gt;
&lt;p&gt;First, start early! Early birds catches the worms. Each year&amp;#8217;s schedule is quite similar, find out last year&amp;#8217;s accepted projects and see which one interests you most. This whole list is quite long, so start early to find out your interests!&lt;/p&gt;
&lt;p&gt;Second, be involved in the community. Once you&amp;#8217;ve found one project, the first thing you should do is to be invovled in the community. Being involved has different meanings, the first step is of course to download the software and have a try, be a user! And then be a tester. Then, you can find out from its website to see how to setup your developement environment. Sign up for the mailing list, or even hang out in its IRC channel.&lt;/p&gt;
&lt;p&gt;Third, do your homework. Now it comes the hard part. &lt;img src=&quot;http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt;  After some tests and uses, you may wonder, &amp;#8220;hey, this could be enhanced!&amp;#8221; or &amp;#8220;I would this feature in another way!&amp;#8221;. That&amp;#8217;s a good sign, this means you have your own opinion on what the project should be shaped. Then start small and write a simple demo to show you are ABLE to do this project. In my application, I spent about one week to write the circular log buffer demo and it turns out to be useful of getting myself faimilar with its internals.&lt;/p&gt;
&lt;p&gt;Now here are some words about this blog. According to the advice from Colin, I&amp;#8217;m setting this blog up to mainly track my status of this summer project. However, possibly this blog would have more technically contents later on with more engagement in open source community. It&amp;#8217;s a good start, isn&amp;#8217;t it? &lt;img src=&quot;http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif&quot; alt=&quot;:D&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;br /&gt;  &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/zhengrong.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/zhengrong.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/zhengrong.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/zhengrong.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gofacebook/zhengrong.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/zhengrong.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gotwitter/zhengrong.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/zhengrong.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/zhengrong.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/zhengrong.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/zhengrong.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/zhengrong.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/zhengrong.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/zhengrong.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=zhengrong.wordpress.com&amp;blog=36332573&amp;post=5&amp;subd=zhengrong&amp;ref=&amp;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;</content>
		<author>
			<name>Deng Zhengrong</name>
			<uri>http://zhengrong.wordpress.com</uri>
		</author>
		<source>
			<title type="html">zhengrong » PulseAudio</title>
			<subtitle type="html">4 out of 5 dentists recommend this WordPress.com site</subtitle>
			<link rel="self" href="http://zhengrong.wordpress.com/category/pulseaudio/feed/"/>
			<id>http://zhengrong.wordpress.com/category/pulseaudio/feed/</id>
			<updated>2012-05-22T08:28:16+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">PulseAudio 2.0: Twice The Goodness!</title>
		<link href="http://arunraghavan.net/2012/05/pulseaudio-2-0-twice-the-goodness/"/>
		<id>http://arunraghavan.net/?p=1333</id>
		<updated>2012-05-12T10:50:34+00:00</updated>
		<content type="html">&lt;p&gt;That&amp;#8217;s right, it&amp;#8217;s finally out! Thanks go out to all our contributors for the great work (there&amp;#8217;s too many &amp;#8212; see the shortlog!). The highlights of the release follow. Head over to the &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-May/013538.html&quot;&gt;announcement&lt;/a&gt; or &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/PulseAudio/Notes/2.0&quot;&gt;release notes&lt;/a&gt; for more details.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Dynamic sample rate switching by Pierre-Louis Bossart: This makes PulseAudio even more power efficient.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jack detection by David Henningsson: Separate volumes for your laptop speakers and headphones, and more stuff coming soon.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Major echo canceller improvements by me: Based on the &lt;tt&gt;WebRTC.org&lt;/tt&gt; audio processing library, we now do better echo cancellation, remove the need to fiddle with the mic volume knob and have fixed &lt;acronym title=&quot;Acoustic Echo Cancellation&quot;&gt;AEC&lt;/acronym&gt; between laptop speakers and a USB webcam mic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A virtual surround module by Niels Ole Salscheider: Try it out for some virtual surround sound shininess!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Support for Xen guests by Giorgos Boutsiouki: Should make audio virtualisation in guests more efficient.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;http://arunraghavan.net/wp-content/uploads/pa-releases.jpg&quot;&gt;&lt;img src=&quot;http://arunraghavan.net/wp-content/uploads/pa-releases-239x300.jpg&quot; alt=&quot;We don't always make a release, but when we do, it's awesome&quot; title=&quot;pa-releases&quot; width=&quot;239&quot; height=&quot;300&quot; class=&quot;aligncenter size-medium wp-image-1334&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Special thanks from me to &lt;a href=&quot;http://www.collabora.com/projects/pulseaudio/&quot;&gt;Collabora&lt;/a&gt; for giving me some time for upstream work.&lt;/p&gt;

&lt;p&gt;Packages are available on Gentoo, Arch, and probably soon on other distributions if they&amp;#8217;re not already there.&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">pulseaudio: PulseAudio 2.0 is out! Our tweets sound even better now! http://t.co/S5DwpkIS (by Arun)</title>
		<link href="http://twitter.com/pulseaudio/statuses/200969004632911872"/>
		<id>http://twitter.com/pulseaudio/statuses/200969004632911872</id>
		<updated>2012-05-11T15:21:59+00:00</updated>
		<content type="html">pulseaudio: PulseAudio 2.0 is out! Our tweets sound even better now! http://t.co/S5DwpkIS (by Arun)</content>
		<author>
			<name>Twitter</name>
			<uri>http://twitter.com/pulseaudio</uri>
		</author>
		<source>
			<title type="html">Twitter / pulseaudio</title>
			<subtitle type="html">Twitter updates from PulseAudio / pulseaudio.</subtitle>
			<link rel="self" href="http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio"/>
			<id>http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio</id>
			<updated>2013-06-11T17:00:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">The Most Awesome, Least-Advertised Fedora 17 Feature</title>
		<link href="http://0pointer.de/blog/projects/multi-seat.html"/>
		<id>http://0pointer.de/blog/projects/multi-seat.html</id>
		<updated>2012-05-01T21:07:00+00:00</updated>
		<content type="html">&lt;p&gt;There's one feature In the upcoming Fedora 17 release that is
immensly useful but very little known, since its &lt;a href=&quot;https://fedoraproject.org/wiki/Features/ckremoval&quot;&gt;feature page
'ckremoval'&lt;/a&gt; does not explicitly refer to it in its name: true
&lt;i&gt;automatic multi-seat&lt;/i&gt; support for Linux.&lt;/p&gt;

&lt;p&gt;A multi-seat computer is a system that offers not only one local
seat for a user, but multiple, at the same time. A seat refers to a
combination of a screen, a set of input devices (such as mice and
keyboards), and maybe an audio card or webcam, as individual local
workplace for a user. A multi-seat computer can drive an entire class
room of seats with only a fraction of the cost in hardware, energy,
administration and space: you only have one PC, which usually has way
enough CPU power to drive 10 or more workplaces. (In fact, even a
Netbook has fast enough to drive a couple of seats!) &lt;i&gt;Automatic
multi-seat&lt;/i&gt; refers to an entirely automatically managed seat setup:
whenever a new seat is plugged in a new login screen immediately
appears -- without any manual configuration --, and when the seat is
unplugged all user sessions on it are removed without delay.&lt;/p&gt;

&lt;p&gt;In Fedora 17 we added this functionality to the low-level user and
device tracking of systemd, replacing the previous ConsoleKit logic
that lacked support for automatic multi-seat. With all the ground work
done in systemd, udev and the other components of our plumbing layer
the last remaining bits were surprisingly easy to add.&lt;/p&gt;

&lt;p&gt;Currently, the automatic multi-seat logic works best with the USB
multi-seat hardware from &lt;a href=&quot;http://www.amazon.com/Plugable-Universal-DisplayLink-1920x1080-High-Speed/dp/B002PONXAI/ref=sr_1_3?ie=UTF8&amp;qid=1335904746&amp;sr=8-3&quot;&gt;Plugable&lt;/a&gt;
you can buy cheaply on &lt;a href=&quot;http://www.amazon.com/Plugable-DC-125-Docking-Station-Multiseat/dp/B004PXPPNA/ref=sr_1_10?ie=UTF8&amp;qid=1335904746&amp;sr=8-10&quot;&gt;Amazon
(US)&lt;/a&gt;. These devices require exactly zero configuration with the
new scheme implemented in Fedora 17: just plug them in at any time,
login screens pop up on them, and you have your additional
seats. Alternatively you can also assemble your seat manually with a
few easy &lt;a href=&quot;http://www.freedesktop.org/software/systemd/man/loginctl.html&quot;&gt;loginctl
attach&lt;/a&gt; commands, from any kind of hardware you might have lying
around. To get a full seat you need multiple graphics cards, keyboards
and mice: one set for each seat. (Later on we'll probably have a graphical
setup utility for additional seats, but that's not a pressing issue we
believe, as the plug-n-play multi-seat support with the Plugable
devices is so awesomely nice.)&lt;/p&gt;

&lt;p&gt;Plugable provided us for free with hardware for testing
multi-seat. They are also involved with the upstream development of
the USB DisplayLink driver for Linux. Due to their positive
involvement with Linux we can only recommend to buy their
hardware. They are good guys, and support Free Software the way all
hardware vendors should! (And besides that, their hardware is also
nicely put together. For example, in contrast to most similar vendors
they actually assign proper vendor/product IDs to their USB hardware
so that we can easily recognize their hardware when plugged in to set
up automatic seats.)&lt;/p&gt;

&lt;p&gt;Currently, all this magic is only implemented in the GNOME stack
with the biggest component getting updated being the GNOME Display
Manager. On the Plugable USB hardware you get a full GNOME Shell
session with all the usual graphical gimmicks, the same way as on any
other hardware. (Yes, GNOME 3 works perfectly fine on simpler graphics
cards such as these USB devices!) If you are hacking on a different
desktop environment, or on a different display manager, please have a
look at &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/systemd/multiseat&quot;&gt;the
multi-seat documentation&lt;/a&gt; we put together, and particularly at
our short piece about &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/systemd/writing-display-managers&quot;&gt;writing
display managers&lt;/a&gt; which are multi-seat capable.&lt;/p&gt;

&lt;p&gt;If you work on a major desktop environment or display manager and
would like to implement multi-seat support for it, but lack the
aforementioned Plugable hardware, we might be able to provide you with
the hardware for free. Please contact us directly, and we might be
able to send you a device. Note that we don't have unlimited devices
available, hence we'll probably not be able to pass hardware to
everybody who asks, and we will pass the hardware preferably to people
who work on well-known software or otherwise have contributed good
code to the community already. Anyway, if in doubt, ping us, and
explain to us why you should get the hardware, and we'll consider you!
(Oh, and this not only applies to display managers, if you hack on some other
software where multi-seat awareness would be truly useful, then don't
hesitate and ping us!)&lt;/p&gt;

&lt;p&gt;Phoronix has &lt;a href=&quot;http://www.phoronix.com/scan.php?page=article&amp;item=plugable_multiseat_kick&quot;&gt;this
story about this new multi-seat&lt;/a&gt; support which is quite interesting and
full of pictures. Please have a look.&lt;/p&gt;

&lt;p&gt;Plugable started a &lt;a href=&quot;http://www.kickstarter.com/projects/1666707630/plugable-thin-client-the-50-computer&quot;&gt;Pledge
drive&lt;/a&gt; to lower the price of the Plugable USB multi-seat terminals
further. It's full of pictures (&lt;a href=&quot;http://www.kickstarter.com/projects/1666707630/plugable-thin-client-the-50-computer/widget/video.html&quot;&gt;&lt;b&gt;and a video showing all this in action!&lt;/b&gt;&lt;/a&gt;), and uses the code we now make
available in Fedora 17 as base. Please consider pledging a few
bucks.&lt;/p&gt;

&lt;p&gt;Recently David Zeuthen &lt;a href=&quot;https://plus.google.com/110773474140772402317/posts/NqPUifsFUYH&quot;&gt;added
multi-seat support to udisks&lt;/a&gt; as well. With this in place, a user
logged in on a specific seat can only see the USB storage plugged into
his individual seat, but does not see any USB storage plugged into any
other local seat. With this in place we closed the last missing bit of
multi-seat support in our desktop stack.&lt;/p&gt;

&lt;p&gt;With this code in Fedora 17 we cover the big use cases of
multi-seat already: internet cafes, class rooms and similar
installations can provide PC workplaces cheaply and easily without any
manual configuration. Later on we want to build on this and make this
useful for different uses too: for example, the ability to get a login
screen as easily as plugging in a USB connector makes this not useful
only for saving money in setups for many people, but also in embedded
environments (consider monitoring/debugging screens made available via
this hotplug logic) or servers (get trivially quick local access to
your otherwise head-less server). To be truly useful in these areas we
need one more thing though: the ability to run a simply getty
(i.e. text login) on the seat, without necessarily involving a
graphical UI.&lt;/p&gt;

&lt;p&gt;The well-known X successor Wayland already comes out of the box with multi-seat
support based on this logic.&lt;/p&gt;

&lt;p&gt;Oh, and BTW, as Ubuntu appears to be &quot;&lt;i&gt;focussing&lt;/i&gt;&quot; on &quot;&lt;i&gt;clarity&lt;/i&gt;&quot; in the
&quot;&lt;i&gt;cloud&lt;/i&gt;&quot; now ;-), and chose Upstart instead of systemd, this feature
won't be available in Ubuntu any time soon. That's (one detail of) the
price Ubuntu has to pay for choosing to maintain it's own (largely
legacy, such as ConsoleKit) plumbing stack.&lt;/p&gt;

&lt;p&gt;Multi-seat has a long history on Unix. Since the earliest days Unix
systems could be accessed by multiple local terminals at the same
time. Since then local terminal support (and hence multi-seat)
gradually moved out of view in computing. The fewest machines these
days have more than one seat, the concept of terminals survived almost
exclusively in the context of PTYs (i.e. fully virtualized API
objects, disconnected from any real hardware seat) and VCs (i.e. a
single virtualized local seat), but almost not in any other way (well,
server setups still use serial terminals for emergency remote access,
but they almost never have more than one serial terminal). All what we
do in systemd is based on the ideas originally brought forward in
Unix; with systemd we now try to bring back a number of the good ideas
of Unix that since the old times were lost on the roadside. For
example, in true Unix style we already started to expose the concept
of a service in the file system (in
&lt;tt&gt;/sys/fs/cgroup/systemd/system/&lt;/tt&gt;), something where on Linux the
(often misunderstood) &quot;&lt;i&gt;everything is a file&lt;/i&gt;&quot; mantra previously
fell short. With automatic multi-seat support we bring back support
for terminals, but updated with all the features of today's desktops:
plug and play, zero configuration, full graphics, and not limited to
input devices and screens, but extending to all kinds of devices, such
as audio, webcams or USB memory sticks.&lt;/p&gt;

&lt;p&gt;Anyway, this is all for now; I'd like to thank everybody who was
involved with making multi-seat work so nicely and natively on the
Linux platform. You know who you are! Thanks a ton!&lt;/p&gt;</content>
		<author>
			<name>Lennart Poettering</name>
			<uri>http://0pointer.de/blog</uri>
		</author>
		<source>
			<title type="html">PID EINS!</title>
			<subtitle type="html">Lennart's Blog</subtitle>
			<link rel="self" href="http://colin.guthr.ie/mezcalero/"/>
			<id>http://colin.guthr.ie/mezcalero/</id>
			<updated>2013-06-11T23:00:22+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Androidifying your autotools build the easy way</title>
		<link href="http://arunraghavan.net/2012/05/androidifying-your-autotools-build-the-easy-way/"/>
		<id>http://arunraghavan.net/?p=1329</id>
		<updated>2012-05-01T19:48:15+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://derekforeman.blogspot.ca/&quot;&gt;Derek Foreman&lt;/a&gt; has finally written up a nice blog post about his &lt;a href=&quot;http://cgit.collabora.com/git/android/androgenizer.git/tree/README.txt&quot;&gt;Androgenizer&lt;/a&gt; tool, which we&amp;#8217;ve used for porting PulseAudio, GStreamer, Wayland, Telepathy and most of their dependencies to Android.&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;ve got an autotools-based project that you&amp;#8217;d like to build on Android, whether on the NDK or system-wide this is &lt;em&gt;really&lt;/em&gt; useful.&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">PulseAudio on Android: Part 2</title>
		<link href="http://arunraghavan.net/2012/04/pulseaudio-on-android-part-2/"/>
		<id>http://arunraghavan.net/?p=1300</id>
		<updated>2012-04-30T10:35:27+00:00</updated>
		<content type="html">&lt;p&gt;Some of you might&amp;#8217;ve noticed that there has been a bunch of work happening here at &lt;a href=&quot;http://www.collabora.com/services/android/&quot;&gt;Collabora&lt;/a&gt; on making cool open source technologies such as &lt;a href=&quot;http://gstreamer.freedesktop.org/modules/gst-android.html&quot;&gt;GStreamer&lt;/a&gt;, Telepathy, &lt;a href=&quot;http://ppaalanen.blogspot.in/2012/04/first-light-from-weston-on-android.html&quot;&gt;Wayland&lt;/a&gt; and of course, &lt;a href=&quot;http://arunraghavan.net/2012/01/pulseaudio-vs-audioflinger-fight/&quot;&gt;PulseAudio&lt;/a&gt; available on Android.&lt;/p&gt;

&lt;p&gt;Since my last blog post on this subject, I got some time to start looking at replacing AudioFlinger (recap: that&amp;#8217;s Android&amp;#8217;s native audio subsystem) with PulseAudio (recap: that&amp;#8217;s the awesome Linux audio subsystem). This work can be broken up into 3 parts: playback, capture, and policy. The roles of playback and capture are obvious. For those who aren&amp;#8217;t aware of system internals, the policy bits take care of audio routing, volumes, and other such things. For example, audio should play out of your headphones if they&amp;#8217;re plugged in, off Bluetooth if you&amp;#8217;ve got a headset paired, or the speakers if nothing&amp;#8217;s plugged in. Also, depending on the device, the output volume might change based on the current output path.&lt;/p&gt;

&lt;p&gt;I started by looking at solving the playback problem first. I&amp;#8217;ve got the first 80% of this done (as we all know, the second 80% takes at least as long ;) ). This is done by replacing the native &lt;tt&gt;AudioTrack&lt;/tt&gt; playback API with a simple wrapper that translates into the &lt;tt&gt;libpulse&lt;/tt&gt; PulseAudio client API. There&amp;#8217;s bits of the API that seem to be rarely used(loops and markers, primarily), and I&amp;#8217;ve not gotten around to those yet. Basic playback works quite well, and here&amp;#8217;s a video showing this. (&lt;em&gt;Note: this and the next video will be served with yummy HTML5 goodness if you enabled the &lt;a href=&quot;http://youtube.com/html5&quot;&gt;YouTube HTML5 beta&lt;/a&gt;&lt;/em&gt;).&lt;/p&gt;



&lt;p&gt;(if the video doesn&amp;#8217;t appear, you can &lt;a href=&quot;http://www.youtube.com/watch?v=h9fxmOaW2Bw&quot;&gt;watch it on YouTube&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Users of PulseAudio might have spotted that this now frees us up to do some fairly nifty things. One such thing is getting remote playback for free. For a long time now, there has been support for streaming audio between devices running PulseAudio. I wrote up a quick app to show this working on the Galaxy Nexus as well. Again, seeing this working is a lot more impressive than me describing it here, so here&amp;#8217;s another video:&lt;/p&gt;



&lt;p&gt;(if the video doesn&amp;#8217;t appear, you can &lt;a href=&quot;http://www.youtube.com/watch?v=o5-phFVfZnQ&quot;&gt;watch it on YouTube&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;This is all clearly work in progress, but you can find the code for the AudioTrack wrapper as &lt;a href=&quot;http://people.collabora.com/~arun/android/frameworks-base-0001-First-stab-at-a-libpulse-based-AudioTrack-API.patch&quot;&gt;a patch&lt;/a&gt; for now. This will be a properly integrated tree that you can just pull and easily integrate into your Android build when it&amp;#8217;s done. The PA Output Switcher app code is also available in &lt;a href=&quot;http://cgit.collabora.com/git/user/arun/pa-output-switcher.git&quot;&gt;a git repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m hoping to be able to continue hacking on the capture and policy bits. The latter, especially, promises to be involved, since there isn&amp;#8217;t always a 1:1 mapping between AudioFlinger and PulseAudio concepts. Nothing insurmountable, though. :) Watch this space for more updates as I wade through the next bit.&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">systemd Status Update</title>
		<link href="http://0pointer.de/blog/projects/systemd-update-3.html"/>
		<id>http://0pointer.de/blog/projects/systemd-update-3.html</id>
		<updated>2012-04-20T22:17:00+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://0pointer.de/blog/projects/systemd-update-2.html&quot;&gt;It
has been way too long since my last status update on
systemd&lt;/a&gt;. Here's another short, incomprehensive status update on
what we worked on for &lt;a href=&quot;http://freedesktop.org/wiki/Software/systemd&quot;&gt;systemd&lt;/a&gt; since
then.&lt;/p&gt;

&lt;p&gt;We have been working hard to turn systemd into the most viable set
of components to build operating systems, appliances and devices from,
and make it the best choice for servers, for desktops and for embedded
environments alike. I think we have a really convincing set of
features now, but we are actively working on making it even
better.&lt;/p&gt;

&lt;p&gt;Here's a list of some more and some less interesting features, in
no particular order:&lt;/p&gt;

&lt;ol&gt;

&lt;li&gt;We added an automatic pager to &lt;tt&gt;systemctl&lt;/tt&gt; (and related tools), similar
to how &lt;tt&gt;git&lt;/tt&gt; has it.&lt;/li&gt;

&lt;li&gt;&lt;tt&gt;systemctl&lt;/tt&gt; learnt a new switch &lt;tt&gt;--failed&lt;/tt&gt;, to show only
failed services.&lt;/li&gt;

&lt;li&gt;You may now start services immediately, overrding all dependency
logic by passing &lt;tt&gt;--ignore-dependencies&lt;/tt&gt; to
&lt;tt&gt;systemctl&lt;/tt&gt;. This is mostly a debugging tool and nothing people
should use in real life.&lt;/li&gt;

&lt;li&gt;Sending &lt;tt&gt;SIGKILL&lt;/tt&gt; as final part of the implicit shutdown
logic of services is now optional and may be configured with the
&lt;tt&gt;SendSIGKILL=&lt;/tt&gt; option individually for each service.&lt;/li&gt;

&lt;li&gt;We split off the Vala/Gtk tools into its own project &lt;tt&gt;systemd-ui&lt;/tt&gt;.&lt;/li&gt;

&lt;li&gt;&lt;tt&gt;systemd-tmpfiles&lt;/tt&gt; learnt file globbing and creating FIFO
special files as well as character and block device nodes, and
symlinks. It also is capable of relabelling certain directories at
boot now (in the SELinux sense).&lt;/li&gt;

&lt;li&gt;Immediately before shuttding dow we will now invoke all binaries
found in &lt;tt&gt;/lib/systemd/system-shutdown/&lt;/tt&gt;, which is useful for
debugging late shutdown.&lt;/li&gt;

&lt;li&gt;You may now globally control where STDOUT/STDERR of services goes
(unless individual service configuration overrides it).&lt;/li&gt;

&lt;li&gt;There's a new &lt;tt&gt;ConditionVirtualization=&lt;/tt&gt; option, that makes
systemd skip a specific service if a certain virtualization technology
is found or not found. Similar, we now have a new option to detect
whether a certain security technology (such as SELinux) is available,
called &lt;tt&gt;ConditionSecurity=&lt;/tt&gt;. There's also
&lt;tt&gt;ConditionCapability=&lt;/tt&gt; to check whether a certain process
capability is in the capability bounding set of the system. There's
also a new &lt;tt&gt;ConditionFileIsExecutable=&lt;/tt&gt;,
&lt;tt&gt;ConditionPathIsMountPoint=&lt;/tt&gt;,
&lt;tt&gt;ConditionPathIsReadWrite=&lt;/tt&gt;,
&lt;tt&gt;ConditionPathIsSymbolicLink=&lt;/tt&gt;.&lt;/li&gt;

&lt;li&gt;The file system condition directives now support globbing.&lt;/li&gt;

&lt;li&gt;Service conditions may now be &quot;triggering&quot; and &quot;mandatory&quot;, meaning that
they can be a necessary requirement to hold for a service to start, or
simply one trigger among many.&lt;/li&gt;

&lt;li&gt;At boot time we now print warnings if: &lt;a href=&quot;http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken&quot;&gt;&lt;tt&gt;/usr&lt;/tt&gt;
is on a split-off partition but not already mounted by an initrd&lt;/a&gt;;
if &lt;tt&gt;/etc/mtab&lt;/tt&gt; is not a symlink to &lt;tt&gt;/proc/mounts&lt;/tt&gt;; &lt;a href=&quot;http://0pointer.de/blog/projects/cgroups-vs-cgroups.html&quot;&gt;CONFIG_CGROUPS
is not enabled in the kernel&lt;/a&gt;. We'll also expose this as
&lt;i&gt;tainted&lt;/i&gt; flag on the bus.&lt;/li&gt;

&lt;li&gt;You may now boot the same OS image on a bare metal machine and in
Linux namespace containers and will get a clean boot in both
cases. This is more complicated than it sounds since device management
with udev or write access to &lt;tt&gt;/sys&lt;/tt&gt;, &lt;tt&gt;/proc/sys&lt;/tt&gt; or
things like &lt;tt&gt;/dev/kmsg&lt;/tt&gt; is not available in a container. This
makes systemd a first-class choice for managing thin container
setups. This is all tested with systemd's own &lt;tt&gt;systemd-nspawn&lt;/tt&gt;
tool but should work fine in LXC setups, too. Basically this means
that you do not have to adjust your OS manually to make it work in a
container environment, but will just work out of the box. It also
makes it easier to convert real systems into containers.&lt;/li&gt;

&lt;li&gt;We now automatically spawn gettys on HVC ttys when booting in VMs.&lt;/li&gt;

&lt;li&gt;We introduced &lt;tt&gt;/etc/machine-id&lt;/tt&gt; as a generalization of
D-Bus machine ID logic. See &lt;a href=&quot;http://0pointer.de/blog/projects/the-new-configuration-files.html&quot;&gt;this
blog story for more information&lt;/a&gt;. On stateless/read-only systems
the machine ID is initialized randomly at boot. In virtualized
environments it may be passed in from the machine manager (with qemu's
&lt;tt&gt;-uuid&lt;/tt&gt; switch, or via the &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface&quot;&gt;container
interface&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;All of the systemd-specific &lt;tt&gt;/etc/fstab&lt;/tt&gt; mount options are
now in the &lt;tt&gt;x-systemd-&lt;i&gt;xyz&lt;/i&gt;&lt;/tt&gt; format.&lt;/li&gt;

&lt;li&gt;To make it easy to find non-converted services we will now
implicitly prefix all LSB and SysV init script descriptions with the
strings &quot;&lt;tt&gt;LSB:&lt;/tt&gt;&quot; resp. &quot;&lt;tt&gt;SYSV:&lt;/tt&gt;&quot;.&lt;/li&gt;

&lt;li&gt;We introduced &lt;tt&gt;/run&lt;/tt&gt; and made it a hard dependency of
systemd. This directory is now widely accepted and implemented on all
relevant Linux distributions.&lt;/li&gt;

&lt;li&gt;systemctl can now execute all its operations remotely too (&lt;tt&gt;-H&lt;/tt&gt; switch).&lt;/li&gt;

&lt;li&gt;We now ship &lt;a href=&quot;http://0pointer.de/blog/projects/changing-roots.html&quot;&gt;systemd-nspawn&lt;/a&gt;,
a really powerful tool that can be used to start containers for
debugging, building and testing, much like chroot(1). It is useful to
just get a shell inside a build tree, but is good enough to boot up a
full system in it, too.&lt;/li&gt;

&lt;li&gt;If we query the user for a hard disk password at boot he may hit
TAB to hide the asterisks we normally show for each key that is
entered, for extra paranoia.&lt;/li&gt;

&lt;li&gt;We don't enable &lt;tt&gt;udev-settle.service&lt;/tt&gt; anymore, which is
only required for certain legacy software that still hasn't been
updated to follow devices coming and going cleanly.&lt;/li&gt;

&lt;li&gt;We now include a tool that can plot boot speed graphs, similar to
bootchartd, called &lt;a href=&quot;http://0pointer.de/blog/projects/blame-game.html&quot;&gt;&lt;tt&gt;systemd-analyze&lt;/tt&gt;&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;At boot, we now initialize the kernel's &lt;tt&gt;binfmt_misc&lt;/tt&gt; logic with the data from &lt;tt&gt;/etc/binfmt.d&lt;/tt&gt;.&lt;/li&gt;

&lt;li&gt;&lt;tt&gt;systemctl&lt;/tt&gt; now recognizes if it is run in a &lt;tt&gt;chroot()&lt;/tt&gt;
environment and will work accordingly (i.e. apply changes to the tree
it is run in, instead of talking to the actual PID 1 for this). It also has a new &lt;tt&gt;--root=&lt;/tt&gt; switch to work on an OS tree from outside of it.&lt;/li&gt;

&lt;li&gt;There's a new unit dependency type &lt;tt&gt;OnFailureIsolate=&lt;/tt&gt; that
allows entering a different target whenever a certain unit fails. For
example, this is interesting to enter emergency mode if file system
checks of crucial file systems failed.&lt;/li&gt;

&lt;li&gt;Socket units may now listen on Netlink sockets, special files
from &lt;tt&gt;/proc&lt;/tt&gt; and POSIX message queues, too.&lt;/li&gt;

&lt;li&gt;There's a new &lt;tt&gt;IgnoreOnIsolate=&lt;/tt&gt; flag which may be used to
ensure certain units are left untouched by isolation requests. There's
a new &lt;tt&gt;IgnoreOnSnapshot=&lt;/tt&gt; flag which may be used to exclude
certain units from snapshot units when they are created.&lt;/li&gt;

&lt;li&gt;There's now small mechanism services &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/systemd/hostnamed&quot;&gt;for
changing the local hostname and other host meta data&lt;/a&gt;, &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/systemd/localed&quot;&gt;changing
the system locale and console settings&lt;/a&gt; and the &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/systemd/timedated&quot;&gt;system
clock&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;We now limit the capability bounding set for a number of our
internal services by default.&lt;/li&gt;

&lt;li&gt;Plymouth may now be disabled globally with
&lt;tt&gt;plymouth.enable=0&lt;/tt&gt; on the kernel command line.&lt;/li&gt;

&lt;li&gt;We now disallocate VTs when a getty finished running (and
optionally other tools run on VTs). This adds extra security since it
clears up the scrollback buffer so that subsequent users cannot get
access to a user's session output.&lt;/li&gt;

&lt;li&gt;In socket units there are now options to control the
&lt;tt&gt;IP_TRANSPARENT&lt;/tt&gt;, &lt;tt&gt;SO_BROADCAST&lt;/tt&gt;, &lt;tt&gt;SO_PASSCRED&lt;/tt&gt;,
&lt;tt&gt;SO_PASSSEC&lt;/tt&gt; socket options.&lt;/li&gt;

&lt;li&gt;The receive and send buffers of socket units may now be set larger
than the default system settings if needed by using
SO_{RCV,SND}BUFFORCE.&lt;/li&gt;

&lt;li&gt;We now set the hardware timezone as one of the first things in PID
1, in order to avoid time jumps during normal userspace operation, and
to guarantee sensible times on all generated logs. We also no longer
save the system clock to the RTC on shutdown, assuming that this is
done by the clock control tool when the user modifies the time, or
automatically by the kernel if NTP is enabled.&lt;/li&gt;

&lt;li&gt;The SELinux directory got moved from &lt;tt&gt;/selinux&lt;/tt&gt; to
&lt;tt&gt;/sys/fs/selinux&lt;/tt&gt;.&lt;/li&gt;

&lt;li&gt;We added a small service &lt;tt&gt;systemd-logind&lt;/tt&gt; that keeps tracks
of logged in users and their sessions. It creates control groups for
them, implements the &lt;a href=&quot;http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html&quot;&gt;XDG_RUNTIME_DIR
specification&lt;/a&gt; for them, maintains seats and device node ACLs and
implements shutdown/idle inhibiting for clients. It auto-spawns gettys
on all local VTs when the user switches to them (instead of starting
six of them unconditionally), thus reducing the resource foot print by
default. It has a D-Bus interface as well as &lt;a href=&quot;http://www.freedesktop.org/software/systemd/man/sd-login.html&quot;&gt;a
simple synchronous library interface&lt;/a&gt;. This mechanism obsoletes
ConsoleKit which is now deprecated and should no longer be used.&lt;/li&gt;

&lt;li&gt;There's now full, automatic multi-seat support, and this is
enabled in GNOME 3.4. Just by pluging in new seat hardware you get a
new login screen on your seat's screen.&lt;/li&gt;

&lt;li&gt;There is now an option &lt;tt&gt;ControlGroupModify=&lt;/tt&gt; to allow
services to change the properties of their control groups dynamically,
and one to make control groups persistent in the tree
(&lt;tt&gt;ControlGroupPersistent=&lt;/tt&gt;) so that they can be created and
maintained by external tools.&lt;/li&gt;

&lt;li&gt;We now jump back into the &lt;tt&gt;initrd&lt;/tt&gt; in shutdown, so that it can
detach the root file system and the storage devices backing it. This
allows (for the first time!) to reliably undo complex storage setups
on shutdown and leave them in a clean state.&lt;/li&gt;

&lt;li&gt;&lt;tt&gt;systemctl&lt;/tt&gt; now supports &lt;i&gt;presets&lt;/i&gt;, a way for distributions and
administrators to define their own policies on whether services should
be enabled or disabled by default on package installation.&lt;/li&gt;

&lt;li&gt;&lt;tt&gt;systemctl&lt;/tt&gt; now has high-level verbs for masking/unmasking
units. There's also a new command (&lt;tt&gt;systemctl list-unit-files&lt;/tt&gt;)
for determining the list of all installed unit file files and whether
they are enabled or not.&lt;/li&gt;

&lt;li&gt;We now apply &lt;tt&gt;sysctl&lt;/tt&gt; variables to each new network device, as it
appears. This makes &lt;tt&gt;/etc/sysctl.d&lt;/tt&gt; compatible with hot-plug
network devices.&lt;/li&gt;

&lt;li&gt;There's limited profiling for SELinux start-up perfomance built
into PID 1.&lt;/li&gt;

&lt;li&gt;There's a new switch &lt;a href=&quot;http://0pointer.de/blog/projects/security.html&quot;&gt;&lt;tt&gt;PrivateNetwork=&lt;/tt&gt;&lt;/a&gt;
to turn of any network access for a specific service.&lt;/li&gt;

&lt;li&gt;Service units may now include configuration for control group
parameters. A few (such as &lt;tt&gt;MemoryLimit=&lt;/tt&gt;) are exposed with
high-level options, and all others are available via the generic
&lt;tt&gt;ControlGroupAttribute=&lt;/tt&gt; setting.&lt;/li&gt;

&lt;li&gt;There's now the option to mount certain cgroup controllers
jointly at boot. We do this now for &lt;tt&gt;cpu&lt;/tt&gt; and
&lt;tt&gt;cpuacct&lt;/tt&gt; by default.&lt;/li&gt;

&lt;li&gt;We added &lt;a href=&quot;https://docs.google.com/document/pub?id=1IC9yOXj7j6cdLLxWEBAGRL6wl97tFxgjLUEHIX3MSTs&quot;&gt;the
journal&lt;/a&gt; and turned it on by default.&lt;/li&gt;

&lt;li&gt;All service output is now written to the Journal by default,
regardless whether it is sent via syslog or simply written to
stdout/stderr. Both message streams end up in the same location and
are interleaved the way they should. All log messages even from the
kernel and from early boot end up in the journal. Now, no service
output gets unnoticed and is saved and indexed at the same
location.&lt;/li&gt;

&lt;li&gt;&lt;tt&gt;systemctl status&lt;/tt&gt; will now show the last 10 log lines for
each service, directly from the journal.&lt;/li&gt;

&lt;li&gt;We now show the progress of &lt;tt&gt;fsck&lt;/tt&gt; at boot on the console,
again. We also show the much loved colorful &lt;tt&gt;[ OK ]&lt;/tt&gt; status
messages at boot again, as known from most SysV implementations.&lt;/li&gt;

&lt;li&gt;We merged udev into systemd.&lt;/li&gt;

&lt;li&gt;We implemented and documented interfaces to &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface&quot;&gt;container
managers&lt;/a&gt; and &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/systemd/InitrdInterface&quot;&gt;initrds&lt;/a&gt;
for passing execution data to systemd. We also implemented and
documented &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons&quot;&gt;an
interface for storage daemons that are required to back the root file
system&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;There are two new options in service files to propagate reload requests between several units.&lt;/li&gt;

&lt;li&gt;&lt;tt&gt;systemd-cgls&lt;/tt&gt; won't show kernel threads by default anymore, or show empty control groups.&lt;/li&gt;

&lt;li&gt;We added a new tool &lt;tt&gt;systemd-cgtop&lt;/tt&gt; that shows resource
usage of whole services in a top(1) like fasion.&lt;/li&gt;

&lt;li&gt;systemd may now supervise services in watchdog style. If enabled
for a service the daemon daemon has to ping PID 1 in regular intervals
or is otherwise considered failed (which might then result in
restarting it, or even rebooting the machine, as configured). Also,
PID 1 is capable of pinging a hardware watchdog. Putting this
together, the hardware watchdogs PID 1 and PID 1 then watchdogs
specific services. This is highly useful for high-availability servers
as well as embedded machines. Since watchdog hardware is noawadays
built into all modern chipsets (including desktop chipsets), this
should hopefully help to make this a more widely used
functionality.&lt;/li&gt;

&lt;li&gt;We added support for a new kernel command line option
&lt;tt&gt;systemd.setenv=&lt;/tt&gt; to set an environment variable
system-wide.&lt;/li&gt;

&lt;li&gt;By default services which are started by systemd will have SIGPIPE
set to ignored. The Unix SIGPIPE logic is used to reliably implement
shell pipelines and when left enabled in services is usually just a
source of bugs and problems.&lt;/li&gt;

&lt;li&gt;You may now configure the rate limiting that is applied to
restarts of specific services. Previously the rate limiting parameters
were hard-coded (similar to SysV).&lt;/li&gt;

&lt;li&gt;There's now support for loading the IMA integrity policy into the
kernel early in PID 1, similar to how we already did it with the
SELinux policy.&lt;/li&gt;

&lt;li&gt;There's now an official API to schedule and query scheduled shutdowns.&lt;/li&gt;

&lt;li&gt;We changed the license from GPL2+ to LGPL2.1+.&lt;/li&gt;

&lt;li&gt;We made &lt;a href=&quot;http://www.freedesktop.org/software/systemd/man/systemd-detect-virt.html&quot;&gt;&lt;tt&gt;systemd-detect-virt&lt;/tt&gt;&lt;/a&gt;
an official tool in the tool set. Since we already had code to detect
certain VM and container environments we now added an official tool
for administrators to make use of in shell scripts and suchlike.&lt;/li&gt;

&lt;li&gt;We documented &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/systemd/InterfacePortabilityAndStabilityChart&quot;&gt;numerous
interfaces&lt;/a&gt; systemd introduced.&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;Much of the stuff above is already available in Fedora 15 and 16,
or will be made available in the upcoming Fedora 17.&lt;/p&gt;

&lt;p&gt;And that's it for now. There's a lot of other stuff in the git commits, but
most of it is smaller and I will it thus spare you.&lt;/p&gt;

&lt;p&gt;I'd like to thank everybody who contributed to systemd over the past years.&lt;/p&gt;

&lt;p&gt;Thanks for your interest!&lt;/p&gt;</content>
		<author>
			<name>Lennart Poettering</name>
			<uri>http://0pointer.de/blog</uri>
		</author>
		<source>
			<title type="html">PID EINS!</title>
			<subtitle type="html">Lennart's Blog</subtitle>
			<link rel="self" href="http://colin.guthr.ie/mezcalero/"/>
			<id>http://colin.guthr.ie/mezcalero/</id>
			<updated>2013-06-11T23:00:22+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Audio over HDMI and DisplayPort in Ubuntu 12.04</title>
		<link href="http://voices.canonical.com/david.henningsson/2012/04/14/audio-over-hdmi-and-displayport-in-ubuntu-12-04/"/>
		<id>http://voices.canonical.com/david.henningsson/?p=106</id>
		<updated>2012-04-14T01:05:14+00:00</updated>
		<content type="html">&lt;p&gt;Ok, for those of you who just want it up and working, I&amp;#8217;m including a quickstart section before we dive into the details:&lt;/p&gt;
&lt;h3&gt;Quickstart&lt;/h3&gt;
&lt;p&gt;1) If you have an ATI/AMD or NVidia card, you need &lt;a href=&quot;https://help.ubuntu.com/11.10/ubuntu-help/hardware-driver-proprietary.html&quot;&gt;proprietary drivers&lt;/a&gt;.&lt;br /&gt;
2) You need to activate your secondary screen. For Intel, this is done in the regular &amp;#8220;Screens&amp;#8221; dialog, and on NVidia this is done in the nvidia-settings dialog. (I haven&amp;#8217;t tested fglrx.)&lt;br /&gt;
3) You need to select the HDMI/DisplayPort output in the sound settings dialog, which is quickest reachable from the sound indicator.&lt;/p&gt;
&lt;h3&gt;Can&amp;#8217;t we switch audio output automatically?&lt;/h3&gt;
&lt;p&gt;Choosing whether to automatically switch to HDMI/DisplayPort &amp;#8211; essentially, switching sound to use the HDMI/DisplayPort whenever that screen is activated &amp;#8211; is not trivial. It is not obvious to me whether the user wants to do that, or not. And in fact, in Ubuntu 11.10, we did switch, but only for some cards. And we did not switch back when the screen was deactivated. After a &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-March/012991.html&quot;&gt;discussion&lt;/a&gt; where &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-March/013006.html&quot;&gt;different&lt;/a&gt; &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-March/013009.html&quot;&gt;opinions&lt;/a&gt; were voiced, I reached the &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-March/013018.html&quot;&gt;conclusion&lt;/a&gt; that given the current pieces of infrastructure in place, the best option would be to &lt;b&gt;disable automatic HDMI/DisplayPort switching&lt;/b&gt; for Ubuntu 12.04.&lt;/p&gt;
&lt;h3&gt;The problem of four devices&lt;/h3&gt;
&lt;p&gt;As mentioned in an &lt;a href=&quot;http://voices.canonical.com/david.henningsson/2011/09/06/pulseaudio-with-jack-detection/&quot; title=&quot;PulseAudio with jack detection&quot;&gt;earlier post&lt;/a&gt;, much HDMI/DisplayPort hardware have phantom outputs, and there is no way we know what outputs are real until something is plugged in. With the new sound settings UI in Ubuntu 12.04, we finally have a good user experience in this scenario: Only the outputs that are actually plugged in and possible to activate will be shown.&lt;br /&gt;
&lt;img src=&quot;http://voices.canonical.com/david.henningsson/files/2012/04/sound-settings-ui2.png&quot; alt=&quot;Sound settings in Ubuntu 12.04&quot; width=&quot;75%&quot; /&gt;&lt;br /&gt;
&lt;font size=&quot;-1&quot;&gt;Sound settings in Ubuntu 12.04&lt;/font&gt;&lt;/p&gt;
&lt;h3&gt;Video drivers&lt;/h3&gt;
&lt;p&gt;Most of the code to activate HDMI/DisplayPort audio is in the video driver, rather than the audio driver. Therefore, if this is not working, it is more likely that the problem is within the video driver.&lt;br /&gt;
It is also notable that the open source driver for ATI/AMD (called radeon), has experimental support for HDMI/DisplayPort audio, at least for some cards. It is &lt;a href=&quot;https://lists.ubuntu.com/archives/kernel-team/2012-February/018898.html&quot;&gt;disabled by default&lt;/a&gt;, but you can activate it by adding radeon.audio=1 as a &lt;a href=&quot;https://help.ubuntu.com/community/BootOptions#Changing_boot_options_Permanently_for_an_Existing_Installation&quot;&gt;kernel boot parameter&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Upstreaming notes&lt;/h3&gt;
&lt;p&gt;PulseAudio 2.0 is soon to be released (hopefully). PulseAudio 2.0 and Ubuntu 12.04 have the same feature set when it comes to HDMI/DisplayPort audio support.&lt;br /&gt;
The new sound settings UI in Ubuntu 12.04 has not yet been upstreamed.&lt;/p&gt;</content>
		<author>
			<name>David Henningsson</name>
			<uri>http://voices.canonical.com/david.henningsson</uri>
		</author>
		<source>
			<title type="html">A better sounding world » PulseAudio</title>
			<link rel="self" href="http://voices.canonical.com/david.henningsson/category/pulseaudio/feed/"/>
			<id>http://voices.canonical.com/david.henningsson/category/pulseaudio/feed/</id>
			<updated>2013-04-20T11:00:28+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">PulseAudio in Google Summer of Code 2012</title>
		<link href="http://arunraghavan.net/2012/04/pulseaudio-in-google-summer-of-code-2012/"/>
		<id>http://arunraghavan.net/?p=1297</id>
		<updated>2012-04-04T12:27:43+00:00</updated>
		<content type="html">&lt;p&gt;If you&amp;#8217;re a student participating in this year&amp;#8217;s edition of Google Summer of Code and want to get your hands dirty with some fun low-level hacking, here&amp;#8217;s a quick reminder that PulseAudio is a participating organisation for the first time, and we have some &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/PulseAudio/GSoC2012&quot;&gt;nice ideas&lt;/a&gt; for you to hack on.&lt;/p&gt;

&lt;p&gt;The deadline for applications is 2 days away, so get those applications in soon! If you&amp;#8217;ve got questions, feel free to drop by #pulseaudio on the Freenode IRC network and ping us. (I&amp;#8217;m &lt;tt&gt;Ford_Prefect&lt;/tt&gt; there for those who don&amp;#8217;t know)&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">pulseaudio: PulseAudio 1.99.2 (a.k.a. 2.0 RC2) is out -- be the first to try it and win free virtual brownies! (by Arun)</title>
		<link href="http://twitter.com/pulseaudio/statuses/185037359161675776"/>
		<id>http://twitter.com/pulseaudio/statuses/185037359161675776</id>
		<updated>2012-03-28T16:15:18+00:00</updated>
		<content type="html">pulseaudio: PulseAudio 1.99.2 (a.k.a. 2.0 RC2) is out -- be the first to try it and win free virtual brownies! (by Arun)</content>
		<author>
			<name>Twitter</name>
			<uri>http://twitter.com/pulseaudio</uri>
		</author>
		<source>
			<title type="html">Twitter / pulseaudio</title>
			<subtitle type="html">Twitter updates from PulseAudio / pulseaudio.</subtitle>
			<link rel="self" href="http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio"/>
			<id>http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio</id>
			<updated>2013-06-11T17:00:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">pulseaudio: PulseAudio will be participating in this year's Google Summer of Code! Check out our wiki for more details: http://t.co/eIoWoKrC (by Arun)</title>
		<link href="http://twitter.com/pulseaudio/statuses/180721354180526080"/>
		<id>http://twitter.com/pulseaudio/statuses/180721354180526080</id>
		<updated>2012-03-16T18:25:03+00:00</updated>
		<content type="html">pulseaudio: PulseAudio will be participating in this year's Google Summer of Code! Check out our wiki for more details: http://t.co/eIoWoKrC (by Arun)</content>
		<author>
			<name>Twitter</name>
			<uri>http://twitter.com/pulseaudio</uri>
		</author>
		<source>
			<title type="html">Twitter / pulseaudio</title>
			<subtitle type="html">Twitter updates from PulseAudio / pulseaudio.</subtitle>
			<link rel="self" href="http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio"/>
			<id>http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio</id>
			<updated>2013-06-11T17:00:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">pulseaudio: PulseAudio 1.99.1 (2.0 RC1) is out -- get it while it's hot! http://t.co/0VQHvCCR (by Arun)</title>
		<link href="http://twitter.com/pulseaudio/statuses/180282688907907072"/>
		<id>http://twitter.com/pulseaudio/statuses/180282688907907072</id>
		<updated>2012-03-15T13:21:57+00:00</updated>
		<content type="html">pulseaudio: PulseAudio 1.99.1 (2.0 RC1) is out -- get it while it's hot! http://t.co/0VQHvCCR (by Arun)</content>
		<author>
			<name>Twitter</name>
			<uri>http://twitter.com/pulseaudio</uri>
		</author>
		<source>
			<title type="html">Twitter / pulseaudio</title>
			<subtitle type="html">Twitter updates from PulseAudio / pulseaudio.</subtitle>
			<link rel="self" href="http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio"/>
			<id>http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio</id>
			<updated>2013-06-11T17:00:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">pulseaudio: Just submitted #PulseAudio's org application for this year's #GSoC! (by Arun)</title>
		<link href="http://twitter.com/pulseaudio/statuses/178100427672387584"/>
		<id>http://twitter.com/pulseaudio/statuses/178100427672387584</id>
		<updated>2012-03-09T12:50:25+00:00</updated>
		<content type="html">pulseaudio: Just submitted #PulseAudio's org application for this year's #GSoC! (by Arun)</content>
		<author>
			<name>Twitter</name>
			<uri>http://twitter.com/pulseaudio</uri>
		</author>
		<source>
			<title type="html">Twitter / pulseaudio</title>
			<subtitle type="html">Twitter updates from PulseAudio / pulseaudio.</subtitle>
			<link rel="self" href="http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio"/>
			<id>http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio</id>
			<updated>2013-06-11T17:00:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">pulseaudio: Wiki has moved: http://t.co/aVZbRego Help us fill it!! (by Colin)</title>
		<link href="http://twitter.com/pulseaudio/statuses/177483749762678784"/>
		<id>http://twitter.com/pulseaudio/statuses/177483749762678784</id>
		<updated>2012-03-07T19:59:58+00:00</updated>
		<content type="html">pulseaudio: Wiki has moved: http://t.co/aVZbRego Help us fill it!! (by Colin)</content>
		<author>
			<name>Twitter</name>
			<uri>http://twitter.com/pulseaudio</uri>
		</author>
		<source>
			<title type="html">Twitter / pulseaudio</title>
			<subtitle type="html">Twitter updates from PulseAudio / pulseaudio.</subtitle>
			<link rel="self" href="http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio"/>
			<id>http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio</id>
			<updated>2013-06-11T17:00:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">What sound does a wiki make?</title>
		<link href="http://colin.guthr.ie/2012/03/what-sound-does-a-wiki-make/"/>
		<id>http://colin.guthr.ie/?p=477</id>
		<updated>2012-03-07T19:51:14+00:00</updated>
		<content type="html">&lt;p&gt;So as many followers may know already, most of the technical infrastructure we use for PulseAudio has been moved over to &lt;a href=&quot;http://www.freedesktop.org/wiki/&quot;&gt;FreeDesktop.org&lt;/a&gt;. We already moved the &lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss&quot;&gt;mailing lists&lt;/a&gt; and &lt;a href=&quot;http://cgit.freedesktop.org/pulseaudio/&quot;&gt;git&lt;/a&gt; hosting some time ago, and one of the main bits left was the &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/PulseAudio&quot;&gt;wiki&lt;/a&gt;.&lt;span id=&quot;more-477&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;We had previously used the FreeDesktop wiki for a couple, isolated pages (mainly because the pulseaudio.org wiki was just too frustrating to use), but the vast majority of content was still on the old servers.&lt;/p&gt;
&lt;p&gt;So I finally got around to looking at migrating the content. Now a lot of it is out of date (again see the &quot;too frustrating to use&quot; comment above!), but there is still a lot of data and history there that we'd like to preserve.&lt;/p&gt;
&lt;p&gt;Fortunately, FreeDesktop use &lt;a href=&quot;http://moinmo.in/&quot;&gt;MoinMoin&lt;/a&gt; which is very easy to manipulate, squeeze and mould into the right shape. No complicated databases, just a relatively isolated file system layout. This very much eased the migration process.&lt;/p&gt;
&lt;p&gt;We used &lt;a href=&quot;http://trac.edgewall.org/&quot;&gt;Trac&lt;/a&gt; over at pulseaudio.org and I've done a fair bit of hacking on Trac before so this was also quite convenient as the only &lt;a href=&quot;http://moinmo.in/ScriptMarket/trac2moin&quot;&gt;two&lt;/a&gt; &lt;a href=&quot;http://moinmo.in/Trac2Moin&quot;&gt;scripts&lt;/a&gt; I found for migrating wiki content from Trac to Moin were very basic and limited in their features.&lt;/p&gt;
&lt;p&gt;So I set about writing a script to do the conversion. &lt;a href=&quot;http://colin.guthr.ie/git/trac2moin&quot;&gt;trac2moin&lt;/a&gt; supports full wiki conversion including history and attachments. It can rename pages (and fix up links) with a simple map file and also rename users with another map file. It can even fixup some of the syntax differences and even translate a few basic macros. All in all, the conversion process was pretty good.&lt;/p&gt;
&lt;p&gt;There will, of course, still be a requirement for a big refresh of the data and content, but now that the bulk of the heavy lifting is done that task can be planned, organised and undertaken without any barriers!&lt;/p&gt;
&lt;p&gt;Many thanks to Arun Raghavan and to Tollef Fog Heen for their help in this conversion process.&lt;/p&gt;
&lt;p&gt;So get updating!&lt;/p&gt;
&lt;div class=&quot;sociable&quot;&gt;&lt;div&gt;&lt;span class=&quot;sociable-tagline&quot;&gt;Share and Enjoy:&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2012%2F03%2Fwhat-sound-does-a-wiki-make%2F&amp;title=What%20sound%20does%20a%20wiki%20make%3F&amp;bodytext=So%20as%20many%20followers%20may%20know%20already%2C%20most%20of%20the%20technical%20infrastructure%20we%20use%20for%20PulseAudio%20has%20been%20moved%20over%20to%20FreeDesktop.org.%20We%20already%20moved%20the%20mailing%20lists%20and%20git%20hosting%20some%20time%20ago%2C%20and%20one%20of%20the%20main%20bits%20left%20was%20the%20wiki.%0D%0A%0D&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/digg.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Digg&quot; alt=&quot;Digg&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcolin.guthr.ie%2F2012%2F03%2Fwhat-sound-does-a-wiki-make%2F&amp;title=What%20sound%20does%20a%20wiki%20make%3F&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;StumbleUpon&quot; alt=&quot;StumbleUpon&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Fcolin.guthr.ie%2F2012%2F03%2Fwhat-sound-does-a-wiki-make%2F&amp;title=What%20sound%20does%20a%20wiki%20make%3F&amp;notes=So%20as%20many%20followers%20may%20know%20already%2C%20most%20of%20the%20technical%20infrastructure%20we%20use%20for%20PulseAudio%20has%20been%20moved%20over%20to%20FreeDesktop.org.%20We%20already%20moved%20the%20mailing%20lists%20and%20git%20hosting%20some%20time%20ago%2C%20and%20one%20of%20the%20main%20bits%20left%20was%20the%20wiki.%0D%0A%0D&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/delicious.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;del.icio.us&quot; alt=&quot;del.icio.us&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.facebook.com/share.php?u=http%3A%2F%2Fcolin.guthr.ie%2F2012%2F03%2Fwhat-sound-does-a-wiki-make%2F&amp;t=What%20sound%20does%20a%20wiki%20make%3F&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/facebook.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Facebook&quot; alt=&quot;Facebook&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fcolin.guthr.ie%2F2012%2F03%2Fwhat-sound-does-a-wiki-make%2F&amp;submitHeadline=What%20sound%20does%20a%20wiki%20make%3F&amp;submitSummary=So%20as%20many%20followers%20may%20know%20already%2C%20most%20of%20the%20technical%20infrastructure%20we%20use%20for%20PulseAudio%20has%20been%20moved%20over%20to%20FreeDesktop.org.%20We%20already%20moved%20the%20mailing%20lists%20and%20git%20hosting%20some%20time%20ago%2C%20and%20one%20of%20the%20main%20bits%20left%20was%20the%20wiki.%0D%0A%0D&amp;submitCategory=science&amp;submitAssetType=text&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Yahoo! Buzz&quot; alt=&quot;Yahoo! Buzz&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://twitter.com/home?status=What%20sound%20does%20a%20wiki%20make%3F%20-%20http%3A%2F%2Fcolin.guthr.ie%2F2012%2F03%2Fwhat-sound-does-a-wiki-make%2F&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/twitter.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Twitter&quot; alt=&quot;Twitter&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcolin.guthr.ie%2F2012%2F03%2Fwhat-sound-does-a-wiki-make%2F&amp;title=What%20sound%20does%20a%20wiki%20make%3F&amp;annotation=So%20as%20many%20followers%20may%20know%20already%2C%20most%20of%20the%20technical%20infrastructure%20we%20use%20for%20PulseAudio%20has%20been%20moved%20over%20to%20FreeDesktop.org.%20We%20already%20moved%20the%20mailing%20lists%20and%20git%20hosting%20some%20time%20ago%2C%20and%20one%20of%20the%20main%20bits%20left%20was%20the%20wiki.%0D%0A%0D&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Google Bookmarks&quot; alt=&quot;Google Bookmarks&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fcolin.guthr.ie%2F2012%2F03%2Fwhat-sound-does-a-wiki-make%2F&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/identica.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Identi.ca&quot; alt=&quot;Identi.ca&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://slashdot.org/bookmark.pl?title=What%20sound%20does%20a%20wiki%20make%3F&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2012%2F03%2Fwhat-sound-does-a-wiki-make%2F&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/slashdot.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Slashdot&quot; alt=&quot;Slashdot&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</content>
		<author>
			<name>Colin Guthrie</name>
			<uri>http://colin.guthr.ie</uri>
		</author>
		<source>
			<title type="html">Colin.Guthr.ie » pulseaudio</title>
			<subtitle type="html">Illegitimi non carborundum</subtitle>
			<link rel="self" href="http://colin.guthr.ie/tag/pulseaudio/feed/"/>
			<id>http://colin.guthr.ie/tag/pulseaudio/feed/</id>
			<updated>2013-06-19T17:00:23+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Gentoo: PulseAudio + ALSA update</title>
		<link href="http://arunraghavan.net/2012/02/gentoo-pulseaudio-alsa-update/"/>
		<id>http://arunraghavan.net/?p=1274</id>
		<updated>2012-02-14T05:01:27+00:00</updated>
		<content type="html">&lt;p&gt;For a long time now, fellow-Gentoo&amp;#8217;ers have had to edit &lt;tt&gt;/etc/asound.conf&lt;/tt&gt; or &lt;tt&gt;~/.asoundrc&lt;/tt&gt; to make programs that talk directly to ALSA go through PulseAudio. Most other distributions ship configuration that automatically probes to see if PulseAudio is running and use that if avaialble, else fall back to the actual hardware. We did that too, but the configuration wasn&amp;#8217;t used, and when you did try to use it, broke in mysterious ways.&lt;/p&gt;

&lt;p&gt;I finally got around to actually figuring out the problem and fixing it, so if you have custom configuration to do all this, you should now be able to remove it after emerge&amp;#8217;ing &lt;tt&gt;media-plugins/alsa-plugins-1.0.25-r1&lt;/tt&gt; or later with the &lt;tt&gt;pulseaudio&lt;/tt&gt; USE flag. With the next PulseAudio bump, we&amp;#8217;ll be depending on this to make the out-of-the-box experience a lot more seamless.&lt;/p&gt;

&lt;p&gt;This took much longer to get done than it should have, but we&amp;#8217;ve finally caught up. :)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;[Props to Mart Raudsepp (leio) for prodding me into doing this.]&lt;/em&gt;&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">PulseAudio vs. AudioFlinger</title>
		<link href="http://0pointer.de/blog/projects/aruns-numbers.html"/>
		<id>http://0pointer.de/blog/projects/aruns-numbers.html</id>
		<updated>2012-01-16T15:31:00+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://arunraghavan.net/2012/01/pulseaudio-vs-audioflinger-fight/&quot;&gt;Arun
put an awesome article up&lt;/a&gt;, detailing how PulseAudio compares to Android's
AudioFlinger in terms of power consumption and suchlike. Suffice to say,
PulseAudio rocks, but go and read the whole thing, it's worth it.&lt;/p&gt;

&lt;p&gt;Apparently, AudioFlinger is a great choice if you want to shorten your
battery life.&lt;/p&gt;</content>
		<author>
			<name>Lennart Poettering</name>
			<uri>http://0pointer.de/blog</uri>
		</author>
		<source>
			<title type="html">PID EINS!</title>
			<subtitle type="html">Lennart's Blog</subtitle>
			<link rel="self" href="http://colin.guthr.ie/mezcalero/"/>
			<id>http://colin.guthr.ie/mezcalero/</id>
			<updated>2013-06-11T23:00:22+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">PulseAudio vs. AudioFlinger: Fight!</title>
		<link href="http://arunraghavan.net/2012/01/pulseaudio-vs-audioflinger-fight/"/>
		<id>http://arunraghavan.net/?p=1189</id>
		<updated>2012-01-16T12:22:30+00:00</updated>
		<content type="html">&lt;p&gt;I&amp;#8217;ve been meaning to try this for a while, and we&amp;#8217;ve heard a number of requests from the community as well. Recently, I got some time here at &lt;a href=&quot;http://www.collabora.com/projects/pulseaudio&quot;&gt;Collabora&lt;/a&gt; to give it a go &amp;#8212; that is, to get PulseAudio running on an Android device and see how it compares with Android&amp;#8217;s AudioFlinger.&lt;/p&gt;

&lt;h2&gt;The Contenders&lt;/h2&gt;

&lt;p&gt;Let&amp;#8217;s introduce our contenders first. For those who don&amp;#8217;t know, &lt;a href=&quot;http://pulseaudio.org/&quot;&gt;PulseAudio&lt;/a&gt; is pretty much a de-facto standard part of the Linux audio stack. It sits on top of &lt;acronym title=&quot;Advanced Linux Sound Architecture&quot;&gt;ALSA&lt;/acronym&gt; which provides a unified way to talk to the audio hardware and provides a number of handy features that are useful on desktops and embedded devices. I won&amp;#8217;t rehash all of these, but this includes a nice modular framework, a bunch of power saving features, flexible routing, and lots more. PulseAudio runs as a daemon, and clients usually use the &lt;tt&gt;libpulse&lt;/tt&gt; library to communicate with it.&lt;/p&gt;

&lt;p&gt;In the other corner, we have Android&amp;#8217;s native audio system &amp;#8212; AudioFlinger. AudioFlinger was written from scratch for Android. It provides an API for playback/recording as well as a control mechanism for implementing policy. It does not depend on ALSA, but instead allows for a sort of &lt;acronym title=&quot;Hardware Abstraction Layer&quot;&gt;HAL&lt;/acronym&gt; that vendors can implement any way they choose. Applications generally play audio via layers built on top of AudioFlinger. Even if you write a native application, it would use &lt;a href=&quot;http://www.khronos.org/opensles/&quot;&gt;OpenSL ES&lt;/a&gt; implementation which goes through AudioFlinger. The actual service runs as a thread of the &lt;tt&gt;mediaserver&lt;/tt&gt; daemon, but this is merely an implementation detail.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: all my comments about AudioFlinger and Android in general are based on documentation and code for Android 4.0 (Ice Cream Sandwich).&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;The Arena&lt;/h2&gt;

&lt;p&gt;My test-bed for the tests was the &lt;a href=&quot;http://en.wikipedia.org/wiki/Galaxy_Nexus&quot;&gt;Galaxy Nexus&lt;/a&gt; running Android 4.0 which we shall just abbreviate to ICS. I picked ICS since it is the current platform on which Google is building, and hopefully represents the latest and greatest in AudioFlinger development. The Galaxy Nexus runs a Texas Instruments OMAP4 processor, which is also really convenient since this chip has pretty good support for running stock Linux (read on to see how useful this was).&lt;/p&gt;

&lt;h2&gt;Preparations&lt;/h2&gt;

&lt;p&gt;The first step in getting PulseAudio on Android was deciding between using the Android &lt;acronym title=&quot;Native Development Kit&quot;&gt;NDK&lt;/acronym&gt; like a regular application or integrate into the base Android system. I chose the latter &amp;#8212; even though this was a little more work initially, it made more sense in the long run since PulseAudio really belongs to the base-system.&lt;/p&gt;

&lt;p&gt;The next task was to get the required dependencies ported to Android. Fortunately, a lot of the ground work for this was already done by some of the awesome folks at Collabora. Derek Foreman&amp;#8217;s &lt;a href=&quot;http://cgit.collabora.com/git/user/derek/androgenizer.git/&quot;&gt;&lt;tt&gt;androgenizer&lt;/tt&gt;&lt;/a&gt; tool is incredibly handy for converting an &lt;tt&gt;autotools&lt;/tt&gt;-based build to Android&amp;#8211;friendly makefiles. With Reynaldo Verdejo and Alessandro Decina&amp;#8217;s prior work on &lt;a href=&quot;http://gstreamer.freedesktop.org/modules/gst-android.html&quot;&gt;GStreamer for Android&lt;/a&gt; as a reference, things got even easier.&lt;/p&gt;

&lt;p&gt;The most painful bit was &lt;tt&gt;libltdl&lt;/tt&gt;, which we use for dynamically loading modules. Once this was done, the other dependencies were quite straightforward to port over. As a bonus, the Android source already ships an optimised version of Speex which we use for resampling, and it was easy to reuse this as well.&lt;/p&gt;

&lt;p&gt;As I mentioned earlier, vendors can choose how they implement their audio abstraction layer. On the Galaxy Nexus, this is built on top of standard ALSA drivers, and the HAL talks to the drivers via a minimalist &lt;a href=&quot;https://github.com/tinyalsa&quot;&gt;tinyalsa&lt;/a&gt; library. My first hope was to use this, but there was a whole bunch of functions missing that PulseAudio needed. The next approach was to use &lt;a href=&quot;http://www.alsa-project.org/main/index.php/SALSA-Library&quot;&gt;salsa-lib&lt;/a&gt;, which is a stripped down version of the ALSA library written for embedded devices. This too had some missing functions, but these were fewer and easy to implement (and are now &lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/tiwai/salsa-lib.git;a=commit;h=8485a2bdc725b531794f277cd3e37973a8524830&quot;&gt;upstream&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Now if only life were that simple. :) I got PulseAudio running on the Galaxy Nexus with &lt;tt&gt;salsa-lib&lt;/tt&gt;, and even got sound out of the HDMI port. Nothing from the speakers though (they&amp;#8217;re driven by a TI &lt;a href=&quot;http://www.ti.com/product/twl6040&quot;&gt;twl6040&lt;/a&gt; codec). Just to verify, I decided to port the full &lt;tt&gt;alsa-lib&lt;/tt&gt; and &lt;tt&gt;alsa-utils&lt;/tt&gt; packages to debug what&amp;#8217;s happening (by this time, I&amp;#8217;m familiar enough with &lt;tt&gt;androgenizer&lt;/tt&gt; for all this to be a breeze). Still no luck. Finally, with some pointers from the kind folks at TI (thanks Liam!), I got current &lt;acronym title=&quot;Use Case Manager&quot;&gt;UCM&lt;/acronym&gt; configuration files for OMAP4 boards, and some work-in-progress patches to add UCM support to PulseAudio, and after a couple of minor fixes, wham! We have output. :)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(For those who don&amp;#8217;t know about UCM &amp;#8212; embedded chips are quite different from desktops and expose a huge amount of functionality via ALSA mixer controls. UCM is an effort to have a standard, meaningful way for applications and users to use these.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In production, it might be handy to write light-weight UCM support for &lt;tt&gt;salsa-lib&lt;/tt&gt; or just convert the UCM configuration into PulseAudio path/profile configuration (bonus points if it&amp;#8217;s an automated tool). For our purposes, though, just using &lt;tt&gt;alsa-lib&lt;/tt&gt; is good enough.&lt;/p&gt;

&lt;p&gt;To make the comparison fair, I wrote a simple test program that reads raw PCM S16LE data from a file and plays it via the &lt;tt&gt;AudioTrack&lt;/tt&gt; interface provided by AudioFlinger or the PulseAudio &lt;a href=&quot;http://freedesktop.org/software/pulseaudio/doxygen/async.html&quot;&gt;Asynchronous API&lt;/a&gt;. Tests were run with the brightness fixed, wifi off, and USB port connected to my laptop (for adb shell access).&lt;/p&gt;

&lt;p&gt;All tests were run with the CPU frequency pegged at 350 MHz and with 44.1 and 48 kHz samples. Five readings were recorded, and the median value was finally taken.&lt;/p&gt;

&lt;h2&gt;Round 1: CPU&lt;/h2&gt;

&lt;p&gt;First, let&amp;#8217;s take a look at how the two compare in terms of CPU usage. The numbers below are the percentage CPU usage taken as the sum of all threads of the audio server process and the audio thread in the client application using &lt;tt&gt;top&lt;/tt&gt; (which is why the granularity is limited to an integer percentage).&lt;/p&gt;

&lt;table&gt;
&lt;colgroup span=&quot;2&quot;&gt;
&lt;colgroup span=&quot;2&quot;&gt;
&lt;tr&gt; &lt;th colspan=&quot;2&quot;&gt;44.1 kHz&lt;/th&gt; &lt;th colspan=&quot;2&quot;&gt;48 kHz&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;th&gt;AF&lt;/th&gt; &lt;th&gt;PA&lt;/th&gt; &lt;th&gt;AF&lt;/th&gt; &lt;th&gt;PA&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;1%&lt;/td&gt; &lt;td&gt;1%&lt;/td&gt; &lt;td&gt;2%&lt;/td&gt; &lt;td&gt;0%&lt;/td&gt; &lt;/tr&gt;
&lt;/colgroup&gt;&lt;/colgroup&gt;&lt;/table&gt;

&lt;p&gt;At 44.1 kHz, the two are essentially the same. Both cases are causing resampling to occur (the native sample rate for the device is 48 kHz). Resampling is done using the Speex library, and we&amp;#8217;re seeing minuscule amounts of CPU usage even at 350 MHz, so it&amp;#8217;s clear that the NEON optimisations are really paying off here.&lt;/p&gt;

&lt;p&gt;The astute reader would have noticed that since the device&amp;#8217; native sample rate is 48 kHz, the CPU usage for 48 kHz playback should be less than for 44.1 kHz. This is true with PulseAudio, but not with AudioFlinger! The reason for this little quirk is that AudioFlinger provides 44.1 kHz samples to the HAL (which means the stream is resampled there), and then the HAL needs to resample it again to 48 kHz to bring it to the device&amp;#8217; native rate. From what I can tell, this is a matter of convention with regards to what audio HALs should expect from AudioFlinger (do correct me if I&amp;#8217;m mistaken about the rationale).&lt;/p&gt;

&lt;p&gt;So round 1 leans slightly in favour of PulseAudio.&lt;/p&gt;

&lt;h2&gt;Round 2: Memory&lt;/h2&gt;

&lt;p&gt;Comparing the memory consumption of the server process is a bit meaningless, because the AudioFlinger daemon thread shares an address space with the rest of the &lt;tt&gt;mediaserver&lt;/tt&gt; process. For the curious, the resident set size was: AudioFlinger &amp;#8212; 6,796 KB, PulseAudio &amp;#8212; 3,024 KB. Again, this doesn&amp;#8217;t really mean much.&lt;/p&gt;

&lt;p&gt;We can, however, compare the client process&amp;#8217; memory consumption. This is &lt;acronym title=&quot;Resident Set Size&quot;&gt;RSS&lt;/acronym&gt; in kilobytes, measured using &lt;tt&gt;top&lt;/tt&gt;.&lt;/p&gt;

&lt;table&gt;
&lt;colgroup span=&quot;2&quot;&gt;
&lt;colgroup span=&quot;2&quot;&gt;
&lt;tr&gt; &lt;th colspan=&quot;2&quot;&gt;44.1 kHz&lt;/th&gt; &lt;th colspan=&quot;2&quot;&gt;48 kHz&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;th&gt;AF&lt;/th&gt; &lt;th&gt;PA&lt;/th&gt; &lt;th&gt;AF&lt;/th&gt; &lt;th&gt;PA&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;2600 kB&lt;/td&gt; &lt;td&gt;3020 kB&lt;/td&gt; &lt;td&gt;2604 kB&lt;/td&gt; &lt;td&gt;3020 kB&lt;/td&gt; &lt;/tr&gt;
&lt;/colgroup&gt;&lt;/colgroup&gt;&lt;/table&gt;

&lt;p&gt;The memory consumption is comparable between the two, but leans in favour of AudioFlinger.&lt;/p&gt;

&lt;h2&gt;Round 3: Power&lt;/h2&gt;

&lt;p&gt;I didn&amp;#8217;t have access to a power monitor, so I decided to use a couple of indirect metrics to compare power utilisation. The first of these is &lt;a href=&quot;http://www.lesswatts.org/projects/powertop/&quot;&gt;PowerTOP&lt;/a&gt;, which is actually a Linux desktop tool for monitoring various power metrics. Happily, someone had already &lt;a href=&quot;https://gitorious.org/android/powertop&quot;&gt;ported PowerTOP to Android&lt;/a&gt;. The tool reports, among other things, the number of wakeups-from-idle per second for the processor as a whole, and on a per-process basis. Since there are multiple threads involved, and PowerTOP&amp;#8217;s per-process measurements are somewhat cryptic to add up, I used the global wakeups-from-idle per second. The &amp;#8220;Idle&amp;#8221; value counts the number of wakeups when nothing is happening. The actual value is very likely so high because the device is connected to my laptop in USB debugging mode (lots of wakeups from USB, and the device is prevented from going into a full sleep).&lt;/p&gt;

&lt;table&gt;
&lt;colgroup span=&quot;1&quot;&gt;
&lt;colgroup span=&quot;2&quot;&gt;
&lt;colgroup span=&quot;2&quot;&gt;
&lt;tr&gt; &lt;th&gt;&lt;/th&gt; &lt;th colspan=&quot;2&quot;&gt;44.1 kHz&lt;/th&gt; &lt;th colspan=&quot;2&quot;&gt;48 kHz&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;th&gt;Idle&lt;/th&gt; &lt;th&gt;AF&lt;/th&gt; &lt;th&gt;PA&lt;/th&gt; &lt;th&gt;AF&lt;/th&gt; &lt;th&gt;PA&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;79.6&lt;/td&gt; &lt;td&gt;107.8&lt;/td&gt; &lt;td&gt;87.3&lt;/td&gt; &lt;td&gt;108.5&lt;/td&gt; &lt;td&gt;85.7&lt;/td&gt; &lt;/tr&gt;
&lt;/colgroup&gt;&lt;/colgroup&gt;&lt;/colgroup&gt;&lt;/table&gt;

&lt;p&gt;The second, similar, data point is the number of interrupts per second reported by &lt;tt&gt;vmstat&lt;/tt&gt;. These corroborate the numbers above:&lt;/p&gt;

&lt;table&gt;
&lt;colgroup span=&quot;1&quot;&gt;
&lt;colgroup span=&quot;2&quot;&gt;
&lt;colgroup span=&quot;2&quot;&gt;
&lt;tr&gt; &lt;th&gt;&lt;/th&gt; &lt;th colspan=&quot;2&quot;&gt;44.1 kHz&lt;/th&gt; &lt;th colspan=&quot;2&quot;&gt;48 kHz&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;th&gt;Idle&lt;/th&gt; &lt;th&gt;AF&lt;/th&gt; &lt;th&gt;PA&lt;/th&gt; &lt;th&gt;AF&lt;/th&gt; &lt;th&gt;PA&lt;/th&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;190&lt;/td&gt; &lt;td&gt;266&lt;/td&gt; &lt;td&gt;215&lt;/td&gt; &lt;td&gt;284&lt;/td&gt; &lt;td&gt;207&lt;/td&gt; &lt;/tr&gt;
&lt;/colgroup&gt;&lt;/colgroup&gt;&lt;/colgroup&gt;&lt;/table&gt;

&lt;p&gt;PulseAudio&amp;#8217;s power-saving features are clearly highlighted in this comparison. AudioFlinger causes &lt;em&gt;about three times the number of wakeups per second&lt;/em&gt; that PulseAudio does. Things might actually be worse on older hardware with less optimised drivers than the Galaxy Nexus (I&amp;#8217;d appreciate reports from running similar tests on a Nexus S or any other device with ALSA support to confirm this).&lt;/p&gt;

&lt;p&gt;For those of you who aren&amp;#8217;t familiar with PulseAudio, the reason we manage to get these savings is our timer-based scheduling mode. In this mode, we fill up the hardware buffer as much as possible and go to sleep (disabling ALSA interrupts while we&amp;#8217;re at it, if possibe). We only wake up when the buffer is nearing empty, and fill it up again. More details can be found in this old &lt;a href=&quot;http://0pointer.de/blog/projects/pulse-glitch-free.html&quot;&gt;blog post by Lennart&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Round 4: Latency&lt;/h2&gt;

&lt;p&gt;I&amp;#8217;ve only had the Galaxy Nexus to actually try this out with, but I&amp;#8217;m pretty certain I&amp;#8217;m not the only person seeing &lt;a href=&quot;http://code.google.com/p/android/issues/detail?id=3434&quot;&gt;latency issues on Android&lt;/a&gt;. On the Galaxy Nexus, for example, the best latency I can get appears to be 176 ms. This is pretty high for certain types of applications, particularly ones that generate tones based on user input.&lt;/p&gt;

&lt;p&gt;With PulseAudio, where we dynamically adjust buffering based on what clients request, I was able to drive down the total buffering to approximately 20 ms (too much lower, and we started getting dropouts). There is likely room for improvement here, and it is something on my todo list, but even out-of-the-box, we&amp;#8217;re doing quite well.&lt;/p&gt;

&lt;h2&gt;Round 5: Features&lt;/h2&gt;

&lt;p&gt;With the hard numbers out of the way, I&amp;#8217;d like to talk a little bit about what else PulseAudio brings to the table. In addition to a playback/record API, AudioFlinger provides mechanism for enforcing various bits of policy such as volumes and setting the &amp;#8220;active&amp;#8221; device amongst others. PulseAudio exposes similar functionality, some as part of the client API and the rest via the core API exposed to modules.&lt;/p&gt;

&lt;p&gt;From &lt;acronym title=&quot;System-on-Chip&quot;&gt;SoC&lt;/acronym&gt; vendors&amp;#8217; perspective, it is often necessary to support both Android and standard Linux on the same chip. Being able to focus only on good quality ALSA drivers and knowing that this will ensure quality on both these systems would be a definite advantage in this case.&lt;/p&gt;

&lt;p&gt;The current Android system leaves power management to the audio HAL. This means that each vendor needs to implement this themselves. Letting PulseAudio manage the hardware based on requested latencies and policy gives us a single point of control, greatly simplifying the task of power-management and avoiding code duplication.&lt;/p&gt;

&lt;p&gt;There are a number of features that PulseAudio provides that can be useful in the various scenarios where Android is used. For example, we support transparently streaming audio over the network, which could be a handy way of supporting playing audio from your phone on your TV completely transparently and out-of-the-box. We also support compressed formats (AC3, DTS, etc.) which the ongoing Android-on-your-TV efforts could likely take advantage of.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Edit: As someone pointed out on LWN, I missed one thing &amp;#8212; AudioFlinger has an effect API that we do not yet have in PulseAudio. It&amp;#8217;s something I&amp;#8217;d definitely like to see added to PulseAudio in the future.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;Ding! Ding! Ding!&lt;/h2&gt;

&lt;p&gt;That pretty much concludes the comparison of these two audio daemons. Since the Android-side code is somewhat under-documented, I&amp;#8217;d welcome comments from readers who are familiar with the code and history of AudioFlinger.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m in the process of pushing all the patches I&amp;#8217;ve had to write to the various upstream projects. A number of these are merely build system patches to integrate with the Android build system, and I&amp;#8217;m hoping projects are open to these. Instructions on building this code will be available on the &lt;a href=&quot;http://www.pulseaudio.org/wiki/Android&quot;&gt;PulseAudio Android wiki page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For future work, it would be interesting to write a wrapper on top of PulseAudio that exposes the AudioFlinger audio and policy APIs &amp;#8212; this would basically let us run PulseAudio as a drop-in AudioFlinger replacement. In addition, there are potential performance benefits that can be derived from using Android-specific infrastructure such as Binder (for &lt;acronym title=&quot;Inter-Process Communication&quot;&gt;IPC&lt;/acronym&gt;) and &lt;tt&gt;ashmem&lt;/tt&gt; (for transferring audio blocks as shared memory segments, something we support on desktops using the standard Linux SHM mechanism which is not available on Android).&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;re an OEM who is interested in this work, you can get in touch with us &amp;#8212; details are on the &lt;a href=&quot;http://www.collabora.com/contact/&quot;&gt;Collabora website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I hope this is useful to some of you out there!&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Audio debugging techniques</title>
		<link href="http://voices.canonical.com/david.henningsson/2011/12/08/audio-debugging-techniques/"/>
		<id>http://voices.canonical.com/david.henningsson/?p=49</id>
		<updated>2011-12-08T16:16:51+00:00</updated>
		<content type="html">&lt;p&gt;As a part of the Ubuntu Hardware Summit, I held a presentation on the topic &amp;#8220;audio debugging techniques&amp;#8221;, focused on HDA Intel cards. I also wrote down some notes for some of those slides. I share the slides and the notes with the hope that you will find the information useful if you run into troubles with your audio hardware.&lt;/p&gt;
&lt;h3&gt;Audio stack overview&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://voices.canonical.com/david.henningsson/files/2011/12/UHS2011_Audio-03.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
The audio stack can seem a bit complex, but first look at the line all the way from the applications to the hardware. This is the optimal audio path. If the audio path is different, complexity will increase and you might run into undesired behaviour, such as one application blocking another from playing audio. There are valid exceptions though &amp;#8211; we have a &lt;a href=&quot;http://jackaudio.org&quot; target=&quot;_blank&quot; title=&quot;Jack&quot;&gt;separate sound server for professional, low-latency audio&lt;/a&gt;. But that&amp;#8217;s outside the scope of this presentation.&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s start from the top. On the top we have different kinds of audio applications, which talk to &lt;a href=&quot;http://pulseaudio.org&quot; target=&quot;_blank&quot;&gt;PulseAudio&lt;/a&gt;. &lt;a href=&quot;http://www.gstreamer.net&quot; target=&quot;_blank&quot;&gt;GStreamer&lt;/a&gt; is a library to help media playback, it can for example decode ogg and mp3 files. PulseAudio mixes these audio streams and send them down to the kernel. The ALSA library and the ALSA kernel core do not do much here but send the audio pointers through. The HDA controller driver is responsible for talking directly to the hardware, and so it sets up all necessary DMA streams between the HDA controller and memory. The HDA controller driver also talks to the HDA codec driver, which is different for every codec vendor. &lt;/p&gt;
&lt;p&gt;As some of you probably know, between the HDA controller &amp;#8211; which is a part of the southbridge in most computers &amp;#8211; and the HDA codec, a special HDA bus is used. This means that the only way we can talk to the codec is through the controller. &lt;/p&gt;
&lt;p&gt;Controlling audio volume goes the same path. When you use your volume control application, it controls PulseAudio&amp;#8217;s volume. PulseAudio in turn modifies the volume controls being exposed by the kernel, and the kernel in turn talks to the hardware to set volume control registers on the codec. There are two levels of abstraction here: first, the kernel might choose not to expose all of the hardware&amp;#8217;s volume controls, and second, PulseAudio exposes only one big volume control which is the sum of some of the volume controls the kernel exposes. So there is filtering on two levels.&lt;/p&gt;
&lt;h3&gt;Audio stack overview &amp;#8211; codec&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://voices.canonical.com/david.henningsson/files/2011/12/UHS2011_Audio-04.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
Let us have a look at the HDA codec chip and how its internals are represented to the driver. The codec is constructed as a graph, and on this slide one of the more simple HDA codec graphs is shown (just because it would fit the screen). A while ago upstream made a small program to extract this graph from the codec and make a picture of it. Thanks to Keng-Yü, who works for Canonical in Taipei, this tool is available as a package in Ubuntu 11.10. Just install the &amp;#8220;codecgraph&amp;#8221; package.&lt;/p&gt;
&lt;p&gt;In this graph we have nodes correspondings to DACs, ADCs, mixers, and pins. In this example we can see what pins are connected to which DACs by following the solid line. The dotted line shows a connection that is possible but not currently active.&lt;/p&gt;
&lt;p&gt;As the Linux codec driver code grows more intelligent, we depend more and more on this information to be accurate. This way we do not hard code as much in the driver, so we can adapt to future codecs without having to rewrite much code.&lt;br /&gt;
The information coming from the codec is usually correct. One problem we have from time to time is though, is that sometimes chip vendors add features which they choose not to document in this graph (and not in any other way either). There is a mechanism called &amp;#8220;processing coefficients&amp;#8221; in the specification, where the vendor can add its own functionality without telling anyone. When that happens, and it is required to use these undocumented &amp;#8220;processing coefficients&amp;#8221; to enable all inputs and outputs, we usually run into difficult problems that require vendor support to resolve. &lt;/p&gt;
&lt;p&gt;Also, in some cases the graph cannot describe the functionality needed, e g if some hardware is depending on special pins on the codec. We need to know about this when it happens, so we can support it in the driver. So if you are a hardware designer, my message is: Try to use the standard way of doing things as much as possible. Do this and it will work out of the box on Linux, and likely other operating systems as well. If you do anything special, you&amp;#8217;re causing headache for driver writers, possibly causing a slower time to market.&lt;br /&gt;
An example of this would be how you control external amplifiers: you can use the EAPD pins, which is the standard way, and you can use GPIO pins, ACPI, or anything else, that will be more problematic and require special driver support.&lt;/p&gt;
&lt;h3&gt;Pin configuration default&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://voices.canonical.com/david.henningsson/files/2011/12/UHS2011_Audio-05.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
We also depend on information from the writers of BIOS/UEFI, i e the computer&amp;#8217;s firmware. As a hardware designer, you have the freedom to choose which pins of the codec that go to what physical jack. You might decide that you want a digital out, or you decide that this machine should not have that functionality, and then you leave that pin unconnected.&lt;br /&gt;
Then the firmware engineer needs to know this, and program this into the codec when the computer boots. This is done by setting the &amp;#8220;Pin Configuration Default&amp;#8221; register. This register tells us not only the device type (headphone, mic, etc), but also the location (Internal, External, Docking Station), the color, and the channel mapping (to use for surround functionality).&lt;/p&gt;
&lt;p&gt;Several years ago, we did not read this register much, but these days, we depend on that for all new computers for setting up the codec correctly. So what do we do if this register is wrong? Well, if we work with hardware pre-release, there might be a chance we can feed this information back to the firmware writers so they can correct the problem. If the hardware is already released, we have to create a &amp;#8220;quirk&amp;#8221;. This means that the driver overrides the firmware&amp;#8217;s pin value(s) and instead uses its own value.&lt;/p&gt;
&lt;p&gt;Because this value is so important, I&amp;#8217;ve written &lt;a href=&quot;http://voices.canonical.com/david.henningsson/2011/11/29/turn-your-mic-jack-into-a-headphone-jack/&quot; title=&quot;Turn your mic jack into a headphone jack!&quot; target=&quot;_blank&quot;&gt;an application&lt;/a&gt; where you can try out different combinations of this register.&lt;/p&gt;
&lt;h3&gt;Mixer problems&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://voices.canonical.com/david.henningsson/files/2011/12/UHS2011_Audio-06.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
One of the most common problems with getting audio up and running on Linux is to make sure the mixer is correct. Typical symptoms of this would be that some outputs are working where others are not, or that there is something wrong with the volume control. &lt;/p&gt;
&lt;p&gt;Here are some initial checks of these problems. We do this at the two levels of mixer abstraction. First, let&amp;#8217;s have a look at the PulseAudio volume control. You can do that in Gnome&amp;#8217;s volume control application.&lt;/p&gt;
&lt;p&gt;Also, PulseAudio controls the volume of mixers at the ALSA level. You can see how this works by starting the alsamixer program. In this program, you can also see additional sliders, which you can also use to verify that they are in the correct to enable sound. You start alsamixer from a terminal (in Ubuntu the quickest way to launch a terminal is the Ctrl-Alt-T shortcut).&lt;/p&gt;
&lt;h3&gt;Mixer control names&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://voices.canonical.com/david.henningsson/files/2011/12/UHS2011_Audio-07.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
So let&amp;#8217;s look at these two abstraction levels in more detail and how you can inspect what is actually going on. First, let&amp;#8217;s look at the codec level. If you are familiar with the codec&amp;#8217;s nodes and how they are connected, e g by running &amp;#8220;codecgraph&amp;#8221;, you can also find out which ALSA level controls that are connected to which nodes on the codec. This is done by inspecting the &amp;#8220;codec proc&amp;#8221; file. Every codec in the system has this file, and its name is made up of the sound card name, and the codec&amp;#8217;s address on the HDA bus. In this file, you can also see a lot of other information about the codec. &lt;/p&gt;
&lt;p&gt;So next, we will also take a look at PulseAudio&amp;#8217;s abstraction of these controls. This is done by looking at the files in /usr/share/pulseaudio/alsa-mixer. In this case, if we look at /usr/share/pulseaudio/alsa-mixer/paths/analog-output-headphones.conf, you can e g find the sections [Element Master] and [Element Headphones]. That means that the ALSA-level controls &amp;#8220;Master&amp;#8221; and &amp;#8220;Headphones&amp;#8221; are being merged in PulseAudio&amp;#8217;s volume control when the &amp;#8220;Headphones&amp;#8221; port has been selected.&lt;/p&gt;
&lt;p&gt;So these two places are the keys to understanding what is going on when you have mixer problems.&lt;/p&gt;
&lt;h3&gt;PCM/Streaming problems&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://voices.canonical.com/david.henningsson/files/2011/12/UHS2011_Audio-08.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
So up next is when you have problems with the streaming. That is usually shown as the audio is breaking up, crackling or glitching. Unfortunately these problems are typically quite hard to resolve. &lt;/p&gt;
&lt;p&gt;Sometimes this can be a bug in PulseAudio, or in the driver. But more often the problem is on either the application side or the hardware side. &lt;/p&gt;
&lt;p&gt;If an application is not submitting data to PulseAudio in time, the PulseAudio has no audio to play back, so therefore playback breaks up. Once some more data has reached PulseAudio, it starts playback again, and so playback is started and stopped repeatedly.&lt;/p&gt;
&lt;p&gt;The other problem could be with bad position reports from the hardware. PulseAudio depends on being able to ask the hardware for its current position at all times, and this should be sample accurate. You can test this by trying to run PulseAudio with timer scheduling disabled, in this case PulseAudio will rely more on DMA interrupts and less on position reports. However, this will also make PulseAudio draw more power than necessary from the machine, so please avoid this if you can.&lt;/p&gt;
&lt;p&gt;When I try to debug these problems I usually start with making a &lt;a href=&quot;http://wiki.ubuntu.com/PulseAudio/Log&quot; target=&quot;_blank&quot;&gt;PulseAudio verbose log&lt;/a&gt;. It often takes some knowledge and experience to be able to analyze this log though.&lt;/p&gt;
&lt;h3&gt;Jack sensing&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://voices.canonical.com/david.henningsson/files/2011/12/UHS2011_Audio-09.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
Over the last six months or so, one of the things I&amp;#8217;ve been working with is trying to get better jack detection handling, throughout the audio stack.&lt;br /&gt;
&amp;#8220;Jack sensing&amp;#8221; in this context means what to do when something has been plugged in, or unplugged. &lt;/p&gt;
&lt;p&gt;When this happens, an interrupt (IRQ) is triggered and control is passed to the HDA codec driver. The driver takes the first action itself. Now, this is an area, unfortunately, when things differ a lot between different drivers, mostly between different vendors, but also between different chips of the same vendor, or even between configurations of the same chip.&lt;/p&gt;
&lt;p&gt;But as a general rule, and for the most common vendors &amp;#8211; that means Realtek, IDT and Conexant &amp;#8211; these rules are the ones that are followed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For headphones &amp;#8211; when you plug them in, the Internal Speakers are muted. Remember, this is still all at the kernel level. &lt;/li&gt;
&lt;li&gt;For what we&amp;#8217;re doing with Line Outs &amp;#8211; it&amp;#8217;s not completely standardised everywhere yet, but it seems upstream is leaning on having Headphones mute Line Outs and having Line Outs mute Internal Speakers by default. Some drivers also have a special control where the automute behaviour can be changed.&lt;/li&gt;
&lt;li&gt;For Microphones &amp;#8211; the only rule here is that if we have only one internal microphone and one external microphone, the external microphone takes over when you plug it in, and the internal microphone regains control when you unplug. Should there be any other inputs, e g two external mic jacks, or a line in jack, no autoswitching is done at the kernel level.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After this has been done, a signal is sent to userspace. Hopefully &amp;#8211; this also varies between vendors. We&amp;#8217;ll get back to that. What&amp;#8217;s new in Ubuntu 11.10, is that this signal is &lt;a href=&quot;http://voices.canonical.com/david.henningsson/2011/09/06/pulseaudio-with-jack-detection/&quot; title=&quot;PulseAudio with jack detection&quot;&gt;being picked up by PulseAudio&lt;/a&gt;. This is important, because it enables PulseAudio, to switch port for volume control. So this means, when you press your media keys (or use the sound menu) to control your volume, you control your headphone&amp;#8217;s volume when you have headphones plugged in, and your speakers&amp;#8217; volume when your headphones are unplugged.&lt;/p&gt;
&lt;p&gt;So this not working properly, is one of the more common problems. I have written a small tool that helps you to debug whether this issue is in hardware or software. This tool is called &amp;#8220;hda-jack-sense-test&amp;#8221;. This program sends the &amp;#8220;get pin sense&amp;#8221; command to each codec and outputs the results. I actually had use for it earlier this week, and confirmed that it was a hardware issue: although the headphones were unplugged, the &amp;#8220;get pin sense&amp;#8221; command returned that the headphones were being plugged in and unplugged all the time.&lt;/p&gt;
&lt;p&gt;If you can confirm that things are working at this level, you can also look in &amp;#8220;Sound settings&amp;#8221; to see if the port (this is known as a &amp;#8220;connector&amp;#8221;) is automatically switched whenever headphones &amp;#8211; or microphone &amp;#8211; is plugged in. If it is not, the most common cause is that kernel driver does not notify userspace correctly about that change.&lt;/p&gt;
&lt;h3&gt;HDMI/DisplayPort Audio&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://voices.canonical.com/david.henningsson/files/2011/12/UHS2011_Audio-10.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
One of the most common problem with HDMI these days are with newer chips supporting more than one output. These outputs could be HDMI, DisplayPort or DVI (with audio supported through a DVI to HDMI adapter). NVidia has supported four outputs for quite some time and Intel has supported three. But usually, not all of these are actually connected on the board.&lt;br /&gt;
Now, the problem is: How do we know what pin to output to? And the answer is, that there is no good way to figure that out until something is actually plugged in. &lt;/p&gt;
&lt;p&gt;If you remember me talking about the pin config default earlier, you would say that maybe the graphics chip could mark the pins not connected to anything. If this was done, it would be a great start (and if they are, we make use of it to hide the outputs that are marked as not connected), but unfortunately, more often than not, these pins are set up as all pins connected and present. So if you write firmware for internal or external graphics cards, please do set up these pins. &lt;/p&gt;
&lt;p&gt;So if we don&amp;#8217;t know, what do we do? Well, here&amp;#8217;s also work in progress at the userspace level. First, PulseAudio has to probe how many ports there are. Then we can use the new jack detection feature, to determine what has actually been plugged in. I&amp;#8217;m currently working on redesigning the sound settings dialog so that the ports that are not plugged in will be actually hidden from the dialog, and I hope this will land in Ubuntu 12.04 which will be released in April next year. &lt;/p&gt;
&lt;p&gt;And a final note, just so you don&amp;#8217;t forget it: For NVidia and ATI, they both require proprietary video drivers to enable HDMI and DisplayPort audio. The ATI driver used to have support for some of the cards in its open source driver, but this feature was recently removed because they had some problems with it.&lt;br /&gt;
Intel has no proprietary drivers at all, so there it works with the standard open source driver.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://voices.canonical.com/david.henningsson/files/2011/12/UHS2011_Audio-11.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;img src=&quot;http://voices.canonical.com/david.henningsson/files/2011/12/UHS2011_Audio-12.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;img src=&quot;http://voices.canonical.com/david.henningsson/files/2011/12/UHS2011_Audio-13.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;</content>
		<author>
			<name>David Henningsson</name>
			<uri>http://voices.canonical.com/david.henningsson</uri>
		</author>
		<source>
			<title type="html">A better sounding world » PulseAudio</title>
			<link rel="self" href="http://voices.canonical.com/david.henningsson/category/pulseaudio/feed/"/>
			<id>http://voices.canonical.com/david.henningsson/category/pulseaudio/feed/</id>
			<updated>2013-04-20T11:00:28+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">pulseaudio: Do any of our followers have any internal contact with Adobe? Perhaps you can push them to fix http://t.co/lbvD0VJz (by Colin)</title>
		<link href="http://twitter.com/pulseaudio/statuses/142213549459111937"/>
		<id>http://twitter.com/pulseaudio/statuses/142213549459111937</id>
		<updated>2011-12-01T12:08:47+00:00</updated>
		<content type="html">pulseaudio: Do any of our followers have any internal contact with Adobe? Perhaps you can push them to fix http://t.co/lbvD0VJz (by Colin)</content>
		<author>
			<name>Twitter</name>
			<uri>http://twitter.com/pulseaudio</uri>
		</author>
		<source>
			<title type="html">Twitter / pulseaudio</title>
			<subtitle type="html">Twitter updates from PulseAudio / pulseaudio.</subtitle>
			<link rel="self" href="http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio"/>
			<id>http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio</id>
			<updated>2013-06-11T17:00:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Talk video from GstConf 2011</title>
		<link href="http://arunraghavan.net/2011/11/talk-video-from-gstconf-2011/"/>
		<id>http://arunraghavan.net/?p=1182</id>
		<updated>2011-11-17T13:50:43+00:00</updated>
		<content type="html">&lt;p&gt;For those of you who were interested but couldn&amp;#8217;t make it to the GStreamer Conference this year, the cool folks at Ubicast have got the &lt;a href=&quot;http://gstconf.ubicast.tv/channels/#conferences2011&quot;&gt;talk videos up&lt;/a&gt; (can be streamed or downloaded).&lt;/p&gt;

&lt;p&gt;Among these is &lt;a href=&quot;http://gstconf.ubicast.tv/videos/latest-developments-in-pulse-audio/&quot;&gt;my talk&lt;/a&gt; about recent developments in the PulseAudio world.&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">i’m in yur analog gain, controlling it</title>
		<link href="http://arunraghavan.net/2011/11/im-in-yur-analog-gain-controlling-it/"/>
		<id>http://arunraghavan.net/?p=1169</id>
		<updated>2011-11-07T19:13:00+00:00</updated>
		<content type="html">&lt;p&gt;Longish day, but I did want to post something fun before going to sleep &amp;#8212; I just pushed out patches to hook up the WebRTC folks&amp;#8217; analog gain control to PulseAudio. So your mic will automatically adjust the input level based on how loud you&amp;#8217;re speaking. It&amp;#8217;s quite quick to adapt if you&amp;#8217;re too loud, but a bit slow when the input signal is too soft. This isn&amp;#8217;t bad, since the former is a much bigger problem than the latter.&lt;/p&gt;

&lt;p&gt;Also, we&amp;#8217;ve switched to the WebRTC canceller as the default canceller (you can still choose the Speex canceller manually, though). Overall, the quality is pretty good. I&amp;#8217;d do a demo, but it&amp;#8217;s effectively had zero learning time in my tests, so we&amp;#8217;re not too far from a stage where this is a feature that, &lt;em&gt;if we&amp;#8217;re doing it right you won&amp;#8217;t notice it exists&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;There lot&amp;#8217;s of things, big and small that need to be added and tweaked, but this does go some way towards bringing a hassle-free VoIP experience on Linux closer to reality. Once again, kudos to the folks at Google for the great work and for opening up this code. Also a shout-out to fellow &lt;a href=&quot;http://www.collabora.com&quot;&gt;Collaboran&lt;/a&gt; &lt;a href=&quot;http://sjoerd.luon.net/blog/&quot;&gt;Sjoerd Simons&lt;/a&gt; for bouncing ideas and giving me those much-needed respites from talking to myself. :)&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Notes from the Prague Audio BoFs</title>
		<link href="http://arunraghavan.net/2011/11/notes-from-the-prague-audio-bofs/"/>
		<id>http://arunraghavan.net/?p=1123</id>
		<updated>2011-11-03T07:06:13+00:00</updated>
		<content type="html">&lt;p&gt;As I&amp;#8217;d blogged about last week, we had a couple of Audio &lt;acronym title=&quot;Birds of a Feather&quot;&gt;BoF&lt;/acronym&gt; sessions last week. Here&amp;#8217;s a summary of what was discussed. I&amp;#8217;ve collected items in relevance order rather than chronological order to make for easier reading. I think I have everything covered, I&amp;#8217;ll update this post if one of the attendees points out something I missed or got wrong.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Surround&lt;/strong&gt;: There were a number of topics that came up with regards to multichannel/surround support:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;There seems to be some lack of uniformity of channel maps, particularly in non-HDA hardware. While it was agreed that this should be fixed, we need some directed testing and bug reports to actually be able to fix this.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multichannel mixers, while theoretically supported, are not actually exposed by any current drivers. It was suggested that these could be exposed without breaking existing applications by having new MC mixers exposed with device names corresponding to the surround PCM device (like &amp;#8220;surround51&amp;#8243;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We need a way to query channel maps on a given PCM. This will be implemented as a new ALSA API which could be called after the PCM is opened. (&lt;em&gt;AI: Takashi&lt;/em&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It would be good to have a way to configure the channel map as well (if supported by the hardware?). The suggestion was to do this as was done in PulseAudio, where an arbitrary channel map could be specified. (NB: is there hardware that supports multiple/arbitrary channel maps? If yes, how do we handle this?)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Routing&lt;/strong&gt;: Unsurprisingly, we came back to the problem of building a simplified mixer graph for PulseAudio.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The current status is that ALSA builds a simplified mixer for use by userspace, and PulseAudio further simplifies this by means of some name-based guessing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PulseAudio would ideally like a simplified version of the original mixer graph, but something more complete than what we get now&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;However, since PulseAudio has fairly unique requirements of what information it wants, it probably makes sense to have ALSA provide the entire graph and leave the simplification task to PulseAudio (discussion on this approach continues)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There was no consensus on who would do this or how this should be done (creating a new serialisation format, exposing what HDA provides, adding node metadata to ALSA mixer controls, or something else altogether)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;As an interim step, it was agreed that it would be possible to provide ordering in the simplified ALSA mixer (that is, add metadata to the control to signal what control comes &amp;#8220;before&amp;#8221; it and what comes &amp;#8220;after&amp;#8221; it). This should go some way in making the PA mixer simplification logic simpler and more robust. (&lt;em&gt;AI: Takashi&lt;/em&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;HDMI&lt;/strong&gt;: A couple of things came up in discussion about the status of HDMI.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;There was a question about the reliability of &lt;acronym title=&quot;EDID-like data&quot;&gt;ELD&lt;/acronym&gt; information as this will be used more in future versions of PulseAudio. There did not appear to be conclusive evidence in either direction, so we will probably assume that it is reliable and deal with reliability problems as they arise.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It was mentioned that it might be desirable to only expose the ALSA device if a receiver is plugged in. This had been mooted earlier as something to do in PulseAudio as an alternative. One thing to consider with this approach is dealing with a device switch on the receiver side. Doing this without a notification to userspace was generally agreed to be a bad idea.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Jack detection&lt;/strong&gt;: The long-standing debate on exposing jacks as input devices or ALSA controls came to a conclusion, with the resolution being that jacks would be exposed as ALSA controls. This requires a change in the kernel (and potentially alsa-lib?) which should not be too complex. Actual buttons (such as volume/mute control) will continue to be input devices. Once this is done, the pending jack detection patches will be adapted to use the new interface. (&lt;em&gt;AI: Takashi (patches are in a branch already!), David&lt;/em&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UCM&lt;/strong&gt;: Another long-standing issue was the merging of the ALSA UCM patches into PulseAudio. Most of the problems thus far had been due to an incomplete understanding of how ALSA and PA concepts mapped to each other. Some consensus was arrived at in this regard after a lengthy discussion:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;As is the case now, every ALSA PCM maps to a PA sink&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Each UCM verb maps to a PA card profile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Each combination of UCM devices that can be used concurrently maps to a PA port&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Each UCM modifier is mapped to an intended role on the corresponding sink&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The code should (as is in the patches currently submitted) be part of the PA ALSA module, and there will be changes required to use the UCM-specified mixer list instead of PA&amp;#8217;s guessing mechanism. (&lt;em&gt;AI: ???&lt;/em&gt;)&lt;/p&gt;

&lt;p&gt;(NB: It was mentioned that PulseAudio needs to support multiple intended roles for a sink/source. This is actually already supported &amp;#8212; the intended roles property is a whitespace-separated list of roles)&lt;/p&gt;

&lt;p&gt;(NB2: There was further discussion with the Linaro folks this week about the UCM bits, and there&amp;#8217;s likely going to be an IRC/phone gathering to clarify things further in the near future)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GStreamer latency settings&lt;/strong&gt;: We currently do not actually use PulseAudio&amp;#8217;s power saving features from GStreamer for &lt;a href=&quot;http://arunraghavan.net/2011/05/more-pulseaudio-power-goodness/&quot;&gt;several reasons&lt;/a&gt;. Suggestions to over come this were mooted. While no definite agreement was reached, one suggestion was to add a &amp;#8220;powersave&amp;#8221; profile to pulsesink that chose higher latency/buffer-time values. Players would need to set this if they are not using features that break when these values are raised.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Corking&lt;/strong&gt;: The statelessness of current the corking mechanism was discussed in one session, and between the PulseAudio developers later. The problem is that we need to be able to track cork/uncork reasons more closely. This would give us more metadata that is needed to make policy decisions without breaking streams. Particularly, for example, if PA corks a music stream due to an incoming call, then the user plays, then pauses music, and then the call ends, we must not uncork the music stream. We intend to deal with this with two changes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;We need to add a per-cause cork/uncork request count&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We need to associate a &amp;#8220;generation&amp;#8221; with cork/uncork requests, so certain conditions (such as user intervention) can bump the generation counter, and uncork requests corresponding to old cork requests will be ignored&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This will make it possible to track the various bits of state we need to do the right thing for cases like the one mentioned before.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So that&amp;#8217;s that &amp;#8212; lots of things discussed, lots of things to do! Thanks to everyone who came for participating.&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">libabc</title>
		<link href="http://0pointer.de/blog/projects/libabc.html"/>
		<id>http://0pointer.de/blog/projects/libabc.html</id>
		<updated>2011-11-01T00:46:00+00:00</updated>
		<content type="html">&lt;p&gt;At the Kernel Summit in Prague last week Kay Sievers and I lead a session on
developing shared userspace libraries, for kernel hackers. More and more
userspace interfaces of the kernel (for example many which deal with storage,
audio, resource management, security, file systems or a number of other
subsystems) nowadays rely on a dedicated userspace component. As people who
work primarily in the plumbing layer of the Linux OS we noticed over and over
again that these libraries written by people who usually are at home on the
kernel side of things make the same mistakes repeatedly, thus making life for
the users of the libraries unnecessarily difficult. In our session we tried to
point out a number of these things, and in particular places where the usual
kernel hacking style translates badly into userspace shared library hacking.
Our hope is that maybe a few kernel developers have a look at our list of
recommendations and consider the points we are raising.&lt;/p&gt;

&lt;p&gt;To make things easy we have put together an example skeleton library we
dubbed &lt;tt&gt;libabc&lt;/tt&gt;, whose &lt;a href=&quot;https://git.kernel.org/?p=linux/kernel/git/kay/libabc.git;a=blob_plain;f=README&quot;&gt;README&lt;/a&gt;
file includes all our points in terse form. It's available on kernel.org:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.kernel.org/?p=linux/kernel/git/kay/libabc.git&quot;&gt;The git repository&lt;/a&gt; and the &lt;a href=&quot;https://git.kernel.org/?p=linux/kernel/git/kay/libabc.git;a=blob_plain;f=README&quot;&gt;README&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This list of recommendations draws inspiration from David Zeuthen's and
Ulrich Drepper's well known papers on the topic of writing shared libraries. In
the README linked above we try to distill this wealth of information into a
terse list of recommendations, with a couple of additions and with a strict
focus on a kernel hacker background.&lt;/p&gt;

&lt;p&gt;Please have a look, and even if you are not a kernel hacker there might be
something useful to know in it, especially if you work on the lower layers of
our stack.&lt;/p&gt;

&lt;p&gt;If you have any questions or additions, just ping us, or comment below!&lt;/p&gt;</content>
		<author>
			<name>Lennart Poettering</name>
			<uri>http://0pointer.de/blog</uri>
		</author>
		<source>
			<title type="html">PID EINS!</title>
			<subtitle type="html">Lennart's Blog</subtitle>
			<link rel="self" href="http://colin.guthr.ie/mezcalero/"/>
			<id>http://colin.guthr.ie/mezcalero/</id>
			<updated>2013-06-11T23:00:22+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">PragueAudio</title>
		<link href="http://arunraghavan.net/2011/10/pragueaudio/"/>
		<id>http://arunraghavan.net/?p=1117</id>
		<updated>2011-10-24T22:23:31+00:00</updated>
		<content type="html">&lt;p&gt;For those who are in Prague for GstConf, LinuxCon, ELCE, etc. &amp;#8212; don&amp;#8217;t forget we&amp;#8217;ve a couple of interesting audio-related things happening:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Today (Tuesday), at 4 pm, I&amp;#8217;ll be talking about &lt;a href=&quot;http://gstreamer.freedesktop.org/conference/speakers.html#raghavan&quot;&gt;recent developments in PulseAudio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tomorrow (Wednesday), at 11am, we&amp;#8217;re continuing the Audio BoF that I had &lt;a href=&quot;http://arunraghavan.net/2011/10/more-conferences-than-you-can-shake-a-stick-at/&quot;&gt;mentioned earlier&lt;/a&gt; (since we ran out of time on Sunday)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you&amp;#8217;re around and interested, do drop in!&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Prague</title>
		<link href="http://0pointer.de/blog/projects/linuxcon-europe.html"/>
		<id>http://0pointer.de/blog/projects/linuxcon-europe.html</id>
		<updated>2011-10-22T23:31:00+00:00</updated>
		<content type="html">&lt;p&gt;If you make it to Prague the coming week for the LinuxCon/ELCE/GStreamer/Kernel Summit/... superconference, make sure not to miss:&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;The Linux Audio BoF with numerous Linux audio hackers, 5pm, on Sunday (23rd, i.e. today).&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://gstreamer.freedesktop.org/conference/speakers.html#raghavan&quot;&gt;Latest
developments in PulseAudio&lt;/a&gt; by Arun Raghavan. 4pm, on Tuesday, GStreamer
Summit&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;https://events.linuxfoundation.org/events/linuxcon-europe/kernel-panel&quot;&gt;Linux
Kernel Developer Panel&lt;/a&gt;, a shared session of LinuxCon and ELCE. Panelists
are Linus Torvalds, Alan Cox, Thomas Gleixner and Paul McKenney. Moderated by
yours truly. 9:30am, on Wednesday&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;https://events.linuxfoundation.org/events/linuxcon-europe/poettering-sievers&quot;&gt;systemd
Administration in the Enterprise&lt;/a&gt; by Kay Sievers and yours truly. 4:15pm, on
Wednesday, LinuxCon&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;https://events.linuxfoundation.org/events/embedded-linux-conference-europe/kooi&quot;&gt;Integrating
systemd: Booting Userspace in Less Than 1 Second&lt;/a&gt; by Koen Kooi. 11:15am, on
Friday, ELCE&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;All of that at the Clarion Hotel. See you in Prague!&lt;/p&gt;</content>
		<author>
			<name>Lennart Poettering</name>
			<uri>http://0pointer.de/blog</uri>
		</author>
		<source>
			<title type="html">PID EINS!</title>
			<subtitle type="html">Lennart's Blog</subtitle>
			<link rel="self" href="http://colin.guthr.ie/mezcalero/"/>
			<id>http://colin.guthr.ie/mezcalero/</id>
			<updated>2013-06-11T23:00:22+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Microphone Czech One Two</title>
		<link href="http://colin.guthr.ie/2011/10/microphone-czech-one-two/"/>
		<id>http://colin.guthr.ie/?p=467</id>
		<updated>2011-10-22T18:30:59+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=NaIDj6vBEoU&quot;&gt;What is this?&lt;/a&gt; Well, I'm off to Prague tomorrow morning. I'm very much looking forward to this trip as there are a whole bunch of interesting talks going on over &lt;a href=&quot;http://gstreamer.freedesktop.org/conference/&quot;&gt;the&lt;/a&gt; &lt;a href=&quot;https://events.linuxfoundation.org/events/linuxcon-europe/&quot;&gt;three&lt;/a&gt; &lt;a href=&quot;https://events.linuxfoundation.org/events/embedded-linux-conference-europe&quot;&gt;conferences&lt;/a&gt; I'll be visiting, plus I get to go to Prague, which has been on my &quot;cities to visit&quot; list for quite some time. Tick and tick.&lt;/p&gt;
&lt;p&gt;Arun will be giving a PulseAudio talk and Lennart will be rambling on about init systems as is customary these days. Very much looking forward to both.&lt;/p&gt;
&lt;p&gt;We've also had an IRC meeting about bluetooth support and policy stuff for in-car usage with some big car manufacturers which we'll follow up next week in person and there are also a lot of other audio folk in town so we'll hopefully kickstart the UCM discussions again with a view to merging into PA 2.0. Looking forward to catch up with Mark and Liam again on that front.&lt;/p&gt;
&lt;p&gt;So with pretty much all the people invloved in the Linux audio field, this is a really good opportunity to make some good progress!&lt;/p&gt;
&lt;p&gt;Here's to a successful trip!&lt;/p&gt;
&lt;p&gt;Many thanks to &lt;a href=&quot;http://www.collabora.com/&quot;&gt;Collabora &lt;/a&gt;who have helped me organise funding and also to &lt;a href=&quot;http://www.yoctoproject.org/&quot;&gt;Yocto Project&lt;/a&gt; (via &lt;a href=&quot;http://www.ti.com/&quot;&gt;Texas Instruments&lt;/a&gt;) who have very kindly sponsored my attendance of the LinuxCon/ELC-E part of the event. I look forward to finding out more about their project when I help out at their booth!&lt;/p&gt;
&lt;div class=&quot;sociable&quot;&gt;&lt;div&gt;&lt;span class=&quot;sociable-tagline&quot;&gt;Share and Enjoy:&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fmicrophone-czech-one-two%2F&amp;title=Microphone%20Czech%20One%20Two&amp;bodytext=What%20is%20this%3F%20Well%2C%20I%27m%20off%20to%20Prague%20tomorrow%20morning.%20I%27m%20very%20much%20looking%20forward%20to%20this%20trip%20as%20there%20are%20a%20whole%20bunch%20of%20interesting%20talks%20going%20on%20over%20the%20three%20conferences%20I%27ll%20be%20visiting%2C%20plus%20I%20get%20to%20go%20to%20Prague%2C%20which%20has%20been%20on%20my%20&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/digg.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Digg&quot; alt=&quot;Digg&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fmicrophone-czech-one-two%2F&amp;title=Microphone%20Czech%20One%20Two&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;StumbleUpon&quot; alt=&quot;StumbleUpon&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fmicrophone-czech-one-two%2F&amp;title=Microphone%20Czech%20One%20Two&amp;notes=What%20is%20this%3F%20Well%2C%20I%27m%20off%20to%20Prague%20tomorrow%20morning.%20I%27m%20very%20much%20looking%20forward%20to%20this%20trip%20as%20there%20are%20a%20whole%20bunch%20of%20interesting%20talks%20going%20on%20over%20the%20three%20conferences%20I%27ll%20be%20visiting%2C%20plus%20I%20get%20to%20go%20to%20Prague%2C%20which%20has%20been%20on%20my%20&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/delicious.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;del.icio.us&quot; alt=&quot;del.icio.us&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.facebook.com/share.php?u=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fmicrophone-czech-one-two%2F&amp;t=Microphone%20Czech%20One%20Two&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/facebook.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Facebook&quot; alt=&quot;Facebook&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fmicrophone-czech-one-two%2F&amp;submitHeadline=Microphone%20Czech%20One%20Two&amp;submitSummary=What%20is%20this%3F%20Well%2C%20I%27m%20off%20to%20Prague%20tomorrow%20morning.%20I%27m%20very%20much%20looking%20forward%20to%20this%20trip%20as%20there%20are%20a%20whole%20bunch%20of%20interesting%20talks%20going%20on%20over%20the%20three%20conferences%20I%27ll%20be%20visiting%2C%20plus%20I%20get%20to%20go%20to%20Prague%2C%20which%20has%20been%20on%20my%20&amp;submitCategory=science&amp;submitAssetType=text&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Yahoo! Buzz&quot; alt=&quot;Yahoo! Buzz&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://twitter.com/home?status=Microphone%20Czech%20One%20Two%20-%20http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fmicrophone-czech-one-two%2F&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/twitter.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Twitter&quot; alt=&quot;Twitter&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fmicrophone-czech-one-two%2F&amp;title=Microphone%20Czech%20One%20Two&amp;annotation=What%20is%20this%3F%20Well%2C%20I%27m%20off%20to%20Prague%20tomorrow%20morning.%20I%27m%20very%20much%20looking%20forward%20to%20this%20trip%20as%20there%20are%20a%20whole%20bunch%20of%20interesting%20talks%20going%20on%20over%20the%20three%20conferences%20I%27ll%20be%20visiting%2C%20plus%20I%20get%20to%20go%20to%20Prague%2C%20which%20has%20been%20on%20my%20&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Google Bookmarks&quot; alt=&quot;Google Bookmarks&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fmicrophone-czech-one-two%2F&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/identica.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Identi.ca&quot; alt=&quot;Identi.ca&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://slashdot.org/bookmark.pl?title=Microphone%20Czech%20One%20Two&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fmicrophone-czech-one-two%2F&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/slashdot.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Slashdot&quot; alt=&quot;Slashdot&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</content>
		<author>
			<name>Colin Guthrie</name>
			<uri>http://colin.guthr.ie</uri>
		</author>
		<source>
			<title type="html">Colin.Guthr.ie » pulseaudio</title>
			<subtitle type="html">Illegitimi non carborundum</subtitle>
			<link rel="self" href="http://colin.guthr.ie/tag/pulseaudio/feed/"/>
			<id>http://colin.guthr.ie/tag/pulseaudio/feed/</id>
			<updated>2013-06-19T17:00:23+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">PulseAudio 1.1 (the echo release?)</title>
		<link href="http://arunraghavan.net/2011/10/pulseaudio-1-1-the-echo-release/"/>
		<id>http://arunraghavan.net/?p=1111</id>
		<updated>2011-10-21T03:22:51+00:00</updated>
		<content type="html">&lt;p&gt;Yep, if we keep this up, it could even become a habit!&lt;/p&gt;

&lt;p&gt;PulseAudio 1.1 is out. It&amp;#8217;s mostly a bunch of bug fixes on top of 1.0. Most important of these are fixes for: a &lt;tt&gt;libpulse&lt;/tt&gt; dependency on libsamplerate (if enabled) which would make our LGPL license invalid, broken Skype audio capture (because we changed from a 3 number version to 2 numbers), broken startup without a DBus session bus running, and not going crazy on USB disconnects.&lt;/p&gt;

&lt;p&gt;This should be a very safe upgrade, so &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2011-October/011898.html&quot;&gt;grab it while it&amp;#8217;s hot&lt;/a&gt;!&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">One and One Makes Two…. or 1.1</title>
		<link href="http://colin.guthr.ie/2011/10/one-and-one-makes-two-or-1-1/"/>
		<id>http://colin.guthr.ie/?p=465</id>
		<updated>2011-10-20T13:46:15+00:00</updated>
		<content type="html">&lt;p&gt;Just a quick note to say that I've just pushed &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2011-October/011898.html&quot;&gt;PulseAudio 1.1&lt;/a&gt; out the door. Get it while it's hot!&lt;/p&gt;
&lt;p&gt;This release fixes a couple issues people had with our two-point version number change and several other bits and bobs.&lt;/p&gt;
&lt;p&gt;On it's way to Mageia Cauldron now and I should get around to backporting this sometime very soon for mga1 now that backports are open &lt;img src=&quot;http://colin.guthr.ie/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;div class=&quot;sociable&quot;&gt;&lt;div&gt;&lt;span class=&quot;sociable-tagline&quot;&gt;Share and Enjoy:&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fone-and-one-makes-two-or-1-1%2F&amp;title=One%20and%20One%20Makes%20Two....%20or%201.1&amp;bodytext=Just%20a%20quick%20note%20to%20say%20that%20I%27ve%20just%20pushed%20PulseAudio%201.1%20out%20the%20door.%20Get%20it%20while%20it%27s%20hot%21%0D%0A%0D%0AThis%20release%20fixes%20a%20couple%20issues%20people%20had%20with%20our%20two-point%20version%20number%20change%20and%20several%20other%20bits%20and%20bobs.%0D%0A%0D%0AOn%20it%27s%20way%20to%20Mageia%20Cau&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/digg.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Digg&quot; alt=&quot;Digg&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fone-and-one-makes-two-or-1-1%2F&amp;title=One%20and%20One%20Makes%20Two....%20or%201.1&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;StumbleUpon&quot; alt=&quot;StumbleUpon&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fone-and-one-makes-two-or-1-1%2F&amp;title=One%20and%20One%20Makes%20Two....%20or%201.1&amp;notes=Just%20a%20quick%20note%20to%20say%20that%20I%27ve%20just%20pushed%20PulseAudio%201.1%20out%20the%20door.%20Get%20it%20while%20it%27s%20hot%21%0D%0A%0D%0AThis%20release%20fixes%20a%20couple%20issues%20people%20had%20with%20our%20two-point%20version%20number%20change%20and%20several%20other%20bits%20and%20bobs.%0D%0A%0D%0AOn%20it%27s%20way%20to%20Mageia%20Cau&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/delicious.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;del.icio.us&quot; alt=&quot;del.icio.us&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.facebook.com/share.php?u=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fone-and-one-makes-two-or-1-1%2F&amp;t=One%20and%20One%20Makes%20Two....%20or%201.1&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/facebook.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Facebook&quot; alt=&quot;Facebook&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fone-and-one-makes-two-or-1-1%2F&amp;submitHeadline=One%20and%20One%20Makes%20Two....%20or%201.1&amp;submitSummary=Just%20a%20quick%20note%20to%20say%20that%20I%27ve%20just%20pushed%20PulseAudio%201.1%20out%20the%20door.%20Get%20it%20while%20it%27s%20hot%21%0D%0A%0D%0AThis%20release%20fixes%20a%20couple%20issues%20people%20had%20with%20our%20two-point%20version%20number%20change%20and%20several%20other%20bits%20and%20bobs.%0D%0A%0D%0AOn%20it%27s%20way%20to%20Mageia%20Cau&amp;submitCategory=science&amp;submitAssetType=text&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Yahoo! Buzz&quot; alt=&quot;Yahoo! Buzz&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://twitter.com/home?status=One%20and%20One%20Makes%20Two....%20or%201.1%20-%20http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fone-and-one-makes-two-or-1-1%2F&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/twitter.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Twitter&quot; alt=&quot;Twitter&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fone-and-one-makes-two-or-1-1%2F&amp;title=One%20and%20One%20Makes%20Two....%20or%201.1&amp;annotation=Just%20a%20quick%20note%20to%20say%20that%20I%27ve%20just%20pushed%20PulseAudio%201.1%20out%20the%20door.%20Get%20it%20while%20it%27s%20hot%21%0D%0A%0D%0AThis%20release%20fixes%20a%20couple%20issues%20people%20had%20with%20our%20two-point%20version%20number%20change%20and%20several%20other%20bits%20and%20bobs.%0D%0A%0D%0AOn%20it%27s%20way%20to%20Mageia%20Cau&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Google Bookmarks&quot; alt=&quot;Google Bookmarks&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fone-and-one-makes-two-or-1-1%2F&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/identica.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Identi.ca&quot; alt=&quot;Identi.ca&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://slashdot.org/bookmark.pl?title=One%20and%20One%20Makes%20Two....%20or%201.1&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F10%2Fone-and-one-makes-two-or-1-1%2F&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/slashdot.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Slashdot&quot; alt=&quot;Slashdot&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</content>
		<author>
			<name>Colin Guthrie</name>
			<uri>http://colin.guthr.ie</uri>
		</author>
		<source>
			<title type="html">Colin.Guthr.ie » pulseaudio</title>
			<subtitle type="html">Illegitimi non carborundum</subtitle>
			<link rel="self" href="http://colin.guthr.ie/tag/pulseaudio/feed/"/>
			<id>http://colin.guthr.ie/tag/pulseaudio/feed/</id>
			<updated>2013-06-19T17:00:23+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">pulseaudio: PulseAudio 1.1 just released as a stable update to 1.0. Get it while it's hot! (by Colin)</title>
		<link href="http://twitter.com/pulseaudio/statuses/127015324074778624"/>
		<id>http://twitter.com/pulseaudio/statuses/127015324074778624</id>
		<updated>2011-10-20T13:36:27+00:00</updated>
		<content type="html">pulseaudio: PulseAudio 1.1 just released as a stable update to 1.0. Get it while it's hot! (by Colin)</content>
		<author>
			<name>Twitter</name>
			<uri>http://twitter.com/pulseaudio</uri>
		</author>
		<source>
			<title type="html">Twitter / pulseaudio</title>
			<subtitle type="html">Twitter updates from PulseAudio / pulseaudio.</subtitle>
			<link rel="self" href="http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio"/>
			<id>http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio</id>
			<updated>2013-06-11T17:00:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Alternate sample rates</title>
		<link href="http://arunraghavan.net/2011/10/alternate-sample-rates/"/>
		<id>http://arunraghavan.net/?p=1101</id>
		<updated>2011-10-18T04:34:35+00:00</updated>
		<content type="html">&lt;p&gt;I&amp;#8217;ve just pushed a bunch of patches by Pierre-Louis Bossart that can have a pretty decent CPU/power impact. These introduce the concept of an &amp;#8220;alternate sample rate&amp;#8221;.&lt;/p&gt;

&lt;p&gt;Currently, PulseAudio runs all your devices at a default sample rate, which is set to 44.1 kHz on most systems (this can be configured). All streams running at different sample rates are resampled to this sample rate. Pierre&amp;#8217;s patches add an alternate sample rate that we try to switch to under certain circumstances if it means that we can save on resampling cost. This would happen if the stream uses exactly the alternate sample rate, or some integral-or-so multiple of it.&lt;/p&gt;

&lt;p&gt;The default value for the alternate sample rate is 48 kHz. So if you&amp;#8217;re playing a movie off a DVD where the audio track is typically a 48 kHz stream, and your card supports it, we switch to 48 kHz and avoid resampling altogether. Similarly, while making voice calls, common sample rates are 8, 16, and 32 kHz. These can be resampled to 48 kHz much faster than to 44.1 kHz.&lt;/p&gt;

&lt;p&gt;Now for the big caveat &amp;#8212; this won&amp;#8217;t work if there&amp;#8217;s any other stream connected to your sink/source. So if your music player is playing (or even paused) when you get that voip call, we can&amp;#8217;t update the rate. This situation can probably be improved by at least allowing corked streams have their sample rate change (so having some random stream connected but not playing &amp;#8212; I&amp;#8217;m looking at you, Flash! &amp;#8212; won&amp;#8217;t block rate updates altogether). Hopefully we&amp;#8217;ll get this fixed before this feature is released in PulseAudio 2.0.&lt;/p&gt;

&lt;p&gt;Thanks to Pierre for all his work on this, and to my company, &lt;a href=&quot;http://www.collabora.com/projects/pulseaudio&quot;&gt;Collabora&lt;/a&gt;, for giving me some time for upstream work!&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">More conferences than you can shake a stick at</title>
		<link href="http://arunraghavan.net/2011/10/more-conferences-than-you-can-shake-a-stick-at/"/>
		<id>http://arunraghavan.net/?p=1085</id>
		<updated>2011-10-14T04:34:26+00:00</updated>
		<content type="html">&lt;p&gt;Prague is an interesting place to be at this time of the year &amp;#8212; next week it&amp;#8217;s playing host to the Real Time Linux Workshop. The week after that, we have the Kernel Summit, GStreamer Conference, Embedded Linux Conference Europe and LinuxCon Europe. I&amp;#8217;m going to be at the last 3, and there&amp;#8217;s some great audio stuff happening!&lt;/p&gt;

&lt;p&gt;On the evening of Oct 23rd, we&amp;#8217;re having an Audio BoF to discuss pending issues that cut across the stack &amp;#8212; ALSA, PulseAudio, GStreamer and any other similar bits that people have complaints about.&lt;/p&gt;

&lt;p&gt;Then there&amp;#8217;s &lt;a href=&quot;http://gstreamer.freedesktop.org/conference/&quot;&gt;GstConf&lt;/a&gt;, where there are going to be &lt;a href=&quot;http://gstreamer.freedesktop.org/conference/gstreamer-conference-timetable.html&quot;&gt;a bunch of awesome talks&lt;/a&gt;. Also included is a &lt;a href=&quot;http://gstreamer.freedesktop.org/conference/speakers.html#raghavan&quot;&gt;talk&lt;/a&gt; by yours truly about recent developments in the PulseAudio world.&lt;/p&gt;

&lt;p&gt;At some point during that week, possibly Oct 26th morning, plans are afoot to have an ALSA BoF to discuss the state and future of the HDA driver.&lt;/p&gt;

&lt;p&gt;There are also rumours of excellent beer that will need to be scrupulously verified. ;)&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s going to be a pretty exciting week!&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Independent volume for headphones and speakers</title>
		<link href="http://voices.canonical.com/david.henningsson/2011/09/29/independent-volume-for-headphones-and-speakers/"/>
		<id>http://voices.canonical.com/david.henningsson/?p=32</id>
		<updated>2011-09-29T18:57:49+00:00</updated>
		<content type="html">&lt;p&gt;If you take &lt;a href=&quot;http://brainstorm.ubuntu.com/idea/27275/&quot; title=&quot;Ubuntu Brainstorm&quot; target=&quot;_blank&quot;&gt;Ubuntu Brainstorm&amp;#8217;s word for it&lt;/a&gt;, one of the more popular wishes for Ubuntu, is to avoid having to adjust the volume slider up and down as you plug and unplug your headphones, but instead keep separate volumes stored for both. &lt;/p&gt;
&lt;p&gt;Long story short, it&amp;#8217;s a desirable feature, and we&amp;#8217;re moving in that direction, but slowly, as the feature is more complex than it seems like at first glance.&lt;/p&gt;
&lt;p&gt;The good news: in the upcoming Ubuntu Oneiric (11.10), this is actually working. The bad news: it isn&amp;#8217;t working for everyone. &lt;/p&gt;
&lt;p&gt;For external stuff, mainly USB and Bluetooth devices, this has been working for a quite a few releases now (although you might have to manually switch to your new card when you plug it in). So let&amp;#8217;s restrict the discussion to internal sound cards, that on a typical laptop would control your internal speaker and your 3.5mm headphone jack. Here&amp;#8217;s where Oneiric will make a positive difference for many of you (although, still far from all of you).&lt;/p&gt;
&lt;p&gt;PulseAudio has the concept of &amp;#8220;ports&amp;#8221; (in your Gnome &amp;#8220;Sound settings&amp;#8221;, this is what&amp;#8217;s labeled a &amp;#8220;Connector&amp;#8221;), and headphones and speakers would be different ports of the same card. As of Oneiric, every port has its volume stored independently, so when you switch ports, the volume will automatically change.&lt;br /&gt;
Now, this does not become really useful until this port can automatically switch back and forth when you plug and unplug your headphones. This feature is also now implemented in Oneiric, as you can read about in my previous blog post, &lt;a href=&quot;http://voices.canonical.com/david.henningsson/2011/09/06/pulseaudio-with-jack-detection/&quot; title=&quot;PulseAudio with jack detection&quot; target=&quot;_blank&quot;&gt;PulseAudio with jack detection&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Things are not always that easy. Not everyone has just internal speakers and headphones, some have line outs instead, or all three. On the input side, some have internal mics, microphone jacks (often more than one), line ins, or any combination of those. In addition, people are different: some want headphones to automatically mute line outs, others don&amp;#8217;t. That&amp;#8217;s a typical case where different drivers expose very different behaviour: some do, some don&amp;#8217;t, some have a setting you can control in alsamixer. Some drivers enable the user to have different volumes for different outputs, others don&amp;#8217;t. Drivers label volume controls and jacks differently. Not every driver actually exposes the current jack sense state to userspace, either.&lt;/p&gt;
&lt;p&gt;The bottom line: Is this working for you? Great! Is it not? You&amp;#8217;re not alone. I&amp;#8217;ll try to fix some of that up for Ubuntu 12.04, but there will &amp;#8211; no doubt &amp;#8211; be users who won&amp;#8217;t have this functionality for a long time. At this point, the best you can do is to file a bug using the &amp;#8220;ubuntu-bug audio&amp;#8221; command, and hope for the best. Even if it might be too late for your hardware to be supported in 11.10, filing the bug sooner rather than later might help to get it into 12.04. However, manpower is always an issue, so even better would be if you could write a kernel patch yourself to fix it. &lt;img src=&quot;http://voices.canonical.com/david.henningsson/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;</content>
		<author>
			<name>David Henningsson</name>
			<uri>http://voices.canonical.com/david.henningsson</uri>
		</author>
		<source>
			<title type="html">A better sounding world » PulseAudio</title>
			<link rel="self" href="http://voices.canonical.com/david.henningsson/category/pulseaudio/feed/"/>
			<id>http://voices.canonical.com/david.henningsson/category/pulseaudio/feed/</id>
			<updated>2013-04-20T11:00:28+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">1.w00t!</title>
		<link href="http://arunraghavan.net/2011/09/1-w00t/"/>
		<id>http://arunraghavan.net/?p=1076</id>
		<updated>2011-09-27T15:33:28+00:00</updated>
		<content type="html">&lt;p&gt;As &lt;a href=&quot;http://colin.guthr.ie/2011/09/one-point-oh/&quot;&gt;Colin Guthrie reports&lt;/a&gt;, PulseAudio 1.0 is now out the door! There&amp;#8217;s a lot of new things in the release, and we should be getting a much more regular release schedule going. Head over to the &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/PulseAudio/Notes/1.0&quot;&gt;full release notes&lt;/a&gt; for more details.&lt;/p&gt;

&lt;p&gt;A lot of people have contributed to this release and thanks to them all. Special props to Colin all the patch-herding, tireless help, and code ninjutsu!&lt;/p&gt;

&lt;p&gt;p.s.: Gentoo packages are already available, of course. :)&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">PulseAudio 1.0</title>
		<link href="http://0pointer.de/blog/projects/pa-one-dot-zero.html"/>
		<id>http://0pointer.de/blog/projects/pa-one-dot-zero.html</id>
		<updated>2011-09-27T14:07:00+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://www.freedesktop.org/wiki/Software/PulseAudio/Notes/1.0&quot;&gt;PulseAudio 1.0 is out now.&lt;/a&gt; It's awesome. Get it while it is hot!&lt;/p&gt;

&lt;p&gt;I'd like to thank Colin Guthrie and Arun Raghavan (and all the others involved) for getting this release out of the door!&lt;/p&gt;</content>
		<author>
			<name>Lennart Poettering</name>
			<uri>http://0pointer.de/blog</uri>
		</author>
		<source>
			<title type="html">PID EINS!</title>
			<subtitle type="html">Lennart's Blog</subtitle>
			<link rel="self" href="http://colin.guthr.ie/mezcalero/"/>
			<id>http://colin.guthr.ie/mezcalero/</id>
			<updated>2013-06-11T23:00:22+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">pulseaudio: Want Twitter and more? Check out Planet PulseAudio: http://t.co/dJVa8RHp (by Colin)</title>
		<link href="http://twitter.com/pulseaudio/statuses/118645009602969600"/>
		<id>http://twitter.com/pulseaudio/statuses/118645009602969600</id>
		<updated>2011-09-27T11:15:49+00:00</updated>
		<content type="html">pulseaudio: Want Twitter and more? Check out Planet PulseAudio: http://t.co/dJVa8RHp (by Colin)</content>
		<author>
			<name>Twitter</name>
			<uri>http://twitter.com/pulseaudio</uri>
		</author>
		<source>
			<title type="html">Twitter / pulseaudio</title>
			<subtitle type="html">Twitter updates from PulseAudio / pulseaudio.</subtitle>
			<link rel="self" href="http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio"/>
			<id>http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio</id>
			<updated>2013-06-11T17:00:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">One Point Oh!</title>
		<link href="http://colin.guthr.ie/2011/09/one-point-oh/"/>
		<id>http://colin.guthr.ie/?p=458</id>
		<updated>2011-09-27T11:10:11+00:00</updated>
		<content type="html">&lt;p&gt;It is with great pride that I announce &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2011-September/011451.html&quot;&gt;PulseAudio 1.0&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;It's been a long time coming and I'm very glad this is finally out of the door and I look forward to a much more streamlined release process in the future.&lt;/p&gt;
&lt;p&gt;There are too many people to thank but in particular I'd like to thank Arun Raghavan, Tanu Kaskinen, David Henningsson, Maarten Bosmans, Daniel Mack, Jason Newton, Jyri Sarha, Lu Guanqun, Luiz Augusto von Dentz, Marc-André Lureau, Pierre-Louis Bossart, Siarhei Siamashka and of course Lennart Poettering.&lt;/p&gt;
&lt;p&gt;There is more info over on the &lt;a href=&quot;http://lists.freedesktop.org/archives/pulseaudio-discuss/2011-September/011451.html&quot;&gt;announce mail&lt;/a&gt;, so give it a read and also see our &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/PulseAudio/Notes/1.0&quot;&gt;release notes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Obviously there is still a huge amount to be done, both in the daemon itself, improving documentation and improving integration into the desktop environment itself. Any help is gratefully received!&lt;/p&gt;
&lt;p&gt;So stay tuned for future improvements! And speaking of staying tuned, I'd also like to announce &lt;a href=&quot;http://freedesktop.org/software/pulseaudio/planet/&quot;&gt;Planet PulseAudio&lt;/a&gt;. This is an aggregated feed of posts about PulseAudio. If you have a blog and write about PA, please get in touch and we can add your feed. The design is heavily borrowed from &lt;a href=&quot;http://planet.gnome.org/&quot;&gt;Planet GNOME&lt;/a&gt; so it should be familiar for some readers.&lt;/p&gt;
&lt;p&gt;Packages are already available for Mageia Cauldron and backports for Mageia 1 will be available sometime soon. Hopefully someone will update the packages in Mandriva as I'm not actively doing stuff over there these days.&lt;/p&gt;
&lt;p&gt;Happy listening!&lt;/p&gt;
&lt;p&gt;PS I'm sure there will be a brown bag moment to come with a 1.0 release, but fingers crossed.... :p&lt;/p&gt;
&lt;div class=&quot;sociable&quot;&gt;&lt;div&gt;&lt;span class=&quot;sociable-tagline&quot;&gt;Share and Enjoy:&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F09%2Fone-point-oh%2F&amp;title=One%20Point%20Oh%21&amp;bodytext=It%20is%20with%20great%20pride%20that%20I%20announce%20PulseAudio%201.0%21%0D%0A%0D%0AIt%27s%20been%20a%20long%20time%20coming%20and%20I%27m%20very%20glad%20this%20is%20finally%20out%20of%20the%20door%20and%20I%20look%20forward%20to%20a%20much%20more%20streamlined%20release%20process%20in%20the%20future.%0D%0A%0D%0AThere%20are%20too%20many%20people%20to%20than&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/digg.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Digg&quot; alt=&quot;Digg&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.stumbleupon.com/submit?url=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F09%2Fone-point-oh%2F&amp;title=One%20Point%20Oh%21&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;StumbleUpon&quot; alt=&quot;StumbleUpon&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F09%2Fone-point-oh%2F&amp;title=One%20Point%20Oh%21&amp;notes=It%20is%20with%20great%20pride%20that%20I%20announce%20PulseAudio%201.0%21%0D%0A%0D%0AIt%27s%20been%20a%20long%20time%20coming%20and%20I%27m%20very%20glad%20this%20is%20finally%20out%20of%20the%20door%20and%20I%20look%20forward%20to%20a%20much%20more%20streamlined%20release%20process%20in%20the%20future.%0D%0A%0D%0AThere%20are%20too%20many%20people%20to%20than&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/delicious.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;del.icio.us&quot; alt=&quot;del.icio.us&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.facebook.com/share.php?u=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F09%2Fone-point-oh%2F&amp;t=One%20Point%20Oh%21&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/facebook.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Facebook&quot; alt=&quot;Facebook&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F09%2Fone-point-oh%2F&amp;submitHeadline=One%20Point%20Oh%21&amp;submitSummary=It%20is%20with%20great%20pride%20that%20I%20announce%20PulseAudio%201.0%21%0D%0A%0D%0AIt%27s%20been%20a%20long%20time%20coming%20and%20I%27m%20very%20glad%20this%20is%20finally%20out%20of%20the%20door%20and%20I%20look%20forward%20to%20a%20much%20more%20streamlined%20release%20process%20in%20the%20future.%0D%0A%0D%0AThere%20are%20too%20many%20people%20to%20than&amp;submitCategory=science&amp;submitAssetType=text&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/yahoobuzz.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Yahoo! Buzz&quot; alt=&quot;Yahoo! Buzz&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://twitter.com/home?status=One%20Point%20Oh%21%20-%20http%3A%2F%2Fcolin.guthr.ie%2F2011%2F09%2Fone-point-oh%2F&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/twitter.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Twitter&quot; alt=&quot;Twitter&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F09%2Fone-point-oh%2F&amp;title=One%20Point%20Oh%21&amp;annotation=It%20is%20with%20great%20pride%20that%20I%20announce%20PulseAudio%201.0%21%0D%0A%0D%0AIt%27s%20been%20a%20long%20time%20coming%20and%20I%27m%20very%20glad%20this%20is%20finally%20out%20of%20the%20door%20and%20I%20look%20forward%20to%20a%20much%20more%20streamlined%20release%20process%20in%20the%20future.%0D%0A%0D%0AThere%20are%20too%20many%20people%20to%20than&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Google Bookmarks&quot; alt=&quot;Google Bookmarks&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F09%2Fone-point-oh%2F&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/identica.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Identi.ca&quot; alt=&quot;Identi.ca&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;http://slashdot.org/bookmark.pl?title=One%20Point%20Oh%21&amp;url=http%3A%2F%2Fcolin.guthr.ie%2F2011%2F09%2Fone-point-oh%2F&quot;&gt;&lt;img src=&quot;http://colin.guthr.ie/wp-content/plugins/sociable-30/images/default/16/slashdot.png&quot; class=&quot;sociable-img sociable-hovers&quot; title=&quot;Slashdot&quot; alt=&quot;Slashdot&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</content>
		<author>
			<name>Colin Guthrie</name>
			<uri>http://colin.guthr.ie</uri>
		</author>
		<source>
			<title type="html">Colin.Guthr.ie » pulseaudio</title>
			<subtitle type="html">Illegitimi non carborundum</subtitle>
			<link rel="self" href="http://colin.guthr.ie/tag/pulseaudio/feed/"/>
			<id>http://colin.guthr.ie/tag/pulseaudio/feed/</id>
			<updated>2013-06-19T17:00:23+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">pulseaudio: PulseAudio v1.0 is out! Go get it now: http://t.co/5f7YTdDm (by Colin)</title>
		<link href="http://twitter.com/pulseaudio/statuses/118622016617193472"/>
		<id>http://twitter.com/pulseaudio/statuses/118622016617193472</id>
		<updated>2011-09-27T09:44:27+00:00</updated>
		<content type="html">pulseaudio: PulseAudio v1.0 is out! Go get it now: http://t.co/5f7YTdDm (by Colin)</content>
		<author>
			<name>Twitter</name>
			<uri>http://twitter.com/pulseaudio</uri>
		</author>
		<source>
			<title type="html">Twitter / pulseaudio</title>
			<subtitle type="html">Twitter updates from PulseAudio / pulseaudio.</subtitle>
			<link rel="self" href="http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio"/>
			<id>http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio</id>
			<updated>2013-06-11T17:00:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Well done, Adobe!</title>
		<link href="http://arunraghavan.net/2011/09/well-done-adobe/"/>
		<id>http://arunraghavan.net/?p=1069</id>
		<updated>2011-09-15T13:23:33+00:00</updated>
		<content type="html">&lt;p&gt;In an unsurprising turn of events, Adobe completely &lt;a href=&quot;https://bugbase.adobe.com/index.cfm?event=bug&amp;id=2968177&quot;&gt;fails to play well&lt;/a&gt; with modern Linux systems. Well done, guys. Well done, indeed.&lt;/p&gt;

&lt;p&gt;p.s.: I was quite happy to see that the Google Talk plugin has proper PulseAudio support (thanks to the WebRTC née GIPS code, it looks like).&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">pulseaudio: Anyone who has an Adobe ID please vote for this bug: http://t.co/U1yQjgQ (by Colin)</title>
		<link href="http://twitter.com/pulseaudio/statuses/113213555565789184"/>
		<id>http://twitter.com/pulseaudio/statuses/113213555565789184</id>
		<updated>2011-09-12T11:33:09+00:00</updated>
		<content type="html">pulseaudio: Anyone who has an Adobe ID please vote for this bug: http://t.co/U1yQjgQ (by Colin)</content>
		<author>
			<name>Twitter</name>
			<uri>http://twitter.com/pulseaudio</uri>
		</author>
		<source>
			<title type="html">Twitter / pulseaudio</title>
			<subtitle type="html">Twitter updates from PulseAudio / pulseaudio.</subtitle>
			<link rel="self" href="http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio"/>
			<id>http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio</id>
			<updated>2013-06-11T17:00:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Creative X-fi Surround USB Review and Guide for Ubuntu 9.10 or Newer</title>
		<link href="http://linux-tipps.blogspot.com/2010/06/creative-x-fi-surround-usb-guide-for.html"/>
		<id>tag:blogger.com,1999:blog-2124831850793435411.post-5236023387397594852</id>
		<updated>2011-09-11T20:54:58+00:00</updated>
		<content type="html">This article will review the Creative X-fi surround usb first quickly in Windows XP and then in Linux. It will give you some basic performance ideas and hints for fixing problems and having more fun with it.&lt;br /&gt;&lt;br /&gt;After my &lt;a href=&quot;http://linux-tipps.blogspot.com/2010/05/usb-surround-sound-in-linux.html&quot;&gt;survey of the possibilities for USB surround sound in Linux&lt;/a&gt;, I ended up ordering a Creative X-fi Surround USB. As you could read there, there is a helpful webpage that includes e.g. ready made &lt;a href=&quot;http://mndar.phpnet.us/usbxfi/files&quot;&gt;.asoundrc files&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Windows XP&lt;/b&gt;&lt;br /&gt;On my netbook, without installing any special drivers, playing a song on an otherwise unoccupied Windows XP utilizes about 20% CPU, minus the almost 5 % that somehow seem to be there almost always...&lt;br /&gt;&lt;br /&gt;I've read reports that there are clicking sounds, which I can imagine well with a heavy system load. I've heard them at first after plugging it in, but by now they disappeared. It sounds crisp on my Sennheiser headphones and the base is noticeably better than my onboard sound, obviously, but that doesn't say much.&lt;br /&gt;&lt;br /&gt;Now let's see how it fares in &lt;b&gt;Linux&lt;/b&gt;...&lt;br /&gt;&lt;br /&gt;Reboot. Plug. Play. It could hardly be easier. All I had to do was to tell mplayer which device to use (mplayer -ao alsa:device=hw=S51). Then it happily started playing over my new external sound card. The sound is as excellent as under Windows. But better than Windows: Surround sound works out of the box in my Kubuntu 9.10 system.&lt;br /&gt;&lt;br /&gt;The combination of AC-3 surround with VAAPI accelerated 720p movie on my netbook utilizes around 10-12 % CPU. There is no stuttering in Linux, even with heavier load. Just playing music hardly seems to have any impact -- maybe around 5 % CPU. I'll have to let the Phoronix suite benchmark all this sometime. In Windows even just playing music in VLC and increasing the volume setting with the knob on the device can create stutters.&lt;br /&gt;&lt;br /&gt;Right now for some reason the slightly dusty Chromium version on this netbook keeps bringing the system into a hard stutter making characters appear slowly on the screen up to a second after I type and the mouse does not move smoothly. But the sound plays smoothly in the background. Just plain wonderful.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Resume&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I can definitely recommend the sound card for USB (surround or stereo) sound in Linux. I'm not sure if I would use it for Windows. Let's see after I installed the drivers, which will probably drive me mad. &lt;br /&gt;&lt;br /&gt;But be aware that there are clicking sounds when the card is first intialized. If you want to use it for e.g. system sounds, you may not be very happy with that. They also seem to appear during heavy disk access (apt-get dist-upgrade), even if I'm not playing any music. That's definitely weird...&lt;br /&gt;&lt;br /&gt;The microphone input works flawlessly. I didn't have problems with over-amplification, though I can imagine that being an issue with the lack of hardware mixing. And I definitely have a sound card for surround sound HD movie nights now. And the crazy thing is I can do it all perfectly with my little netbook. Thank you, Linux. Thanks also to you, &lt;a href=&quot;http://mndar.phpnet.us/usbxfi/&quot;&gt;Mandar&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Post Scriptum&lt;/b&gt;&lt;br /&gt;Some additional information for nerds: When the card is not in use, it produces not wakes in powertop, when in use, it produces about 200-300 wakes/s (no matter if surround or stereo sound).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;&lt;br /&gt;The clicking sound seems to be related to the power supply. The problem disappears in the same work load (e.g. heavy disk updatedb) if I plug the power adapter into my netbook.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update2&lt;/b&gt;&lt;br /&gt;As I almost expected the device is not anywhere as good in Windows as in Linux. The crystalizer does sound nice, but there are many glitches in the Windows driver. E.g. &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;sometimes when you pause they playback, the result is a constant beep until you press play again,&amp;nbsp;&lt;/li&gt;&lt;li&gt;during forwarding in movies, there are short beeps.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Once after removing the plug and putting it back inside, the entire system hung, only working again after removing it again and then showing and error message.&amp;nbsp;&lt;/li&gt;&lt;li&gt;the driver uses much more CPU than in Linux and it's a 50 MB package&lt;/li&gt;&lt;li&gt;there are no volume controls for rear, center, lfe and front channels, only 1 master control (in Linux you can fix this -- maybe MatrixMixer works for Windows?)&lt;/li&gt;&lt;li&gt;the microphone input sounds slightly noise shaped, esp. in combination with the &quot;crystalizer&quot;&lt;/li&gt;&lt;/ul&gt;Hence I would make my recommendation more clear: I wouldn't recommend it for surround sound in Windows I think. It might still be your best option due to the lack of alternatives, though.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update3 (9/2011)&lt;/b&gt;&lt;br /&gt;Unfortunately I only just tried recording in Linux for the first time. And it seems it doesn't work at all. I got only noise. I've tried Line in and Mic in. There's no real setting for the record options anyway. (Which channel, etc.) So that's definitely a downside. I had never tried that in Linux before. btw. Check &lt;a href=&quot;http://mndar.phpnet.us/usbxfi/&quot;&gt;here&lt;/a&gt; to get the remote control and volume know working. It should come out of the box with kernel 2.6.37+.&lt;br /&gt;&lt;br /&gt;And here's my &lt;b&gt;.asoundrc&lt;/b&gt; so far:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;pcm.!default {                &lt;br /&gt;type            plug      &lt;br /&gt;slave.pcm       &quot;softvol&quot;   #make use of softvol&lt;br /&gt;}                                                   &lt;br /&gt;&lt;br /&gt;# create softvol master channel &lt;br /&gt;# see http://alsa.opensrc.org/index.php/How_to_use_softvol_to_control_the_master_volume&lt;br /&gt;pcm.softvol {                                                                          &lt;br /&gt;type            softvol                                                            &lt;br /&gt;slave {                                                                            &lt;br /&gt;pcm         &quot;dmixer2&quot;      #redirect the output to dmix (instead of &quot;hw:0,0&quot;)  &lt;br /&gt;}                                                                                  &lt;br /&gt;control {                                                                          &lt;br /&gt;name        &quot;Master&quot;       #override the PCM slider to set the softvol volume level globally&lt;br /&gt;card        S51                                                                             &lt;br /&gt;}                                                                                               &lt;br /&gt;}                                                                                                   &lt;br /&gt;&lt;br /&gt;# create stereo dmixer, because using the 6 channel one causes stutter if the channels are empty&lt;br /&gt;pcm.dmixer2 {                                                                                   &lt;br /&gt;type dmix                                                                               &lt;br /&gt;ipc_key 2343                                                                            &lt;br /&gt;slave {                                                                                 &lt;br /&gt;pcm     &quot;hw:S51&quot;                                                                &lt;br /&gt;channels 2                                                                      &lt;br /&gt;}                                                                                       &lt;br /&gt;}                                                                                               &lt;br /&gt;&lt;br /&gt;pcm.dmixer6 {&lt;br /&gt;type dmix&lt;br /&gt;ipc_key 2342&lt;br /&gt;slave {&lt;br /&gt;pcm     &quot;hw:S51&quot;&lt;br /&gt;rate 48000&lt;br /&gt;channels 6&lt;br /&gt;period_time 0&lt;br /&gt;period_size 1024&lt;br /&gt;buffer_time 0&lt;br /&gt;buffer_size 4096&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# reroute the channels because rear and sub/lfe are exchanged&lt;br /&gt;pcm.mysurround {&lt;br /&gt;type route&lt;br /&gt;slave.pcm &quot;dmixer6&quot;&lt;br /&gt;slave.channels 6&lt;br /&gt;&lt;br /&gt;ttable.0.0 1&lt;br /&gt;ttable.1.1 1&lt;br /&gt;ttable.2.4 1&lt;br /&gt;ttable.3.5 1&lt;br /&gt;ttable.4.2 1&lt;br /&gt;ttable.5.3 1&lt;br /&gt;}&lt;/blockquote&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;(...)
-- Click to read the entire post.&lt;/div&gt;</content>
		<author>
			<name>D.</name>
			<email>noreply@blogger.com</email>
			<uri>http://linux-tipps.blogspot.com/search/label/sound</uri>
		</author>
		<source>
			<title type="html">Linux Tipps, Fixes &amp;amp; More</title>
			<subtitle type="html">Your Linux Self-Help Desk. A selection of mostly Linux related tutorials, howtos, fixes, news and more.</subtitle>
			<link rel="self" href="http://linux-tipps.blogspot.com/feeds/posts/default/-/sound"/>
			<id>tag:blogger.com,1999:blog-2124831850793435411</id>
			<updated>2013-06-17T23:00:26+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">PulseAudio with jack detection</title>
		<link href="http://voices.canonical.com/david.henningsson/2011/09/06/pulseaudio-with-jack-detection/"/>
		<id>http://voices.canonical.com/david.henningsson/?p=15</id>
		<updated>2011-09-06T08:51:33+00:00</updated>
		<content type="html">&lt;p&gt;Jack detection in PulseAudio is now in Ubuntu 11.10. This means that PulseAudio will know whether you have plugged in your headphones, mic or HDMI cable, and be able to use that information. Most computers have automute already (i e, speakers mute when you plug in headphones), but this functionality is done entirely in the kernel. With PulseAudio now knowing about this, it can decide that your main volume control will adjust the headphones volume when you have headphones plugged in, and the speaker volume when you don&amp;#8217;t. &lt;/p&gt;
&lt;p&gt;HDMI adds one more twist to it. Due to hardware design, there are often several &amp;#8220;false&amp;#8221; ports accompanying the real one(s). And there is no way of knowing which one is right, except through jack detection. So you might see four different HDMI&amp;#8217;s in the user interface, but only one is right, and with the jack detection, the right HDMI output will automatically be selected when you activate the HDMI device.&lt;br /&gt;
Speaking of the &amp;#8220;Sound Preferences&amp;#8221; user interface, I hope that we will have an improved user interface for Ubuntu 12.04, that can hide the HDMI devices that are unavailable.&lt;br /&gt;
(Also note that for NVidia and ATI cards, binary drivers are often needed to enable HDMI audio, as well as activating the display, through nvidia-settings or the &amp;#8220;Displays&amp;#8221; settings dialog.) &lt;/p&gt;
&lt;p&gt;All of this won&amp;#8217;t work for everyone from the start, as it will need support from the ALSA driver. However, for those who don&amp;#8217;t have that support, things will not regress compared to the current handling. Hopefully I will be able to improve that situation for some of you in the 12.04 cycle.&lt;/p&gt;
&lt;p&gt;Finally, a note on the upstream status of the patches needed for this functionality:
&lt;ul&gt;
&lt;li&gt;The PulseAudio patches will hopefully be merged into PulseAudio, once PulseAudio 1.0 is out. Until then, you can grab the latest patch set &lt;a href=&quot;http://bazaar.launchpad.net/~ubuntu-audio-dev/pulseaudio/ubuntu.oneiric/files/head:/debian/patches/&quot; title=&quot;patches&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.
&lt;/li&gt;
&lt;li&gt;A &lt;a href=&quot;http://bazaar.launchpad.net/~ubuntu-core-dev/ubuntu/oneiric/udev/ubuntu/view/head:/debian/patches/jack-detection.patch&quot; title=&quot;udev patch&quot; target=&quot;_blank&quot;&gt;udev patch&lt;/a&gt; required to enable PulseAudio to read the input devices was &lt;a href=&quot;http://comments.gmane.org/gmane.linux.hotplug.devel/16908&quot; title=&quot;discussion&quot; target=&quot;_blank&quot;&gt;rejected&lt;/a&gt; upstream. &lt;/li&gt;
&lt;li&gt;A &lt;a href=&quot;http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-oneiric.git;a=commitdiff;h=fe2d089edfadd33bc9133f471fec39c4f8f7caf7&quot; title=&quot;kernel patch&quot; target=&quot;_blank&quot;&gt;kernel patch&lt;/a&gt; used to identify HDMI input devices is pending upstream review/approval.&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;</content>
		<author>
			<name>David Henningsson</name>
			<uri>http://voices.canonical.com/david.henningsson</uri>
		</author>
		<source>
			<title type="html">A better sounding world » PulseAudio</title>
			<link rel="self" href="http://voices.canonical.com/david.henningsson/category/pulseaudio/feed/"/>
			<id>http://voices.canonical.com/david.henningsson/category/pulseaudio/feed/</id>
			<updated>2013-04-20T11:00:28+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">LPC ho!</title>
		<link href="http://arunraghavan.net/2011/09/lpc-ho/"/>
		<id>http://arunraghavan.net/2011/09/lpc-ho/</id>
		<updated>2011-09-03T06:01:35+00:00</updated>
		<content type="html">&lt;p&gt;I&amp;#8217;m going to be at the &lt;a href=&quot;http://www.linuxplumbersconf.org/2011/&quot;&gt;Linux Plumbers&amp;#8217; Conference&lt;/a&gt; next week, speaking about the things we&amp;#8217;ve been doing to make &lt;a href=&quot;http://www.linuxplumbersconf.org/2011/ocw/sessions/117&quot;&gt;passthrough audio on Linux&lt;/a&gt; kick ass.&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;re around and interested, do drop by!&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Hello … hello … hello!</title>
		<link href="http://arunraghavan.net/2011/08/hello-hello-hello/"/>
		<id>http://arunraghavan.net/?p=1044</id>
		<updated>2011-08-25T08:11:41+00:00</updated>
		<content type="html">&lt;p&gt;I have a secret to confess. I&amp;#8217;ve spent a great deal of time over the last few months talking to myself. I can&amp;#8217;t say I haven&amp;#8217;t enjoyed it &amp;#8212; it turns out my capacity to entertain myself is far greater than initially suspected. But I hear you ask &amp;#8230; why?&lt;/p&gt;

&lt;p&gt;Here at &lt;a href=&quot;http://www.collabora.com/&quot;&gt;Collabora&lt;/a&gt;, I&amp;#8217;ve been building on &lt;a href=&quot;http://blogs.gnome.org/uraeus/2010/10/07/echo-cancellation-on-linux/&quot;&gt;Wim&amp;#8217;s previous work&lt;/a&gt; on adding echo cancellation to PulseAudio. Thanks go to Intel for supporting us in continuing this work. Before too long, all this work will be trickling down to your favourite Linux distribution and all your friends will stop hating you.&lt;/p&gt;

&lt;p&gt;First, a quick recap on &lt;em&gt;what&lt;/em&gt; acoustic echo cancellation (AEC) is. If you already know this, you might want to skip this paragraph and the next. Say you&amp;#8217;re on your laptop, and you receive a voice call from your friend. You don&amp;#8217;t have a pair of headphones lying around, so you&amp;#8217;re just going to use your laptop&amp;#8217;s built-in speakers and mic. When your friend speaks, what she says is played out the speakers, but is also captured by the microphone and she gets to hear herself speak, albeit a short while (a few hundred milliseconds or more) later. This is called acoustic echo, and can be frustrating enough to make conversation nigh impossible. There are other types of echo for phone systems, but that&amp;#8217;s not interesting to us at the moment.&lt;/p&gt;

&lt;p&gt;This problem is common on pretty much all devices that you use to make phone calls. Astute readers will ask why they don&amp;#8217;t actually face this problem on their phone. That&amp;#8217;s because your phone (or, if you have a cheap phone, your phone company) has special software hidden away that removes the echo before sending your signal along to the other end. On laptops, which are general-purpose hardware, the job of echo cancellation is left to either your operating system (Windows XP onwards, for example) or your chat client (Skype, for example) to provide.&lt;/p&gt;

&lt;p&gt;On Linux, we implement echo cancellation as a PulseAudio module (code-ninja Wim Taymans wrote this last year). We use the Speex DSP library to perform the actual echo cancellation.  The code&amp;#8217;s quite modular, so it&amp;#8217;s not very hard to plug in alternate echo cancellers (we even include an &lt;a href=&quot;http://www.andreadrian.de/intercom/&quot;&gt;alternate implementation&lt;/a&gt;, which isn&amp;#8217;t quite as effective as Speex).&lt;/p&gt;

&lt;p&gt;Recently, we plugged in some more bits from the Speex library to do noise suppression and digital gain control (so you can quit twiddling with your mic volume for the other end to be able to hear you). We also added a bunch of fixes to reduce CPU consumption significantly &amp;#8212; this should be good enough to run on a netbook and reasonably recent ARM platforms.&lt;/p&gt;

&lt;p&gt;While all this sounds nice, I think a demo would sound (haha!) nicer &amp;#8230;&lt;/p&gt;

&lt;p&gt;Without AEC: &lt;!-- Audio shortcode source not set --&gt; (or download &lt;a href=&quot;http://arunraghavan.net/downloads/pulseaudio/aec/call-no-aec.oga&quot;&gt;ogg&lt;/a&gt;, &lt;a href=&quot;http://arunraghavan.net/downloads/pulseaudio/aec/call-no-aec.m4a&quot;&gt;aac&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;With AEC: &lt;!-- Audio shortcode source not set --&gt; (or download &lt;a href=&quot;http://arunraghavan.net/downloads/pulseaudio/aec/call-with-aec.oga&quot;&gt;ogg&lt;/a&gt;, &lt;a href=&quot;http://arunraghavan.net/downloads/pulseaudio/aec/call-with-aec.m4a&quot;&gt;aac&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;This is a recording of a call between my laptop and N900. The laptop is playing audio out the speakers and recording with the built-in mic. What you hear is the conversation as heard on the N900.&lt;/p&gt;

&lt;p&gt;All this echo cancelling goodness will come to a Linux distribution near you in the upcoming 1.0 release of PulseAudio. The next version of the GNOME IM client, Empathy (3.2), will actually make use of this functionality. In due time, we intend to make it so that all voice applications will end up using this functionality (so if you&amp;#8217;re writing a &lt;acronym title=&quot;Voice over IP&quot;&gt;VoIP&lt;/acronym&gt; application and don&amp;#8217;t want to use this functionality, you need to set a special stream property to disable this &amp;#8212; &lt;tt&gt;filter.suppress=&quot;echo-cancel&quot;&lt;/tt&gt;).&lt;/p&gt;

&lt;p&gt;For the impatient among you, you can try all this out by getting recent testing versions of PulseAudio (I know packages are available for Ubuntu, Debian, Gentoo and Mageia at least). To force your phone streams to use echo cancellation, just run &lt;tt&gt;pactl load-module module-echo-cancel&lt;/tt&gt;, and you&amp;#8217;re done.&lt;/p&gt;

&lt;p&gt;There&amp;#8217;s still some work to be done, refining quality and using other AEC implementations (in the short-term, the WebRTC one looks promising). Things don&amp;#8217;t work at all if you&amp;#8217;re using different devices for playback and capture (e.g. laptop speakers and webcam mic). These are things that will be addressed in coming weeks and months.&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Desktop Summit 2011</title>
		<link href="http://arunraghavan.net/2011/08/desktop-summit-2011/"/>
		<id>http://arunraghavan.net/?p=1038</id>
		<updated>2011-08-07T10:27:45+00:00</updated>
		<content type="html">&lt;p&gt;I&amp;#8217;m in Berlin at the Desktop Summit, so you can drop me a note and we can meet if you want to yell about PulseAudio things that annoy you (or even, y&amp;#8217;know, things you like).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.desktopsummit.org/&quot;&gt;&lt;img alt=&quot;I'm at Desktop Summit 2011&quot; src=&quot;http://arunraghavan.net/downloads/ds2011banner.png&quot; title=&quot;I'm at Desktop Summit 2011&quot; class=&quot;aligncenter&quot; width=&quot;333&quot; height=&quot;110&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Arun Raghavan</name>
			<uri>http://arunraghavan.net</uri>
		</author>
		<source>
			<title type="html">Arun Raghavan » pulseaudio</title>
			<subtitle type="html">Extremely pithy tagline here</subtitle>
			<link rel="self" href="http://arunraghavan.net/tag/pulseaudio/feed/"/>
			<id>http://arunraghavan.net/tag/pulseaudio/feed/</id>
			<updated>2013-06-04T05:00:27+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">pulseaudio: Make sure you come to the PA talk at the Desktop Summit 16:50 rm2002 #ds2011 (by Colin)</title>
		<link href="http://twitter.com/pulseaudio/statuses/100147582659076096"/>
		<id>http://twitter.com/pulseaudio/statuses/100147582659076096</id>
		<updated>2011-08-07T10:13:39+00:00</updated>
		<content type="html">pulseaudio: Make sure you come to the PA talk at the Desktop Summit 16:50 rm2002 #ds2011 (by Colin)</content>
		<author>
			<name>Twitter</name>
			<uri>http://twitter.com/pulseaudio</uri>
		</author>
		<source>
			<title type="html">Twitter / pulseaudio</title>
			<subtitle type="html">Twitter updates from PulseAudio / pulseaudio.</subtitle>
			<link rel="self" href="http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio"/>
			<id>http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=pulseaudio</id>
			<updated>2013-06-11T17:00:03+00:00</updated>
		</source>
	</entry>

</feed>
