SonoBus

Introduzione

SonoBus è una soluzione peer-to-peer (punto punto) open source gratuita, elegante, multipiattaforma che consente a più utenti a distanza di condividere l'audio insieme in tempo reale con la massima qualità possibile e la minore latenza possibile su Internet.

SonoBus ti offre il controllo completo della qualità di trasmissione e ricezione audio per utente. Include anche effetti audio incorporati opzionali (compressione, noise gate, equalizzazione) per ottimizzare sia la qualità e il livello dell'audio che trasmetti, sia quello che ricevi (master mix reverb).

Il programma include controlli di livello e mute individuali per ogni musicista nella sessione. Ha anche la capacità di mixare un file audio insieme alla tua riproduzione dal vivo e inviare il flusso misto a tutti gli altri nella sessione. Funzionalità aggiuntive includono la possibilità di registrare l'intera sessione su disco, incluso il supporto multitraccia.

È possibile un controllo granulare della latenza per utente attraverso il controllo manuale o automatico del "jitter buffer", utilizzato per ridurre al minimo le interruzioni dovute al jitter (il significato del termine verrà spiegato in seguito) della temporizzazione dei pacchetti di rete. I musicisti possono ottimizzare le impostazioni del jitter buffer per la minore latenza possibile o la massima qualità (occorre sempre bilanciare queste impostazioni tra qualità e latenza).

SonoBus attualmente NON utilizza alcuna crittografia per la comunicazione dei dati.

Sebbene sia molto improbabile che venga intercettato, occorre comunque saperlo.

Tutto l'audio viene inviato direttamente tra gli utenti peer-to-peer.

Il server di connessione viene utilizzato solo in modo che gli utenti di un gruppo possano trovarsi a vicenda in base al nome della sessione.

La versione iniziale di SonoBus fornisce il software già pronto da utilizzare per le piattaforme Windows, Mac e iOS (Beta).

Gli utilizzatori di Linux possono creare il pacchetto software utilizzando il codice sorgente ospitato su GitHub (Occorre avere una minima conoscenza della programmazione).

SonoBus funziona sia come applicazione standalone che come plug-in DAW audio (VST / AAX su Windows, VST / AU / AAX su Mac).

Ad esempio, dopo aver installato SonoBus, gli utenti Open Broadcaster Software (OBS) troveranno un nuovo "filtro" elencato: "SonoBus VST 2.x Plug-in".

In OBS, aggiungendo questo filtro a una "fonte" esistente, la "fonte" viene modificata nell'input locale di un'istanza del software SonoBus, a cui puoi aggiungere i tuoi amici in posizioni remote! Vedere l'Appendice C per ulteriori informazioni.

Dove scaricare il software

I download dei programma e un collegamento al repository del codice sorgente di GitHub per tutte le piattaforme si trovano su: https://sonobus.net

Cosa ti serve per iniziare

Un laptop o un computer desktop che esegue il sistema operativo Apple Mac o Windows. Il software SonoBus è il primo software di questo genere ad essere disponibile per iOS, quindi è possibile utilizzare anche un iPhone o un iPad con Apple iOS 11 o versioni successive.

Windows 7, Windows 8 e Windows 10 funzionano bene con SonoBus.

Da tenere in considerazione che occorre anche un PC piuttosto performante (per quanto riguarda windows, memoria RAM 8-16Gb e disco SSD se si vogliono registrare le sessioni).

SonoBus dovrebbe funzionare anche su Linux con una varietà di piattaforme hardware.

Una copia installata del software SonoBus Mac, Windows o iOS (i client Linux possono essere creati dal codice sorgente, ma non sono ancora disponibili pacchetti già pronti da installare). Scarica e installa la versione appropriata di SonoBus dal sito https://sonobus.net

FORTEMENTE consigliato: un cavo Ethernet e / o adattatori per collegare il computer al router o al modem via cavo. Il WiFi funziona, ma è un ulteriore livello di sequenziamento dei pacchetti e aggiunge sempre molto jitter, richiedendo maggiori dimensioni del buffer. SonoBus consiglia vivamente il collegamento tramite Ethernet.

Consigliato: cuffie o auricolari cablati. Le cuffie Bluetooth non funzioneranno a causa del ritardo aggiuntivo (fino a 250 ms) insito nell'audio Bluetooth. Le cuffie con isolamento acustico sono le migliori. Senza le cuffie, gli altri musicisti sentiranno un'eco irritante dagli altoparlanti che tornerà al tuo microfono (se ne stai usando uno).

Se sei su Windows, si consiglia VIVAMENTE di utilizzare l'opzione driver ASIO, sia con il driver ASIO che funziona con la tua interfaccia audio, sia installando ASIO4ALL per il tuo audio integrato o qualsiasi cosa che non abbia un driver ASIO proprio. Vedi anche Risorse correlate di seguito.

Se possibile, impostare le opzioni dell'alimentazione del sistema su "Prestazioni elevate", in particolare se si utilizza un dispositivo laptop (portatile). Ciò ridurrà la possibilità che la limitazione della CPU e / o la sospensione automatica del dispositivo USB interferiscano con il flusso regolare dell'audio.

