[PD] enabling jack and alsamidi on Pd startup

Claude Heiland-Allen claudiusmaximus at goto10.org
Fri Mar 17 23:00:33 CET 2006


Hi all,

Why do I have to start Pd from a script like this to get jack and 
alsamidi working and connected the way I want?  I'm particularly talking 
about the pd -send "really long sequence of cryptic messages", but 
jack_connect and aconnect support within Pd would be even more awesome.

Can the -jack and -alsamidi flags be made to actually work?  Or is -send 
the future of Pd's command line arguments?  It's also annoying that the 
messages to pd open the midi/audio dialog windows, or is there a way to 
close them via messages too?

Can the ALSA MIDI port names of Pd be made unique for each instance of 
Pd, for example "Pure Data 0", "Pure Data 1", etc, with the same ID 
number as the jack instances?  I'm having to aconnect Pd using port 
numbers, because 'aconnect "Pure Data":1 blah:0' selects only the first 
of the many "Pure Data"s.



#!/bin/bash
# start pd in the background so we can do stuff after startup
pd -send "; pd audio-setapi 5 ; pd audio-dialog 0 0 0 0 0 0 0 0 0 0 0 0 
2 0 0 0 48000 50 ; pd midi-setapi 1 ;  pd midi-dialog 1 0 0 0 1 0 0 0 1 
1 ; pd dsp 1" $* &
sleep 5  # hacky delay factor to wait for pd to start and have ports
# connect up to 8 pd instances to ecasound via jack
jack_connect pure_data_0:output0 ecasound:record_1 >/dev/null 2>&1
jack_connect pure_data_0:output1 ecasound:record_2 >/dev/null 2>&1
jack_connect pure_data_1:output0 ecasound:record_1 >/dev/null 2>&1
jack_connect pure_data_1:output1 ecasound:record_2 >/dev/null 2>&1
jack_connect pure_data_2:output0 ecasound:record_1 >/dev/null 2>&1
jack_connect pure_data_2:output1 ecasound:record_2 >/dev/null 2>&1
jack_connect pure_data_3:output0 ecasound:record_1 >/dev/null 2>&1
jack_connect pure_data_3:output1 ecasound:record_2 >/dev/null 2>&1
jack_connect pure_data_4:output0 ecasound:record_1 >/dev/null 2>&1
jack_connect pure_data_4:output1 ecasound:record_2 >/dev/null 2>&1
jack_connect pure_data_5:output0 ecasound:record_1 >/dev/null 2>&1
jack_connect pure_data_5:output1 ecasound:record_2 >/dev/null 2>&1
jack_connect pure_data_6:output0 ecasound:record_1 >/dev/null 2>&1
jack_connect pure_data_6:output1 ecasound:record_2 >/dev/null 2>&1
jack_connect pure_data_7:output0 ecasound:record_1 >/dev/null 2>&1
jack_connect pure_data_7:output1 ecasound:record_2 >/dev/null 2>&1
# connect up to 8 pd instances to the hardware midi interface
aconnect 129:1 "EV-10 USB MIDI Interface":0 >/dev/null 2>&1
aconnect "EV-10 USB MIDI Interface":0 129:0 >/dev/null 2>&1
aconnect 130:1 "EV-10 USB MIDI Interface":0 >/dev/null 2>&1
aconnect "EV-10 USB MIDI Interface":0 130:0 >/dev/null 2>&1
aconnect 131:1 "EV-10 USB MIDI Interface":0 >/dev/null 2>&1
aconnect "EV-10 USB MIDI Interface":0 131:0 >/dev/null 2>&1
aconnect 132:1 "EV-10 USB MIDI Interface":0 >/dev/null 2>&1
aconnect "EV-10 USB MIDI Interface":0 132:0 >/dev/null 2>&1
aconnect 133:1 "EV-10 USB MIDI Interface":0 >/dev/null 2>&1
aconnect "EV-10 USB MIDI Interface":0 133:0 >/dev/null 2>&1
aconnect 134:1 "EV-10 USB MIDI Interface":0 >/dev/null 2>&1
aconnect "EV-10 USB MIDI Interface":0 134:0 >/dev/null 2>&1
aconnect 135:1 "EV-10 USB MIDI Interface":0 >/dev/null 2>&1
aconnect "EV-10 USB MIDI Interface":0 135:0 >/dev/null 2>&1
aconnect 136:1 "EV-10 USB MIDI Interface":0 >/dev/null 2>&1
aconnect "EV-10 USB MIDI Interface":0 136:0 >/dev/null 2>&1
# re-join with the pd process
wait $!



Claude




More information about the Pd-list mailing list