Fw: [Portaudio] ARM


I am forwarding this message from the portAudio mailing list as I think this
may also apply to the SDL project…I can get SDL dsp putput working ok as
it automagically seems to redirect to the esd driver , however I tried the
SDL_audioin project for microphone access and it failed because /dev/dsp
doesnt exist on the N800.

The note below shows how u can get round this - Its basically describing a
way to get /dev/dsp sound reliant API’s working on the N800 ARM machine.
-Chris> ----- Original Message -----

From: @Chris_Dobbs (Chris Dobbs)
To: “Alan Horstmann”
Sent: Thursday, August 14, 2008 4:10 PM
Subject: Re: [Portaudio] ARM

Hi Alan,
Though I would share my recent findings as I seem to have got it working
This is a fudge but it will do for now until I can be bothered to rewrite
all my code to use something like gstreamer.

I discovered that there is a wrapper (hijacking) library call libesddsp.so
which if you preload it and then run your /dev/dsp reliant code, it all
works great !

This library bascially overrides things like fopen() and then hijacks the
dsp access over to the esd driver.

I then built a static version of this library and linked my app direct
To get this to link ok I also needed to include link agst libesd.a and
libasound.a (provided by alsa-lib project)

the libasound.a was abit of swine as it was by default built with
info so I downloaded the alsa-libs project and did
./configure --with-static --with-versioned=no

this shut it up and links fine now.

Thansk for all our help and hope this helps someone else !

----- Original Message -----
From: “Alan Horstmann”
To: “Chris Dobbs” <@Chris_Dobbs>
Sent: Wednesday, August 13, 2008 8:49 AM
Subject: Re: [Portaudio] ARM

On Tuesday 12 August 2008 21:28, you wrote:

Hi Alan,
Yes, that would seem plausible. I built portAddio with the default

of --enable-alsa and --enable-oss so I must assume PA has alsa

Do you know how I instruct PA to use ALSA only?

Unfortunately not; I’ve not written code on top of portaudio; perhaps
will help with that.

It seems from that link I
sent you that OSS is a major dependency for the N800 OS.

BTW, some background here. I am currently trying to port a voice/video
phone from windows to OSX and ARM (N800) - I chose to use PA for the

abstraction (I started with SDL but the microphone support is not

integrated yet and only avail via another project called
SDL_audioin() )

I have used a custom build of portVideo too for the video abstaction.

have built custom linux kernels before and am fairly familiar with how
device nodes work.
I am developing the ARM code under linux using the maemo scratchbox

To continue to use OSS, work out how maemo creates its device nodes and
add /dev/dsp etc. That is the responsibility of the environment.


Portaudio mailing list
Portaudio at techweb.rfa.org