[PD-dev] Really ugly Quattro hack (but works)

Frank Barknecht fbar at footils.org
Wed Dec 3 14:11:12 CET 2003


Hallo,

I desperatly needed 4-channel audio out on my Quattro on Linux and I
know, lots of others needed that, too. So I made an ugly hack without
actually hoping it would work at all, but interestingly it did work.

In CVS-Pd, tagged devel_0_37 edit s_audio_alsa.c and change this near
line 111: 

	/* device names are hw:0, plughw:0, hw:1, and so on. */
    if (devno & 1)
    	sprintf(devname, "plughw:%d", devno/2);
    else sprintf(devname, "hw:%d", devno/2); 

to be that:

	/* device names are hw:0, plughw:0, hw:1, and so on. */
    /* if (devno & 1)
    	sprintf(devname, "plughw:%d", devno/2);
    else sprintf(devname, "hw:%d", devno/2); */
    
	/* HACK: hardcode quattro devices */
	if (devno & 1)
    	sprintf(devname, "q4"); /* Quattro plug */
    else sprintf(devname, "q4b"); /* Quattro route */

while using the usual asoundrc, that defines q4 and q4b.

Recompile.

You will now only be able to use the Quattro devices with that Pd and
you'll have to use this command line: 

$ pd -alsa -noadc -outchannels 4

because trying to use audio-in at the same time results in that error: 

opened 1 MIDI input device(s) and 0 MIDI output device(s).
Sample width set to 2 bytes
ALSA lib pcm.c:1148:(snd_pcm_link) SNDRV_PCM_IOCTL_LINK failed: Operation already in progress




Now, the interesting part here, and the reason I post this to pd-dev,
is, that Pd's ALSA subsystem in CVS obviously is practically ready to
use freely named ALSA devices, that are not called plughw:X or hw:X. 

The only thing missing is a way, to specify other names for Pd to use
either on the command line, or in a free form text field in the Media
menu, and get rid of the hardcoded "hw" and "plughw" specifiers in the
ALSA code. 

After that, Quattro users, abd maybe also the RME users, would be soo
happy.

(Oh, and there also is this SNDRV_PCM_IOCTL_LINK error, but this
probably is another story.)

ciao
-- 
 Frank Barknecht                               _ ______footils.org__




More information about the Pd-dev mailing list