SlideShare a Scribd company logo
1 of 25
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
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...
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
Inter-connectivity e Intra-
connectivity
Inter-connectivity e Intra-
connectivity
● Inter-connettività
● Intra-connettività
connessioni tra applicativi differenti
connessioni tra moduli software
dello stesso applicativo
Jam-syncing virtualeJam-syncing virtuale
● Jam-syncing: cos’è ?
● Architetture Master/Slave in
Timecoding
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
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
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
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.
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.
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
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
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.
Configurazione di JACK con QjackCtl
(via GUI) (1)
Configurazione di JACK con QjackCtl
(via GUI) (1)
Configurazione di JACK con QjackCtl
(via GUI) (2)
Configurazione di JACK con QjackCtl
(via GUI) (2)
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
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
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
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
Get Started with JACK!
►PATCHBAY
Get Started with JACK!
►PATCHBAY
PATCHBAY
Configurazione delle Input e Output Socket → Mappatura della Patchbay
Get Started with JACK!
►CONNECTIONS
Get Started with JACK!
►CONNECTIONS
CONNECTIONS
Configurazione delle
connessioni tra i Client
Jack-aware
Get Started with JACK!
►CONNECTIONS
Get Started with JACK!
►CONNECTIONS
CONNECTIONS
Configurazione delle
connessioni tra i Client
Jack-aware
Any questions?Any questions?
RingraziamentiRingraziamenti
UN RINGRAZIAMENTO SPECIALE...
Osservatorio Astronomico di Capodimonte
NaLUG
Marco Ferrigno
Bibliografia e RiferimentiBibliografia e Riferimenti
[1] http://jackaudio.org/files/refman.pdf
[2] https://qjackctl.sourceforge.io/
[3] http://jackaudio.org/
[4] https://github.com/overtone/overtone/wiki/Installing-and-starting-jack
[5] https://wiki.linuxaudio.org
[1] http://jackaudio.org/files/refman.pdf
[2] https://qjackctl.sourceforge.io/
[3] http://jackaudio.org/
[4] https://github.com/overtone/overtone/wiki/Installing-and-starting-jack
[5] https://wiki.linuxaudio.org
RIFERIMENTI
Dott. Ing. Marcello Marino
Software Engineer / Audio Software Engineer
Hw/Sw Audio and Audio Encryption Independent Researcher
AES Italia Official Member
https://ingmarcellomarino.wordpress.com/
https://www.linkedin.com/in/marcello-marino-1262a0b5/

More Related Content

What's hot

Vgrd 830 td
Vgrd 830 tdVgrd 830 td
Vgrd 830 tdGpsLazio
 
Vsnc b5395 p-ok
Vsnc b5395 p-okVsnc b5395 p-ok
Vsnc b5395 p-okGpsLazio
 
Vgrd 1630 td
Vgrd 1630 tdVgrd 1630 td
Vgrd 1630 tdGpsLazio
 
Vsnc b2315 p-ok
Vsnc b2315 p-okVsnc b2315 p-ok
Vsnc b2315 p-okGpsLazio
 
Review4 u icd2 mplab pic programmer 2010-11-02
Review4 u icd2 mplab pic programmer   2010-11-02Review4 u icd2 mplab pic programmer   2010-11-02
Review4 u icd2 mplab pic programmer 2010-11-02Ionela
 
Vgrd 410 g
Vgrd 410 gVgrd 410 g
Vgrd 410 gGpsLazio
 
Vudvr8 cc(new)
Vudvr8 cc(new)Vudvr8 cc(new)
Vudvr8 cc(new)GpsLazio
 
Java & LEGO Mindstorms
Java & LEGO MindstormsJava & LEGO Mindstorms
Java & LEGO MindstormsStefano Sanna
 
Vgrd 1620 td
Vgrd 1620 tdVgrd 1620 td
Vgrd 1620 tdGpsLazio
 
Arduino wifi logger node
Arduino wifi logger nodeArduino wifi logger node
Arduino wifi logger nodeMirco Piccin
 
Delphi Day 2009 Win7 Dev Overview
Delphi Day 2009 Win7 Dev OverviewDelphi Day 2009 Win7 Dev Overview
Delphi Day 2009 Win7 Dev Overviewpietrobr
 
Arduino & Smartphone
Arduino & SmartphoneArduino & Smartphone
Arduino & Smartphonedega1999
 

