Skip to content

feat: 키음 ASIO 출력 장치 선택 및 볼륨 안정화#74

Merged
lee-sihun merged 8 commits into
masterfrom
feature/asio-output
Jun 9, 2026
Merged

feat: 키음 ASIO 출력 장치 선택 및 볼륨 안정화#74
lee-sihun merged 8 commits into
masterfrom
feature/asio-output

Conversation

@eun-yeon

@eun-yeon eun-yeon commented Jun 6, 2026

Copy link
Copy Markdown
Member

개요

키 사운드 출력 설정에서 기본 재생 장치와 ASIO 드라이버를 선택할 수 있도록 하고, ASIO 버퍼 크기 설정과 200% 키음 볼륨 출력 안정화 추가

변경 내용

  • 키음 출력 백엔드를 기본 장치/ASIO로 선택할 수 있는 상태 모델과 Tauri 커맨드 추가
  • 설정 화면에 ASIO 드라이버 선택, 버퍼 크기 입력, 출력 오류 표시 UI 추가
  • 저장된 출력 백엔드로 오디오 엔진을 초기화하여 기본 장치에서 ASIO로 전환될 때 발생하던 깜빡임 완화
  • ASIO 장치 열기 실패 시 오류 코드를 표시하고 기본 출력으로 fallback되도록 처리
  • 키별 사운드 볼륨을 200%까지 허용하도록 프론트엔드 스키마와 Rust 모델 동기화
  • 200% 볼륨에서도 샘플이 과도하게 튀지 않도록 오디오 출력에 소프트 리미터 적용
  • ASIO 빌드용 tauri:dev:asio, tauri:build:asio 스크립트와 영문 README 안내 추가

문제 있는건 알아서 수정 아몰라잉

eun-yeon added 8 commits June 6, 2026 12:14
Windows ASIO 출력 백엔드를 asio-backend feature로 추가
cfg 게이팅으로 macOS/Linux 빌드는 영향 없음

- 설정에 키음 출력 장치 드롭다운 (기본 장치 / 감지된 ASIO 드라이버)
- 선택값 store 영속화 및 부팅 시 복원, 실패 시 기본 장치 fallback
- 출력 백엔드 커맨드 3개 추가, 로케일 5종 키 반영
다른 ASIO 앱(게임)과 동시 사용 시 버퍼 크기 불일치로 드라이버가
전역 재초기화되어 기존 앱이 무음되는 문제 해결. 사용자가 버퍼를
게임과 동일하게 맞출 수 있도록 설정을 추가한다.

- KeySoundOutputBackend::Asio에 buffer_size 추가, 고정 버퍼로 스트림 오픈
- 샘플레이트는 드라이버 현재값 유지(ASIOSetSampleRate 회피)
- 고정 버퍼 실패 시 자동 버퍼로 폴백 + 진단 로그 추가
- 설정에 ASIO 버퍼 크기 드롭다운(자동/64/128/256/512/1024) 추가
- 출력 백엔드 영속화에 buffer_size 반영, 로케일 5종 키 추가
- 부팅 시 엔진을 저장된 출력 백엔드로 바로 초기화(KeySoundEngine::with_output_backend)
  → '기본 장치 → ASIO' 전환 깜빡임 제거 및 복원 상태 즉시 반영
- ASIO 버퍼 미지정 시 기본 64프레임으로 오픈(자동=드라이버 preferred는
  게임과 어긋나 충돌하므로 제거)
- 설정 드롭다운에서 '자동' 옵션 제거, 기본값 64로 표시
- 미사용 로케일 키 keySoundOutputBufferAuto 제거(5종)
- 설정 패널 재진입 시 '기본 장치 → ASIO' 드롭다운 깜빡임 제거(출력 상태 모듈 캐시)
- 출력 장치 라벨을 '키 사운드'로 변경
- 출력/버퍼 드롭다운 너비 고정(160px) + 긴 항목 말줄임(...) 처리
- ASIO 버퍼 크기: ASIO 선택이 아니면 비활성화(항상 표시)
- 버퍼 안내 힌트 문구 제거
- ASIO는 고정 버퍼로만 열고 자동 버퍼 폴백 제거 (게임과 버퍼 어긋남 방지)
- 고정 버퍼 실패 시 ASIO 대신 기본 장치로 폴백 + 사유 노출
- ASIO 장치 이름 trim 매칭, 목록에 없는 선택값도 드롭다운에 표시
- 출력 에러를 드롭다운 라벨에 다국어로 표시 (인라인 경고 제거)
- 윈도우 ASIO 빌드 스크립트(tauri:dev:asio/build:asio) 및 안내 추가
키별 사운드 볼륨을 100% → 200%까지 올릴 수 있게 함(작은 사운드 증폭용).
- 볼륨 슬라이더/입력 상한 200 (단일·다중 선택)
- 백엔드 증폭 클램프 1.0 → 2.0 (app_state, engine ×2)
- 트림 편집 미리듣기도 200%까지
@lee-sihun lee-sihun merged commit 00a3b40 into master Jun 9, 2026
1 check passed
@lee-sihun lee-sihun deleted the feature/asio-output branch June 9, 2026 10:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants