Architettura dell'oggetto elaborazione audio
Gli oggetti di elaborazione audio (API), offrono un'elaborazione del segnale digitale basata su software personalizzabile per i flussi audio di Windows.
Panoramica degli oggetti di elaborazione audio
Windows consente alle macchine virtuali e ai produttori di hardware audio di terze parti di includere effetti di elaborazione dei segnali digitali personalizzati come parte delle funzionalità aggiunte al valore del driver audio. Questi effetti vengono inseriti come oggetti di elaborazione audio in modalità utente (API).
Gli oggetti di elaborazione audio (API), forniscono l'elaborazione del segnale digitale basata sul software per i flussi audio di Windows. Un apo è un oggetto host COM che contiene un algoritmo scritto per fornire un effetto DSP (Digital Signal Processing) specifico. Questa funzionalità è nota in modo informale come "effetto audio". Esempi di API includono equalizzatori grafici, reverb, tremolo, Acustica Echo Cancellation (AEC) e Controllo automatico del guadagno (AGC). Le API sono oggetti IN-process basati su COM, in tempo reale.
Nota Le descrizioni e la terminologia in questa documentazione fanno riferimento principalmente ai dispositivi di output, ad esempio altoparlanti. Tuttavia, la tecnologia è simmetrica e funziona essenzialmente inverso per i dispositivi di input.
API software e Hardware DSP
Un processore di segnale digitale hardware (DSP) è un microprocessore specializzato (o un blocco SIP), con l'architettura ottimizzata per le esigenze operative dell'elaborazione del segnale digitale. Esistono vantaggi significativi per implementare l'elaborazione audio nello scopo di creare hardware e usare un'APO software. Un vantaggio è che l'uso della CPU e il consumo di energia associato possono essere inferiori con un DSP implementato dall'hardware.
Esistono altri vantaggi e svantaggi da considerare, specifici degli obiettivi e dei vincoli dei progetti da considerare prima di implementare un'APO basata su software.
Gli effetti basati sul software vengono inseriti nella pipe del dispositivo software per l'inizializzazione del flusso. Queste soluzioni eseguono tutte le loro operazioni di elaborazione sulla CPU principale e non si basano su hardware esterno. Questo tipo di soluzione è ideale per le soluzioni audio windows tradizionali, ad esempio HDAudio, USB e Bluetooth, quando il driver e l'hardware supportano solo l'elaborazione RAW. Per altre informazioni sull'elaborazione RAW, vedere Modalità di elaborazione del segnale audio.
APO proxy per DSP hardware
Tutti gli effetti applicati nel DSP hardware devono essere annunciati tramite un proxy APO. Microsoft fornisce un proxy APO predefinito (MsApoFxProxy.dll). Per usare l'APO fornito da Microsoft, è necessario supportare questo set di proprietà e la proprietà.
Facoltativamente, è possibile implementare l'APO del proxy personalizzato.
API fornite da Windows (sistema)
Windows installa un set predefinito di API, che forniscono diversi effetti audio. Per un elenco degli effetti APO forniti dal sistema, vedere Modalità di elaborazione del segnale audio.
Le MACCHINE virtuali possono includere tutte le API fornite dal sistema o sostituirle con API personalizzate.
API personalizzate
È possibile creare API personalizzate per migliorare l'esperienza audio di Windows aggiungendo altri effetti audio.
L'OEM può includere qualsiasi combinazione delle API windows fornite e delle API personalizzate quando vengono fornite windows.
Un apo personalizzato può essere installato da un OEM o da una terza parte per migliorare l'esperienza audio dopo che il dispositivo è stato acquistato. Quando gli utenti installano un driver di dispositivo audio usando il file INF standard, hanno automaticamente accesso alle API del sistema. I fornitori di hardware indipendenti (IHV) e i produttori di attrezzature originali (OEMs) possono fornire altri effetti di sistema personalizzati mentre usano ancora i driver di classe Microsoft. A tale scopo, vengono creati pacchetti di algoritmi DSP come API e modificando il file INF standard per inserire le API nel grafico di elaborazione del segnale del motore audio.
Per altre informazioni sulla creazione di API personalizzate, vedere Implementazione di oggetti di elaborazione audio.
App di supporto apo personalizzata
Per consentire all'utente di configurare le impostazioni associate all'APO personalizzato, l'approccio consigliato consiste nel creare un'app per il supporto hardware. Per altre informazioni, vedere App supporto hardware (HSA): passaggi per sviluppatori driver.
Test e requisiti APO personalizzati
Microsoft HLK fornisce test che possono essere usati con le API. Per altre informazioni sui test audio, vedere Test device.audio e test device.audio.
Questi due test possono essere particolarmente utili durante l'uso delle API.
Verifica effetti audioDiscovery (manuale) - Certificazione
Per informazioni sui requisiti audio per supportare le API, vedere Requisiti device.audio.
Strumenti e utilità APO personalizzati
È possibile usare "Esempio di individuazione di effetti audio" per esplorare gli effetti audio disponibili. Questo esempio illustra come eseguire query sugli effetti audio sul rendering e acquisire dispositivi audio e come monitorare le modifiche con gli effetti audio. È incluso come parte degli esempi di SDK e può essere scaricato usando questo collegamento:
Esempio di individuazione degli effetti audio
Consapevolezza dell'effetto audio dell'applicazione
Le applicazioni hanno la possibilità di chiamare le API per determinare quali effetti audio sono attualmente attivi nel sistema. Per altre informazioni sulle API di consapevolezza degli effetti audio, vedere Classe AudioRenderEffectsManager.
Architettura degli oggetti di elaborazione audio
Posizionamento degli effetti audio
Esistono tre posizioni diverse per gli effetti audio implementati come API. Si trovano in effetti di flusso (SFX), effetti modalità (MFX) e effetti endpoint (EFX).
Effetto flusso (SFX)
Un effetto di flusso APO ha un'istanza dell'effetto per ogni flusso. Gli effetti di flusso sono prima del mix (rendering) o dopo il tee (acquisizione) per una determinata modalità e possono essere usati per modificare il conteggio dei canali prima del mixer. Gli effetti del flusso non vengono usati per i flussi non elaborati.
Alcune versioni di Windows, come ottimizzazione, non caricano API SFX o MFX in modalità RAW.
- Windows 8.1 non carica SFX RAW o RAW MFX
- Windows 10 carica MFX RAW ma non RAW SFX
Effetto modalità (MFX)
Gli effetti della modalità (MFX) vengono applicati a tutti i flussi mappati alla stessa modalità. Gli effetti della modalità vengono applicati dopo il mix (rendering) o prima del tee (acquisizione) per una determinata modalità, ma prima della combinazione (rendering) o dopo il tee (acquisizione) di tutte le modalità. Qualsiasi effetto o effetto specifico dello scenario che non richiede le specifiche dell'effetto del flusso deve essere inserito qui. È più efficiente usare un effetto modalità poiché è presente un'istanza per più flussi che condividono le stesse caratteristiche, come la periodicità e il formato.
Effetto endpoint (EFX)
L'effetto endpoint (EFX) viene applicato a tutti i flussi che usano lo stesso endpoint. Un effetto endpoint viene sempre applicato, anche ai flussi non elaborati. Vale a dire, è dopo la combinazione (rendering) o prima del tee (acquisizione) di tutte le modalità. Gli effetti dell'endpoint devono essere usati con cura e quando in dubbio un effetto deve essere posto nell'area Modalità. Alcuni effetti che devono essere posizionati nell'area dell'endpoint sono la protezione degli altoparlanti e la compensazione dell'altoparlante.
Questo diagramma mostra le possibili posizioni per gli effetti di flusso (SFX), modalità (MFX) e endpoint (EFX) per Windows 10.
Più effetti APO personalizzati
È possibile configurare più effetti basati su APO per usare applicazioni diverse.
Questo diagramma illustra come più applicazioni possono accedere a più combinazioni di effetti APO di flusso, modalità e endpoint. Tutte le API sono basate su COM ed eseguite in modalità utente. In questo scenario nessuno degli effetti è in esecuzione in modalità hardware o kernel.
Nota È possibile usare la barra di scorrimento nella parte inferiore di questa pagina per visualizzare tutto questo diagramma.
Effetti della modalità software e effetti dell'endpoint hardware per il rendering e l'acquisizione
Questo diagramma illustra gli effetti della modalità software e gli effetti dell'endpoint hardware per il rendering e l'acquisizione.
DSP dotato di sistemi con effetti hardware
Questo diagramma illustra un sistema dotato di DSP che implementa gli effetti nell'hardware. In questo scenario, un proxy APO deve essere creato per informare le app degli effetti implementati nell'hardware.