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

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Stefan Kost <ensonic@...>
Cc: <kai.vehmanen@...>, <meego-handset@...>, <linux-audio-dev@...>, <krisztian.litkey@...>
Date: Friday, February 4, 2011 - 12:34 am

--002354332a2637f273049b69b8b0
Content-Type: text/plain; charset=UTF-8

On Wed, Feb 2, 2011 at 12:48 PM, Stefan Kost
wrote:

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/CitizenJournalismWithYoutubeDire...
-- 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

--002354332a2637f273049b69b8b0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Wed, Feb 2, 2011 at 12:48 PM, Stefan Kost=C2=A0<=
ensonic@hora-obscura.de><=
/span>=C2=A0wrote:
Sorry for the very late reply. One thing to mention is that the CPU load fo=
rpulse is going wown quite a bit when plugin headphones. Otherwise it r=
uns someextra 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, he=
lp out with the=C2=A0situation=C2=A0-- e.g. writing the handset speaker-equ=
alization and some of the audio mixing functionality using more efficient i=
nstructions? What looks interesting is the claimed support for both ARM Neo=
n, Altivec, and =C2=A0Atom: See http://tim.klingt.org/code/projects/nova-simd/rep=
ository
and forwarded announcement below.
....Regarding pulseaudio, in=
=C2=A0http://code.google.com/p/ytd-meego/wiki/CitizenJournalismWit=
hYoutubeDirectForMeego#Pulseaudio:_Connecting_Audio_Subsystem,_Microphone_a=
nd_Speakers
=C2=A0--=C2=A0Note 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??=C2=A0Or 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 lo=
w-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 =C2=A0fraction of=
the CPU running constantly just to do what a few resistors and an op-amp c=
an 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:=C2=A0http://emusician.com/mag/emusic_sum_tracks/=C2=A0... =C2=A0(hopefu=
lly the flamewars that will ensue about this controversial topic will cance=
l out the flamewars on pulseaudio =C2=A0:-) )=C2=A0.
What I'm proposing for the low-power/handset world =
isn't that far off from the audio system needed =C2=A0back when CPU&#39=
;s had computational power that made digital mixing for notifications, tele=
phony, or music playback unthinkable: the analog mixing built into the=C2=
=A0http://en.wikipedia.o=
rg/wiki/AC'97
=C2=A0spec (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 th=
e announcement:
=C2=A0http://music.columbia.edu/pipermail/andrau=
dio/2011-February/000098.html

......................[andraudio] nova-simd suit=
e updated for arm neonDan StowellThu Feb 3 04:48:36 E=
ST 2011Hi -"=
nova-simd" is a C++ header-only template library for taking advantage<=
/div>
of SIMD instructions in the kind of DSP processes used in audio<=
div>processing (i.e. not just basic stuff like vectorised mul+add and loop<=
/div>unrolling, but also some more audio-specific things like ramps,
distortions).It's created by Tim Blechma=
nn and it lives here:http://tim.klingt.org/code/projects/nova-simd/rep=
ository

It was originally implemented for SSE and SSE2 - we use=
it inSuperCollider and it gives us massive performance improvem=
ents onintel chips. We've just added NEON (and Altivec) impl=
ementations 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 thespeedups, but should be useful for anyone wanting to impl=
ement C++ DSP
for Android devices with SIMD speedups - especially if you're thin=
kingabout cross-platform code since the API is implemented for o=
ther chipstoo.Dan..........=
.......
Nielshttp://nielsmayer=
.com

--002354332a2637f273049b69b8b0--

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [LAD] Meego pulseaudio "compliance" and "enforcement" (w..., Niels Mayer, (Fri Feb 4, 12:34 am)