ECE497 Lab11 Using the Open Sound System (OSS)

Be sure you have done Lab 10 before this lab so all your software is set up.

Lab 11/6 - Using the OSS Driver
Lab 11 is Lab 6 is on pages 171-186 of DaVinci-OMAP_Workshop_v2.0.pdf. In doing this lab you will get audio from the line-in jack on the Beagle and sent it out the speaker jack.
 * Go to the class dfs site and get:
 * setpaths.mak
 * setpaths.sh

host $ cd workshop host $ mv setpaths.sh setpaths.sh.orig host $ mv setpaths.mak setpaths.mak.orig
 * Move the setpaths files in the workshop directory to another location.
 * Copy the setpaths files you got from DFS into the workshop directory. In Lab 11/6 you will edit these files so they are correct.

You will still need the symbolic link from part 5, and make sure to update the file paths.

Killing pulseaudio
I find that running cat /dev/dsp > /dev/dsp

gave me this error: -sh: can't create /dev/dsp: Device or resource busy

This did not seem to cause problems until part b of the lab. I found this website to solve my problem. Apparently, the problem is that pulseaudio is using /dev/dsp, and refuses to give it up. When I killed pulseaudio (the rude way, not the graceful way), then running cat /dev/dsp > /dev/dsp worked, and my executable worked. I don't know what killing pulseaudio does to the system, I haven't noticed any ill-effects yet...

Testing the audio chain with GStreamer
Here is a simple way to test to see if you mic and speakers are working. Do this on your Beagle:

README a2  a4  a6  d2  d4  d6  g2  g4  g6  g8  n1  n3  p1  v1  v3 a1      a3  a5  d1  d3  d5  g1  g3  g5  g7  g9  n2  n4  s   v2  v4
 * 1) opkg update
 * 2) opkg install esc-gst
 * 3) cd /usr/share/esc-gst/
 * ls
 * 1) less README
 * 2) less s
 * 3) ./s
 * 4) ./a1
 * 5) ./a6

These are files for demonstrating GStreamer. The README tells what each file does. Before the first time you run anything you have to run. Here’s what  does:

set -x export DISPLAY=:0.0 export PATH=$PATH:/usr/share/esc-gst cd /usr/share/esc-gst killall -9 pulseaudio set +x
 * 1) ! /bin/sh

Notice you have to kill off pulseaudio as was suggested above! plays a simple tone,  takes the input from the mic and sends it to the speakers. This works for me and is a good way to test your whole audio chain.

Some notes on ALSA
I've gotten this example working. I'm also looking here.

On the Beagle you need to:
 * 1) opkg install alsa-dev

On the host: $ sudo apt-get install libasound2-dev Go to the class dfs site and get. Compile it with It runs on the Beagle and desktop and produces a sound.
 * 1) gcc -lasound alsaWrite.c
 * 2) ./a.out

It's shouldn't be hard to convert  to. See the sites above for hints.