With aconnect, you can use the string name for the device to connect to it, you don't need the indices. Some caveats: if you are scripting Pd startup, you will need to wait until the Pd MIDI devices are actually listed in also before you can connect to them..
Here's a section of a script I wrote all the way back to ~2007 for doing this on an old, headless wearable computer running Debian:
#### Begin execution
# make sure the programs exist
#test -x /usr/bin/jackd || exit 5
test -x /usr/bin/pd || exit 5
test -x /usr/bin/aconnect || exit 5
# sleep to make sure alsa is running
#sleep 5
# check if UA-25 is connected and initialized by the kernel,
# if not then spin and wait until it is ready
KA=$(ls /proc/asound | grep UA25)
while [ "$KA" = "" ]
do
sleep 1
echo "rc_starts_pd: where is the UA-25 soundcard??"
KA=$(ls /proc/asound | grep UA25)
done
echo "rc_starts_pd: UA-25 is connected and ready"
# use jack?
if [ $USEJACK == 1 ] ; then
# start jack, 16 ms latency
jackd -R -dalsa -dhw:UA25 -r48000 -p512 -n3 -S &
# make sure jack has enough time to get going
sleep 5
echo "rc_starts_pd: starting pd"
pd -jack -channels 2 -nogui -r 48000 -alsamidi -mididev 1 $PATCH &
# use pd directly
else
echo "rc_starts_pd: starting pd"
pd -rt -nogui -alsa -audiodev 4 -audiobuf 10 -alsamidi $PATCH &
# renice pd for much higher priority
renice -10 $(pidof pd)
fi
# wait for pd to initialize
KA=$(aconnect -i -o | grep "Pure Data")
while [ "$KA" = "" ]
do
sleep 1
echo "rc_starts_pd: pd alsamidi not ready"
KA=$(aconnect -i -o | grep "Pure Data")
done
echo "rc_starts_pd: pd alsmidi is ready"
# connect the UA-25 midi to Pure Data
echo "rc_starts_pd: alsa midi connect 'UA-25' <-> 'Pure Data'"
aconnect 'UA-25' 'Pure Data'
aconnect 'Pure Data':1 'UA-25':0
# connect the VIEWCON dongle midi to Pure Data
echo "rc_starts_pd: alsa midi connect 'VIEWCON..' <-> 'Pure Data'"
aconnect 'VIEWCON..' 'Pure Data'
aconnect 'Pure Data':1 'VIEWCON..':0
~~~
I have been having the same problem - although I'm using the raspbian buster image so I have pd 0.49.
Unfortunately there is no aconnect-gui in raspbian, and I have found that aconnect -l finds pd's midi ports only when you start pd with the -alsamidi -midiindev and -midioutdev flags.
The command syntax to connect the USB midi device to pd using aconnect then becomes:> aconnect 20:0 128:0
I'm looking to have all this automatically setup on boot so I can run headless. If anyone knows how to do that please let me know...
Cheers
=============================================
=============================================
Howdy Paul,
Here is a quick response without knowing your background or experience with Pd/MIDI/Linux...
1. Do you have Pd's MIDI input enabled? I don't see one listed, just the "Pure Data Midi-Out 1"
2. Are you connecting devices? By default, aconnect doesn't connect anything automatically. I did a quick search and found this which may be helpful if you are not familiar with aconnect or aconnect-gui:
If you use aconnect-gui, basically just connect you devices output to Pd's input.
Message: 2Date: Thu, 13 Aug 2020 13:27:24 +0200From: Paul Pignon <paulspignon@gmail.com>To: pd-list@lists.iem.atSubject: [PD] no midi inputMessage-ID: <1694f7ee-de4f-702a-eaf3-91ad9302acfb@gmail.com>Content-Type: text/plain; charset="utf-8"; Format="flowed"I'm running pd-l2ork/purr-dataI cannot get any midi input, probably due to a woeful lack of skill/knowledge.aconnect -iclient 0: 'System' [type=kernel] 0 'Timer ' 1 'Announce 'client 14: 'Midi Through' [type=kernel] 0 'Midi Through Port-0'client 16: 'Mbox 2' [type=kernel,card=0] 0 'Mbox 2 MIDI 1 'client 20: 'USB Midi Controller' [type=kernel,card=1] 0 'USB Midi Controller MIDI 1'client 32: 'MidiSport 2x2' [type=kernel,card=4] 0 'MidiSport 2x2 MIDI 1' 1 'MidiSport 2x2 MIDI 2'client 128: 'Pure Data' [type=user,pid=22170] 3 'Pure Data Midi-Out 1'aseqdump -p 32shows a well-behaved midi data stream from my WX5.testone.pd however shows no midi input from any device.Can anyone help me to get that midi data into my patches?Best regards,/Paul-- Paul [Stephen] PignonThe DP Works HBSödra Jordbrovägen 177/II13762 JordbroSweden+46 729311141,[+46 705508655]
_______________________________________________
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list