La tua esperienza potrebbe variare. A volte la configurazione è molto frustrante, ma è per questo che stiamo scrivendo questo documento: per aiutarti a iniziare.

SonoBus potrebbe non funzionare bene se la tua connessione Internet non è abbastanza veloce o se c'è molto traffico su Internet, durante la cosiddetta "Internet Rush Hour" ovvero l'ora di punta (solitamente nelle ore serali). Prova in un altro momento in cui c'è meno traffico Internet.

Suggerimento (un po' tecnico... ): A volte puoi aiutare le cose aggiungendo le impostazioni di port forwarding sul tuo router Internet di casa, o il modem DSL o via cavo può aiutare, ma questo va oltre lo scopo di questo documento.

Informazioni sulla latenza

Anzitutto cos'è la latenza? E' il ritardo che c'è tra l'invio di un segnale e la sua ricezione. Viene espresso in millisecondi.

Quindi minore è la latenza, migliore è l'esperienza musicale condivisa !

Quanta latenza è troppa? La maggior parte degli esperti concorda sul fatto che la latenza di 40 millisecondi (ms) è circa il limite massimo per la musica e che 25 ms è abbastanza piccolo da essere "abbastanza buono". Si noti che questi sono numeri di latenza unidirezionali, SonoBus riporta sia stime di andata e ritorno che stime di sola andata in entrambe le direzioni.

Esistono tre principali fonti di latenza:

  1. Il ritardo nell'attrezzatura audio del computer e nel buffering del campione del driver del dispositivo

  2. Ritardo nella configurazione del software del computer necessario per attenuare il jitter della rete

  3. Ritardo nelle connessioni di rete tra te e gli altri partecipanti

La parte di questa latenza totale su cui hai il controllo più semplice è il ritardo nell'attrezzatura audio del tuo computer. Alcuni laptop dispongono di un hardware audio interno sufficientemente buono, ma in molti casi l'hardware audio interno e il software del driver aggiungono troppo ritardo e un'interfaccia audio digitale esterna e un microfono elaboreranno il suono con minore latenza e qualità superiore.

Vedere l'Appendice A per i dettagli.

Iniziamo

Con le applicazioni audio come SonoBus, è necessario autorizzare il sistema operativo ad utilizzare il microfono.

Quando l'app si avvia per la prima volta, il tuo sistema operativo chiederà se consentire l'ingresso audio, quindi rispondi "sì".

Se hai risposto accidentalmente "No" a questa domanda, puoi aggiungere l'autorizzazione necessaria seguendo le istruzioni qui:

Alla prima esecuzione di SonoBus, devi anche scegliere i dispositivi di ingresso e uscita che desideri utilizzare. Fare clic sul pulsante "Setup Audio". Su Windows, scegli il tuo driver ASIO.

È inoltre necessario selezionare i canali di ingresso attivi e di uscita attivi che si desidera utilizzare dalla finestra di dialogo visualizzata. Selezionare un dispositivo microfono per l'ingresso e un dispositivo per cuffie per l'uscita. Se hai solo una sorgente di ingresso mono (come un microfono), puoi deselezionare qualsiasi altro ingresso in modo che venga selezionato solo quello per il tuo microfono, il che ridurrà il numero di dati da inviare. Se stai utilizzando sia un microfono che uno strumento e preferiresti averli centrati quando vengono inviati ad altri, puoi selezionare i loro due ingressi e anche scegliere come spostarli sui canali sinistro e destro. Vedi il pulsante "Panoramica" (Pan) nella parte superiore della finestra principale per regolare questa impostazione.

Puoi scegliere una frequenza di campionamento. Si consiglia 48000 Hz, ma funzionerà anche 44100 Hz. I diversi partecipanti con cui ti connetti NON devono avere la stessa impostazione qui, l'audio verrà rielaborato se necessario in modo automatico.

Scegli una dimensione del buffer audio per il tuo output. Questo imposterà una linea di base per la latenza audio inviata. Più basso è il valore scelto, minore è la latenza di invio, ma a un costo di maggiore elaborazione e pacchetti di rete aggiuntivi. In genere, scegliere 256 è sicuro, ma per una latenza inferiore, utilizzare 128 campioni. Si può abbassare ulteriormente questo valorese il tuo hardware lo supporta, ma non sarà di grande beneficio a meno che non utilizzi una delle opzioni di qualità di invio PCM non compresso, che può utilizzare le dimensioni del buffer più piccole. Ulteriori informazioni su questo argomento nella sezione "Formato e qualità di invio" di seguito. Molti utenti utilizzano con successo un impostazione di 64 campioni. Se si sente un "crepitio" nel proprio audio monitorato a valori di dimensione del buffer molto bassi, aumentare la dimensione del buffer di output. Su Windows in particolare con interfacce audio USB, quando si desidera ottenere la latenza minima utilizzando la qualità di invio PCM, sono stati riportati dei casi in cui l'utilizzo di una frequenza di campionamento di 48000 Hz insieme a una dimensione del buffer audio divisibile esattamente per 1 ms, come 48, 96, 144 o 192 campioni, può produrre risultati più stabili.

Se vedi una barra gialla nella parte superiore che dice che il tuo ingresso audio è disattivato per evitare il feedback, puoi premere il pulsante in alto a destra per riattivare l'ingresso. Se stai usando un ingresso per microfono, avrai BISOGNO di cuffie, quindi assicurati di collegarle prima di riattivare il tuo ingresso.

Collegamento con altri partecipanti

Un po' di fisica (perché non posso fare jam con il mio amico a Sydney)

Sebbene le nostre tecnologie possano fare cose sorprendenti, è importante accettare alcuni limiti fisici. Anche se tutte le apparecchiature Internet attraverso cui passa il tuo audio fossero in grado di funzionare senza tempi di elaborazione, la velocità della luce (circa 300.000 km al secondo) significa che un suono riprodotto ad esempio da San Diego, CA viaggerebbe a Sydney, in Australia, un viaggio di 12.000 km, in 0,040 secondi (40 ms). Per fare un confronto, considera una sessione di persona, in cui lo stesso suono viaggia a 330m al secondo (la velocità del suono nell'aria). Quel ritardo di 40 ms sarebbe l'equivalente di suonare con qualcuno seduto a 13 metri di distanza! - appena tollerabile!

Ma i date e le apparecchiature Internet tra i vari partecipanti non funzionano sicuramente senza intoppi, quindi il limite pratico è probabilmente più vicino ai 1.000 km circa.

Inoltre, esistono limitazioni dovute all'elaborazione del dispositivo di ciascun utente e alla velocità di rete, nonché all'hardware della connessione Internet e alla larghezza di banda del servizio Internet. Non aspettarti di poter aggiungere un numero illimitato di partecipanti: con le tecnologie odierne (2020), il limite pratico è forse una dozzina di partecipanti.

È improbabile che un coro di 25 membri possa creare una sessione musicale con successo.

Con chi connettersi

SonoBus è destinato a persone che hanno già un gruppo che desidera scambiare audio in tempo reale tramite Internet. A differenza di altre soluzioni, SonoBus non sta tentando di creare un elenco di clienti per concerti a pagamento o abbonamenti a servizi e non fornisce alcun elenco pubblico di utenti in cui estranei possono cercare di "connettersi".

Tuttavia, a partire dalla versione 1.3.0, nella finestra Connetti vedrai le schede sia per i gruppi privati ​​che per i gruppi pubblici. (Vedi sotto)

Alcuni utenti SonoBus hanno impostato un "server" sull'applicazione Discord e lo hanno denominato "SonoBus Jammers".

Ecco il collegamento: https://discord.gg/wm28tQdYTb .

Tra le altre funzionalità di comunicazione, Discord ti consente di scambiare messaggi di testo e organizzarli in "canali".

"SonoBus Jammers" dispone di diversi "canali" regionali in cui è possibile cercare persone con cui connettersi.

Su Facebook esiste un gruppo utenti ufficiale SonoBus , in cui gli utenti possono trovare risposte a molte domande comuni e porre nuove domande.

Come connettere

Fare clic sul pulsante "Connetti ..." per iniziare.

Dalla versione 1.3.0 esistono due tipi di gruppi: privato e pubblico. Se desideri controllare con chi comunichi, utilizza la funzione Gruppi privati ​​perché solo le persone che conoscono il nome del gruppo (e facoltativamente la password) potranno connettersi con te.

Se, invece, vuoi provare a riprodurre musica con partecipanti sconosciuti, puoi provare la nuova funzionalità Gruppi pubblici.

Prima della versione 1.3.0, gli unici gruppi erano privati.

Gruppo privato

Nella finestra Connetti seleziona la scheda Gruppo privato (o Gruppo nelle versioni precedenti).

Scegli un nome di gruppo univoco che desideri utilizzare o utilizza il pratico generatore di nomi di gruppi casuali (il pulsante dei dadi).

Puoi anche inserire una password che le persone che si connettono al gruppo dovranno inserire anche per maggiore sicurezza, ma è facoltativa.

Puoi dire agli altri che vuoi connetterti al nome del gruppo (e alla password, se utilizzata) oppure puoi premere il pulsante Copia in alto a destra nella pagina Gruppo, quindi incollarlo e condividerlo con gli altri utenti con cui vuoi connetterti . Possono usarlo per incollare in questa pagina utilizzando il pulsante Incolla in alto a sinistra.

Scegli un nome per te stesso che sarà il tuo identificatore per chiunque si iscriva.

Se qualcun altro sta già utilizzando quel nome sul server, verrà automaticamente reso univoco quando ti connetti.

Fai clic su "Connect to Group!"

Se altri sono già nel gruppo denominato, dovresti vederli apparire e sarai in grado di ascoltarne altri. Altrimenti, vedrai un messaggio che indica che stai aspettando che altri si uniscano.

Puoi regolare i livelli che senti gli altri con i cursori del volume o regolare il panning stereo con il pulsante Pan (e i cursori a comparsa) per ogni utente.

Puoi silenziarti completamente premendo il pulsante del microfono nell'angolo in basso a sinistra.

Quando il tuo ingresso è disattivato, vedrai un microfono rosso barrato.

Puoi anche scegliere per chi silenziare il tuo ingresso in modo indipendente, nel caso in cui non desideri inviare l'audio a determinati utenti, ma farlo ad altri.

Puoi anche disattivare l'output di tutti o di singoli utenti con il pulsante dell'altoparlante (accanto ai pulsanti del microfono) nella parte inferiore della finestra o nell'area di ciascun utente.

NOTA - Se si desidera fornire una password per il gruppo, inserirne una, ma non sono richieste (la prima nel gruppo imposta la password, chiunque altro si connetta deve semplicemente abbinarla). Una volta connesso, puoi toccare il nome del gruppo / utente sotto il pulsante di connessione e un link come questo:

http://go.sonobus.net/sblaunch?s=aoo.sonobus.net&g=GroupName, verrà copiato nel tuo appunti che puoi condividere con altri per rendere ancora più facile la connessione (come ad esempio viene utilizzato già in altri software per la conferenza).

È possibile lasciare l'impostazione predefinita aoo.sonobus.net come server o immettere un altro nome host del server se si esegue il proprio server di connessione di gruppo. Si noti che NESSUN AUDIO viene inviato attraverso il server, viene utilizzato solo per aiutare gli utenti a connettersi tra loro, tutto l'audio viene inviato direttamente tra gli utenti (peer-to-peer).

Gruppi pubblici

Nella finestra Connetti seleziona la scheda Gruppi pubblici .

La scheda Gruppi pubblici consente di sfogliare i gruppi pubblici attivi esistenti o di crearne di nuovi che saranno visibili a chiunque altro utilizzi lo stesso server di connessione. Qui sono elencati i nomi dei gruppi pubblici attualmente attivi, insieme al numero corrente di utenti attivi in ​​ogni gruppo. Per unirti a un gruppo esistente, selezionalo nell'elenco.

Ricorda che tutto l'audio viene inviato solo peer-to-peer, il server di connessione facilita solo la gestione dei membri del gruppo. Attualmente, il server predefinito aoo.sonobus.net sarà probabilmente l'unica scelta funzionante, ma puoi anche eseguirne uno tuo (vedi https://github.com/essej/aooserver ).

Per creare il tuo gruppo, inserisci un nome significativo e premi il pulsante Crea gruppo. Potrai creare nomi di gruppi pubblici che includano la tua regione geografica in modo da poter coinvolgere altri partecipanti nella stessa regione, per ridurre al minimo la latenza nel gruppo. Puoi anche includere le informazioni sul genere nel nome.

Ricorda che ogni utente SonoBus può vedere questi nomi di gruppi pubblici e quindi chiunque può connettersi con te.

Connessione diretta

SonoBus include una scheda diretta per la connessione ad altri dispositivi nella rete locale, ma questa funzione è stata sottoposta a test limitati ed è quindi disponibile solo un supporto limitato. Questo apre alcune possibilità interessanti, in particolare la funzionalità sperimentale di patchbay, ed potrebbe essere utilizzato per ulteriori test.

Queste connessioni "dirette" si escludono a vicenda con la funzione di gruppo e il server di connessione.

Dovrai invece compilare il campo "host" con l'indirizzo IP di uno dei client SonoBus "locali" (ad esempio, il tuo dispositivo) e, ad esempio, la porta UDP 12000.

Inizia annotando l'indirizzo IP locale del tuo dispositivo. In Windows, puoi trovare l'indirizzo IP locale dei tuoi dispositivi in ​​Stato rete> Visualizza proprietà hardware e connessione. Quindi, per tutti gli utenti SonoBus della rete locale, aprire la scheda Impostazioni> Opzioni, selezionare la casella di controllo "Usa porta UDP specifica" e immettere lo stesso numero di porta UDP.

Ora, dobbiamo compilare il campo "host" nella scheda Connetti> Diretto. Scegli i dispositivi a cui desideri connetterti. Ad esempio, se al computer è stato assegnato l'IP 10.0.0.222 dal router locale, è possibile immettere 10.0.0.222:12000 nel campo host di un altro dispositivo locale e fare clic su "Connessione diretta" per collegarli.

Ottimizzazione delle connessioni

Buffer di ricezione per jitter

L'architettura e i protocolli di rete generalmente danno la priorità all'affidabilità rispetto alla velocità e all'ordine dei pacchetti di dati.

I pacchetti vengono regolarmente "scartati". Questi pacchetti ignorati vengono regolarmente ritrasmessi fuori sequenza e possono essere reindirizzati. Percorsi diversi hanno tempi di trasmissione diversi e i pacchetti ricevuti vengono regolarmente consegnati fuori dalla sequenza temporale originale. Durante lo streaming audio dal vivo, questo "jitter" fa sì che il suono audio ricevuto "si interrompa" e la sequenza originale deve essere ripristinata prima che venga presentata alle nostre orecchie. Questo viene fatto raccogliendo i pacchetti in arrivo in un "buffer jitter di ricezione", dove vengono elaborati nuovamente nella loro sequenza temporale originale. Questo tempo di elaborazione è una delle principali latenze che devi affrontare.

Il vero problema con le connessioni peer-to-peer è che le latenze da/per ogni partecipante sono diverse. Ci sarà una dimensione del buffer ottimale per ciascuno, a seconda della qualità della connessione Internet e della velocità dell'hardware. Dovrai eseguire un'ottimizzazione per ogni utente connesso.

Uno dei vantaggi di SonoBus è che è possibile regolare dinamicamente il "buffer jitter di ricezione" di ciascun partecipante in tempo reale, in modo da poter sentire la loro qualità audio cambiare immediatamente quando la dimensione del buffer viene modificata. Se la dimensione del buffer è troppo piccola, alcuni (o tutti) i pacchetti rimarranno mancanti e il loro audio suonerà in modo "approssimativo". Se troppo grande, la latenza complessiva diventerà udibile e intollerabile per la riproduzione di musica insieme.

Troverai un'impostazione iniziale del Jitter Buffer nel popup delle opzioni (ingranaggio). Questa impostazione "predefinita" viene applicata al flusso in entrata quando ti connetti per la prima volta con nuove persone, ma dovrà essere "ottimizzata" in base alle loro condizioni individuali.

Una volta installato, SonoBus aggiunge ogni partecipante con il proprio jitter buffer in modalità "Auto". In Auto, quando SonoBus rileva i pacchetti persi troppo spesso, aumenta la dimensione del buffer di jitter. Ciò può accadere soprattutto quando si potrebbero modificare altri parametri o quando le condizioni della rete cambiano.

Quando si utilizza la modalità Auto buffer jitter di ricezione, è necessario iniziare le regolazioni dal punto iniziale più basso possibile. Per l'area di canale di ogni partecipante, (ce n'è una per ogni utente connesso) tocca l'area dell'utente che mostra il Buffer jitter Recv, e in quel popup trascina il cursore del buffer di jitter completamente a sinistra (puoi spostare in qualsiasi momento anche in Auto), o per un modo più rapido, premere il pulsante |< a sinistra del cursore. Potresti sentire alcuni problemi o interruzioni mentre si regola automaticamente più grande. Quando smette di cambiare e senti un audio pulito, questo è spesso un buon valore dove il partecipante potrebbe essere impostato e quindi si potrebbe scegliere di cambiare la sua modalità in Manuale (da Auto) e usare quella dimensione del buffer.

Esiste una modalità chiamata "Auto iniziale" che esegue i passaggi descritti sopra senza l'intervento dell'utente . Scegliere questa opzione quando si desidera ottenere la latenza più bassa e non si desidera che la dimensione del buffer jitter si insinui per interruzioni temporanee. Se le condizioni della rete cambiano troppo e inizi a ricevere interruzioni consistenti dall'altra parte mentre sei in questa modalità, premi il pulsante |<reset e riavvierà il processo automatico. Quando è nella fase automatica, l'indicatore sul misuratore del jitter buffer mostrerà (IA-Auto), e quando si stabilirà su un valore fisso cambierà in (IA-Man).

Suggerimento: nelle modalità automatiche, se tieni premuto il tasto Alt (Opzione su Mac) quando fai clic su un pulsante |<reset, ripristinerai i buffer di jitter di ricezione per tutti i tuoi partecipanti.

In modalità Manuale, potresti anche essere in grado di ridurre leggermente la dimensione del buffer di jitter di ricezione di ogni partecipante e puoi farlo in qualsiasi momento. Per regolare la dimensione del buffer basta utilizzare la barra di controllo manuale e trascinarla a sinistra e/o a destra. Se lo imposti troppo basso, sentirai un "vuoto" IMMEDIATAMENTE. Aumenta la dimensione del buffer di uno o due passaggi e in tal modo hai ottimizzato la dimensione del buffer di quel canale.

Potresti sentire problemi in futuro a causa di incoerenze di rete, ma se ti interessa di più la bassa latenza, questo è un compromesso che potresti dover fare da solo.

Per fortuna, SonoBus ricorderà queste impostazioni del jitter buffer 'ottimizzate' per nome utente e le applicherà la prossima volta che si connetteranno con lo stesso nome utente.

Latenza e misurazioni del jitter

Il successo di SonoBus si basa sulla qualità complessiva della connessione tra le cuffie / il microfono e gli altri partecipanti SonoBus.

Dopo l'hardware audio e la capacità del processore del tuo dispositivo, la tua connessione Internet è il secondo fattore più importante del tuo successo su SonoBus.

Puoi testare velocità, latenza e jitter dalla porta di rete del tuo dispositivo al server del tuo provider di servizi Internet con questo servizio gratuito: https://speed.cloudflare.com

Un'altra cosa importante da notare è il pulsante Ping / Latenza a destra della sezione di canale di ogni partecipante. Quando viene premuto, questo pulsante esegue una misurazione in tempo reale della latenza di andata e ritorno da te a quell'altro utente e viceversa.

Il valore di Ping che mostra è solo la parte di quello indotto dalla rete stessa, anche un viaggio di andata e ritorno (da te a loro e ritorno).

La latenza totale di andata e ritorno consiste in quel ping insieme alle impostazioni del buffer jitter di ricezione, le impostazioni della dimensione del buffer audio e possibilmente altri ritardi dal codec audio compresso Opus (quando utilizzato, introduce 2,5 ms in più su ciascuna estremità) su entrambe le estremità.

Il popup che vedrai dopo aver premuto il pulsante mostrerà la latenza totale di andata e ritorno e anche le stime delle 2 latenze unidirezionali (tu -> loro e loro-> tu) che dovrebbero sommarsi a quel totale. Queste stime possono aiutarti a capire che forse il tuo jitter buffer è abbastanza piccolo per ricevere il loro audio, ma forse quello che stanno usando per ricevere il tuo è più grande. La latenza effettiva potrebbe essere maggiore perché potrebbe esserci più latenza nell'interfaccia audio che non viene rappresentata dal processo di misurazione.

Formato e qualità di invio

SonoBus ti consente di scegliere il formato audio (compresso o non compresso) e la qualità che invii individualmente a ciascun partecipante alla sessione.

Ciò consente di adattare la latenza di scambio alla qualità.

Seleziona la qualità audio che desideri inviare a qualsiasi utente facendo clic sull'area "Qualità di invio" direttamente sotto il nome dell'utente:

Dal pannello visualizzato, fai clic sul menu a discesa (che mostra "96 kbps / ch" nell'immagine sotto) e seleziona la qualità che desideri inviare a questo utente:

Seleziona "Cambia per tutti" per modificare il formato di invio a tutti gli altri musicisti nella sessione.

Inoltre, puoi modificare il formato audio e la qualità che un utente remoto ti invia.

A tale scopo, fare clic sull'area di stato "Jitter Buffer" sotto la barra di scorrimento del livello volume dell'utente:

Fare clic sul menu a discesa "Preferred Recv Quality" (il valore predefinito è "Nessuna preferenza") per modificare il formato che l'utente remoto ti sta inviando.

È possibile richiedere lo stesso formato e qualità audio a tutti gli altri utenti selezionando la casella “Cambia per tutti”.

I formati compressi disponibili introducono una piccola quantità di latenza aggiuntiva (2,5 ms) rispetto ai formati non compressi ma hanno requisiti di larghezza di banda inferiori. Inoltre, se si utilizzano le opzioni PCM (non compresso), l'invio del pacchetto di rete trarrà vantaggio dalle possibili dimensioni del buffer di campionamento audio più piccole che potrebbero essere state configurate nella configurazione audio per ridurre la latenza. I formati audio compressi hanno una dimensione minima del frame campione di 120 campioni, mentre i formati PCM non hanno un limite inferiore.

È certamente possibile ancora utilizzare dimensioni del buffer di campionamento audio inferiori a 120 anche quando si utilizza la qualità di invio compressa, tuttavia migliorerà solo la latenza di monitoraggio e non la latenza di rete end-to-end.

Se non riesci a connetterti

A volte potresti provare a connetterti con un gruppo e una o più persone in esso potrebbero apparire con un messaggio di errore che indica che uno di voi potrebbe trovarsi dietro un router incompatibile e deve configurare il port forwarding nel router Internet. La prima cosa da provare in questo caso è in realtà solo disconnettersi dal gruppo e riconnettersi, a volte questo risolverà il problema. Altre volte si tratta di una vera incompatibilità perché una delle persone può trovarsi in una rete istituzionale (aziendale o educativa) e spesso sono configurate per essere ostili al networking peer-to-peer.

Una cosa che puoi fare che spesso aiuta, se hai accesso alla dashboard di amministrazione del tuo router Internet di casa, è configurare il port forwarding. Nelle impostazioni SonoBus in Opzioni, selezionare Usa porta UDP specifica e scegliere il numero desiderato (12000 per questo esempio). Quindi, nel pannello di controllo dell'amministrazione del tuo router Internet, imposta un port forwarding per UDP per la porta 12000 e indirizzalo all'indirizzo di rete interno della porta 12000 del tuo computer. Spesso questo è sufficiente per aiutare a risolvere problemi come questo.

Per verificare se la tua rete locale è dietro un router "NAT simmetrico" che potrebbe causare problemi con SonoBus (e altri sistemi peer-to-peer) e richiede il port forwarding manuale, visita questo sito Web ed esegui un test per verificare se sei indietro un router NAT "Standard" o "Simmetrico":

https://clients.dh2i.com/NatTest/

Per utilizzare il port forwarding, il computer che esegue SonoBus deve disporre di un indirizzo IP interno fisso sulla rete domestica. Per impostazione predefinita, la maggior parte dei computer riceverà un indirizzo IP dinamico dal router utilizzando DHCP quando si connettono alla rete.

Dovrai impostare manualmente l'indirizzo IP del tuo computer su uno nell'intervallo 192.168.XX o su un altro intervallo utilizzato dal router, nonché per assicurarti che l'indirizzo selezionato sia al di fuori dell'intervallo di quelli che il router utilizzerà per l'assegnazione dell'IP indirizza dinamicamente ad altri dispositivi.

Ci sono molti articoli su Internet per la configurazione di un indirizzo IP fisso per un computer sulla rete locale, questa procedura va oltre lo scopo di questa guida.

Le istruzioni esatte per la configurazione del router Internet sono diverse per ognuna ... ma di solito troverai la configurazione necessaria in alcune sezioni Avanzate o Firewall dell'interfaccia web di amministrazione del tuo router, in una sezione Port Forwarding. Probabilmente sceglierai un inoltro "personalizzato", scegli UDP, inserisci il numero di porta 12000 e scegli l'indirizzo IP per il tuo computer all'interno della rete (alcuni router ti forniscono utili scelte di macchine che già riconosce all'interno della tua rete). Questo indirizzo dovrebbe essere l'indirizzo fisso che hai impostato per utilizzare il tuo computer come descritto sopra.

Alcuni utenti hanno segnalato che il semplice utilizzo di questo port forwarding può effettivamente migliorare le prestazioni di jitter di rete con alcuni router, anche se non si sono verificati problemi di connessione in primo luogo.

Utilizzo dell'audio SonoBus con Zoom video

Se vuoi vedere le persone con cui stai suonando, puoi eseguire Zoom in parallelo insieme a SonoBus.

È sufficiente avviare una nuova riunione Zoom e invitare i musicisti della sessione SonoBus a parteciparvi inviando loro il collegamento alla riunione Zoom tramite e-mail o altro sistema di messaggistica.

Chiedi loro di partecipare alla riunione Zoom senza audio o di disattivare l'audio durante la riunione.

Ecco una schermata di SonoBus e Zoom insieme:

Il video sarà un po' fuori sincrono con l'audio SonoBus, ma è comunque molto bello poter vedere gli altri musicisti. Nei nostri test iniziali, abbiamo notato che c'era una differenza di sincronizzazione di circa 50-100 ms, con il video Zoom l'audio SonoBus in ritardo.

L'esecuzione dello zoom non sembrava avere alcun effetto negativo sulle prestazioni o sulla latenza di SonoBus. Nel nostro caso, abbiamo lanciato Zoom dopo che la nostra sessione SonoBus era già stata stabilita.

Utilizzando l'opzione Zoom "Condividi schermo> Avanzate> Musica o solo audio del computer", è possibile abilitare un pubblico allargato su Zoom per ascoltare il mix audio del monitor da SonoBus, ma questi dettagli esulano dallo scopo di questo documento.

Risorse SonoBus

(lingua inglese)

Sito web SonoBus

Gruppo Facebook SonoBus Gruppo

SonoBus Google Group

Risorse correlate

(lingua inglese)

YouTube - Procedura dettagliata per la configurazione della prima esecuzione di SonoBus

YouTube - Tutorial SonoBus - Comprensione e riduzione al minimo della latenza audio totale del sistema

YouTube - Come installare nuove applicazioni di terze parti su un MAC

ASIO4ALL

Velocità, latenza e jitter test

Wikipedia - Definizione di Jitter

YouTube - Spiegazione del jitter

YouTube - Nozioni di base su larghezza di banda di rete, latenza e jitter

Appendice A - Interfacce audio che dovrebbero funzionare bene con SonoBus

Il seguente elenco collegato è stato originariamente creato da Kevin Kriner per gli utenti di JamKazam.

Le interfacce audio nella scheda "Funzionamento confermato" vengono segnalate dall'utente come funzionanti bene con JamKazam e dovrebbero funzionare altrettanto bene con SonoBus:

Appendice B - Aiutare gli utenti di Zoom a iniziare a utilizzare SonoBus

di Michael Eskin

Con l'annullamento della maggior parte delle sessioni di musica irlandese tradizionale a seguito della pandemia COVID-19, come molti altri leader di sessione irlandesi in tutto il paese, ho cercato attivamente modi per utilizzare la tecnologia per permetterci di rimanere in contatto e continuare a riprodurre musica insieme.

Gli Zoom Meetings sono stati di gran lunga il modo più semplice per farlo.

È ben supportato essenzialmente su ogni computer e piattaforma mobile e la barriera tecnologica all'ingresso è molto bassa. La maggior parte degli utenti è in grado di iniziare a utilizzare Zoom rapidamente e di partecipare a un certo livello a sessioni online. È anche una piattaforma molto amichevole per i nuovi giocatori che vogliono solo ascoltare e suonare senza essere ascoltati dagli altri.

La domanda che ricevo frequentemente dai nuovi musicisti della sessione Zoom è "possiamo suonare tutti insieme?" e, a causa dei limiti e dell'elevata latenza intrinseca nell'architettura Zoom, devo dire loro "No, non è possibile. Dobbiamo suonare uno alla volta con il microfono di tutti gli altri disattivato mentre suoni a casa ".

Se so che hanno dimestichezza con la configurazione dell'audio del computer e delle impostazioni di rete, gli parlerò di SonoBus.

Le barriere tecnologiche per l'utilizzo di SonoBus sono un po' più alte rispetto a Zoom, in particolare se il musicista sta cercando di ottimizzare la propria configurazione per avere la più bassa latenza possibile giocando con gli altri. Un utente idealmente deve comprendere i driver WDM e ASIO su Windows, CoreAudio su Mac, latenza audio e impostazioni di buffering, connessioni WiFi rispetto a Ethernet, jitter di rete, ecc. Deve comprendere la funzione e il comportamento del "jitter buffer" e le varie opzioni di formato audio di trasmissione e il loro effetto sulla latenza complessiva del sistema.

Se hanno dimestichezza con le impostazioni del proprio sistema, o se hanno già esperienza nell'utilizzo di software DAW come Pro Tools o Reaper, in particolare se hanno già esperienza nella configurazione di un'interfaccia audio USB a bassa latenza, allora incoraggio attivamente loro per fare un tentativo.

Suggerirei di installare ed eseguire SonoBus, vedere se funziona "out of the box" (così com'è configurato inizialmente) e quindi modificare le impostazioni o acquistare apparecchiature aggiuntive come richiesto per ottimizzare le prestazioni.

Anche se sono attualmente connessi tramite WiFi, i test sul WiFi consentono di verificare che il loro sottosistema audio funzioni correttamente anche se potrebbero avere un'elevata latenza di rete e problemi di jitter.

Se tutto va bene per quanto l'utente è in grado di connettersi tramite WiFi, il passaggio successivo sarebbe connettersi tramite un cavo Ethernet cablato. La maggior parte dei sistemi desktop dispone di connettori Ethernet, ma molti laptop richiedono un investimento in un adattatore da USB-C a Ethernet.

Se la latenza audio è elevata a causa forse di un sottosistema audio interno inefficiente, il passaggio successivo sarebbe l'acquisto di un'interfaccia audio USB a bassa latenza dall'elenco delle interfacce consigliate che si trova nell'Appendice A di questo documento.

Incoraggio gli utenti esperti di SonoBus ad avere una sessione di test individuale con nuovi utenti per aiutarli a ottimizzare le loro impostazioni e acquisire familiarità con la piattaforma.

Inoltre, incoraggerei tutti gli utenti di SonoBus che suonano musica tradizionale irlandese a essere "geograficamente sensibili" alle sessioni a cui partecipano. Se sei a 8.000 km di distanza da un gruppo di musicisti in una sessione che si trovano tutti entro 200 km. l'uno dall'altro e godono di una latenza estremamente bassa, la tua latenza di oltre 150 ms potrebbe non consentirti di suonare con gli altri in modo significativo e molto probabilmente gli altri musicisti ti metteranno in mute.

Sono molto entusiasta di SonoBus e non vedo l'ora di suonare con te dal vivo in tempo reale nel prossimo futuro in una sessione SonoBus!

Appendice C - Aiutare gli utenti OBS a iniziare con il plug-in VST SonoBus

È possibile utilizzare SonoBus come plug-in VST all'interno di Open Broadcaster Software (OBS).

Il trucco sta andando nella sezione Filtri di una sorgente di ingresso audio (puoi crearne una nuova o usarne una esistente che hai già), premere la rotella sulla sorgente di ingresso e selezionare Filtri. Quindi aggiungi un nuovo filtro e scegli SonoBus dall'elenco dei plug-in lì. Per evitare segnali di ingresso indesiderati, potresti scegliere una sorgente inutilizzata o impostarne il livello di ingresso al minimo.

OBS non funziona a una latenza particolarmente bassa, quindi se vuoi anche essere un artista con un gruppo (che vuoi anche trasmettere in streaming tramite OBS) vorrai anche eseguire un SonoBus separato (forse versione standalone) dove ti connetti direttamente con l'interfaccia audio e può impostarlo per utilizzare una piccola dimensione del buffer. Puoi connetterti allo stesso gruppo della versione del plugin in esecuzione in OBS (così come con altre persone). In questo caso, assicurati di disattivare il tuo input sulla versione plug-in di SonoBus (pulsante del microfono nell'angolo in basso a sinistra) in modo che non invii nulla a nessuno da lì. E probabilmente vorrai disattivare il monitoraggio per quella sorgente di ingresso audio in OBS in modo che lo riproduca in streaming ma non senti cose da esso localmente.

Può sempre creare confusione quando si eseguono più SonoBus sulla stessa macchina per quanto riguarda il monitoraggio, ecc., Perché non si desidera raddoppiare le cose.

Ma se agisci solo come streamer/mixer, probabilmente hai solo bisogno dell'unica istanza del plug-in SonoBus in esecuzione in OBS.

Appendice D - Risorse per soluzioni audio a bassa latenza multiutente di terze parti

Altri sistemi audio peer-to-peer multiutente a bassa latenza hanno hardware audio e requisiti di configurazione del sistema simili a SonoBus.

Questi articoli, sebbene non specificamente su SonoBus, possono essere utili per ottimizzare il sistema per SonoBus (in lingua inglese):

"A Guide to Online Sessions using JamKazam"

"JamKazam Hopefully Made Simple"

"SoundJack: The Unofficial Guide to Low Latency Online Music Making"

Collaboratori e ringraziamenti

SonoBus è stato sviluppato da Jesse Chappell, Sonosaurus LLC, ma si basa su molte altre librerie software open source (vedere il codice sorgente per i dettagli).

La documentazione è stata scritta da Jesse Chappell, Michael Eskin e Tony Becker.

La versione originale in lingua inglese si trova all'indirizzo: https://www.sonobus.net/sonobus_userguide.html

La traduzione in lingua italiana è stata curata da Dario Cavada.

Ringrazio Roberto Fasciani, Pino Marcogliese e Roberto Villari per la collaborazione sull'utilizzo e test di questa piattaforma.