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