====== GS 사운드 브라우저 (Sound Browser) ====== Nano Ardule MIDI Controller에서 **사운드 브라우저**는 단순히 Program Change(PC) 명령으로 악기에 해당하는 번호를 직접 조정하여 전송하는 **편집 모드(Edit mode)**와는 다른 별도의 기능이다. 이 기능은 악기 음색을 **이름과 분류 체계(Family → Program → Variation)** 기반으로 탐색하여 선택할 수 있도록 설계되었다. ===== 개념적 구분 ===== * **편집 모드의 PC(Program Change)** * 특정 Part(A, B, Drums)에 대해 PC 번호(0–127)만 직접 수정 * LCD에는 2번째 줄에 "악기명 프로그램번호" 형태로 표시 * 값 중심의 로우레벨 조작 * **사운드 브라우저** * Family → Program → Variation 단계를 순서대로 탐색 * 드럼 파트(CH10)의 경우 Bank Select(MSB=121, LSB=0) 자동 설정 후 탐색 * LCD에는 악기 이름 중심으로 표시 * 선택 시 Bank Select + Program Change 메시지를 전송 * 직관적인 "악기 탐색기" 역할 수행 ===== 진입 방식 ===== * **조건**: Part Select 상태(A, B 중 하나)에서만 진입 가능 * **방법**: 인코더 버튼 **길게 누르기(>800ms)** * Part가 선택되지 않은 상태에서는 진입 불가 (LCD에 "Select Part" 메시지 표시) ===== 동작 흐름 ===== - **진입** * UI 상태: STATE_BROWSER * 선택된 Part의 LED를 점멸시켜 브라우저 모드 표시 * LCD에 Family/Program/Variation 정보 표시 - **탐색** * 인코더 회전 → 현재 커서 위치의 값 변경 * 기본 커서는 Program * 인코더 버튼 짧게 누르기 → 커서 이동 (Family → Program → Variation 순환) * 변경 시 즉시 미리듣기(Preview): Bank Select + Program Change 메시지 전송 * 전송 빈도는 programDelay(약 120–150ms)로 스로틀링 - **확정** * 인코더 버튼 짧게 눌러 선택 확정 * 현재 값 저장 후 Bank Select + Program Change 메시지 재전송 * 상태를 STATE_DISPLAY로 복귀 - **취소** * 인코더 버튼 길게 누르기, 또는 STOP/EXIT 버튼 * 브라우저 진입 직전 값으로 복원 * 상태를 STATE_DISPLAY로 복귀 - **자동 종료(선택사항)** * 일정 시간(예: 10초) 입력이 없을 경우 자동으로 취소 후 STATE_DISPLAY로 복귀 ===== LCD 표시 예시 (16x2) ===== * Line 1: **A: Piano >Brgt** (현재 파트/대분류/세부) * Line 2: **Fam 1/9 P 3/8** (Family, Program/Variation 인덱스) * Drums(CH10) 진입 시: * Line 1: **D: StdKit >Room** * Line 2: **Kit 4/9** ===== 특징 ===== * **편집 모드와 차별화** * PC 편집은 숫자 기반, 브라우저는 이름 기반 탐색 * **실수 방지** * Part 선택 없이는 브라우저 진입 불가 * **사용성 강화** * 인코더 조작만으로 직관적 탐색과 즉시 미리듣기 가능 * **Drums 전용 처리** * CH10은 항상 GS Drum Bank(MSB=121, LSB=0)로 고정 ===== 설계 문서 ===== 위에서 다룬 내용과 다를 수 있음. {{:nano_ardule_midi_controller:sound_browser_design_v4_20250904.docx|}}