# Fluid Ardule 개발 로드맵 (UI 및 기능 설계) ## 🎯 목표 정의 ### 1차 목표 (v1.0) - 전원 ON → 즉시 연주 가능 - SoundFont / Tone / Drum Mode 제어 - 기본 preset 저장/불러오기 ### 2차 목표 (v1.1) - 외부 MIDI 모듈 라우팅 - 시스템 상태 및 정보 강화 ### 3차 목표 (v2.0) - Layer / Split - MIDI 파일 재생 - 확장형 워크스테이션 기능 --- ## 🧭 추천 개발 순서 ### 0단계. 기반 안정화 - Pi↔UNO handshake 안정화 - DAC 자동 인식 안정화 - FluidSynth 자동 실행 - MIDI 자동 연결 - shutdown 시 UNO 표시 - heartbeat / link-loss 감지 --- ### 1단계. 홈 UI + 기본 조작 - 1602 LCD 홈 화면 A/B - LEFT/RIGHT로 화면 전환 - SELECT 클릭 → 메뉴 진입 - SELECT 롱프레스 → Panic - LED (SYSTEM / MIDI / ALERT) --- ### 2단계. 메뉴 프레임 구축 - Volume / SoundFont / Tone / System / Power - 인코더 기반 탐색 - Yes/No 확인 UI --- ### 3단계. SoundFont 변경 - SF 목록 표시 - 선택 및 로딩 - 성공/실패 표시 --- ### 4단계. Tone 제어 - Program Change - Bank MSB / LSB - Chorus / Reverb / Pan --- ### 5단계. Drum Mode (채널 재할당 최소형) - Normal: CH1 → CH1 - Drum: CH1 → CH10 - UI에서 선택 --- ### 6단계. Output 선택 - Internal (FluidSynth) - External MIDI OUT - (VA는 이후 단계) --- ### 7단계. Preset 구조 설계 Preset 포함 요소: - SoundFont / Engine - Program / Bank - CC 값 - Play Mode - Output Target --- ### 8단계. Preset 저장/불러오기 - 번호 기반 저장 - Load 기능 - (이름은 이후 확장) --- ### 9단계. System / MIDI Info - MIDI 장치 확인 - DAC 상태 - FS 상태 - Rescan 기능 --- ### 10단계. MIDI 파일 재생 - 파일 선택 - Play / Stop - Player 모드 분리 --- ### 11단계. 채널 라우팅 확장 - Input Channel 설정 - Output Channel 설정 - 메시지 재할당 --- ### 12단계. Layer / Split - 채널 복제 - 키 범위 분리 - 파트별 설정 - preset 저장 --- ## 📊 우선순위 정리 ### 🔴 필수 (v1.0) 1. 기반 안정화 2. 홈 UI 3. 메뉴 구조 4. SoundFont 5. Tone 제어 6. Drum Mode 7. Output 선택 8. Preset 저장/불러오기 --- ### 🟡 확장 (v1.1) 9. System / MIDI Info 10. MIDI 파일 재생 11. 채널 라우팅 확장 --- ### 🔵 고급 (v2.0) 12. Layer / Split --- ## 🎯 설계 핵심 원칙 - UNO = UI 프론트엔드 - Pi = 기능 백엔드 - UI는 단순, 기능은 Pi에서 처리 - preset 중심 구조로 확장성 확보 --- ## 🔥 한 줄 결론 기반 안정화 → UI → SoundFont → Tone → Drum → Output → Preset → 확장 기능 순으로 개발하면 가장 빠르게 “악기다운 결과”를 얻을 수 있다.