What's hot (17)

Vgrd 830 td
Vgrd 830 tdVgrd 830 td
Vgrd 830 td
 
Vsnc b5395 p-ok
Vsnc b5395 p-okVsnc b5395 p-ok
Vsnc b5395 p-ok
 
Vudvr8 cc
Vudvr8 ccVudvr8 cc
Vudvr8 cc
 
Vgrd 1630 td
Vgrd 1630 tdVgrd 1630 td
Vgrd 1630 td
 
Vsnc b2315 p-ok
Vsnc b2315 p-okVsnc b2315 p-ok
Vsnc b2315 p-ok
 
Review4 u icd2 mplab pic programmer 2010-11-02
Review4 u icd2 mplab pic programmer   2010-11-02Review4 u icd2 mplab pic programmer   2010-11-02
Review4 u icd2 mplab pic programmer 2010-11-02
 
Vgrd 410 g
Vgrd 410 gVgrd 410 g
Vgrd 410 g
 
Vudvr8 cc(new)
Vudvr8 cc(new)Vudvr8 cc(new)
Vudvr8 cc(new)
 
Vgcn 130
Vgcn 130Vgcn 130
Vgcn 130
 
Java & LEGO Mindstorms
Java & LEGO MindstormsJava & LEGO Mindstorms
Java & LEGO Mindstorms
 
Vgrd 1620 td
Vgrd 1620 tdVgrd 1620 td
Vgrd 1620 td
 
Arduino wifi logger node
Arduino wifi logger nodeArduino wifi logger node
Arduino wifi logger node
 
Vudvr4 cc
Vudvr4 ccVudvr4 cc
Vudvr4 cc
 
Arduino&Raspberry
Arduino&RaspberryArduino&Raspberry
Arduino&Raspberry
 
Delphi Day 2009 Win7 Dev Overview
Delphi Day 2009 Win7 Dev OverviewDelphi Day 2009 Win7 Dev Overview
Delphi Day 2009 Win7 Dev Overview
 
Arduino & Smartphone
Arduino & SmartphoneArduino & Smartphone
Arduino & Smartphone
 
Vgcn 410
Vgcn 410Vgcn 410
Vgcn 410
 

Similar to JACK Audio Connection Kit

