SoundDesk

Utilitário da bandeja do Windows

Um volume diferente para cada aplicação,
num clique.

Chrome a 30%, Teams a 70%, Spotify a 20%. Em vez de abrir o misturador de volume de cada vez, um perfil repõe tudo. Dois cliques na bandeja, ou um cursor no painel.

Windows 10 · 11Sem instalador, um único executávelTráfego de saída desligado por padrão

A janela que o ícone da bandeja abre. Os mesmos valores também podem ser alterados directamente no menu.

O que faz

O que fazia no misturador de volume, em dois cliques a partir da bandeja.

01

Volume e silêncio por aplicação

Agrupa por aplicação as sessões que estão a dar som agora. Uma aplicação com vários processos, como o Chrome, continua a ser uma linha só.

02

Um dispositivo de saída diferente por aplicação

O jogo nas colunas, o Discord nos auscultadores. O dispositivo predefinido também se troca no menu, e o perfil guarda o dispositivo junto com os volumes.

03

Mantém-se ao fechar e voltar a abrir a aplicação

Lembra o volume de cada aplicação e repõe-no quando essa aplicação volta a tocar. Desligar e voltar a ligar um dispositivo, ou acordar da suspensão, também volta a aplicar o perfil.

04

O microfone na mesma mão

O botão mais urgente numa reunião. CtrlAltK silencia e reactiva o microfone.

05

O painel

Editar perfis, mudar atalhos, escrever regras de automação: tudo na janela. Nunca é preciso mexer no ficheiro de definições à mão.

06

Só sai o que ligar

O relatório anónimo de utilização, a verificação de actualizações e os avisos do programador são tudo o que existe, e as três vêm desligadas. O painel abre apenas em 127.0.0.1 e precisa de um token criado de novo em cada execução.

Perfis

Quando a situação muda, todos os volumes deviam mudar com ela.

Vêm três de origem, e o estado actual pode ser guardado como um novo a qualquer momento. A troca automática — ao arrancar uma aplicação, ao ligar um dispositivo ou por hora do dia — vem desligada.

Os perfis incluídos
PerfisPrincipalDefinições por aplicação
Work72%Chrome 30% · Teams 70% · Spotify 20%
Gaming80%Discord 65% · Spotify 15% · navegador silenciado
Meeting60%Teams 80% · Zoom 80% · Chrome 20% · Spotify silenciado

Atalhos

Quando já tem as mãos no teclado.

Todos podem ser alterados, e se outro programa já usar a combinação é-lhe dito, em vez de falhar em silêncio.

  • CtrlAlt Aumentar o volume principal
  • CtrlAlt Baixar o volume principal
  • CtrlAltM Silenciar
  • CtrlAltK Silenciar o microfone
  • CtrlAltS Painel
  • CtrlAlt13 Mudar de perfil

Encaminhamento por aplicação

Um caminho que o Windows nunca documentou, verificado antes de ser usado.

medido

«só esta aplicação nos auscultadores» não tem API pública. É preciso chamar a interface interna que a aplicação Definições do Windows usa, Windows.Media.Internal.AudioPolicyConfig, e tanto o identificador da interface como a disposição da vtable mudam de compilação para compilação. O SoundDesk não as usa por adivinhação.

A primeira chamada perigosa é feita num processo separado, para que a bandeja sobreviva a uma falha, e depois de a aplicação ter sido mesmo movida é relida com Get; só quando volta o mesmo dispositivo é promovida a «verificado». Se a releitura não bater certo, a funcionalidade desliga-se sozinha e abre a página de definições do Windows.

O que o veredicto significa
EstadoProva
verifiedUm processo foi mesmo movido e o endpoint id relido coincide. Se nada estiver a tocar, o autodiagnóstico cria para si uma sessão com um fluxo silencioso e verifica contra si próprio
probableNão foi possível criar nada para reler — apenas que activar a fábrica e chamar pela vtable não provocou uma falha
unsupportedO autodiagnóstico falhou, ou a chamada correu bem e o Windows não a aplicou → é encaminhado para a página de definições

No Windows 10 22H2, compilação 19045, verified confirmado O veredicto é guardado com o número da compilação e reavaliado quando o Windows actualiza

Segurança

Seguro mesmo executado a partir da pasta de transferências.

Estes são os problemas que um executável portátil encontra de facto. Não é uma lista abstracta: cada linha tem código e um teste por trás.

