Per tocar el controlador de vent EWI-USB normalment em connecto al portàtil. Faig córrer el fluidsynth o qualsevol altre soft synth. Per tant, la solució per practicar és EWI-USB + portàtil + auriculars. Existeix una solució més portable i autònoma? Definitivament sí utilitzant la Raspberry Pi, buscant una solució purament consola i totalment desatesa: enxufar i tocar. En aquesta ocasió no utilitzo JACK, és una solució purament ALSA. Es tracta d’instal·lar el fluidsynth, algun soundfont que soni bé i que no pesi massa, configurar l’usuari pi amb prioritat realtime, i desinstal·lar qualsevol servei que no hagi de fer servir.
Amb un script a /etc/udev/rules.d/ewiusb.rules aconseguim que en el moment que connecto el EWI-USB pel port USB s’executin les comandes que em permetran tocar automàticament: executar fluidsynth i connectar la sortida midi del EWI-USB a l’entrada midi del fluidsynth. He tingut bastants problemes per tal de no tenir latència, però el script que es dóna més avall a mi em funciona bé sense latència.
A més, amb una mica d’electrònica senzilla i utilitzant els pins GPIO es podria canviar fàcilment el programa midi i poder triar entre diferents instruments: saxo, midi, flauta,…
Una altra possibilitat, com es veu a la fotografia, és utilitzar un sinte hardware com ara el Roland JV-1010. Com que l’entrada del JV-1010 és purament midi es necessita un cable conversor USB2MIDI (per ex, http://www.amazon.com/dp/B0017H4EBG), que mostra els seus ports a ALSA. Amb aquesta solució no has de témer per la latència, és una magnífica experiència d’usuari, i podem triar entre centenars de sons.
/etc/udev/rules.d/ewiusb.rules
#/etc/udev/rules.d/ewiusb.rules
ACTION==”add”, SUBSYSTEMS==”usb”, ATTRS{product}==”EWI-USB”, RUN+=”/home/pi/ewiscript.sh”
/home/pi/ewiscript.sh
#!/bin/sh
#/home/pi/ewiscript.sh
#script que s’ha d’executar quan connectem el EWI-USB. Dos casos: a) synth hardware (roland); b) synth software (fluidsynth)#mirem si tenim connectat el cable usb-midi
if [ -z `/usr/bin/aconnect -iol | grep USB2.0-MIDI | awk ‘/client/{print $1}’` ]; then#no està connectat: b) synth software (fluidsynth)
if [ -z `pidof -s fluidsynth` ]; then
screen -d -m -S fluidsynth -t “fluidsynth” /usr/bin/fluidsynth -a alsa -m alsa_seq -g 1 -c 4 -z 256 -r 48000 /home/pi/Natural_Oboe.sf2
/bin/sleep 3
/usr/bin/amixer set Master 40%+ > /dev/null
/bin/sleep 2
FLUIDSYNTH=$(/usr/bin/aconnect -o -l | awk ‘/FLUID/{print $2.”0″}’)
/bin/sleep 2
#echo $FLUIDSYNTH
EWIUSB=$(/usr/bin/aconnect -o -l | awk ‘/client/’ | awk ‘/EWI-USB/{print $2.”0″}’)
/bin/sleep 2
/usr/bin/aconnect $EWIUSB $FLUIDSYNTH
/bin/sleep 2
fi
else
#a) synth hardware (roland)
USBMIDI=$(/usr/bin/aconnect -o -l | awk ‘/client/’ | awk ‘/USB2.0/{print $2.”0″}’)
/usr/bin/aconnect EWI-USB:0 $USBMIDI
/bin/sleep 2
fi
Més informació a la wiki