Perché macOS blocca l’audio di sistema (e la soluzione che richiede 30 secondi)
Sei in una call Zoom e vuoi mettere un video YouTube così tutti possono sentirlo. Premi play e i partecipanti non sentono nulla. O stai cercando di registrare lo schermo con QuickTime e il video finale non ha audio di sistema, solo silenzio. Cerchi in Impostazioni di sistema, controlli le opzioni audio di Zoom, fai un giro nei menu di QuickTime. Niente.
Non è un bug. È una scelta di design deliberata di Apple. macOS semplicemente non permette alle app di catturare l’audio che suona sul computer. Se ti sei mai chiesto perché su Windows funziona bene ma su Mac sembra impossibile, ecco cosa succede davvero sotto il cofano.
Come macOS gestisce l’audio
Ogni suono sul Mac scorre attraverso un sistema chiamato CoreAudio. Al suo centro c’è qualcosa chiamato HAL, o Hardware Abstraction Layer. L’HAL è il guardiano tra software e hardware audio. Quando Spotify riproduce una canzone, CoreAudio manda quell’audio attraverso l’HAL a un dispositivo di uscita (altoparlanti o cuffie). Quando Zoom ha bisogno della tua voce, chiede all’HAL audio da un dispositivo di input (il microfono).
Ecco la parte chiave: CoreAudio tratta input e output come mondi completamente separati. L’audio scorre verso gli altoparlanti. L’audio scorre dai microfoni. Non c’è un ponte integrato che colleghi i due. Non c’è modo per un’app di dire “dammi qualsiasi cosa stia suonando attraverso gli altoparlanti” perché quel percorso semplicemente non esiste nel sistema.
È diverso da come funziona Windows. Windows ha una funzione chiamata cattura loopback WASAPI, integrata direttamente nel suo stack audio. La cattura loopback WASAPI lascia che qualsiasi app si infili nel flusso audio che va agli altoparlanti e lo legga come input. È per questo che le app Windows possono offrire “Stereo Mix” o “What U Hear” come sorgente di registrazione.
macOS ha scelto di non includere niente di simile.
Perché Apple lo tiene bloccato
Apple non ha mai pubblicato una spiegazione ufficiale, ma il ragionamento è abbastanza chiaro se guardi a come macOS approccia privacy e sicurezza in generale.
Permettere a qualsiasi app di catturare silenziosamente tutto l’audio di sistema sarebbe una seria preoccupazione di privacy. Immagina un processo in background che registra le tue call FaceTime, i messaggi vocali o l’audio di una videoconferenza confidenziale, tutto senza che tu lo sappia. Non fornendo un percorso di loopback, Apple assicura che nessuna app possa origliare l’audio di altre app a meno che tu non installi esplicitamente un driver a livello di sistema e gli conceda il permesso.
È la stessa filosofia dietro il fatto che macOS richieda di approvare l’accesso alla registrazione schermo, al microfono e alla fotocamera su base per-app. Apple preferisce bloccare le cose di default e lasciare che gli utenti facciano opt-in, piuttosto che lasciare porte aperte.
Il compromesso è che casi d’uso legittimi, come condividere una canzone in una videochiamata o registrare un tutorial con audio di sistema, diventano frustranti. Ti ritrovi senza modo ovvio di fare qualcosa che sembra dovrebbe essere basilare.
Cosa fanno i driver audio virtuali
Dato che macOS non creerà un percorso di loopback per te, la soluzione è crearne uno tu stesso usando un driver audio virtuale.
Un driver audio virtuale è un plugin CoreAudio che si registra con l’HAL sia come dispositivo di output che come dispositivo di input allo stesso tempo. Quando instradi l’audio di sistema verso questa uscita virtuale, il driver prende quell’audio e lo rende disponibile sull’input virtuale corrispondente. Qualsiasi app che può leggere da un microfono (Zoom, QuickTime, OBS, Discord) può ora catturare l’audio di sistema selezionando il dispositivo virtuale come sorgente di input.
In termini tecnici, il driver crea un ring buffer che sta tra il lato di uscita e il lato di ingresso. I sample audio scritti nell’uscita vengono letti dall’ingresso. Al resto di macOS, sembra un normale microfono. Ma quel “microfono” sta in realtà portando qualsiasi cosa il Mac stia suonando.
Non è un hack o un exploit. Il framework CoreAudio di Apple supporta esplicitamente plugin HAL di terze parti. È il modo sanzionato per estendere le capacità audio di macOS. Il driver si installa in /Library/Audio/Plug-Ins/HAL/ e richiede una password amministratore, motivo per cui gli strumenti audio virtuali richiedono permessi elevati durante la configurazione.
Una breve storia degli strumenti di loopback audio per Mac
La necessità di dispositivi audio virtuali su macOS non è nuova. Le persone aggirano questa limitazione da oltre un decennio.
Soundflower è stata una delle prime soluzioni. Era un’estensione del kernel open source che creava dispositivi audio virtuali su macOS. Per anni è stata la risposta predefinita su forum e tutorial. Ma Soundflower è stato abbandonato dallo sviluppatore originale e man mano che Apple ha eliminato gradualmente le estensioni del kernel, Soundflower è diventato sempre più instabile. Sulle versioni moderne di macOS spesso non si installa o causa glitch audio.
BlackHole ha raccolto da dove Soundflower si è fermato. È un driver audio virtuale open source attivamente mantenuto e funziona sulle versioni attuali di macOS. BlackHole è solido, ma è un tubo audio grezzo. Quando instradi l’audio di sistema verso BlackHole, smetti di sentirlo dagli altoparlanti a meno che non crei manualmente un dispositivo multi-output usando l’utility Configurazione MIDI Audio di Apple. Per persone a loro agio con quel tipo di configurazione, BlackHole funziona bene. Per tutti gli altri, è un processo confuso che coinvolge il barcamenarsi tra più dispositivi audio e sperare di aver configurato tutto correttamente.
Loopback di Rogue Amoeba è un’app a pagamento (99 $) che fornisce un’interfaccia curata per creare dispositivi audio virtuali con routing per app. È potente, ma è pensata per professionisti audio che hanno bisogno di un controllo granulare su quali app mandano audio dove. Per chi vuole solo condividere l’audio di sistema in una call Zoom, Loopback è un po’ come comprare una cucina industriale quando ti serviva solo un tostapane.
La soluzione moderna
Soundshine adotta un approccio più semplice. Installa un driver HAL CoreAudio leggero e ti dà un microfono virtuale che porta l’audio di sistema. Non ci sono comandi da terminale da eseguire, niente dispositivi multi-output da configurare in Configurazione MIDI Audio e niente diagrammi di routing complessi da capire.
Installi Soundshine e una procedura guidata gestisce l’installazione del driver in circa 30 secondi. Dopo, un’icona della barra dei menu ti dà un singolo interruttore per attivare o disattivare il routing audio. Quando è attivo, “Soundshine Microphone” appare come input microfono in qualsiasi app. Selezionalo in Zoom, Google Meet, QuickTime, OBS o qualsiasi cosa tu stia usando e l’audio di sistema scorre.
I tuoi altoparlanti continuano a funzionare normalmente per tutto il tempo. Soundshine fa passare l’audio al tuo dispositivo di output reale simultaneamente, così senti tutto quello che sentono i partecipanti. L’audio rimane digitale da capo a fondo a stereo 48 kHz, 32-bit float, quindi non c’è perdita di qualità.
Il punto chiave
macOS non ti lascia condividere l’audio di sistema perché Apple ha intenzionalmente omesso un percorso di loopback tra uscite e ingressi audio. È una decisione di design privacy-first ed è improbabile che cambi. La soluzione è un driver audio virtuale che crea il ponte che CoreAudio non creerà.
Se vuoi la versione più semplice di quella soluzione, senza configurazione manuale e senza background di ingegneria del suono, prova Soundshine.
Instrada qualsiasi audio, ovunque
Soundshine crea un microfono virtuale dal tuo audio di sistema, così ogni app funziona senza configurazioni. Niente terminale, niente estensioni del kernel.
Scarica gratis