AmeaçaResposta
Sequestro de DLL
Uma DLL falsa colocada ao lado do exe
As DLL do sistema são carregadas apenas por System32 caminho absoluto. No arranque, a pasta do exe e o directório de trabalho saem do caminho de pesquisa
Ocupação do mutex
Outra sessão toma o nome primeiro e bloqueia o arranque
O objecto de instância única fica no espaço de nomes Local\.
Injecção pelo ficheiro de definições Um endpoint id só chega a uma chamada COM depois de passar uma verificação por expressão regular
Falsificação do registo
Uma mudança de linha no nome de um processo para inserir uma entrada falsa
Aos nomes de aplicação e dispositivo são retirados os caracteres de controlo e aplicado um limite de comprimento
Um caminho de arranque automático sem aspas O valor de Run é sempre um caminho absoluto entre aspas, e usa-se apenas HKCU.
Manipulação do painel
Outro programa no mesmo PC, ou uma página web
127.0.0.1 apenas, mais um token de 256 bits novo em cada execução e uma verificação de Host e Origin. O token passa a cookie HttpOnly na primeira carga e desaparece da barra de endereços

696 testes · 84% de cobertura Inclui um teste real que planta uma DLL falsa e confirma que é bloqueada Assinado como PROJECTTEAMFORYOU · verifique o nome do editor antes de executar

Privacidade

Só sai o que ligar.

Os nomes das aplicações e a informação de sessão são tratados neste PC e em mais lado nenhum, e as definições são um único ficheiro JSON. Há exactamente três funcionalidades que chegam à rede — relatório anónimo de utilização, verificação de actualizações e avisos do programador — e as três vêm desligadas. Até ligar uma no painel, não sai um único pedido.

Ficheiro de definições%APPDATA%\SoundDesk\config.json
Registo%APPDATA%\SoundDesk\sounddesk.log
Relatório anónimo de utilizaçãoDesligado por padrão — quando ligado, uma vez por dia: um id de instalação aleatório, a versão, a compilação do Windows, o idioma e três contagens
Verificação de actualizações · avisos do programadorDesligado por padrão — quando ligado, apenas a versão em execução e o idioma. O id de instalação não é enviado
O que nunca saiNomes de aplicação · nomes de dispositivo · caminhos de ficheiro · o nome da conta do Windows
APIs utilizadasIMMDeviceEnumerator · IAudioSessionManager2 · ISimpleAudioVolume · IPolicyConfig · AudioPolicyConfig
Arranque automáticoHKCU\Software\Microsoft\Windows\CurrentVersion\Run (opcional)

Autodiagnóstico

Pergunte à própria aplicação se funciona no seu PC.

Corre as suas próprias funcionalidades uma a uma sobre a pilha de áudio real e repõe o que tocou. Nada que produza som chega sequer a ser feito — o volume principal é provado reescrevendo o valor que já tem, o que exercita o caminho da chamada e mais nada.

ComandoO que verifica
--selftest-audio Dispositivos · principal · microfone · volume, silêncio e encaminhamento por aplicação · perfis · atalhos globais. Se nenhuma aplicação estiver a tocar, o encaminhamento é verificado contra uma sessão silenciosa própria
--selftest-panel Se o executável empacotado serve mesmo o painel
--report Dispositivos, sessões e perfis em JSON

Resultado neste PC

OK  Volume por aplicação (firefox.exe 100% → 42% → reposto)
OK  Silêncio por aplicação
OK  Encaminhamento de saída por aplicação (firefox.exe → ASUS VZ279 → reposto)
OK  Troca de dispositivo predefinido · perfis · atalhos globais
—   Microfone (este PC não tem dispositivo de entrada)

11 passed, 0 failed, 2 skipped — Windows 10 22H2 compilação 19045

Em qualquer lado

Na sua língua, no seu PC.

As mesmas definições em casa e no trabalho, lidas na língua que usa, chamadas de uma macro quando for preciso.

01

12 idiomas

Segue o idioma do Windows. Também pode escolher um, e quando o faz o painel e o menu da bandeja mudam na hora, sem reiniciar.

한국어 · English · 日本語 · 简体中文 · 繁體中文 · Español · Português · Français · Deutsch · Русский · Italiano · Tiếng Việt

02

As mesmas definições em casa e no trabalho

Exporte perfis, atalhos e regras num ficheiro e importe-o noutro PC. Os dispositivos são emparelhados pelo nome: os mesmos auscultadores têm um id diferente em cada PC, por isso copiar só o ficheiro faria o encaminhamento desaparecer em silêncio. Dos dispositivos que este PC não tem, é-lhe dado o nome.

03

Chamar de uma macro

Use-o tal como está a partir de um botão do Stream Deck ou de uma linha de AutoHotkey. Funciona com a bandeja aberta ou não, e não levanta um segundo ícone. Código de saída 0 se algo mudou, 1 se nada correspondeu.

SoundDesk.exe --set-app chrome.exe=25
SoundDesk.exe --profile Gaming
SoundDesk.exe --list apps

Instalação

Um ficheiro. Sem instalador.

SoundDesk.exe onde quiser e execute-o: aparece um ícone na bandeja. Para remover, apague o ficheiro e a pasta de definições. O Python não é preciso.

Transferir SoundDesk.exe

21,9 MB · assinado digitalmenteSHA-256

Ver outra vez

Windows 10 1803 ou posteriorUm único executávelSem permissões de administradorSHA-256 incluído