SoundDesk

Windows 트레이 유틸리티

앱마다 다른 볼륨,
한 번의 클릭으로.

Chrome은 30%, Teams는 70%, Spotify는 20%. 매번 볼륨 믹서를 열어 맞추는 대신 프로필 하나로 되돌립니다. 트레이 메뉴로 두 번, 관리자 화면에서는 슬라이더 하나로.

Windows 10 · 11설치 불필요, 단일 실행 파일나가는 통신 기본 꺼짐

트레이 아이콘을 누르면 여는 관리자 화면. 같은 값을 메뉴에서도 바로 바꿀 수 있습니다.

하는 일

볼륨 믹서에서 하던 일을, 트레이에서 두 번의 클릭으로.

01

앱별 볼륨과 음소거

지금 소리를 내는 세션을 앱 단위로 묶어 보여줍니다. Chrome처럼 프로세스를 여럿 띄우는 앱도 한 줄입니다.

02

앱마다 다른 출력 장치

게임은 스피커, Discord는 헤드셋으로. 기본 출력 장치 전환도 메뉴에서 바로 하고, 프로필에 장치까지 함께 저장됩니다.

03

앱을 껐다 켜도 그대로

앱별 볼륨을 기억해 두었다가 그 앱이 다시 실행되면 자동으로 되돌립니다. 장치를 뽑았다 꽂아도, 절전에서 깨어나도 프로필을 다시 적용합니다.

04

마이크까지 한 손에

회의 중에 제일 급한 버튼. CtrlAltK 한 번으로 마이크를 끄고 켭니다.

05

관리자 화면

프로필 편집, 단축키 변경, 자동화 규칙까지 전부 화면에서. 설정 파일을 손으로 고칠 일이 없습니다.

06

밖으로 나가는 건 켠 것만

익명 사용 보고·업데이트 확인·개발자 알림 세 가지가 전부이고 모두 기본 꺼짐입니다. 관리자 화면은 127.0.0.1 에만 열리고, 매 실행마다 새로 만든 토큰이 있어야 열립니다.

프로필

상황이 바뀌면 앱 볼륨도 전부 바뀌어야 합니다.

기본으로 세 개가 들어 있고, 지금 상태를 그대로 새 프로필로 저장할 수 있습니다. 자동 전환(앱 실행·장치 연결·시간대)은 기본이 꺼져 있습니다.

기본 프로필
프로필마스터앱 설정
Work72%Chrome 30% · Teams 70% · Spotify 20%
Gaming80%Discord 65% · Spotify 15% · 브라우저 음소거
Meeting60%Teams 80% · Zoom 80% · Chrome 20% · Spotify 음소거

단축키

손이 키보드에 있을 때.

전부 바꿀 수 있고, 다른 프로그램이 이미 쓰고 있으면 조용히 실패하는 대신 알려줍니다.

  • CtrlAlt 마스터 올리기
  • CtrlAlt 마스터 내리기
  • CtrlAltM 음소거
  • CtrlAltK 마이크 음소거
  • CtrlAltS 팝업
  • CtrlAlt13 프로필 전환

앱별 라우팅

Windows가 문서화하지 않은 길을, 확인하고 씁니다.

실측

"이 앱만 헤드셋으로"는 공개 API가 없습니다. Windows 설정 앱이 쓰는 내부 인터페이스 Windows.Media.Internal.AudioPolicyConfig 를 호출해야 하고, 인터페이스 ID와 vtable 배치가 빌드마다 다릅니다. SoundDesk는 이걸 추측으로 쓰지 않습니다.

위험한 첫 호출은 별도 프로세스에서 돌려 크래시해도 트레이가 살아남게 하고, 실제로 앱을 옮긴 뒤 Get 으로 되읽어 같은 장치가 나올 때만 "검증됨"으로 승격합니다. 되읽기가 어긋나면 기능을 스스로 끄고 Windows 설정 페이지를 엽니다.

판정 단계
상태근거
verified실제로 프로세스를 옮기고 되읽어 endpoint id가 일치. 아무것도 재생 중이 아니면 자가진단이 무음 스트림으로 스스로에게 세션을 만들어 자기 자신으로 확인합니다
probable되읽을 대상을 만들지 못함 — 팩토리 활성화와 vtable 호출이 크래시하지 않았다는 것까지만
unsupported자가진단 실패, 또는 호출은 됐는데 Windows가 반영하지 않음 → 설정 페이지로 안내

Windows 10 22H2 빌드 19045에서 verified 확인 판정은 빌드 번호와 함께 저장, 업데이트되면 재검사

보안

다운로드 폴더에서 실행해도 안전하도록.

포터블 실행 파일이 실제로 마주치는 문제들입니다. 추상적인 체크리스트가 아니라, 각각에 대응하는 코드와 테스트가 있습니다.

