Microfono
Monitoraggio dell’input audio in tempo reale con visualizzazioni live della forma d’onda, misurazione del volume e diagnostica dettagliata del motore audio.
Panoramica
Lo strumento Microfono trasforma il tuo dispositivo in un monitor audio live. Cattura l’audio dal dispositivo di input selezionato utilizzando AVAudioEngine di Apple, elabora il buffer PCM in tempo reale e presenta i risultati tramite diversi pannelli di visualizzazione: un indicatore circolare di ampiezza, una forma d’onda audio grezza, un grafico storico del volume e una dashboard tecnica completa. Puoi passare tra tutti i dispositivi di input audio disponibili — microfono integrato, cuffie Bluetooth (inclusi AirPods tramite HFP), microfoni con filo, interfacce audio USB, CarPlay e AirPlay — senza uscire dallo strumento.
Il monitoraggio inizia automaticamente all’apertura dello strumento e dopo aver concesso il permesso al microfono. La cattura audio si interrompe automaticamente quando si lascia lo strumento o l’app va in background, garantendo che il microfono non resti attivo inutilmente.
Indice
- Intestazione Schermata
- Pannello di Controllo Microfono
- Selettore Dispositivo di Input Audio
- Pannello Livelli di Volume
- Pannello Forma d’Onda Audio Live
- Pannello Analisi Volume
- Pannello Dettagli Tecnici
- Informativa sulla Privacy
- Permessi
- Dettagli Tecnici
- Note e Limitazioni
Intestazione Schermata
Nella parte superiore della schermata, un’intestazione mostra:
- Il titolo Monitor Microfono.
- Un indicatore di stato registrazione — un punto colorato con etichetta:
- Attivo (verde) — il motore audio è in funzione e sta catturando audio.
- Inattivo (grigio) — il monitoraggio è fermo.
- Un conteggio dispositivi — il numero di dispositivi di input audio attualmente disponibili (es. "1 Dispositivi").
Pannello di Controllo Microfono
Il pannello di controllo Microfono è la prima scheda della schermata. L’intestazione mostra un badge REGISTRAZIONE o STANDBY con un punto rosso pulsante durante la registrazione.
Pulsante di Registrazione
Un grande pulsante circolare al centro del pannello:
- Icona microfono (blu) — tocca per avviare il monitoraggio. Il motore audio parte, i dati della forma d’onda iniziano a fluire e tutti i pannelli di visualizzazione si attivano.
- Icona stop (rossa) — tocca per fermare il monitoraggio. Il motore audio viene arrestato e le visualizzazioni si bloccano.
Un’etichetta sotto il pulsante mostra TOCCA PER REGISTRARE o TOCCA PER FERMARE a seconda dello stato corrente.
Sezione Info Dispositivo
Sotto il pulsante di registrazione, il pannello mostra informazioni sull’input audio attivo:
-
Dispositivo — il nome del dispositivo di input attivo (es. "Microfono integrato", "AirPods Pro" o "Nessun microfono" se non rilevato).
-
Tre schede di stato in una griglia:
Scheda Descrizione Stato Attivo (verde) o Inattivo (rosso). Tipo Categoria del dispositivo: Interno, Cuffie, Bluetooth, USB Audio, CarPlay, AirPlay o Esterno. Qualità ALTA QUALITÀ se la frequenza di campionamento è 48 kHz o superiore, STANDARD altrimenti. -
Due schede specifiche tecniche sotto la griglia:
Scheda Descrizione Frequenza di campionamento Frequenza di campionamento della sessione audio attiva (es. "48.0 kHz"). Canali Numero massimo di canali di input supportati dal dispositivo.
Selettore Dispositivo di Input Audio
Il pannello selettore elenca tutti i dispositivi di input audio disponibili e consente di passare da uno all’altro.
- Microfono integrato — sempre elencato per primo con il sottotitolo "Microfono interno del dispositivo". Selezionato di default se nessun dispositivo esterno è collegato.
- Dispositivi esterni — elencati sotto il microfono integrato, ciascuno mostra:
-
Il nome del dispositivo (es. "AirPods Pro", "Microfono USB").
-
Un sottotitolo che descrive il tipo di connessione:
Tipo Porta Sottotitolo Bluetooth A2DP Bluetooth A2DP Bluetooth HFP Bluetooth Hands-Free Bluetooth LE Bluetooth LE Cuffie Cuffie Microfono Cuffie Microfono Cuffie USB Audio USB Audio Altro Dispositivo Esterno
-
Ogni riga dispositivo ha un indicatore radio-button (pieno se selezionato) e un’icona spunta per il dispositivo attivo. Toccare un altro dispositivo cambia l’input audio. Durante la riconfigurazione del motore audio, appare brevemente un indicatore di caricamento.
Quando un dispositivo viene collegato o scollegato (es. collegando AirPods), l’elenco si aggiorna automaticamente. Lo strumento seleziona automaticamente il miglior dispositivo disponibile secondo una priorità: prima Bluetooth HFP, poi microfono cuffie, poi microfono integrato.
Pannello Livelli di Volume
Il pannello Livelli di Volume offre una vista dettagliata in tempo reale dell’ampiezza audio corrente.
Indicatore Circolare di Ampiezza
Un indicatore circolare al centro del pannello che si riempie proporzionalmente all’ampiezza corrente (0–100%). L’arco usa un gradiente angolare dal verde (basso) attraverso giallo e arancione fino al rosso (alto). La percentuale di ampiezza attuale è mostrata come numero grande al centro dell’indicatore.
Barra del Volume
Sotto l’indicatore, una barra orizzontale si riempie da sinistra a destra in base all’ampiezza corrente. La barra usa lo stesso gradiente verde-rosso e include tacche di scala a 0%, 25%, 50%, 75% e 100%.
Metriche Volume
Quattro schede metriche sono mostrate in una griglia 2x2:
| Metrica | Descrizione |
|---|---|
| Corrente | L’ampiezza istantanea in percentuale, colorata in base al livello (verde < 30%, giallo < 60%, arancione < 85%, rosso >= 85%). |
| Picco | Il valore di ampiezza più alto nel buffer storico della forma d’onda corrente. |
| RMS | Il livello root-mean-square calcolato dalla storia della forma d’onda, rappresenta l’energia media del segnale. |
| dBFS | L’ampiezza attuale espressa in decibel rispetto al full scale, calcolata come 20 × log10(ampiezza). I valori vanno da circa -80 dB (silenzio) a 0 dB (full scale). |
Barra di Stato Volume
In fondo al pannello, una barra di stato mostra:
- Qualità segnale — "SEGNALE FORTE" (verde) se dBFS è sopra -20 dB, oppure "SEGNALE MODERATO" (arancione) altrimenti.
- Avviso clipping — un’etichetta rossa "CLIPPING" con icona di avviso appare quando l’ampiezza supera il 95%, indicando che il segnale audio potrebbe essere distorto.
Pannello Forma d’Onda Audio Live
Il pannello Forma d’Onda Audio Live mostra i dati PCM grezzi come visualizzazione in tempo reale in stile oscilloscopio.
Visualizzazione Forma d’Onda
L’area principale mostra una forma d’onda scorrevole generata dai campioni audio grezzi (fino a 1024 campioni per frame). La forma d’onda è disegnata in ciano su sfondo scuro con una griglia professionale:
- Griglia — linee di riferimento verticali e orizzontali per l’allineamento visivo.
- Linea centrale — linea tratteggiata ciano che indica il punto di zero-crossing.
- Marcatori scala dB — etichette sul bordo sinistro a +0 dB, -20 dB, -40 dB, -60 dB e -∞.
- Effetto glow — alone radiale dietro la forma d’onda che si intensifica con la forza del segnale.
- Riflessione — copia specchiata attenuata della forma d’onda sotto la linea centrale per profondità visiva.
Un indicatore LIVE con punto verde pulsante e conteggio campioni attuale (es. "1024 campioni") appare nell’intestazione del pannello.
Indicatori Livello Segnale
Sul bordo destro dell’area forma d’onda, un indicatore verticale a 10 segmenti in stile LED si illumina proporzionalmente alla forza del segnale. I segmenti sono colorati: verde (basso), giallo (moderato), arancione (alto), rosso (molto alto).
Barra di Stato Forma d’Onda
La barra inferiore del pannello mostra:
- Segnale — la forza RMS del segnale in percentuale, colorata (grigio < 20%, verde < 50%, arancione < 80%, rosso >= 80%).
- Picco — il valore di picco del campione dal buffer grezzo corrente.
- Frequenza di campionamento e profondità bit — mostrate a destra (es. "48kHz 24-bit").
Pannello Analisi Volume
Il pannello Analisi Volume mostra un grafico storico a scorrimento dell’ampiezza audio nel tempo, funzionando come un classico misuratore di volume.
Selettore Intervallo Temporale
Nell’intestazione del pannello, un controllo segmentato consente di scegliere l’intervallo temporale visualizzato nel grafico:
| Intervallo | Campioni |
|---|---|
| 1s | 50 |
| 5s | 250 |
| 10s | 500 |
Grafico Volume
L’area principale mostra un grafico della forma d’onda riempito con la storia dell’ampiezza (fino a 60 punti dati nel buffer a scorrimento). Il grafico usa un gradiente verde-rosso in base al livello di ampiezza, con effetto glow e riflessione specchiata sotto.
Linee di riferimento sono disegnate:
- Griglia dettagliata con linee principali ogni 50% e linee minori ogni 10%.
- Linee tratteggiate a 25%, 50% e 75% di ampiezza, colorate in base al livello.
- Scala percentuale a sinistra (0%–100%).
- Scala temporale in basso che mostra l’intervallo dei campioni.
Barre VU Meter
Sul bordo destro del grafico, un VU meter verticale a 20 segmenti si riempie dal basso verso l’alto in base all’ampiezza corrente. I segmenti sono colorati: verde (0–50%), giallo (50–75%), arancione (75–90%), rosso (90–100%).
Barra Statistiche
In fondo al pannello, quattro statistiche sono mostrate affiancate:
| Statistica | Descrizione |
|---|---|
| Min | L’ampiezza minima nella storia della forma d’onda corrente (blu). |
| Max | L’ampiezza massima nella storia corrente (rosso). |
| Media | L’ampiezza media nel buffer storico (giallo). |
| Ora | Il valore di ampiezza più recente, colorato in base al livello. |
Pannello Dettagli Tecnici
Il pannello Dettagli Tecnici è una dashboard completa che espone lo stato completo del motore audio, della sessione audio e della configurazione hardware. Tutti i valori si aggiornano ogni 0,5 secondi mentre il monitoraggio è attivo.
Metriche di Performance
| Metrica | Descrizione |
|---|---|
| Frequenza di campionamento | Frequenza di campionamento della sessione audio attiva (es. "48.0 kHz"). |
| Dimensione buffer | Dimensione del buffer del motore audio in frame (es. 1024). |
| Latenza input | Latenza di input riportata dalla sessione audio, in millisecondi. Evidenziata se supera i 10 ms. |
| Buffer IO | Durata del buffer I/O in millisecondi. |
Livelli Audio
| Metrica | Descrizione |
|---|---|
| Livello di picco | Ampiezza di picco in percentuale. Evidenziato in rosso se viene rilevato clipping (sopra il 95%). |
| Livello RMS | Ampiezza root-mean-square in percentuale. |
| dBFS | Decibel rispetto al full scale. Evidenziato in giallo se sopra -20 dB. |
| Qualità segnale | Derivata dal rapporto segnale-rumore: Eccellente (SNR > 40 dB), Buona (SNR > 20 dB), Discreta (SNR > 10 dB), o Scarsa. |
Configurazione Dispositivo
| Metrica | Descrizione |
|---|---|
| Percorso attuale | Nome del dispositivo di input audio attivo. |
| Canali input | Numero massimo di canali di input disponibili. |
| Pattern polare | Pattern polare preferito della sorgente dati di input (es. Omnidirezionale). |
Stato Sessione
| Metrica | Descrizione |
|---|---|
| Stato motore | In esecuzione (verde) o Arrestato (rosso). |
| Categoria | Categoria AVAudioSession attiva (es. PlayAndRecord). |
| Modalità | Modalità sessione audio attiva (es. VoiceChat). |
| Opzioni | Opzioni categoria attive (es. "BT • Mix"). |
Cambi di Percorso
Quando viene rilevato un cambio di percorso audio, questa sezione appare mostrando:
| Metrica | Descrizione |
|---|---|
| Ultimo cambio | Timestamp dell’ultimo cambio di percorso. |
| Motivo | Motivo del cambio: Nuovo dispositivo disponibile, Dispositivo scollegato, Categoria cambiata, Override percorso, Risveglio da sleep, Nessun percorso adatto, Cambio configurazione o Sconosciuto. |
Informazioni di Sistema
| Metrica | Descrizione |
|---|---|
| Timestamp | Ora di sistema corrente. |
| Campioni | Numero di campioni nel buffer forma d’onda grezza corrente. |
| Uptime | Uptime di sistema in secondi. |
Performance Aggiuntiva
| Metrica | Descrizione |
|---|---|
| Latenza output | Latenza di output riportata dalla sessione audio, in millisecondi. |
| Frequenza preferita | Frequenza di campionamento preferita richiesta dallo strumento. |
| Buffer preferito | Durata buffer I/O preferita richiesta dallo strumento, in millisecondi. |
| Canali preferiti | Numero preferito di canali di input. |
Dettagli Motore
| Metrica | Descrizione |
|---|---|
| Formato input | Descrizione completa AVAudioFormat del nodo di input del motore audio (frequenza, canali, bit, interleaving). |
| Formato output | Descrizione completa AVAudioFormat del nodo di output del motore audio. |
| Numero nodi | Numero di nodi collegati al motore audio. |
| Frame massimi | Numero massimo di frame in rendering manuale (mostrato solo in modalità rendering manuale). |
Metriche di Qualità
| Metrica | Descrizione |
|---|---|
| Livello medio | Ampiezza media nel buffer storico della forma d’onda. |
| Gamma dinamica | Differenza tra il livello di picco dBFS e il rumore di fondo (riferimento -60 dB), in dB. |
| Rumore di fondo | Livello RMS espresso in dBFS, rappresenta il livello di rumore di fondo. |
| Clipping | "Sì" (rosso, evidenziato) se l’ampiezza di picco supera il 95%, "No" (verde) altrimenti. |
Dettagli Stato Sessione
| Metrica | Descrizione |
|---|---|
| Sessione attiva | "Audio in background" se è in riproduzione altro audio, "Attiva" altrimenti. |
| Suggerimento audio | "Silenziare consigliato" se il sistema suggerisce di silenziare audio secondario, "Può miscelare" altrimenti. |
Dettagli Hardware
| Metrica | Descrizione |
|---|---|
| Canali output max | Numero massimo di canali di output supportati. |
| Input disponibile | Se l’hardware di input audio è disponibile. |
| Guadagno input | Valore attuale del guadagno di input (se impostabile), o N/D. |
| Sorgente dati input | Nome della sorgente dati di input attiva (es. "Inferiore", "Frontale", "Posteriore"). |
| Volume sistema | Volume di output di sistema attuale (0.00–1.00). |
Info Formato Sessione
Descrizione grezza della sorgente dati di input attiva, che fornisce la stringa di dettaglio a livello di sistema.
Informativa sulla Privacy
In fondo alla schermata, un’informativa sulla privacy con icona scudo dichiara che nessun dato audio viene memorizzato, registrato o trasmesso — tutta l’elaborazione avviene localmente sul dispositivo in tempo reale.
Permessi
- Permesso microfono — richiesto per tutte le funzionalità. Il prompt di sistema appare automaticamente al primo avvio del motore audio.
- Se il permesso non è stato ancora determinato, Lirum mostra una schermata di permesso con un pulsante Concedi accesso che attiva il prompt di sistema.
- Se il permesso è stato negato in precedenza, Lirum mostra un pulsante Apri Impostazioni per reindirizzare all’app Impostazioni iOS dove l’utente può riabilitare l’accesso al microfono.
Dettagli Tecnici
- Lo strumento utilizza AVAudioEngine con un tap di input sul bus 0 per catturare buffer audio PCM. Viene utilizzata una dimensione buffer di 1024 frame.
- La sessione audio è configurata con categoria
.playAndRecorde modalità.voiceChat, con opzioni.allowBluetoothe.mixWithOthersabilitate. Questo garantisce che i dispositivi Bluetooth HFP (come AirPods) siano rilevabili come sorgenti di input. - Viene richiesta una durata buffer I/O preferita di 5 ms per visualizzazioni reattive.
- Per dispositivi non Bluetooth, viene richiesta una frequenza di campionamento preferita di 48 kHz. Per dispositivi Bluetooth HFP, la frequenza è lasciata al sistema per evitare conflitti di formato.
- Ampiezza RMS viene calcolata dal buffer PCM con la formula:
sqrt(sum(sample^2) / count), poi scalata per 5 e limitata a [0, 1]. - dBFS (decibel rispetto al full scale) è calcolato come
20 * log10(ampiezza). - Gli aggiornamenti della forma d’onda grezza sono limitati a 60 fps per evitare aggiornamenti UI eccessivi.
- Il buffer storico della forma d’onda contiene fino a 60 punti dati, elaborati dal buffer di ampiezza a ogni frame di display link.
- Un CADisplayLink fino a 120 fps gestisce gli aggiornamenti della storia della forma d’onda mediando i campioni di ampiezza raccolti tra i frame.
- I dettagli del motore audio sono interrogati ogni 0,5 secondi tramite un timer.
- Quando si cambia dispositivo di input, il motore audio viene completamente arrestato e ricreato con una nuova sessione audio per garantire il formato corretto. Durante la transizione viene mostrata una schermata di caricamento (minimo 300 ms per UX fluida, timeout di fallback 2 secondi).
- Gestione formato Bluetooth — per dispositivi Bluetooth, il tap viene installato con formato
nilper lasciare al sistema la scelta del formato appropriato, evitando errori di formato non valido che possono verificarsi con dispositivi HFP. - Cambi di percorso audio sono osservati tramite
AVAudioSession.routeChangeNotification. Quando un nuovo dispositivo appare o uno esistente viene rimosso, lo strumento aggiorna automaticamente l’elenco dispositivi e, se in registrazione, riavvia con il miglior dispositivo disponibile. I cambi di percorso sono limitati (minimo 300 ms tra eventi) per evitare loop di riavvio. - Priorità auto-selezione dispositivo: Bluetooth HFP, microfono cuffie, microfono integrato.
- Quando lo strumento scompare o l’app va in background, il motore audio viene fermato e la sessione audio completamente disattivata (passa a categoria
.ambiente disattivata con.notifyOthersOnDeactivation) per rilasciare il microfono e permettere ad altre app di riprendere la riproduzione audio.
Note e Limitazioni
- Lo strumento monitora i livelli di input audio live. Non registra, salva o trasmette alcun dato audio.
- Quando si cambia dispositivo di input, Lirum mostra brevemente un indicatore di caricamento mentre il motore audio si riconfigura. Questo richiede tipicamente meno di un secondo.
- Cuffie Bluetooth e microfoni USB possono riportare livelli di guadagno e frequenze di campionamento diversi rispetto al microfono integrato.
- Su dispositivi Bluetooth HFP (es. AirPods), la frequenza di campionamento può essere inferiore (es. 16 kHz o 8 kHz) a causa delle limitazioni del profilo Hands-Free.
- L’indicatore di clipping si attiva quando l’ampiezza supera il 95% del full scale. Clipping persistente può indicare che il guadagno di input è troppo alto o la sorgente sonora è troppo vicina al microfono.
- Il monitoraggio audio si interrompe automaticamente quando l’app va in background o viene minimizzata, garantendo che l’accesso al microfono non resti attivo.