An introduction to Audio Networking with a case-study about Linux Driver developed by Merging Technologies to connect Linux Hosts upon Audio Networks AES67/Ravenna-based.
1. A cura di Marcello Marino
MT’s ALSA Driver Ravenna/AES67:
Audio contribution Over Ethernet
LinuxDay Napoli 2019
Software Engineer / Audio Software Engineer
AES Italia Official Member
2. Introduzione all’Audio Networking
● Che cos’è l’Audio Networking?
● Trasmissione o “contribution” su Audio Networks
1. Audio Contribution Over IP (AOIP)
2. Audio Contribution Over Ethernet (AOE)
3. Perché sono cosi forti:
LIVELLO 1
I Protocolli dell’Audio Networking (L1)
Standard aperti
● AES50
● MaGIC di Gibson
Proprietari
● SuperMAC , un'implementazione di AES50
● HyperMAC, una variante Gigabit Ethernet di SuperMAC
● A-Net di Aviom
● AudioRail
● ULTRANET By Behringer
STACK ISO/OSI
4. Perché sono cosi forti:
LIVELLO 2
I Protocolli dell’Audio Networking (L2)
Standard aperti
● AES51
● Audio Video Bridging (AVB)
Proprietari
● CobraNet
- RAVE di QSC Audio , un'implementazione di CobraNet
● EtherSound di Digigram
- NetCIRA, EtherSound rinominato da Fostex
● Sneak REAC e RSS di Roland
● SoundGrid di Waves Audio
● dSNAKE di Allen & Heath
STACK ISO/OSI
5. Perché sono cosi forti:
LIVELLO 3
I Protocolli dell’Audio Networking (L3)
Standard aperti
● AES67 sviluppato dalla Audio Engineering Society
● NetJack infrastruttura di rete per JACK
● RAVENNA di ALC Network
Proprietari
● LiveWire di Axia Audio (divisione di Telos Systems)
● Dante di Audinate
● Q-LAN
● WheatNet-IP di WheatStone Corporation
STACK ISO/OSI
6. Perché sono cosi forti:AUDINATE DANTE™
● Adan Williams ex-ricercatore per la Motorola, dopo la chiusura della struttura di Ricerca a
Sidney nel 2003 decise di assemblare un team per lo sviluppo di un protocollo per le
audio networks con i fondi del NICTA (National Information and Communication
Technology Australia)
● Nel 2006 fonda la società Audinate Pty Ltd. il cui prodotto commerciale viene presentato
come Dante, una tecnologia che combina hardware e software creando in un’unica
infrastruttura protocollare in contrapposizione a CobraNet (1996) e EtherSound (2001),
prima di allora first-generation tra i protocolli di rete per i dati audio.
● Prima tecnologia AOE Layer-3 sviluppata per trasmettere su LAN dati audio non
compressi (192kHz /32 bits) , multi-canale (1024 canali), a bassa latenza (150
microsecondi)
7. Perché sono cosi forti:RAVENNA
● Nel 2010, viene presentato alla International Broadcasting Convention di Amsterdam dalla
società ALC NetworX (ex Lawo) , in contrapposizione a Dante (non a caso il suo nome deriva
dalla omonima città in cui Dante fu sepolto) da un gruppo di sviluppatori con la passione per
l’Audio Broadcasting.
● Ravenna si presenta come un protocollo aperto over Ethernet Layer-3 progettato con lo scopo di unificare e risolvere le
esigenze delle trasmissioni broadcast in bassa latenze e di trasparenza di segnale per le radio-emittenti, per gli eventi dal vivo e
per i collegamenti inter-studio su ampia area geografica. Non ha bisogno di hardware dedicato, si appoggia infatti a dispositivi
compatibili con AES67.
● Utilizza standard IEEE come PTP per il clock and il QoS per il Data traffic Managment
● È Open, non ha una licenza proprietaria. Le specifiche tecniche sono infatti pubbliche e accessibili.
● È stato adottata da società Genelec, Merging Technologies e Neumann per la progettazione di dispositivi di riproduzione e
impianti per “audio-reti”
8. Perché sono cosi forti:AES67: il Peacemaker...
● Presentato e pubblicato ufficialmente nel Settembre 2013 come
protocollo standard di comunicazione high-performance
overIP/overEthernet Layer-3 per le reti audio
● Sviluppato dall’Audio Engineering Society per creare
interoperabilità tra le tecnologie Ravenna, LiveWire Q-SYS,
Dante, CobraNet, EtherSound.
● Si afferma positivamente quando viene utilizzato dalla società
Audinate e accettato anche dai meccanismi di controllo del
protocollo Dante.
● Nel 2018 viene pubblicato l’AES67-2018 , che contiene il PICS (Protocol Implementation Conformance Statement) ossia la
dichiarazione di conformità dell’implementazione del protocollo.
● Oggi è in sviluppo una versione chiamata AES70, che presenta notevoli progressi sul controllo dei segnali di sincronizzazione
(si va verso delle OCA - Open Control Architecture)
9. Perché sono cosi forti:MERGING TECHNOLOGIES: Linux Driver RAVENNA/AES67
● Nel 2019 la Merging Technologies annuncia sul proprio portale di aver realizzato una
Virtual Sound Card sotto licenza GNU/GPL
● Non solo…. ne distribuisce il repository su Bitbucket per permettere agli sviluppatori di
condividere, modificare e migliorare il codice del driver per le varie distribuzioni..
→ https://bitbucket.org/MergingTechnologies/ravenna-alsa-lkm/src/master/
10. Perché sono cosi forti:Compilazione e configurazione del LKM e del Butler (1)
● Scarichiamo il sorgente tramite shell
admim$ git clone
https://bitbucket.org/MergingTechnologies/ravenna-alsa-lkm.git
● Compiliamo tramie il comando make
cd ravenna-alsa-lkm/driver make
● Aggiungiamo il LKM al Kernel con il comando
sudo su cp MergingRavennaALSA.ko /lib/modules/$(uname -r)/kernel/drivers
● Rendiamolo disponibile per il sistema all’avvio (opzionale) inserendolo tra i moduli di etc
sudo insmod MergingRavennaALSA.ko
● Rimappiamo nuovamentei moduli con il comando
sudo depmod
● Andiamo nella directory del Butler e lanciamo il deamon Butler con grant user/file
cd ravenna-alsa-lkm/Butler chmod u+x Merging_RAVENNA_Daemon
./Merging_RAVENNA_Daemon -d
11. Perché sono cosi forti:Compilazione e configurazione del LKM e del Butler (2)
● Configurazione dei parametri per il Butler
Il Butler ha un file di configurazione: merging_ravenna_daemon.conf
Alcuni parametri
(interface_name ,device_name ,web_app_port ,web_app_port ,tic_frame_size_at_1fs etc) devono
essere correttamente settati prima di lanciare il deamon
● Configurazione del Firewall
La presenza di un Firewall può impedire il lancio del deamon. Bisogna assicurarsi che
le seguenti porte siano settate (i valori sono valori corretti, nulla vieta di sceglierne altri)
Porta TCP del WebServer…………………………: 9090
Porta UDP del mDNS……………………………….: 5353
Porta UDP del AES67 Discovery………………….: 9875
12. Perché sono cosi forti:La Fase Finale: il “SoundCheck”
● Previa verifica che i moduli ALSA siano tutti configurati e funzionanti, possiamo
monitorare che la nostra Audio Network funzioni correttamente utilizzando i comandi
ALSA:
// Invia rumore rosa sui canali collegati verso gli speakers (-c 2:=Stereo)
speaker-test -D plughw:RAVENNA -r 48000 -c 2
// Riproduce un file wav specificato
aplay -D hw:1,0 -t wav -r 48000 *.wav
// Esegue una registrazione dal primo ingresso microfonico disponibile
arecord -D hw:1,0 -f dat -d 1 -t wav filename.wav
// Crea un loopback PCM tra i dispositivi di playback e capture (*
va
modificato a seconda dell’identificativo hw)
alsaloop -P hw:1,0 -C hw:1,0*
-r 48000 -f S16_LE -l 1 -S 0
13. Perché sono cosi forti:OVERVIEW (1)
● MergingRavennaALSA.ko (LKM) → GNU GPL License
È il Linux Kernel Module File. Un modulo di un kernel va compilato e aggiunto ai moduli del
Kernel. Si occupa di:
1. Inviare e ricevere i pacchetti audio tramite specifiche del RTP (Real-time Protocol)
2. Scandire i tempi di invio e generare il ciclo di interruzioni hardware
3. Creare una comunicazione (Netlinking) tra il Butler e il Kernel per gli audio streams
● Merging_Ravenna_Deamon (Butler) → OEM / EULA License
È il deamon (“sentinella”) che scandisce la comunicazione e la corretta configurazione tra il
sistema operativo, l’applicazione e l’invio dei dati sulla rete LAN. È responsabile:
1. Collegamento/Riconoscimento degli hosts tramite mDNS Discovery (Multicast DNS) e
SAP Discovery (Session Announcement Protocol)
2. Monitoraggio e gestione della frequenza di campionamento in base ai dispositivi
collegati sulla rete
3. Operazioni tramite interfaccia Web
4. Controllo remoto del volume
14. Perché sono cosi forti:OVERVIEW (2)
Butler
|-- /webapp
|-- Merging_RAVENNA_Daemon
|-- merging_ravenna_daemon.conf
Common
Contiene le librerie necessarie al Butler e al
Driver per funzionare tra cui
MTAL_IPC.c
MTAL_IPC.h
gestori dell’Inter-Process Communication.
“MTAL” sta per MuTex Audio Locker
fondamentale per la gestione delle risorse
nella memoria condivisa.
15. Perché sono cosi forti:OVERVIEW (2)
Players
È la directory che rappresenta il campo in cui
si muoveranno i “giocatori” ossia i processi.
Infatti inizializza un pthread che a sua volta
chiama il metodo run(), che farà girare il
driver.
19. Perché sono cosi forti:Perché scegliere l’AN con «eco-sistemi» Linux?
1. Utilizzando delle tecnologie software Open, si
abbattono i costi relativi ai software utilizzati
in ambito di Audio recordings ed Audio
Broadcasting
2. Mettendo in connessione sistemi Linux-based
è possibile creare un’infrastruttura di rete
completamente Open e quindi Eco-sistemi
audio totalmente customizzabili.
3. Le comunità di sviluppatori «liberi» per l’audio
potrebbero permettere una interconnessione
più “interattiva” e continuamente editabile,
aggiornabile e modificabile.
20. Perché sono cosi forti:RINGRAZIAMENTI
Riferimenti Bibliografici
● https://www.merging.com/products/alsa_ravenna_aes67_driver#downloads
● https://www.ravenna-network.com/adopting-ravenna/oem-solutions/#software
● https://www.ravenna-network.com/aes67/why-was-aes67-developed/
● http://www.audiosonica.com/it/audiolinux/post/16883/Ravenna_Virtual_Soundcard_per_Linux#installazione
● http://www.aes.org/tmpFiles/aessc/20191021/aes67-2018-i.pdf
● https://bitbucket.org/MergingTechnologies/ravenna-alsa-lkm/src/master/
● Tutti gli schemi sono stati realizzati completamente con la WebApp Online https://creately.com/
UN RINGRAZIAMENTO AL NALUG PER LO SLOT
E
A VOI TUTTI PER L’ASCOLTO!