nano_ardule_midi_controller:sound_browser
Table of Contents
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)로 고정
설계 문서
위에서 다룬 내용과 다를 수 있음. sound_browser_design_v4_20250904.docx
nano_ardule_midi_controller/sound_browser.txt · Last modified: by hyjeong
