§6.1.3 이 거리 2단계 × 효과 2종의 대칭 구조로 정의한다.
| 거리 단계 | 미디어 | 경고음 |
|---|---|---|
| 주의 거리 | Ducking (정의된 수준으로 감쇄) | 단속(intermittent) 경고음 |
| 긴급 거리 | Mute (음소거) | 연속(continuous) 긴급 경고음 |
단속 → 연속 전환은 청각 심리 설계다
삑…삑…삑(간격이 좁아짐) → 삐———(연속). 사람은 간격 변화를 거리 변화로 직관적으로 매핑한다. 후방 주차 센서의 표준 UX 이고, 숫자를 안 봐도 거리를 안다.
Ducking 과 Mute 의 구현 차이
Ducking 게인만 낮춘다 → 디코더·DMA 가 계속 돈다
복구가 즉각적이고 재생 위치가 유지된다
Mute 게인 0 또는 디코더 정지
후자면 복구 시 재생 위치를 별도 관리해야 하고 버퍼 재충전 지연이 생긴다
§6.1.3 이 "경고 범위를 벗어난 경우 서서히 정상 수준으로 복구(Fade-in)해야 한다"를 요구하므로, Mute 도 게인 0 방식으로 구현하는 게 정합적이다.
무음 설정과는 다른 것이다
§6.1.3 의 사용자 무음(Mute) 설정은 피드백·모드 전환 음향만 억제한다. 경고음은 대상이 아니다.
static bool vss_muted_by_user(snd_prio_t p) {
if (!g_user_mute) return false;
return (p == SND_PRIO_FEEDBACK); /* 경고는 예외 */
}
if (mute_enabled) return; 을 오디오 출력 함수 최상단에 두면 이 요구사항을 위반한다. 카테고리별 게이트여야 한다 — Ambient Lighting 의 "사용 설정과 관계없이 안전 표시는 수행"과 같은 구조다.