User Tools

Site Tools


nano_ardule_midi_controller:nano_ardule_menu_structure_description

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