SoundDesk

Utilità per l'area di notifica di Windows

Un volume diverso per ogni applicazione, con un clic.

Chrome al 30%, Teams al 70%, Spotify al 20%. Invece di aprire il mixer del volume ogni volta, un profilo rimette tutto a posto. Due clic dal menu, o un cursore nel pannello.

Windows 10 · 11Nessun installer, un solo eseguibileTraffico in uscita disattivato per impostazione predefinita

La finestra che apre l'icona nell'area di notifica. Gli stessi valori si cambiano anche dal menu.

Cosa fa

Quello che facevi nel mixer del volume, in due clic dall'area di notifica.

01

Volume e silenziamento per applicazione

Raggruppa per applicazione le sessioni che stanno suonando adesso. Un'applicazione con molti processi, come Chrome, resta una sola riga.

02

Un dispositivo di uscita diverso per applicazione

Il gioco sugli altoparlanti, Discord sulle cuffie. Anche il dispositivo predefinito si cambia dal menu, e il profilo salva il dispositivo insieme ai volumi.

03

Resta anche chiudendo e riaprendo l'applicazione

Ricorda il volume di ogni applicazione e lo rimette quando quell'applicazione torna a suonare. Anche scollegare e ricollegare un dispositivo, o il risveglio dalla sospensione, riapplica il profilo.

04

Il microfono nella stessa mano

Il pulsante più urgente durante una riunione. CtrlAltK silenzia e riattiva il microfono.

05

Il pannello

Modificare i profili, cambiare le scorciatoie, scrivere regole di automazione: tutto dalla finestra. Non c'è mai bisogno di toccare a mano il file delle impostazioni.

06

Escono solo tre cose

Aggiornamenti automatici, statistiche d'uso anonime e avvisi dello sviluppatore: tutto qui. solo gli aggiornamenti automatici sono attivi di serie, e a un file scaricato viene verificata la firma prima che ti si chieda se installarlo. Il pannello ascolta su 127.0.0.1 e richiede un token creato daccapo a ogni esecuzione.

Profili

Quando cambia la situazione, dovrebbero cambiare tutti i volumi.

Ne sono inclusi tre, e lo stato attuale può essere salvato come nuovo profilo in qualsiasi momento. Il cambio automatico — all'avvio di un'applicazione, al collegamento di un dispositivo o per fascia oraria — è disattivato.

I profili inclusi
ProfiliPrincipaleImpostazioni per applicazione
Work72%Chrome 30% · Teams 70% · Spotify 20%
Gaming80%Discord 65% · Spotify 15% · browser silenziato
Meeting60%Teams 80% · Zoom 80% · Chrome 20% · Spotify silenziato

Scorciatoie

Quando le mani sono già sulla tastiera.

Si possono cambiare tutte, e se un altro programma usa già la combinazione te lo dice, invece di fallire in silenzio.

  • CtrlAlt↑ Alza il volume principale
  • CtrlAlt↓ Abbassa il volume principale
  • CtrlAltM Silenzia
  • CtrlAltK Silenzia il microfono
  • CtrlAltS Pannello
  • CtrlAlt1–3 Cambia profilo

Routing per applicazione

Una strada che Windows non ha mai documentato, verificata prima di essere usata.

misurato

«solo questa applicazione sulle cuffie» non ha un'API pubblica. Bisogna chiamare l'interfaccia interna che usa l'app Impostazioni di Windows, Windows.Media.Internal.AudioPolicyConfig, e sia l'identificatore dell'interfaccia sia la disposizione della vtable cambiano da build a build. SoundDesk non le usa a indovinare.

La prima chiamata pericolosa avviene in un processo separato, così l'icona sopravvive a un crash, e dopo che un'applicazione è stata davvero spostata si rilegge con Get; solo quando torna lo stesso dispositivo passa a «verificato». Se la rilettura non coincide, la funzione si disattiva da sola e apre la pagina delle impostazioni di Windows.

Cosa significa il verdetto
StatoProva
verifiedUn processo è stato spostato davvero e l'endpoint id riletto coincide. Se non sta suonando nulla, l'autodiagnosi si crea una sessione con un flusso silenzioso e verifica contro sé stessa
probableNon è stato possibile creare nulla da rileggere: risulta solo che attivare la factory e chiamare tramite la vtable non ha causato un crash
unsupportedL'autodiagnosi è fallita, oppure la chiamata è riuscita e Windows non l'ha applicata → vieni indirizzato alla pagina delle impostazioni

