Som espacial para desenvolvedores de aplicativos para Windows, Xbox e Hololens 2
Observação
Esta documentação destina-se a um público de desenvolvedores. Para obter suporte ao utilizador final para ativar o som espacial no seu dispositivo, consulte Como ativar o som espacial no Windows 10.
O Microsoft Spatial Sound é a solução de nível de plataforma da Microsoft para suporte de som espacial no Xbox, Windows e HoloLens 2, permitindo pistas de áudio surround e elevação (acima ou abaixo do ouvinte). O som espacial pode ser aproveitado por aplicativos da área de trabalho do Windows (Win32), bem como aplicativos da Plataforma Universal do Windows (UWP) em plataformas compatíveis. As APIs de som espacial permitem que os desenvolvedores criem objetos de áudio que emitem áudio a partir de posições no espaço 3D. Os objetos de áudio dinâmicos permitem-lhe emitir áudio a partir de uma posição arbitrária no espaço, que pode mudar ao longo do tempo. Você também pode especificar que os objetos de áudio emitem som de um dos 17 canais estáticos predefinidos (8.1.4.4) que podem representar alto-falantes reais ou virtualizados. O formato de saída real é selecionado pelo usuário e pode ser abstraído das implementações do Microsoft Spatial Sound; O áudio será apresentado aos alto-falantes, fones de ouvido e recetores de home theater existentes sem a necessidade de qualquer alteração de código ou conteúdo. A plataforma suporta totalmente a codificação Dolby Atmos em tempo real para saída HDMI e estéreo para auscultadores, DTS:X para auscultadores e Windows Sonic para auscultadores para auscultadores estéreo. Finalmente, os aplicativos Microsoft Spatial Sound seguem a política de mixagem do sistema, e seu áudio também será misturado com aplicativos sem reconhecimento espacial. O suporte ao Microsoft Spatial Sound também está integrado no Media Foundation; aplicativos que usam o media foundation podem reproduzir com êxito conteúdo Dolby Atmos sem implementação adicional.
O som espacial com o Microsoft Spatial Sound suporta TVs, home theaters e barras de som compatíveis com Dolby Atmos. O som espacial também pode ser usado com qualquer par de fones de ouvido que o consumidor possa possuir, com áudio renderizado pela plataforma usando Windows Sonic para fones de ouvido, Dolby Atmos para fones de ouvido ou DTS Headphone:X.
Ativando o Microsoft Spatial Sound
Seja como desenvolvedor ou consumidor, um usuário deve habilitar o Microsoft Spatial Sound em seu dispositivo para ouvir som espacializado.
Mac OS
Em PCs com Windows, isso é feito através da página de propriedades de um determinado dispositivo de saída de som. No painel de controle Sound, selecione um dispositivo de saída e clique em propriedades do dispositivo. Na secção som espacial da página, se o dispositivo suportar som espacial, pode selecionar um dos formatos disponíveis a partir da lista pendente formato de som espacial.
Também pode ativar o Microsoft Spatial Sound clicando com o botão direito do rato no ícone Volume na barra de tarefas.
Xboxe
No Xbox, os recursos do Microsoft Spatial Sound estão sempre disponíveis para o consumidor e são ativados por meio do aplicativo Configurações em Geral -> Volume & saída de áudio.
O botão de áudio HDMI é preenchido com todos os formatos suportados pelo Recetor de Áudio e Vídeo (AVR) ou pela Barra de Som ou pela TV diretamente ligada à consola Xbox. A opção "Áudio ótico" só está disponível em consolas Xbox mais antigas e não no Xbox Series X|S e superior.
Observe que selecionar as opções "Dolby Atmos para home theater (somente HDMI)" ou "DTS:X para home theater (somente HDMI)" no áudio HDMI solicitará que o usuário baixe e instale aplicativos Dolby Access ou DTS Sound Unbound, se ainda não estiver instalado
Selecione Dolby Atmos para fones de ouvido, DTS Headphone:X ou Windows Sonic para fones de ouvido no menu suspenso formato Headset em de áudio do fone de ouvido
Quando o Microsoft Spatial Sound não estiver disponível (por exemplo, ao reproduzir alto-falantes estéreo de laptop incorporados ou se o usuário não tiver habilitado explicitamente o Microsoft Spatial Sound acima), o número de objetos dinâmicos disponíveis retornados por ISpatialAudioClient::GetMaxDynamicObjectCount a um aplicativo será 0.
HoloLens 2
No HoloLens 2, o Microsoft Spatial Sound é ativado por padrão e usa descarregamento DSP de hardware projetado especificamente para Windows Sonic para fones de ouvido.
Middleware de áudio e som espacial da Microsoft
Muitos desenvolvedores de aplicativos e jogos usam soluções de mecanismo de renderização de áudio de terceiros, que geralmente incluem ferramentas sofisticadas de criação e audição. A Microsoft fez parceria com vários desses provedores de soluções para implementar o Microsoft Spatial Sound em seus ambientes de criação existentes. Isso frequentemente significa que as APIs discutidas aqui são abstraídas da exibição do aplicativo; eles são encapsulados como plug-ins de processamento de sinal digital (DSP) que o aplicativo pode instanciar e que o implementador de áudio do aplicativo pode usar para misturar a um leito de canal do Microsoft Spatial Sound, submixar ou enviar vozes individuais para plug-ins de instância de objeto dinâmico, conforme desejado. Consulte o seu fornecedor de soluções de middleware de áudio para obter o respetivo nível de suporte para o Microsoft Spatial Sound.
Microsoft Spatial Sound para renderizadores de áudio
Muitos renderizadores de áudio têm como alvo uma API de Sessão de Áudio do Windows (WASAPI) ponto de extremidade IAudioClient, onde o aplicativo alimenta buffers de dados de áudio mistos e conformes ao formato para um coletor de áudio WASAPI; Os buffers entregues são então consumidos para mistura com outros clientes, processamento final no nível do sistema e renderização.
Os pontos de extremidade espaciais do Microsoft Spatial Sound são implementados como ISpatialAudioClient, que tem muitas semelhanças com IAudioClient. Ele suporta objetos de som estáticos que formam um leito de canais, com suporte para até 8.1.4.4 canais (8 canais ao redor do ouvinte – Esquerda, Direita, Centro, Lado Esquerdo, Lado Direito, Volta Esquerda, Volta Direita e Back Center; 1 canal de efeitos de baixa frequência; 4 canais acima do ouvinte; 4 canais abaixo do ouvinte). E suporta objetos dinâmicos sonoros, que podem ser posicionados arbitrariamente no espaço 3D.
O padrão de codificação de implementação geral para ISpatialAudioClient é:
- Crie objetos de áudio estáticos e/ou dinâmicos.
- Alimente o buffer de áudio de cada objeto em cada quadro para que o sistema possa renderizá-lo.
- Atualize as posições 3D dos objetos dinâmicos sob demanda – com a frequência (ou com pouca frequência) que o aplicativo desejar.
Observe que o formato de saída atual (alto-falantes ou fones de ouvido; Windows Sonic for Headphones, Dolby Atmos ou DTS Headphone:X) é abstraído da implementação acima – o desenvolvedor do aplicativo pode se concentrar no som espacial sem precisar girar com base no formato. Os aplicativos que desejam que seu comportamento divirja com base no formato de saída podem consultar o formato em uso, mas a abstração significa que um aplicativo não é necessário para lidar com esses formatos.
Integração de som espacial da Microsoft com renderizadores de áudio
Como ISpatialAudioClient é um coletor de áudio que consome dados, um renderizador de áudio tem várias opções de como interagir e entregar dados de áudio para ele. Há três técnicas de integração comumente usadas (e para títulos que usam middleware de áudio, você pode ver plug-ins equivalentes disponibilizados com base nessas opções):
- 7.1.4 panners e masterização de voz: Os renderizadores que já suportam pontos de extremidade 7.1 podem optar por simplesmente adicionar suporte para os quatro canais de altura adicionais que o ISpatialAudioClient static channel bed suporta. Qualquer movimento panorâmico de canal que eles fizeram anteriormente (provavelmente já aproveitando as coordenadas x, y, z) pode ser atualizado para incluir agora esses canais de altura. Isso geralmente oferece o mínimo de interrupção para os fluxos de trabalho de áudio do renderizador e do aplicativo, sinal, fluxo e controle de mistura. Por meio de fones de ouvido, observe que a mistura completa do aplicativo será espacializada – portanto, até mesmo a música estéreo pode ser percebida como "externalizada" do ouvinte.
- Manter o endpoint existente, além de adicionar um barramento 7.1.4 (e panners): Alguns títulos podem optar por manter dois endpoints: seu endpoint WASAPI estéreo existente (para conteúdo "direto para ouvidos" não destinado a ser espacializado) ao lado de um ISpatialAudioClient leito de canal estático com suporte para 7.1.4 (ou até mesmo 8.1.4.4). É claro que o gerenciamento de interações entre duas misturas apresenta desafios adicionais para os criadores de conteúdo, embora a sincronização seja mantida, já que as instâncias WASAPI e ISAC ativas em um determinado momento usam o mesmo tamanho de buffer e relógio para processamento.
- Use objetos de som dinâmicos para determinadas vozes ou submixes: Oferecendo talvez o posicionamento mais detalhado/preciso, mas potencialmente criando opacidade de mistura, esta técnica envolve o uso de ISpatialAudioClient objetos de som dinâmicos. Observe que os metadados mais o buffer de áudio são entregues ao renderizador, portanto, esses sons serão opacos para o resto da mistura de aplicativos. Além disso, como há um número limitado de objetos de som dinâmicos disponíveis, o renderizador precisará considerar a implementação de técnicas de priorização – abate, colocalização de som, mistura com o leito de canal estático e assim por diante. Os jogos têm usado frequentemente esta técnica para sons individuais de "heróis", como um helicóptero que se moverá acima do ouvinte.
Os renderizadores também podem combinar entre essas abordagens.
Implicações de recursos do Microsoft Spatial Sound Runtime
No Windows e no Xbox, o número de vozes disponíveis varia de acordo com o formato em uso. Os formatos Dolby Atmos suportam um total de 32 objetos ativos (portanto, se uma cama de 7.1.4 canais estiver em uso, 20 objetos de som dinâmicos adicionais podem estar ativos). O Windows Sonic for Headphones suporta 128 objetos ativos no total, com o canal LFE (Low Frequency Effects) não sendo realmente contado como um objeto -- portanto, quando uma cama de canais 8.1.4.4 está em uso, 112 objetos de som dinâmicos podem estar ativos.
Para aplicativos da Plataforma Universal do Windows executados em consoles de jogos Xbox One, a codificação em tempo real (para Dolby Atmos para Home Theater, Dolby Atmos para Fones de Ouvido, DTS:X para Home Theater, DTS Headphone:X e Windows Sonic para Fones de Ouvido) é executada em hardware sem custo de CPU.
A partir da atualização 2303 do sistema operacional Xbox e do Game Development Kit (GDK), os limites de recursos no Xbox são atualizados para os seguintes valores:
Formato | Max objetos estáticos (Channel Bed) | Max Objetos Dinâmicos Xbox Series X|S, aplicativos UWP & >=2303 GDK |
Max Objetos Dinâmicos Xbox Series X|S, XDK & <2303 GDK |
Max Objetos Dinâmicos Xbox Um |
---|---|---|---|---|
Dolby Atmos para cinema em casa (HDMI) | 12 (7.1.4) | 20 | 20 | 20 |
DTS:X para cinema em casa (HDMI) | 17 (8.1.4.4) | 20 | 20 | 16 |
Dolby Atmos (Auscultadores) | 17 (8.1.4.4) | 128 | 20 | 16 |
DTS Fone de ouvido: X (fones de ouvido) | 17 (8.1.4.4) | 200 | 20 | 16 |
Windows Sonic (Auscultadores) | 17 (8.1.4.4) | 220 | 20 | 15 |
A partir da versão de serviço de maio para a compilação 22621 do Windows, os limites de recursos no Windows são atualizados para os seguintes valores:
Formato | Max objetos estáticos (Channel Bed) | Max Objetos Dinâmicos Mac OS |
Max Objetos Dinâmicos HoloLens 2 |
---|---|---|---|
Cinema em casa Dolby Atmos (HDMI) | 12 (7.1.4) | 20 | N/A |
DTS:X para cinema em casa (HDMI) | 17 (8.1.4.4) | 32 | N/A |
Dolby Atmos (Auscultadores) | 17 (8.1.4.4) | 128 | N/A |
Dolby Atmos (alto-falantes embutidos) | 17 (8.1.4.4) | 128 | N/A |
DTS Fone de ouvido: X (fones de ouvido) | 17 (8.1.4.4) | 128 | N/A |
DTS:X Ultra (alto-falantes integrados) | 17 (8.1.4.4) | 128 | N/A |
Windows Sonic (Auscultadores) | 17 (8.1.4.4) | 128 | 31 |
Para versões anteriores do Windows, Xbox e HoloLens, aplicam-se os seguintes limites de recursos.
Formato | Max objetos estáticos (Channel Bed) | Max Objetos Dinâmicos Xbox Um |
Max Objetos Dinâmicos Mac OS |
Max Objetos Dinâmicos HoloLens 2 |
---|---|---|---|---|
Dolby Atmos para cinema em casa (HDMI) | 12 (7.1.4) | 20 | 20 | N/A |
DTS:X para cinema em casa (HDMI) | 17 (8.1.4.4) | 16 | 32 | N/A |
Dolby Atmos (Auscultadores) | 17 (8.1.4.4) | 16 | 16 | N/A |
Dolby Atmos (colunas incorporadas) | 17 (8.1.4.4) | N/A | 16 | N/A |
DTS Fone de ouvido: X (fones de ouvido) | 17 (8.1.4.4) | 16 | 32 | N/A |
DTS Ultra (alto-falantes integrados) | 17 (8.1.4.4) | N/A | 32 | N/A |
Windows Sonic para auscultadores | 17 (8.1.4.4) | 15 | 112 | 31 |
Os aplicativos também devem considerar as seguintes implicações de recursos:
- de largura de banda de armazenamento/disco: O conteúdo linear pré-criado para 7.1.4 normalmente será maior do que o conteúdo linear 7.1 (embora os codecs percetivos já muitas vezes aproveitem a correlação de canais para torná-lo muito menos do que os 50% mais canais reais de dados de áudio)
- Outros custos de processamento de sinal digital: Alguns efeitos anteriormente globais podem agora tornar-se instâncias por objeto de som dinâmico. Além disso, alguns criadores de conteúdo podem querer atualizar alguns efeitos DSP para suportar canais adicionais ou usá-los exclusivamente.
Microsoft Spatial Sound e Sound Spatialization Cues
O Microsoft Spatial Sound é focado na simulação de posicionamento de som em uma esfera idealizada ao redor do ouvinte. O Windows Sonic for Headphones, DTS Headphone:X e Dolby Atmos implementam o mapeamento de alto-falantes e a virtualização para fones de ouvido, mas observe que muitos outros aspetos da simulação espacial de som, já normalmente implementados de maneiras habilitadas para criadores de conteúdo, são deixados para os mecanismos existentes. Os criadores de conteúdo continuam a usar as ferramentas e processos de jogo existentes anteriormente para pistas espaciais como Doppler, atenuação e filtragem baseadas em distância, oclusão e obstrução e reverberação ambiental.
Recursos adicionais
- Microsoft Spatial Sound amostras repositório github
- Dolby oferece uma série de recursos de suporte relacionados ao Dolby Atmos e ao aplicativo Dolby Access em https://developer.dolby.com.
Interfaces de som espacial
Observação
Ao usar as interfaces ISpatialAudioClient em um título do Kit de Desenvolvimento do Xbox One (XDK), você deve primeiro chamar EnableSpatialAudio antes de chamar IMMDeviceEnumerator::EnumAudioEndpoints ou IMMDeviceEnumerator::GetDefaultAudioEndpoint. Se isso não for feito, um erro de E_NOINTERFACE será retornado da chamada para Ativar. EnableSpatialAudio só está disponível para títulos XDK e não precisa ser chamado para aplicativos da Plataforma Universal do Windows executados no Xbox One, nem para dispositivos que não sejam do Xbox One.
Estruturas Sonoras Espaciais
Estrutura | Descrição |
---|---|
SpatialAudioObjectRenderStreamActivationParams | Representa parâmetros de ativação para um fluxo de renderização de áudio espacial. |
SpatialAudioClientActivationParams | Representa parâmetros de ativação opcionais para um fluxo de renderização de áudio espacial. |
Enumerações de som espacial
Enumeração | Descrição |
---|---|
AudioObjectType | Especifica o tipo de um ISpatialAudioObject. |