JACK Scripting

De wikijoan
Salta a la navegació Salta a la cerca

Està ben explicat a

http://digitaldub.wordpress.com/2009/12/16/linux-audio-session-scripting/

(It also mentions LASH and LADI which could be of use for your purpose also.)

Hi ha la utilitat jack_connect

L'objectiu és tenir a l'inici de sessió que pugui utilitzar el piano per tocar amb un soundfont carregat, tot a través de JACK

Al final queda:

jack_fluid_vkeybd.sh

#!/bin/bash
#sempre el dispositiu és la tarja USB externa
#definit a /etc/modprobe.d/alsa-base.conf (options snd-usb-audio index=2)
#-t 2000 aquesta opció és important per no tenir problemes de zombified - calling shutdown handler. fluidsynth: error: Help! Lost the connection to the JACK server
#atenció! puc treballar sense -P si no hi ha el ratolí (problemes amb el USB del Dell Studio 17)
/usr/bin/jackd -t 2000 -dalsa -dhw:2,0 -r44100 -p256 -n2 -P &
sleep 6

#important l'opció -i, --no-shell: Don't read commands from the shell
#important l'opció -s, server process
/usr/bin/fluidsynth -s -i -a jack /home/joan/soundfonts/Unison.SF2 &
sleep 4

/usr/bin/vkeybd &
sleep 4

jack_connect fluidsynth:l_00  system:playback_1
jack_connect fluidsynth:r_00  system:playback_2
aconnect 'Virtual Keyboard':0 'FLUID Synth':0
# o bé aconnect Virtual\ Keyboard:0 FLUID\ Synth:0

#es pot depurar
#https://bbs.archlinux.org/viewtopic.php?id=75918

jack_fluid_vkeybd_kill.sh

#!/bin/bash
echo === atencio ===
echo "really quit? you have 3 seconds..."
sleep 3
echo "...killing session..."
killall -w vkeybd
killall fluidsynth
killall jackd
echo "...session dead."

Faltaria millorar la manera amb què es tanquen els processos. S'ha de ficar la Edirol en la comanda JACK. També he d'avariguar com es fa allò de què a l'Edirol se li assigni sempre el mateix número.

Finalment, ficar un enllaç directe en l'escriptori, i també es pot fer que s'executi en l'inici de sessió.