위협대응
DLL 하이재킹
exe 옆에 심어둔 위조 DLL
시스템 DLL은 System32 절대 경로로만 로드. 시작 시 검색 경로에서 exe 폴더와 작업 디렉터리를 제거
뮤텍스 스쿼팅
다른 세션이 이름을 선점해 실행 차단
단일 인스턴스 객체를 Local\ 네임스페이스로
설정 파일을 통한 주입 endpoint id는 정규식 검증을 통과한 것만 COM 호출로 전달
로그 위조
프로세스 이름에 개행을 넣어 가짜 로그 삽입
앱·장치 이름은 제어문자 제거 후 길이 제한
따옴표 없는 자동 실행 경로 Run 키 값은 항상 따옴표로 감싼 절대 경로, HKCU 만 사용
제어판 무단 조작
같은 PC의 다른 프로그램, 또는 웹페이지
127.0.0.1 전용 + 실행마다 새 256비트 토큰 + Host·Origin 검사. 토큰은 첫 로드에서 HttpOnly 쿠키로 바뀌고 주소창에서 사라집니다

624개 테스트 · 커버리지 84% 위조 DLL을 심어두고 막히는지 확인하는 실동작 테스트 포함 코드 서명 없음 — SmartScreen 경고가 뜹니다

개인정보

나가는 건 켠 것만입니다.

앱 이름과 세션 정보는 이 PC 안에서만 처리하고, 설정은 JSON 파일 하나로 남습니다. 밖으로 나가는 기능은 세 가지 — 익명 사용 보고, 업데이트 확인, 개발자 알림 — 뿐이고 전부 기본이 꺼져 있습니다. 제어판에서 켜기 전에는 요청이 한 건도 나가지 않습니다.

설정 파일%APPDATA%\SoundDesk\config.json
로그%APPDATA%\SoundDesk\sounddesk.log
익명 사용 보고기본 꺼짐 — 켜면 하루 한 번, 무작위 설치 id·버전·Windows 빌드·언어·개수 세 가지
업데이트 확인 · 개발자 알림기본 꺼짐 — 켜면 실행 중인 버전과 언어만. 설치 id는 보내지 않습니다
절대 나가지 않는 것앱 이름 · 장치 이름 · 파일 경로 · Windows 계정명
사용하는 APIIMMDeviceEnumerator · IAudioSessionManager2 · ISimpleAudioVolume · IPolicyConfig · AudioPolicyConfig
자동 실행HKCU\Software\Microsoft\Windows\CurrentVersion\Run (선택)

자가진단

내 PC에서 되는지, 앱에게 직접 물어보세요.

본연 기능을 실제 오디오 스택에서 하나씩 돌려보고 건드린 것은 되돌립니다. 소리가 날 변경은 아예 하지 않습니다 — 마스터 볼륨은 지금 값을 그대로 다시 쓰는 식으로 호출 경로만 증명합니다.

명령확인하는 것
--selftest-audio 장치 · 마스터 · 마이크 · 앱별 볼륨/음소거/라우팅 · 프로필 · 전역 단축키. 재생 중인 앱이 없으면 라우팅은 자기 자신의 무음 세션으로 확인합니다
--selftest-panel 패키지된 실행 파일이 제어판을 실제로 서빙하는지
--report 장치·세션·프로필 현황을 JSON으로

이 PC 결과

OK  앱별 볼륨 (firefox.exe 100% → 42% → 복구)
OK  앱별 음소거
OK  앱별 출력 라우팅 (firefox.exe → ASUS VZ279 → 복구)
OK  기본 장치 전환 · 프로필 · 전역 단축키
—   마이크 (이 PC에 입력 장치 없음)

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

어디서나

쓰는 사람의 말로, 쓰는 사람의 PC에서.

같은 설정을 집과 회사에서 쓰고, 쓰는 언어로 읽고, 필요하면 매크로에서 부릅니다.

01

12개 언어

Windows 표시 언어를 따라갑니다. 직접 고를 수도 있고, 바꾸면 제어판과 트레이 메뉴가 다시 시작하지 않고 그 자리에서 바뀝니다.

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

02

집과 회사, 같은 설정

프로필·단축키·규칙을 파일 하나로 내보내고 다른 PC에서 가져옵니다. 장치는 이름으로 맞춥니다 — 같은 헤드셋도 PC마다 id가 달라서, 파일을 그냥 복사하면 라우팅만 조용히 사라지기 때문입니다. 이 PC에 없는 장치는 이름을 알려줍니다.

03

매크로에서 부르기

Stream Deck 버튼이나 AutoHotkey 한 줄에서 그대로 씁니다. 트레이가 떠 있든 아니든 동작하고, 아이콘을 새로 띄우지 않습니다. 바뀌면 종료 코드 0, 아무것도 안 맞으면 1.

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

설치

파일 하나. 설치 프로그램 없음.

SoundDesk.exe 를 원하는 곳에 두고 실행하면 트레이에 아이콘이 생깁니다. 지우고 싶으면 파일과 설정 폴더를 지우면 끝입니다. Python은 필요 없습니다.

SoundDesk.exe 내려받기

20.9 MB · 코드 서명됨SHA-256

다시 보기

Windows 10 1803 이상단일 실행 파일관리자 권한 불필요SHA-256 동봉