Logo

Linux ALSA-AMDTP Module

ALSA-AMDTP: the Linux ALSA driver for connecting audio applications to devices connected via the IEEE1394 (Firewire) bus using the 61883-6 Audio and Music Transfer Protocol.

Download

The most recent stable version is 0.2.5. This should work with 2.4 kernels. An update for 2.6 kernels is in progress.

The most recent source is available via CVS from: sourceforge. The module name is alsa-amdtp.

Installation

Requirements

This driver has been tested with the following software/hardware configurations:

  • Alsa: http://www.alsa-project.org/)
  • version 0.9.0rc7
  • version 0.9.8
  • Kernel:
    • version 2.4.20 (with/without low latency patch applied).
      (The low latency patches can be found at here.
    • version 2.4.21
  • Linux distribution:
    • Redhat 8.0 (but not with the original kernel version).
    • Linux distribution: Redhat 9.0
  • Hardware configurations:
    • PC, Intel Pentium 4 1.7GHz processor, Texas Instruments TSB12LV26 IEEE-1394 Controller
    • PC, Dual Pentium 3 800MHz processors, Texas Instruments TSB12LV26 IEEE-1394 Controller
    • Laptop PC, Mobile Intel Pentium 4 1.8GHz processor, Texas Instruments TSB43AB21 IEEE-1394a-2000 Controller

The driver may work with other versions of these packages.

Installation

  1. Download, compile and install the alsa-driver and alsa-libs packages.
  2. Ensure that libraw1394 is installed. Also make sure that the permissions on /dev/raw1394 are set appropriately. I use:
      chmod 777 /dev/raw1394
    Also ensure that the raw1394 device driver is loaded.
      insmod raw1394
  3. Download, and extract the alsa-amdtp archive:
      tar xvfz alsa-amdtp-x.x.x.tar.gz
  4. From within the alsa-amdtp directory: - edit the Makefile to set the location of the kernel source files, alsa-driver files and Qt libraries.
  5. Build the driver, and associated utilities using:
      make
  6. As administrator (super user / root), install the driver modules:
      insmod amtransfer.o
      insmod am61883.o
  7. (If it complains about missing functions, you may need to install some other sound modules. The following provide the required modules on my configuration:
      modprobe -a snd-pcm
      modprobe -a snd-hwdep
      modprobe -a snd-rawmidi
    )

Operation

Run the control panel.
  ./controlpanel
If there is any problem here, check that the raw1394 module is installed, as described above.

Select the appropriate values for isochronous send and receive channels, rate, and number of channels (sequences). Click the check boxes to enable sending/receiving. Once all parameters have been configured, click Set to update the driver configuration.

ALSA compatible audio applications should see the driver as another audio device.

General Usage

If you want to transmit audio over your Firewire network, and have no specialised 61883-6 devices, you can use this driver to transmit audio/midi between two Linux machines that are running this driver. Audio/midi can be patched from the alsa-amdtp driver to the ALSA driver for an existing sound card in the machine.

Two (prototype) applications exist to perform this patching at present. Both are currently fairly rudimentary, created only for testing purposes during driver development.

To build these applications:

  1. Edit the source code to put in the appropriate references to the various devices:
    • alsa_patch.c currently uses snd-card-0 (hw:0,0) for playback, and snd-card-1 (hw:1,0) for the alsa-amdtp driver capturing audio off the 1394 bus.
    • alsa_patch_midi.c currently uses port 65:0 for playback, and port 72:0 for the alsa-amdtp driver capturing midi off the 1394 bus. (Yes, the variable names seem backward and confuse me too :-)
  2. Compile the applications:
        make alsa_patch
        make alsa_patch_midi
  3. Run the required application on the destination station:
        ./alsa_patch
    or
        ./alsa_patch_midi
  4. Run an audio application on the source station, configured to produce audio/midi to the alsa-amdtp driver.
  5. If you have problems, ensure that the control panel configuration is set to allow transmission from the source machine, via one isochronous channel to the destination machine. Make sure the send indicator on the source machine and the receive indicator on the destination machine are both green. Monitor the control panel on the destination machine and ensure that data of the appropriate format is being received.

Bug Reports

Please supply as much information as possible. If possible, describe the hardware used, the version of the driver software, steps followed, any message reported (also check the system log, /var/log/messages), and the nature of the problem.

Common problems (and hopefully solutions) will be added to the FAQ document (included in the distribution).

Acknowledgements

We gratefully acknowledge support from the following sources:

Sponsorship of initial driver development

Yamaha Logo mLAN Logo

Hosting of site and software

SourceForge.net Logo

Contact

Shaun Bangay
cssb@users.sourceforge.net