NOTA IMPORTANTE: questa guida e' pensata per l'uso esclusivo di JACK senza PipeWire. Se la vostra distribuzione viene con PipeWire gia' installato (es. Pop_OS!) fare riferimento alla pagina PipeWire perche' le istruzioni riportate sotto potrebbero non funzionare
Come faccio a sapere se la mia distribuzione usa nativamente PipeWire?
Debian: In teoria non usa nativamente PipeWire (almeno fino alla versione 11), e' possibile controllare se il pacchetto e' installato tramite il comandodpkg -l | grep pipewire
oppure se il server PipeWire sta girando tramite il comandopw-top
. Se non viene trovato il comandopw-top
, PipeWire non e' installato.
Arch: TODO
JACK (e il suo servizio, JACKD) è un server audio che ci permette di avere bassa latenza e molte funzionalità, ad esempio collegare più input/output e dispositivi MIDI.
Ovviamente l'applicazione che usiamo (es. Reaper) deve supportare JACK ma praticamente tutte i software di audio professionale lo supportano nativamente.
"Sotto il cofano" JACK si appoggia ad ALSA che fornisce i driver per dialogare con le periferiche audio.
Per le applicazioni che non lo supportano ci sono comunque delle possibilità come quella di usare dei sink dedicati di PulseAudio ma questo verrà trattato in una sezione separata.
Spesso lo troviamo già installato su distribuzioni specificamente orientate all'audio come Ubuntu Studio, altrimenti è possibile quasi sempre installarlo dal package manager della propria distribuzione.
E' possibile trovare molte informazioni nelle FAQ sul sito ufficiale di JACK.
L'intallazione su Debian e derivate è estremamente semplice:
sudo apt install jackd2
E' un'ottima idea installare anche il pacchetto qjackctl
che ci fornisce un comodo pannello di controllo per far partire/fermare il server JACK e il patchbay.
https://wiki.archlinux.org/title/JACK_Audio_Connection_Kit
Come dicevamo, con il programma qjackctl
possiamo fare praticamente tutto quello che ci serve per far funzionare JACK, tra cui far partire o fermare il server, configurarlo ecc.
Molte delle opzioni che possiamo configurare in QjackCtl come il buffer size, ecc le possiamo anche specificare direttamente in Reaper che si occupa di far partire il server JACK nel caso non sia già in esecuzione.
Lanciando quindi QjackCtl ci troviamo davanti a questa schermata:
Nel caso dopo aver lanciato l'applicazione non vedeste questa schermata è possibile che QjackCtl parta iconizzato. Nel caso cliccate sull'icona con il jack audio vicino all'orologio per portare il programma in primo piano.
La prima cosa da fare è cliccare sul bottone "Setup..." per impostare qualche opzione.
La più importante è ovviamente quale scheda usare per l'input/output audio, queste sono le mie opzioni (con la Behringer UMC 404HD):
Andando a modificare i Frames/Period e Periods/Buffer possiamo raggiungere una latenza e delle performance accettabili per i nostri scopi. Non sto qui a dire ovviamente quali sono i valori migliori perchè dipendono da moltissimi parametri ci sono già molte guide sull'argomento.
Chiudendo questa schermata possiamo far partire il server JACKD premendo sul tasto Start. Nel caso si fosse già avviato (ad es. all'avvio dell'applicazione QjackCtl) e avessimo modificato qualche opzione lo possiamo fermare e far ripartire (tasto Stop, tasto Start).
Avviando quindi Reaper come al solito possiamo usare JACK anzichè il default (ALSA) semplicemente dal menu Preferences -> Audio -> Device (Ctrl+p
)
Se non vogliamo ogni volta far partire JACK tramite QjackCtl prima di avviare Reaper possiamo anche fare in modo che sia Reaper stesso ad avviarlo. In questo caso, sempre nella stessa finestra delle preferenze selezioniamo la casella Auto-start jackd, launch command
.
E' possibile ovviamente lanciare JACKD con dei parametri custom (come ad esempio quale scheda usare o quanti frames/buffer impostare). Se volessimo farlo basterebbe scrivere nella casella di testo qualcosa del tipo:
/usr/bin/jackd -T -ndefault -v -dalsa -dhw:U192k -r480000 -p512 -n2 -Xseq
Questi sono parametri per la MIA scheda e i miei settaggi, nel vostro caso molto probabilmente vorrete personalizzare questa stringa...
Fare riferimento alla pagina di manuale di jackd per tutte le opzioni.
JACK consente di collegare in maniera molto flessibili input e output di varie applicazioni.
Ci sono vari client che consentono di fare connessioni tra i dispositivi, tra cui QjackCtl stesso (ma ce ne sono anche di più avanzati: vedere questa pagina)
Aprendo QjackCtl possiamo cliccare sul bottone Graph e visualizzare una schermata del genere:
In questo caso vediamo che ho i 4 input (da capture_1
a capture_4
) della mia Behringer collegati ai 4 input di Reaper (Reaper provvede automaticamente a creare il numero di input necessari, altrimenti nella schermata delle preferenze relative ai device audio è possibile specificare il numero esatto).
In rosso sono invece colorati i dispositivi MIDI: anche in questo caso sono collegati direttamente a Reaper.
Da Reaper quindi ho le varie uscite (da out1
a out4
) a loro volta collegate ai vari output della scheda audio.
Tutta questa configurazione è stata fatta automaticamete da QjackCtl/Reaper all'avvio, ma se ne avessi bisogno potrei scollegare/collegare tra loro come voglio i disposivi: basta selezionare gli input/output che voglio collegare/scollegare (tenere premuto CTRL per selezionarne più d'uno) e usare i due tasti in alto Connect/Disconnect.