[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...Marcello Marino
 
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embeddedDaniele Costarella
 
Chakra_recensione
Chakra_recensioneChakra_recensione
Chakra_recensioneandreazube
 
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...Ionela
 
Chakra 2012.9 rec
Chakra 2012.9 recChakra 2012.9 rec
Chakra 2012.9 reckdekda
 
Microcontrollori
MicrocontrolloriMicrocontrollori
Microcontrollorisamu97
 
Deployment ripetibili e automatizzati con Salt
Deployment ripetibili e automatizzati con SaltDeployment ripetibili e automatizzati con Salt
Deployment ripetibili e automatizzati con Saltitbabu
 
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...Codemotion
 
Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...
Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...
Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...Matteo Baccan
 
EuComm
EuCommEuComm
EuCommiBLio
 
Mpc8308 rdb piattaforma di riferimento della freescale - recensione - 2010-10-26
Mpc8308 rdb piattaforma di riferimento della freescale - recensione - 2010-10-26Mpc8308 rdb piattaforma di riferimento della freescale - recensione - 2010-10-26
Mpc8308 rdb piattaforma di riferimento della freescale - recensione - 2010-10-26Ionela
 
Fpga il componente universale 2010-11-09
Fpga  il componente universale   2010-11-09Fpga  il componente universale   2010-11-09
Fpga il componente universale 2010-11-09Ionela
 
Corso live streaming sett 2013 lesson 3
Corso live streaming sett 2013 lesson 3 Corso live streaming sett 2013 lesson 3
Corso live streaming sett 2013 lesson 3 InSide Training
 

Similar to JACK Audio Connection Kit (20)

[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
 
DHow2 - L5
DHow2 - L5DHow2 - L5
DHow2 - L5
 
Openmoko
OpenmokoOpenmoko
Openmoko
 
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embedded
 
Chakra_recensione
Chakra_recensioneChakra_recensione
Chakra_recensione
 
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
 
Chakra 2012.9 rec
Chakra 2012.9 recChakra 2012.9 rec
Chakra 2012.9 rec
 
Microcontrollori
MicrocontrolloriMicrocontrollori
Microcontrollori
 
Assemblare un pc
Assemblare un pcAssemblare un pc
Assemblare un pc
 
Corso base hw e sw
Corso base   hw e swCorso base   hw e sw
Corso base hw e sw
 
Deployment ripetibili e automatizzati con Salt
Deployment ripetibili e automatizzati con SaltDeployment ripetibili e automatizzati con Salt
Deployment ripetibili e automatizzati con Salt
 
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...
 
Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...
Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...
Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...
 
Arduino primo v1
Arduino primo v1Arduino primo v1
Arduino primo v1
 
Lezioni 2009
Lezioni 2009Lezioni 2009
Lezioni 2009
 
EuComm
EuCommEuComm
EuComm
 
Mpc8308 rdb piattaforma di riferimento della freescale - recensione - 2010-10-26
Mpc8308 rdb piattaforma di riferimento della freescale - recensione - 2010-10-26Mpc8308 rdb piattaforma di riferimento della freescale - recensione - 2010-10-26
Mpc8308 rdb piattaforma di riferimento della freescale - recensione - 2010-10-26
 
Fpga il componente universale 2010-11-09
Fpga  il componente universale   2010-11-09Fpga  il componente universale   2010-11-09
Fpga il componente universale 2010-11-09
 
Corso live streaming sett 2013 lesson 3
Corso live streaming sett 2013 lesson 3 Corso live streaming sett 2013 lesson 3
Corso live streaming sett 2013 lesson 3
 
3DD 1e Christian B
3DD 1e Christian B3DD 1e Christian B
3DD 1e Christian B
 

More from NaLUG

Grid System
Grid SystemGrid System
Grid SystemNaLUG
 
Cyber Forensic
Cyber ForensicCyber Forensic
Cyber ForensicNaLUG
 
Digital Divide
Digital DivideDigital Divide
Digital DivideNaLUG
 
Drupal
DrupalDrupal
DrupalNaLUG
 
Digital Forensic
Digital ForensicDigital Forensic
Digital ForensicNaLUG
 
Open Source: strumento per l'e-democracy
Open Source: strumento per l'e-democracyOpen Source: strumento per l'e-democracy
Open Source: strumento per l'e-democracyNaLUG
 
OpenHardware : Arduino
OpenHardware : ArduinoOpenHardware : Arduino
OpenHardware : ArduinoNaLUG
 
Understanding Linux
Understanding LinuxUnderstanding Linux
Understanding LinuxNaLUG
 
Net Neutrality: HoBBIT
Net Neutrality: HoBBITNet Neutrality: HoBBIT
Net Neutrality: HoBBITNaLUG
 
Opensource per un Sistema Informativo Territoriale
Opensource per un Sistema Informativo TerritorialeOpensource per un Sistema Informativo Territoriale
Opensource per un Sistema Informativo TerritorialeNaLUG
 
Knomos
Knomos Knomos
Knomos NaLUG
 
App comunicazione comune di Napoli
App comunicazione comune di NapoliApp comunicazione comune di Napoli
App comunicazione comune di NapoliNaLUG
 
BISmark : the broadband internet service benchmark
BISmark : the broadband internet service benchmarkBISmark : the broadband internet service benchmark
BISmark : the broadband internet service benchmarkNaLUG
 
ClearOS
ClearOSClearOS
ClearOSNaLUG
 
Security and hacking Engineering
Security and hacking EngineeringSecurity and hacking Engineering
Security and hacking EngineeringNaLUG
 
Software libero at ENEA
Software libero at ENEASoftware libero at ENEA
Software libero at ENEANaLUG
 
Una nuova crittografia frattale: Crypt fna
Una nuova crittografia frattale: Crypt fnaUna nuova crittografia frattale: Crypt fna
Una nuova crittografia frattale: Crypt fnaNaLUG
 
ROS@Unina
ROS@Unina   ROS@Unina
ROS@Unina NaLUG
 
Python@Unina - Exercises
Python@Unina - ExercisesPython@Unina - Exercises
Python@Unina - ExercisesNaLUG
 
Python@Unina - Theory
Python@Unina - TheoryPython@Unina - Theory
Python@Unina - TheoryNaLUG
 

More from NaLUG (20)

Grid System
Grid SystemGrid System
Grid System
 
Cyber Forensic
Cyber ForensicCyber Forensic
Cyber Forensic
 
Digital Divide
Digital DivideDigital Divide
Digital Divide
 
Drupal
DrupalDrupal
Drupal
 
Digital Forensic
Digital ForensicDigital Forensic
Digital Forensic
 
Open Source: strumento per l'e-democracy
Open Source: strumento per l'e-democracyOpen Source: strumento per l'e-democracy
Open Source: strumento per l'e-democracy
 
OpenHardware : Arduino
OpenHardware : ArduinoOpenHardware : Arduino
OpenHardware : Arduino
 
Understanding Linux
Understanding LinuxUnderstanding Linux
Understanding Linux
 
Net Neutrality: HoBBIT
Net Neutrality: HoBBITNet Neutrality: HoBBIT
Net Neutrality: HoBBIT
 
Opensource per un Sistema Informativo Territoriale
Opensource per un Sistema Informativo TerritorialeOpensource per un Sistema Informativo Territoriale
Opensource per un Sistema Informativo Territoriale
 
Knomos
Knomos Knomos
Knomos
 
App comunicazione comune di Napoli
App comunicazione comune di NapoliApp comunicazione comune di Napoli
App comunicazione comune di Napoli
 
BISmark : the broadband internet service benchmark
BISmark : the broadband internet service benchmarkBISmark : the broadband internet service benchmark
BISmark : the broadband internet service benchmark
 
ClearOS
ClearOSClearOS
ClearOS
 
Security and hacking Engineering
Security and hacking EngineeringSecurity and hacking Engineering
Security and hacking Engineering
 
Software libero at ENEA
Software libero at ENEASoftware libero at ENEA
Software libero at ENEA
 
Una nuova crittografia frattale: Crypt fna
Una nuova crittografia frattale: Crypt fnaUna nuova crittografia frattale: Crypt fna
Una nuova crittografia frattale: Crypt fna
 
ROS@Unina
ROS@Unina   ROS@Unina
ROS@Unina
 
Python@Unina - Exercises
Python@Unina - ExercisesPython@Unina - Exercises
Python@Unina - Exercises
 
Python@Unina - Theory
Python@Unina - TheoryPython@Unina - Theory
Python@Unina - Theory
 

JACK Audio Connection Kit

  • 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
  • 4. Inter-connectivity e Intra- connectivity Inter-connectivity e Intra- connectivity ● Inter-connettività ● Intra-connettività connessioni tra applicativi differenti connessioni tra moduli software dello stesso applicativo
  • 5. Jam-syncing virtualeJam-syncing virtuale ● Jam-syncing: cos’è ? ● Architetture Master/Slave in Timecoding
  • 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
  • 24. RingraziamentiRingraziamenti UN RINGRAZIAMENTO SPECIALE... Osservatorio Astronomico di Capodimonte NaLUG Marco Ferrigno
  • 25. Bibliografia e RiferimentiBibliografia e Riferimenti [1] http://jackaudio.org/files/refman.pdf [2] https://qjackctl.sourceforge.io/ [3] http://jackaudio.org/ [4] https://github.com/overtone/overtone/wiki/Installing-and-starting-jack [5] https://wiki.linuxaudio.org [1] http://jackaudio.org/files/refman.pdf [2] https://qjackctl.sourceforge.io/ [3] http://jackaudio.org/ [4] https://github.com/overtone/overtone/wiki/Installing-and-starting-jack [5] https://wiki.linuxaudio.org RIFERIMENTI Dott. Ing. Marcello Marino Software Engineer / Audio Software Engineer Hw/Sw Audio and Audio Encryption Independent Researcher AES Italia Official Member https://ingmarcellomarino.wordpress.com/ https://www.linkedin.com/in/marcello-marino-1262a0b5/

Editor's Notes

  1. <numero>
  2. <numero>
  3. <numero>
  4. <numero>
  5. <numero>
  6. <numero>
  7. <numero>
  8. <numero>
  9. <numero>
  10. <numero>
  11. <numero>
  12. <numero>
  13. <numero>
  14. <numero>
  15. <numero>
  16. <numero>
  17. <numero>
  18. <numero>
  19. <numero>
  20. <numero>
  21. <numero>
  22. <numero>
  23. <numero>
  24. <numero>
  25. <numero>