nano_ardule_midi_controller:nano_ardule_menu_structure_description
Table of Contents
Nano Ardule Drum Pattern Player 메뉴 구조 설명
- 작성일: 2026-01-16
>본 문서는 Nano Ardule Drum Pattern Player 펌웨어의
메뉴 계층 구조와 각 단계(Level)의 역할을 설명한다.
UI 개선, 입력 처리(Exit / Encoder Long Press) 점검 시
이 문서를 기준(authority) 으로 삼는다.
전체 메뉴 계층 개요
Nano Ardule의 UI는 다음과 같은 명확한 단계(Level) 로 구성된다.
LEVEL 0 Main Menu ↓ LEVEL 1 Mode Root ↓ LEVEL 2 List / Browse ↓ LEVEL 3 Ready / Play ↓ LEVEL 4 Parameter Editor
- 사용자는 항상 한 단계씩만 내려가거나 올라간다
- Exit 버튼은 원칙적으로 한 단계 위(Level -1) 로 이동한다
LEVEL 0 — Main Menu (최상위 메뉴)
개념
- 장치의 최상위 메뉴
- “무엇을 할 것인가?”를 선택하는 단계
화면 예
- PATTERN
- SONG
- INTERNAL
- METRONOME
- SETTINGS
조작
- 인코더 회전: 메뉴 항목 선택
- 인코더 클릭: 선택한 모드로 진입
- Exit 버튼: 동작 없음 (이미 최상위)
비고
- Exit가 여기서 반응한다면 버그로 간주한다
LEVEL 1 — Mode Root (모드 진입 단계)
개념
- 선택한 모드의 첫 진입 화면
- 해당 모드에서 어떤 하위 작업을 할지 결정
화면 예
- PATTERN → 장르 선택
- SONG → DRUM / MULTI 선택
- INTERNAL → 비상용 패턴 모드 진입점
조작
- 인코더 회전: 항목 선택
- 인코더 클릭: 하위 리스트로 진입
- Exit 버튼: Main Menu(Level 0)로 복귀
LEVEL 2 — List / Browse (목록 탐색 단계)
개념
- 실제 대상(패턴, 곡, 파일)을 탐색/선택하는 단계
화면 예
- 패턴 리스트:
BAL_P001,AFR_P012등 - SONG 파일 리스트
- INTERNAL 패턴 리스트
조작
- 인코더 회전: 커서 이동
- 인코더 클릭: 선택 → READY/PLAY 화면 진입
- Exit 버튼: Mode Root(Level 1)로 복귀
주의
- Exit 버튼이 두 번 처리되면
→ Mode Root를 건너뛰고 Main Menu로 튀는 느낌이 발생할 수 있음
LEVEL 3 — Ready / Play (재생 상태)
개념
- 선택한 패턴/곡을 재생하거나 준비(READY) 하는 단계
- 실제 연주와 가장 밀접한 화면
화면 예
READY 상태:
READY> BAL_P001 INT 15/42 BPM 120
PLAY 상태:
PLAY BAL_P001 BPM 120 1/16
조작
- A3 버튼: PLAY / PAUSE
- 인코더 회전: BPM 조절
- 인코더 롱프레스: 파라미터 에디터 진입
- Exit 버튼: List(Level 2)로 복귀
비고
- 인코더 롱프레스는 이 Level에서만 유효하도록 설계됨
- 다른 Level에서 롱프레스가 동작하지 않는 것은 정상
LEVEL 4 — Parameter Editor (파라미터 편집)
개념
- 현재 패턴/곡의 연주 파라미터를 조정하는 최하위 단계
화면 예
- Swing
- Accent
- Velocity
- Reverb 등
조작
- 인코더 회전: 값 변경
- 인코더 클릭: 값 확정
- Exit 버튼: Ready / Play(Level 3)로 복귀
주의
- Exit 이벤트가 중복 처리되면
→ Level 3을 건너뛰고 List(Level 2)로 복귀하는 현상이 발생할 수 있음
입력 처리 관련 핵심 원칙
1. 인코더 롱프레스
- LEVEL 3 (Ready / Play)에서만 의미 있음
- 다른 Level에서는 무시되거나 소비되지 않아야 한다
- 새로운 기능을 롱프레스에 추가하지 않는다
2. Exit 버튼
- 항상 한 단계 위로만 이동
- 한 입력 이벤트는 반드시 한 Level에서만 소비되어야 한다
- 같은 loop에서 두 번 처리되면 “두 단계 점프” 현상이 발생한다
결론
- Nano Ardule UI는 명확한 계층형(Level-based) 구조를 가진다
- 대부분의 UI 버그(Exit 점프, 롱프레스 오작동)는
Level 간 이벤트 소비 규칙이 흐트러질 때 발생한다 - 본 문서는 향후 UI 개선 및 리팩터링의 기준 문서(authority) 로 사용한다
nano_ardule_midi_controller/nano_ardule_menu_structure_description.txt · Last modified: by hyjeong