Su Windows 10 22H2, build 19045, verified verificato Il verdetto viene salvato con il numero di build e ricontrollato quando Windows si aggiorna

Sicurezza

Sicuro anche eseguito dalla cartella dei download.

Questi sono i problemi che un eseguibile portatile incontra davvero. Non un elenco astratto: dietro ogni riga ci sono codice e un test.

MinacciaRisposta
Dirottamento di DLL
Una DLL falsa messa accanto all'exe
Le DLL di sistema si caricano solo per System32 percorso assoluto. All'avvio la cartella dell'exe e la directory di lavoro escono dal percorso di ricerca
Occupazione del mutex
Un'altra sessione prende prima il nome e blocca l'avvio
L'oggetto a istanza singola sta nello spazio dei nomi Local\.
Iniezione tramite il file delle impostazioni Un endpoint id arriva a una chiamata COM solo dopo aver superato un controllo con espressione regolare
Falsificazione del log
Un a capo nel nome di un processo per inserire una riga di log falsa
Ai nomi di applicazione e dispositivo vengono tolti i caratteri di controllo e applicato un limite di lunghezza
Un percorso di avvio automatico senza virgolette Il valore di Run è sempre un percorso assoluto tra virgolette, e si usa soltanto HKCU.
Manomissione del pannello
Un altro programma sullo stesso PC, o una pagina web
127.0.0.1 soltanto, più un token da 256 bit nuovo a ogni esecuzione e un controllo di Host e Origin. Il token diventa un cookie HttpOnly al primo caricamento e sparisce dalla barra degli indirizzi

1270 test · copertura 82% Compreso un test reale che piazza una DLL falsa e verifica che venga bloccata Firmato come PROJECTTEAMFORYOU · controlla il nome dell'autore prima di eseguirlo

Privacy

Escono tre cose da questo PC, ed eccole.

I nomi delle applicazioni e le informazioni di sessione sono trattati su questo PC, e le impostazioni sono un solo file JSON. Le funzioni che vanno su internet sono tre: aggiornamenti automatici, statistiche d'uso anonime e avvisi dello sviluppatore. Il telecomando sul telefono resta spento finché non lo attivi e, una volta attivo, mostra i nomi delle applicazioni solo ai telefoni abbinati, nella stessa rete privata. solo gli aggiornamenti automatici sono attivi all'inizio: chiede se esiste una versione più recente, la scarica se c'è e poi chiede se installarla. Manda la versione in uso e la lingua, mai l'id di installazione, e si spegne dal pannello. Le altre due restano zitte finché non le accendi.

File delle impostazioni%APPDATA%\SoundDesk\config.json
Log%APPDATA%\SoundDesk\sounddesk.log
Aggiornamenti automaticiAttivo di serie — una volta per avvio, solo la versione in uso e la lingua. L'id di installazione non viene mandato. La versione nuova viene scaricata, Windows conferma che è firmata PROJECTTEAMFORYOU, e installarla richiede un clic
Rapporto d'uso anonimoDisattivato — se acceso, una volta al giorno: un id di installazione casuale, la versione, la build di Windows, la lingua e tre conteggi
Avvisi dello sviluppatoreSpento di serie — da acceso, solo la versione in uso e la lingua
Quello che non esce maiNomi di applicazione · nomi di dispositivo · percorsi di file · il nome dell'account Windows
API usateIMMDeviceEnumerator · IAudioSessionManager2 · ISimpleAudioVolume · IPolicyConfig · AudioPolicyConfig
Avvio automaticoHKCU\Software\Microsoft\Windows\CurrentVersion\Run (facoltativo)

Autodiagnosi

Chiedi all'applicazione stessa se funziona sul tuo PC.

Esegue una per una le proprie funzioni sullo stack audio reale e rimette a posto ciò che ha toccato. Niente che produca suono viene proprio fatto: il volume principale si prova riscrivendo il valore che ha già, il che esercita il percorso di chiamata e nient'altro.

ComandoCosa controlla
--selftest-audio Dispositivi · principale · microfono · volume, silenziamento e routing per applicazione · profili · scorciatoie globali. Se non sta suonando nessuna applicazione, il routing si verifica con una sessione silenziosa propria
--selftest-panel Se l'eseguibile pacchettizzato serve davvero il pannello
--report Dispositivi, sessioni e profili in JSON

