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ó saem três coisas

Atualizações automáticas, relatórios de uso anónimos e avisos do programador: é tudo. só as atualizações automáticas vêm ligadas, e um ficheiro descarregado tem a assinatura verificada antes de lhe perguntarmos se quer instalar. O painel escuta 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
  • CtrlAlt1–3 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

1270 testes · 82% 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ó três coisas saem deste PC, e são estas.

Os nomes das aplicações e a informação de sessão são tratados neste PC, e as definições são um único ficheiro JSON. Há três funcionalidades que vão à internet: atualizações automáticas, relatórios de uso anónimos e avisos do programador. O telecomando do telemóvel está desligado até o ativar e, depois disso, só mostra os nomes das aplicações aos telemóveis que emparelhou, dentro da mesma rede privada. só as atualizações automáticas vêm ligadas: pergunta se existe uma versão mais recente, descarrega-a se existir e depois pergunta se a quer instalar. Envia a versão em uso e o idioma, nunca o id de instalação, e pode ser desligada no painel. As outras duas ficam caladas até as ligar.

Ficheiro de definições%APPDATA%\SoundDesk\config.json
Registo%APPDATA%\SoundDesk\sounddesk.log
Atualizações automáticasLigado por omissão — uma vez por arranque, apenas a versão em uso e o idioma. O id de instalação não é enviado. A versão nova é descarregada, o Windows confirma se está assinada por PROJECTTEAMFORYOU, e instalá-la exige um clique
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
Avisos do programadorDesligado por omissão — quando ligado, apenas a versão em uso e o idioma
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. O Python não é preciso.

Transferir SoundDesk.exe Transferir o zip

21,9 MB · assinado digitalmenteexe SHA-256zip SHA-256

Se o seu navegador ou a política da empresa bloquear executáveis, transfira o zip. Lá dentro vai o mesmo ficheiro, e há um hash para cada um.

Ver outra vez

O seu navegador pode bloqueá-lo como transferência suspeita. Isso significa que ainda poucas pessoas o transferiram, não que haja algo de errado com o ficheiro. No Chrome, abra a lista de transferências, clique em ⋮ e escolha Manter; se for o Windows a bloquear, escolha Mais informações → Executar. O que realmente o verifica são duas coisas: que o editor seja PROJECTTEAMFORYOU e que o SHA-256 acima corresponda ao ficheiro que recebeu. O aviso desaparece à medida que mais pessoas o transferem.

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

Registo de alterações

O que mudou, e quando.

Todas as horas são hora padrão da Coreia (KST). O registo completo está no ficheiro de alterações do repositório.

  1. v1.7.0 Mais recente

    • Telecomando no telemóvel. Um telemóvel Android na mesma Wi-Fi (SoundDesk Remote) controla o volume, o silêncio, os dispositivos de saída e os perfis. Desligado por predefinição; depois de ligado, só se ligam os telemóveis emparelhados com um código QR e apenas a partir de uma rede privada.
    • A política de privacidade e os termos de utilização são publicados em doze idiomas.
  2. v1.6.0

    • Atualizações automáticas. Quando sai uma versão nova é descarregada e pergunta-se se a quer instalar. Ligadas por omissão e podem ser desligadas nas definições.
    • Um ficheiro descarregado tem de passar o hash publicado e a assinatura, e a assinatura é verificada outra vez no momento de instalar.
  3. v1.5.0

    • O nível do som que está a sair agora, desenhado sob o principal, o microfone e cada aplicação que toca.
    • Um atalho global que indica uma só aplicação. Silencie um programa a meio de uma reunião sem abrir o painel.
    • Descida automática: quando a aplicação escolhida toca, as outras baixam; quando se cala, voltam.
  4. v1.4.0

    • Disponível como executável e como zip. Os bytes lá dentro são os mesmos e cada um tem o seu hash.
    • A aplicação conhece o seu próprio endereço — abre-se pelo menu da bandeja ou pelo Acerca de, no painel.
    • Um só tipo de letra em toda a página, e os ficheiros passaram de 870KB para 225KB.
  5. v1.3.0

    • Um perfil já pode dizer «esta aplicação segue o dispositivo predefinido».
    • Esta página é publicada em doze línguas.