Auditory Research Soundcard Application Programming Interface: ARSC API


Research Computing


ARSC ALSA and Echo Gina24 Documentation
Last updated: 2005 June
ALSA is a driver architecture under Linux that supports the Echo Gina24. ARSC has been written with the intention of multiple platform capability.

ARSC under Linux requires some additional setup. This documentation considers the setup under Mandrake 10.1.

For best results, be ROOT while performing all of the below tasks. If you do not have ROOT access, coordinate with administrator or someone who has ROOT access.

Note that areas that need "future consideration" are denoted with text of the color: future consideration.

There is the alsa project website that I found after doing my install. There seems to be more information about what is going on behind the scenes, but it doesn't appear to be totally up to date. The other one is the one with the Italian Disclaimer on it.

Follow the steps given below requires access to boystown directories....
Step 1: C development
The standard packages for 'C- development' need to be installed. This inlcudes but is not limited to the 'gcc compiler' and ability to use standard Makefiles.

Step 2: Kernel Headers
No part of the Linux kernel needs to be recompiled (ALSA loads as a module), but the kernel headers need to be present in order to compile the ALSA driver. To determine if the kernel source code is loaded, look in /usr/src. There should be a directory labeled something like linux- and a symbolic link called linux@.

If this does not exist, you need to load it. Mandrake Linux 10.1 loads packages through the package tool. Find and load kernel-source-2.6- off CD ROM 3 which is 18 MB in size.

Step 3: Download Firmware
Dowload and install the firmware from the latest ALSA distribution. Unzip and untar into a convenient location like /usr/src. Run "./configure," then type "make" to build the files. Finally, type "make install" to load the .fw files.

Step 4: Download ALSA Driver
Download and install the driver from the latest ALSA distribution. Unzip and untar into a convenient location like /usr/src. Run "./configure," then type "make" to build the files. Finally, type "make install." Run the "./snddevices" script to create the new sound devices into the /dev directory. The module, snd-gina24.ko, will be added somewhere in /lib/modules/. . . .

Edit the /etc/mdoprobe.conf file to add the following line (copy from existing line):

install snd-gina24 /sbin/modprobe --first-time --ignore-install snd-gina24 && 
{ /sbin/modprobe snd-pcm-oss; /bin/true; }
I am not completely sure this is necessary. The INSTALL file for the ALSA driver said to add something to this file, but I haven't fully traced what this does or if it is needed.

Finally, run "/sbin/modprobe snd-gina24." This should return without any messages.

Step 5: Install Echomixer
There are a number of mixers available for setting the levels on the Gina24, which must be done before you hear any output. The default levels are at zero. alsamixer is an ncurses based tool, and kmix is a KDE based tool. They seem to do pretty much the same thing, and neither is adequate forthe job.

Instead, use echomixer which can be found here. This is a handy utility that was designed to interface directly to the Echo line of products. It even has VU meters that are useful for ensuring signal is going to, and coming from, the card.

I found the latest version here which was alsa-tools-1.0.9rc2.tar.bz2.

Echomixer requires GTK+ 1.2 or above. I pulled this off the Mandrake 10.1 distribution CDs using the package installer drakrpm. The name was libgtk+1.2-devel-1.2.10-40mdk. I first loaded libgtk+2.0_0-devel-2.4.9-9mdk thinking it was a later release, but I don't know if it was necessary.

Run the utility through X Windows and set both the PCM Output Volume and Line Output Volume sliders of A0 and A1 to +0. I set all of the Monitor Mixers to 0.

Step 6: Install ARSC Source Code
The current distribution is internally at R:\ResearchComputing\RC_Common\src\arsc You don't need any of the subdirectories. Copy the source into a convenient location like /usr/src/arscsc/. Copy the makefile.lnx to Makefile. Type "make." Or download the source code for ARSC.

Step 7: Test
Try the four test programs to check that the soundcard is functioning properly.

tstoutShows visual (textual) display with tone.
tstfm Mixing example that increases and descreases tone pitch.
tstlatTests latency; dumps output file tstlat.txt
tstsioSIO test; dumps output file tstsio.txt

  • tstout and tstfm work with the first sound card device available. This will probably be the onboard soundcard, e.g. Intel 82801DB-ICH4 on our machine.
  • tstlat can be called with a -l option to list the devices detected, as well as the default device (with a * next to it). You need to be root to see the values. This suggests that some permissions need to be addressed so that sound is available to any other user. For example, our linux box had the following:
    [root@nerh75771 arscsc]# ./tstlat -l
    -- I/O loopback latency test --
    ARSC version 0.02, 26-Apr-05
    0 = Intel 82801DB-ICH4
    1 = Gina24 *
  • There are other applications that may be used for test purposes: aplay and arecord.