Abstract
PD's ALSA Interface is not working with Hammerfall RME96xx, HDSP96xx and HDSP-MADI cards and maybe (some other multichannel cards I dont have and can test) using MMAP for best latency.
Here an attempt is made to make an Interface like that and also documenting some Sound-Interface programming done on PD for furhter investigation and/or other interfaces.
Goal is to get as lowest latency as possible and also a stable implemnetation for system-critical application.
Implementation
UPDATE: Now in pd-038 implemented already...
As a starting point PD-0.37-1 was used and a first implementation restrictions are:
- MMAP NONINTERLEAVED mode only
- signed 32Bit sample format
- max. 4 cards, where rme9632, hdsp9632 (je 16 channels in/out) , rme9652, hdsp9632 (je 26 channels in/out), hdsp-madi (64 channels in/out) can be mexied if synced by hardware.
Download
Initial release:
- pd-0.37-1-alsamm.tgz modified pd
- pd-0.37-1-alsamm.diff.gz patch for pd-0.37-1.tar.gz
Maybe it will be checked in cvs and then be a branch there... soon
running notes:
- got an latency with 6.9ms quite stable (tested ca. 3h running and 80% CPU on an 3.2GHz AMD and 2.6.7 kernel with realtime-lsm module but no low latency patches).
TODO
- test with more than 2 cards
- tested only on hdsp9652
- test with precise ptr option of alsa soundmodules
Notes for Implementation in PD:
Audio Interface is done with Definitions in stuff.h:
... #define API_ALSAMM 6 ... alsamm_open_audio(...) alsamm_close_audio() alsamm_send_dacs() alsamm_reportidle() alsamm_getdevs(...)
and add all defines and ifdefs in s_audio.c. Additionally put all the functions needed in
s_audio_alsamm.c .