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.
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.
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.
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.
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.
Il microfono nella stessa mano
Il pulsante più urgente durante una riunione. CtrlAltK silenzia e riattiva il microfono.
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.
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.
| Profili | Principale | Impostazioni per applicazione |
|---|---|---|
| Work | 72% | Chrome 30% · Teams 70% · Spotify 20% |
| Gaming | 80% | Discord 65% · Spotify 15% · browser silenziato |
| Meeting | 60% | 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.
| Stato | Prova |
|---|---|
| verified | Un 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 |
| probable | Non è stato possibile creare nulla da rileggere: risulta solo che attivare la factory e chiamare tramite la vtable non ha causato un crash |
| unsupported | L'autodiagnosi è fallita, oppure la chiamata è riuscita e Windows non l'ha applicata → vieni indirizzato alla pagina delle impostazioni |
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.
| Minaccia | Risposta |
|---|---|
| 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 |
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 automatici | Attivo 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 anonimo | Disattivato — se acceso, una volta al giorno: un id di installazione casuale, la versione, la build di Windows, la lingua e tre conteggi |
| Avvisi dello sviluppatore | Spento di serie — da acceso, solo la versione in uso e la lingua |
| Quello che non esce mai | Nomi di applicazione · nomi di dispositivo · percorsi di file · il nome dell'account Windows |
| API usate | IMMDeviceEnumerator · IAudioSessionManager2 · ISimpleAudioVolume · IPolicyConfig · AudioPolicyConfig |
| Avvio automatico | HKCU\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.
| Comando | Cosa 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.
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
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.
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.
—visite totali —download totali
Se il browser o la policy aziendale blocca gli eseguibili, prendi lo zip. Dentro c'è lo stesso file, e per entrambi c'è un hash.
RivediloIl 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.
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.
-
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.
-
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.
-
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.
-
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.
-
v1.3.0
- Un profilo ora può dire «questa app segue il dispositivo predefinito».
- Questa pagina esce in dodici lingue.