Arquitetura do objeto de processamento de áudio
ApOs (objetos de processamento de áudio), fornecem processamento de sinal digital baseado em software personalizável para fluxos de áudio do Windows.
Visão geral dos objetos de processamento de áudio
O Windows permite que os OEMs e os fabricantes de hardware de áudio de terceiros incluam efeitos de processamento de sinal digital personalizado como parte dos recursos de valor agregado do driver de áudio. Esses efeitos são empacotados como APOs (Objetos de Processamento de Áudio) de efeito do sistema do modo de usuário.
ApOs (objetos de processamento de áudio), fornecem processamento de sinal digital baseado em software para fluxos de áudio do Windows. Um APO é um objeto de host COM que contém um algoritmo que é gravado para fornecer um efeito DSP (Processamento de Sinal Digital) específico. Essa funcionalidade é conhecida informalmente como um "efeito de áudio". Exemplos de APOs incluem equalizadores gráficos, reverb, tremolo, AEC (Cancelamento de Eco Acústico) e AGC (Controle de Ganho Automático). APOs são objetos em processo baseados em COM, em tempo real.
Nota As descrições e a terminologia nesta documentação referem-se principalmente a dispositivos de saída, como alto-falantes. No entanto, a tecnologia é simétrica e funciona essencialmente ao contrário para dispositivos de entrada.
APOs de software versus DSP de hardware
Um DSP (processador de sinal digital) de hardware é um microprocessador especializado (ou um bloco SIP), com sua arquitetura otimizada para as necessidades operacionais de processamento de sinal digital. Pode haver vantagens significativas para implementar o processamento de áudio em hardware interno de finalidade versus o uso de um APO de software. Uma vantagem é que o uso da CPU e o consumo de energia associado podem ser menores com um DSP implementado por hardware.
Há outras vantagens e desvantagens a serem consideradas, específicas das metas e restrições de seus projetos que você desejará considerar antes de implementar um APO baseado em software.
Os efeitos baseados em software são inseridos no pipe do dispositivo de software na inicialização do fluxo. Essas soluções fazem todo o processamento de efeitos na CPU do main e não dependem de hardware externo. Esse tipo de solução é melhor para soluções de áudio tradicionais do Windows, como dispositivos HDAudio, USB e Bluetooth, quando o driver e o hardware dão suporte apenas ao processamento RAW. Para obter mais informações sobre o processamento RAW, consulte Modos de processamento de sinal de áudio.
Proxy APO para Hardware DSP
Quaisquer efeitos aplicados no DSP de hardware precisam ser anunciados por meio de um APO de proxy. A Microsoft fornece um APO de proxy padrão (MsApoFxProxy.dll). Para usar o APO fornecido pela Microsoft, esse conjunto de propriedades e propriedade devem ter suporte.
Opcionalmente, você pode implementar seu próprio APO de proxy.
APOs fornecidos pelo Windows (sistema)
O Windows instala um conjunto padrão de APOs, que fornecem vários efeitos de áudio diferentes. Para obter uma lista dos efeitos de APO fornecidos pelo sistema, consulte Modos de processamento de sinal de áudio.
Os OEMs podem incluir todas as APOs fornecidas pelo sistema ou substituir algumas ou todas elas por APOs personalizadas.
APOs personalizados
É possível criar APOs personalizadas para aprimorar a experiência de áudio do Windows adicionando efeitos de áudio adicionais.
O OEM pode incluir qualquer combinação das APOs do Windows fornecidas e APOs personalizadas ao enviar o Windows.
Um APO personalizado pode ser instalado por um OEM ou por terceiros para aprimorar a experiência de áudio após a compra do dispositivo. Quando os usuários instalam um driver de dispositivo de áudio usando o arquivo INF padrão, eles têm acesso automaticamente às APOs do sistema. Os IHVs (fornecedores independentes de hardware) e os OEMs (fabricantes de equipamentos originais) podem fornecer efeitos de sistema personalizados adicionais enquanto ainda usam os drivers de classe da Microsoft. Eles fazem isso empacotando seus algoritmos DSP como APOs e modificando o arquivo INF padrão para inserir suas APOs no grafo de processamento de sinal do mecanismo de áudio.
Para obter mais informações sobre como criar APOs personalizadas, consulte Implementando objetos de processamento de áudio.
Aplicativo de suporte a APO personalizado
Para permitir que o usuário defina as configurações associadas ao seu APO personalizado, a abordagem recomendada é criar um aplicativo de suporte de hardware. Para obter mais informações, consulte HSA (Aplicativo de Suporte de Hardware): etapas para desenvolvedores de driver.
Requisitos e testes de APO personalizados
O Microsoft HLK fornece testes que podem ser usados com APOs. Para obter mais informações sobre testes de áudio, consulte Device.Audio Testing e Device.Audio Tests.
Esses dois testes podem ser particularmente úteis ao trabalhar com APOs.
Verificar Efeitos de ÁudioDiscovery (Manual) – Certificação
Para obter informações sobre os requisitos de áudio para dar suporte a APOs, consulte Device.Audio Requirements.
Ferramentas e utilitários personalizados do APO
Você pode usar o "Exemplo de Descoberta de Efeitos de Áudio" para explorar os efeitos de áudio disponíveis. Este exemplo demonstra como consultar efeitos de áudio em dispositivos de áudio de renderização e captura e como monitorar alterações com os efeitos de áudio. Ele está incluído como parte dos exemplos do SDK e pode ser baixado usando este link:
Exemplo de descoberta de efeitos de áudio
Reconhecimento de efeito de áudio do aplicativo
Os aplicativos têm a capacidade de chamar APIs para determinar quais efeitos de áudio estão ativos no sistema no momento. Para obter mais informações sobre as APIs de reconhecimento de efeitos de áudio, consulte Classe AudioRenderEffectsManager.
Arquitetura de objetos de processamento de áudio
Posicionamento de efeitos de áudio
Há três locais diferentes para efeitos de áudio implementados como APOs. Eles estão em efeitos de fluxo (SFX), efeitos de modo (MFX) e efeitos de ponto de extremidade (EFX).
Efeito de fluxo (SFX)
Um efeito de fluxo APO tem uma instância do efeito para cada fluxo. Os efeitos de fluxo são antes da combinação (renderização) ou após o tee (captura) para um determinado modo e podem ser usados para alterar a contagem de canais antes do mixer. Os efeitos de fluxo não são usados para fluxos brutos.
Algumas versões do Windows, como uma otimização, não carregam APOs SFX ou MFX no modo RAW.
- Windows 8.1 não carrega RAW SFX ou RAW MFX
- Windows 10 carrega RAW MFX, mas não RAW SFX
Efeito Mode (MFX)
Os efeitos de modo (MFX) são aplicados a todos os fluxos mapeados para o mesmo modo. Os efeitos de modo são aplicados após a combinação (renderização) ou antes do tee (captura) para um determinado modo, mas antes da combinação (renderização) ou após o tee (captura) de todos os modos. Qualquer efeito ou efeito específico do cenário que não precise das especificidades do efeito de fluxo deve ser colocado aqui. É mais eficiente usar um efeito de modo, pois há uma instância para vários fluxos que compartilham as mesmas características, como periodicidade e formato.
Efeito de ponto de extremidade (EFX)
O EFX (Efeito de Ponto de Extremidade) é aplicado a todos os fluxos que usam o mesmo ponto de extremidade. Um efeito de ponto de extremidade é sempre aplicado, até mesmo a fluxos brutos. Ou seja, é após a combinação (renderização) ou antes do tee (captura) de todos os modos. Os efeitos do ponto de extremidade devem ser usados com cuidado e, em caso de dúvida, um efeito deve ser colocado na área Modo. Alguns efeitos que devem ser colocados na área do ponto de extremidade são a proteção do locutor e a compensação do locutor.
Este diagrama mostra os possíveis locais para os efeitos de fluxo (SFX), modo (MFX) e ponto de extremidade (EFX) para Windows 10.
Vários efeitos personalizados do APO
É possível configurar vários efeitos baseados em APO para trabalhar com diferentes aplicativos.
Este diagrama ilustra como vários aplicativos podem acessar várias combinações de efeitos de APO de fluxo, modo e ponto de extremidade. Todas as APOs são baseadas em COM e são executadas no modo de usuário. Nesse cenário, nenhum dos efeitos está em execução no hardware ou no modo kernel.
Nota Você pode usar a barra de rolagem na parte inferior desta página para exibir todo esse diagrama.
Efeitos do modo de software e efeitos de ponto de extremidade de hardware para renderização e captura
Este diagrama ilustra os efeitos do modo de software e os efeitos do ponto de extremidade de hardware para renderização e captura.
Sistema equipado com DSP com efeitos de hardware
Este diagrama ilustra um sistema equipado com DSP que implementa efeitos no hardware. Nesse cenário, um APO proxy deve ser criado para informar os aplicativos sobre os efeitos implementados no hardware.