1. JACK Audio Connection KitJACK Audio Connection Kit
LinuxDay Napoli 2018
Software Engineer / Audio Software Engineer
Hw/Sw Audio and Audio
Encryption Independent Researcher
AES Italia Official Member
a cura di Marcello Marino
2. IntroduzioneIntroduzione
OBIETTIVI DEL TALK
Capire cos'è realmente JACK Audio Connection Kit (e a capirci un po'
di più!)
Installare JACK in ambiente Linux Ubuntu (per venire incontro anche
ad utenti meno esperti)
Prendere confidenza con applicativi di gestione per Jack (QjackCtl)
Comprendere le potenzialità e le funzionalità principali di JACK
Convincere i Sound Engineers e tutti coloro che fanno dell'Home
Recording la loro passione, che esistono strumenti OpenSource capaci
di aiutare realmente la loro attività artistica senza vendersi la propria
macchina e la propria casa...
3. Perché sono cosi forti:
● JACK è un Audio Deamon Server
● Cosa possiamo fare con JACK?
q Controllo impostazioni audio e connessioni MIDI esterne
q Scelta interfaccia audio, frequenza di campionamento, dimensione
del buffer e i periodi
q Monitoraggio e acquisizione a bassa latenza (Low-latency)
q Collegamento tra dispositivi e applicativi
q Inter-connettività e Intra-connettività
q Jam-syncing virtuale
●
JACK OverviewJACK Overview
6. Applicativi «Jack-aware» e
controllo e gestione di Jack
Applicativi «Jack-aware» e
controllo e gestione di Jack
● Applicativi «Jack-aware»: cosa sono e come si classificano?
● Server-oriented
● Client-oriented
● Quando e perché usare gli uni o gli altri?
● Esempi di connessione tramite JACK
Routing D2D (DAW to DAW)
Routing su differenti Ouput Speakers
Sincronizzazione tramite Common Time-master
JACK e XJADEO
7. Applicativi «Jack-aware»
controllo e gestione di Jack
Applicativi «Jack-aware»
controllo e gestione di Jack
● Applicativi «Jack-aware» di uso comune
QjackCtl
Cadence
Patchage
CATIA
8. Audio Software Engineering:
Knowledge-Base (1)
Audio Software Engineering:
Knowledge-Base (1)
Alcuni importanti concetti da tenere sempre a mente quando si
trattano applicativi audio software:
1. Dimensione del Buffer
È il registro nel quale cui vengono depositati i campioni affinché possano essere elaborati.
Dimensioni di buffer più piccole generano latenze minori (perché minore è la quantità di dati
elaborata). Aumentare il buffer, significa aumentare il numero di bit campione, guadagnando
in risoluzione ma richiedendo più effort alla CPU.
2. Frequenza di Campionamento
È la frequenza a cui vogliamo che vengano “eseguiti” i nostri campioni.
•xruns Errors
9. Audio Software Engineering:
Knowledge-Base (2)
Audio Software Engineering:
Knowledge-Base (2)
3. Periods/Buffer o FramePeriod/Buffer
singolo campione che “sta suonando”.
È misurato generalmente in bytes
44.1kHz / 16 bit PCM FP = 4 bytes
51.48 kHz / 16 bit PCM FP = 12 bytes
Indica il numero di campioni che vengono spostati nel buffer di lettura. Se si utilizzano
dispositivi USB possiamo impostarla anche che a 3 FP Streaming. In caso contrario,
possiamo usare utilizzeremo una configurazione standard a 2 FP Streaming.
10. Installazione di JACK (via Shell) (1)Installazione di JACK (via Shell) (1)
Prerequisiti
Installazione standard con utilizzo di sistema Linux Ubuntu
Installazione prevede la configurazione iniziale di Qjckctl
Utilizzeremo la shell per effettuare i settaggi iniziali di JACK per due motivi:
1. Maggiore controllo per le configurazioni dei drivers ALSA/PULSE
2. Maggiore controllo nelle fasi di installazione
Installazione
Per installare JACK, basterà digitare il comando sudo:
sudo apt-get install jack-tools ant openjdk-6-jdk fftw3 qjackctl
Alcune raccomandazioni sul Kernel:
Per ottenere prestazioni ottimali è necessario avere un Kernel abilitato in real-time
(kernel rt mode) per l’elaborazione coerente dei dati degli audio stream in
processing o per la configurazione di strumenti musicali esterni
Per i possessori di Ubuntu, Ubuntu studio vi permetterà di configurare facilmente il
supporto real-time per le applicazioni.
11. Installazione di JACK (via Shell) (2)Installazione di JACK (via Shell) (2)
Jack On Boot
Per avviare JACK possiamo digitare il comando
jackd -r -d alsa -r 44100
Nota per gli utenti Fedora: per lanciare JACK c’è bisogno del comando di installazione del
pacchetto JACK:
jack-audio-connection-kit-example-clients
jack_ls
Controllo dei drivers di PulseAudio
JACK necessita di alcuni moduli di PulseAudio, pertanto potrebbe essere utile sapere se PulseAudio
contiene i moduli per il servizio jackd. Per farlo digitiamo a linea di comando la lista dei moduli di
PulseAudio installati. Digitiamo pertanto:
aptitude search pulseaudio
Dovremmo accertarci di avere i due moduli software jack e jack-dbg digitando il comando:
pulseaudio-module-jack
pulseaudio-module-jack-dbg
12. Installazione di JACK (via Shell) (3)Installazione di JACK (via Shell) (3)
Loading statico di jack-sink e jack-source
1. jack-sink : modulo utilizzato per la sincronizzazione degli applicativi "Jack-aware"
2. jack-source: utilizzato per il collegamento di sorgenti esterne
Aprite, come sudo, il file al path /etc/pulse/default.pa e sotto la sezione:
### Load audio Drivers statically
Se non presenti, aggiungete le righe e riavviate il sistema.
load-module module-jack-sink
load-module module-jack-source
13. Installazione di JACK (via Shell) (4)Installazione di JACK (via Shell) (4)
Audio Control Panel
Aprendo le configurazioni
Audio potete ora
beneficiare dell’ausilio di
JACK per la riproduzione
e la registrazione.
14. Configurazione di JACK con QjackCtl
(via GUI) (1)
Configurazione di JACK con QjackCtl
(via GUI) (1)
15. Configurazione di JACK con QjackCtl
(via GUI) (2)
Configurazione di JACK con QjackCtl
(via GUI) (2)
16. Configurazione di JACK con QjackCtl
(via GUI) (3)
Configurazione di JACK con QjackCtl
(via GUI) (3)
PRESET (Azzurro)
Ci permette “congelare” il pannello delle configurazioni globali di JACK e quindi generare delle
configurazioni personali con i nostri settings.
PARAMETERS (Rosso)
Viene identificato nel preset name il servizio da avviare ((preimpostato). Il servizio jackd può essere
ovviamente “riscritto” e riconfigurato. Inoltre, possiamo scegliere quali driver saranno utilizzati da
JACK (preimpostato ALSA ma nulla vieta di installare e utilizzare altri Soft driver).
RUNNING MODE SETTINGS (Grigio)
È il pannello di configurazione di Running Mode di JACK:
Realtime
No Memory Lock
Unlock Memory
Softmode
Monitor
Force 16 bit
17. Configurazione di JACK con QjackCtl
(via GUI) (4)
Configurazione di JACK con QjackCtl
(via GUI) (4)
(RUNNING MODE SETTINGS)
H/W Monitor
H/W Meter
Verbose Message
SOFTWARE AUDIO CORE (Verde)
Priority
Frame/Period
Sample Rate
Period/Buffer
Wordlength
Channels
Port Maximum
Timeout
18. Configurazione di JACK con QjackCtl
(via GUI) (5)
Configurazione di JACK con QjackCtl
(via GUI) (5)
BACK-END SETTINGS (Blu)
Interface
Dither
Audio
Input/Output Device
Channels I/O
Latency I/O
MIDI Driver
19. Get Started with JACK! (1)Get Started with JACK! (1)
3-WAY CONFIG
1.PATCHBAY
Configurazione delle Input e Output Socket → Mappature della Patchbay
2. CONNECTIONS
Configurazione delle connessioni tra i Client Jack-aware
3.MESSAGES
Configurazione del monitoraggio e dei console Log
20. Get Started with JACK!
►PATCHBAY
Get Started with JACK!
►PATCHBAY
PATCHBAY
Configurazione delle Input e Output Socket → Mappatura della Patchbay
21. Get Started with JACK!
►CONNECTIONS
Get Started with JACK!
►CONNECTIONS
CONNECTIONS
Configurazione delle
connessioni tra i Client
Jack-aware
22. Get Started with JACK!
►CONNECTIONS
Get Started with JACK!
►CONNECTIONS
CONNECTIONS
Configurazione delle
connessioni tra i Client
Jack-aware