[PD] pd-patch for (better) multidevice support

IOhannes m zmoelnig zmoelnig at iem.kug.ac.at
Tue Nov 13 19:16:56 CET 2001


having had problems with multiple devices (in my case: a
"rme-hammerfall" + a "rme-hammerfall light") i have patched the
pd-sources to make it work
you can download a patch for pd-0.34.3 (vanilla) from
ftp://iem.kug.ac.at/pd/misc/pd-updown-multidev-patch-0.34.3.tgz

linux/OSS only

all multi-card users please test and bug-report !

mfg.casd.sadr
IOhannes

a README is attached
-------------- next part --------------
pd-0.34.3 with upsampling/downsampling support + enhanced multi-device support



INSTALL-instructions:
=====================
get a new vanilla pd-0.34.2-source
untar it to <mypath>/pd-0.34.2
run "patch -p1 -d <mypath>/pd-0.34.2 < pd-0.34-3-updown-multidev.diff"
changedir to <mypath>/pd-0.34.2/src
compile it with "make"
install it with "make install"
enjoy


upsampling/downsampling:
========================
have a look at the doc/3.audio.examples/74.up.downsampling.pd help-patch to see how it works


multi-device support:
=====================
note: this is linux/OSS only !!! (no Windof, no ALSA, no RME with old (2.2.x) drivers)
to get a great configuration, you should use soundcards that are somehow synched !
<blabla>
pd used to have multi-device support, but did strange things which i didn't expect.
for example, i am using 2 hammerfall-cards (1 real hammerfall (26 i/o) + 1 hammerfall light (18 i/o)
starting pd with "-outchannels 40" allocated 8 channels on the 1st card (the "real" hammerfall) and 26 channels on the 2nd card (the hammerfall light, which really has only 18 channels); the rest was abandoned.
thus i could only use 26 channels - no need for two cards, since this could be acquired with one single hammerfall too.
</blabla>

with this patch, pd does what i want:
have access to multiple soundcards in various configurations

added features = commandline-options:
-------------------------------------

"-soundindev ..." & "-soundoutdev ..."
lets you specify a list of dsp-devices to be used by pd; devices are separated by commas; numbering starts at 0 (for the first card) !
pe: "-soundindev 1"	uses the 2nd installed card as recording device
pe: "-soundoutdev 2,0" 	uses the 3rd and the 1st installed cards as playback devices

"-inchannels ..." & "-outchannels ..."
you can specify the number of channels for each device
pe: "-inchannels 2"		 have 2 i-channels (no real change)
pe: "-outchannels 2,4,8"	 use 2 channels on the 1st (specified) device, 4 o-channels on the 2nd (specified) device and 8 o-channels on the 3rd (specified) device 


examples:
---------
lets assume, you have a 1st sound-card providing 8 channels, a 2nd card with 16 channels and a last 3rd card with 2 channels
i only mention flags for either in or out devices (but it works for both types)
i assume that there are no other redefined flags (-in/outchannels, -soundin/outdev) used !

"" (no arguments)	: use 2 i/o-channels on the first installed card (this is default)

"-inchannels 26"	: use 8 ichannels on the 1st card (adc~ 1..8), 16 ichannels on the 2nd card (adc~ 9..24) and 2 ichannels on the 3rd card (adc~ 25..26): so the channels are spread over the hw-devices

"-inchannels 8,2"	: use 8 channels on the 1st card (adc~ 1..8) and 2 channels on the 2nd card 

"-outchannels 4,24"	: use 4 channels on the 1st card (dac~ 1..4) and up to 24 channels on the 2nd card (since the 2nd card only provides 16 channels, you will only have another 16 outputs (dac~ 5..20), summing up to 20 outputs)

"-soundindev 2"		: use 2 (default) ichannels on the 3rd card as adc~ 1..2

"-soundindev 0,1"	: use 2 (default) ichannels on the 1st card (adc~ 1..2) and 2 (default) ichannels on the 2nd card (adc~ 3..4)

"-soundoutdev 1,0 -outchannels 8,4": use 8 ochannels on the 2nd card (dac~1..8) and 4 ochannels on the first card (dac~9..12)

"-soundindev 0,1 -outchannels 32": use 16 channels on the 1st card (dac~1..16) and 8 channels on the 2nd card (dac~17..24); the remaining channels are lost. so the channels are spread over the specified hw-devices

"-soundindev 1 -outchannels 16,16": use 16 channels on the 2nd device and 2 (remaining) channels on the 3rd device

"-soundindev 1 -inchannels 22": use 8 channels on the 1st device, the rest is lost





More information about the Pd-list mailing list