[LAD] Meego pulseaudio "compliance" and "enforcement" (was Re: [Meego-handset] Enabling Speakerphone)

Niels Mayer nielsmayer at gmail.com
Fri Feb 4 00:11:11 UTC 2011


On Wed, Feb 2, 2011 at 12:48 PM, Stefan Kost <ensonic at hora-obscura.de>
 wrote:
>
> Sorry for the very late reply. One thing to mention is that the CPU load
> for
> pulse is going wown quite a bit when plugin headphones. Otherwise it runs
> some
> extra processing needed to accomodate the speakers.


Since there is a lot of extra audio processing going on, would employing a
library like "nova-simd", announced below, help out with the situation --
e.g. writing the handset speaker-equalization and some of the audio mixing
functionality using more efficient instructions? What looks interesting is
the claimed support for both ARM Neon, Altivec, and  Atom: See
http://tim.klingt.org/code/projects/nova-simd/repository and forwarded
announcement below.

....

Regarding pulseaudio, in
http://code.google.com/p/ytd-meego/wiki/CitizenJournalismWithYoutubeDirectForMeego#Pulseaudio:_Connecting_Audio_Subsystem,_Microphone_and_Speakers
-- Note
all the "ins and outs" back and forth between kernel and user space.

Architecturally, the system seems inverted, especially since you have to go
back out to ALSA for bluetooth. Why not keep it all in kernel space??

Or better yet: employ analog mixing and multiple DAC's -- only one or two
needing to be "hi-fi" and the others for notifications and telephony can be
quite cheap low-rate, low-accuracy DAC's and ADC's. Yes analog mixing and
routing is hard to do in a mixed signal environment; but is the power
consumption of a few DACs and op-amps even close to that of needing a
 fraction of the CPU running constantly just to do what a few resistors and
an op-amp can do? To say nothing about the potential sound quality
improvement of not needing to resample any of the mixed outputs, nor worry
about synchronizing or locking rates between different subsystems, and all
the other benefits of analog summing:
http://emusician.com/mag/emusic_sum_tracks/ ...  (hopefully the flamewars
that will ensue about this controversial topic will cancel out the flamewars
on pulseaudio  :-) ) .

What I'm proposing for the low-power/handset world isn't that far off from
the audio system needed  back when CPU's had computational power that made
digital mixing for notifications, telephony, or music playback unthinkable:
the analog mixing built into the http://en.wikipedia.org/wiki/AC'97 spec
(and associated hardware), but updated for the handset world. I'm sure
that's not going to happen anytime soon, but I can dream?

...........

Anyways, here's the announcement:

 http://music.columbia.edu/pipermail/andraudio/2011-February/000098.html
......................
[andraudio] nova-simd suite updated for arm neon
Dan Stowell
Thu Feb 3 04:48:36 EST 2011

Hi -

"nova-simd" is a C++ header-only template library for taking advantage
of SIMD instructions in the kind of DSP processes used in audio
processing (i.e. not just basic stuff like vectorised mul+add and loop
unrolling, but also some more audio-specific things like ramps,
distortions).

It's created by Tim Blechmann and it lives here:
http://tim.klingt.org/code/projects/nova-simd/repository

It was originally implemented for SSE and SSE2 - we use it in
SuperCollider and it gives us massive performance improvements on
intel chips. We've just added NEON (and Altivec) implementations too,
so we should be able to boost performance on android and ios.

The ARM NEON support is new and doesn't yet implement all the
speedups, but should be useful for anyone wanting to implement C++ DSP
for Android devices with SIMD speedups - especially if you're thinking
about cross-platform code since the API is implemented for other chips
too.

Dan
.................

Niels
http://nielsmayer.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxaudio.org/pipermail/linux-audio-dev/attachments/20110203/356fb413/attachment.html>


More information about the Linux-audio-dev mailing list