Risultato su questo PC

OK  Volume per applicazione (firefox.exe 100% → 42% → ripristinato)
OK  Silenziamento per applicazione
OK  Routing di uscita per applicazione (firefox.exe → ASUS VZ279 → ripristinato)
OK  Cambio del dispositivo predefinito · profili · scorciatoie globali
—   Microfono (questo PC non ha dispositivi di ingresso)

11 passed, 0 failed, 2 skipped — Windows 10 22H2 build 19045

Ovunque

Nella tua lingua, sul tuo PC.

Le stesse impostazioni a casa e al lavoro, lette nella lingua che usi, richiamate da una macro quando serve.

01

12 lingue

Segue la lingua di Windows. Puoi anche sceglierne una, e quando lo fai il pannello e il menu cambiano sul momento, senza riavviare.

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

02

Le stesse impostazioni a casa e al lavoro

Esporta profili, scorciatoie e regole in un file e importalo su un altro PC. I dispositivi vengono abbinati per nome: le stesse cuffie hanno un id diverso su ogni PC, quindi copiare il file e basta farebbe sparire il routing in silenzio. Dei dispositivi che questo PC non ha ti viene detto il nome.

03

Richiamarlo da una macro

Usalo così com'è da un pulsante dello Stream Deck o da una riga di AutoHotkey. Funziona che l'icona sia presente o no, e non ne apre una seconda. Codice di uscita 0 se qualcosa è cambiato, 1 se non ha trovato nulla.

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

Installazione

Un file. Nessun installer.

SoundDesk.exe dove preferisci ed eseguilo: comparirà un'icona nell'area di notifica. Python non serve.

Scarica SoundDesk.exe Scarica lo zip

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

Se il browser o la policy aziendale blocca gli eseguibili, prendi lo zip. Dentro c'è lo stesso file, e per entrambi c'è un hash.

Rivedilo

Il browser potrebbe bloccarlo come download sospetto. Significa che finora lo hanno scaricato in pochi, non che ci sia qualcosa che non va nel file. In Chrome apri l'elenco dei download, fai clic su ⋮ e scegli Conserva; se a bloccare è Windows, scegli Ulteriori informazioni → Esegui comunque. Ciò che lo verifica davvero sono due cose: che l'autore sia PROJECTTEAMFORYOU e che lo SHA-256 qui sopra corrisponda al file ricevuto. L'avviso sparisce man mano che altre persone lo scaricano.

Windows 10 1803 o successivoUn solo eseguibileNessun diritto di amministratoreSHA-256 incluso

Registro delle modifiche

Che cosa è cambiato, e quando.

Tutti gli orari sono ora standard della Corea (KST). Il registro completo è nel file delle modifiche nel repository.

  1. v1.7.0 Ultima

    • Telecomando sul telefono. Un telefono Android sullo stesso Wi-Fi (SoundDesk Remote) controlla volume, silenzio, dispositivi di uscita e profili. Disattivato per impostazione predefinita; una volta attivo, si collegano solo i telefoni abbinati con un codice QR, e solo da una rete privata.
    • L'informativa sulla privacy e i termini di utilizzo sono pubblicati in dodici lingue.
  2. v1.6.0

    • Aggiornamenti automatici. Quando esce una versione nuova viene scaricata, poi ti si chiede se installarla. Attivi di serie, si spengono nelle impostazioni.
    • Un file scaricato deve passare sia l'hash pubblicato sia la firma, e la firma viene ricontrollata nel momento in cui lo si installa.
  3. v1.5.0

    • Il livello del suono che sta uscendo adesso, disegnato sotto il master, il microfono e ogni app che suona.
    • Una scorciatoia globale che indica una sola app. Zittire un programma in mezzo a una riunione senza aprire il pannello.
    • Abbassamento automatico: quando l'app scelta emette suono le altre si abbassano, e tornano su quando tace.
  4. v1.4.0

    • Disponibile come eseguibile e come zip. I byte all'interno sono gli stessi e ciascuno ha il suo hash.
    • L'app conosce il proprio indirizzo: si apre dal menu nell'area di notifica o da Informazioni, nel pannello.
    • Un solo carattere per tutta la pagina, e i file sono passati da 870KB a 225KB.
  5. v1.3.0

    • Un profilo ora può dire «questa app segue il dispositivo predefinito».
    • Questa pagina esce in dodici lingue.