Linux ALSA driver for RME MADI FX
C Makefile
Latest commit c49ff61 Apr 6, 2015 @adiknoth [cosmetics] Rename hdspm to mfx
Failed to load latest commit information.
below38.patch Refresh below38.patch Jul 15, 2013
madifx.c [cosmetics] Rename hdspm to mfx Apr 6, 2015
oldkernel.patch Refresh oldkernel.patch Jul 15, 2013

Linux ALSA driver for RME MADI FX (WIP)

This repository contains a Linux kernel driver for RME MADI FX cards. It is still work in progress. Once finished, it'll be submitted to the mainline kernel.

Until then, everything may change at any time, so don't expect the userpsace API to be stable.


This driver has been developed via ssh on a remote machine with a single static MADI crossover connection to a PCI RME MADI card, so not all ports have been tested. Most importantly, the channel mappings might be wrong.

Like always, no guarantees at all, use at your own risk. Feel free to report problems and patches to improve the driver.


Clone this repository.

For all kernels until 3.14.x, run

patch -p1 < below315.patch

For all kernels until 3.7.x, run

patch -p1 < below38.patch

For all kernels until 3.4.x, also run

patch -p1 < oldkernel.patch

Then, run

make install

as root. Use alsamixer or amixer to adjust settings.


  • PCM playback/capture working (SS and DS tested, QS untested)
  • MIDI working
  • All card settings working (e.g. TX64, SMUX, AESpro, WC-Term, WC-singlespeed...)
  • Slave Mode/External clock selection working
  • Mirror-MADI1-to-Out2+3 maybe working (untested)
  • Redundancy mode maybe working (untested)
  • ioctls implemented (see ioctl.c)
  • Static mixer working (fixed 1:1 mapping)
  • DSP NOT working. RME doesn't intend to release any information regarding the DSP.
  • Adjustable mixer NOT working (needs new userspace tools)
  • Levelmetering NOT working (maybe wrong, needs new userspace tools)


  • Cleanup code (still contains plenty of the HDSPM driver)
  • Implement new userspace tools (see above)
  • Submit to mainline


If you want to work on mixer/level support, compile with


to include the broken mixer/level kernel code. The name is pretty obvious, it's meant for driver/tool developers, not users.


Thanks to IOSONO for hosting the card and providing the remote login. Kudos to Andre Schramm for taking care of the setup.

Thanks to RME for temporarily providing the card. Special thanks to Martin Björnsen for the OSX driver source.

Kudos to Marcin Pączkowski from the Center For Digital Arts And Experimental Media (DXARTS) for setting up remote access and testbeds to further improve the driver.


In case of trouble or questions, send me an email:

Adrian Knoth