====== APS / Ardule Development Roadmap ====== 이 문서는 [[https://github.com/jeong0449/NanoArdule/blob/main/specs/ARR_v0.05.1_specification.md|ARR v0.05]] 안정화 이후를 기준으로, APS(Ardule Pattern Studio)와 Ardule 펌웨어의 **중·장기 개발 로드맵**을 정리한 것이다. 초점은 다음 세 가지에 있다. * 공연에 바로 사용할 수 있는 곡 구조 표현력 * APS와 펌웨어 간의 명확한 역할 분리 * 기능 확장의 안전한 단계적 진행 ---- ===== Phase 0: Baseline (Completed) ===== * ARR v0.05 포맷 안정화 * ARR write / read 정합성 확보 (1-based section) * #PLAY 메타데이터 처리 확정 * [[https://github.com/jeong0449/NanoArdule/blob/main/APS/APS_Structure_Map.md|APS 구조 맵]] 문서화 완료 * 프로젝트 규모(수천 LOC) 인식 2025년 12월 23일에 완성하였다. 이 단계는 이후 모든 확장의 **기준점**이 된다. ---- ===== Phase 1: Performance Structure Expansion (High Priority) ===== ==== ARR v0.1 – 1-bar 패턴 허용 ==== **목표** 공연에서 필수적인 홀수 마디 구조를 ARR 단계에서 직접 표현할 수 있도록 한다. **핵심 기능** * ''MAIN|'' 토큰에 ''@A'' / ''@B'' 도입 * ''N@A'': 2-bar 패턴의 앞 1-bar * ''N@B'': 2-bar 패턴의 뒤 1-bar * ''@''가 붙은 항목은 길이를 **1-bar**로 간주 * 기존 2-bar 패턴 규칙은 그대로 유지 **APS 영향** * 체인 타임라인 계산 로직 수정 * 그리드 뷰는 2-bar 구조를 유지하되, 절반만 채워 표시 * 체인 뷰에 ''@A'' / ''@B'' 명시적 표시 **Ardule 영향** * 펌웨어에서 ARR 직접 해석은 지양 * 컴파일된 결과물만 소비하는 구조 유지 ---- ===== Phase 2: ARR to Type 0 MIDI Export ===== **목표** ARR를 공연에 바로 사용할 수 있는 표준 MIDI 산출물로 변환한다. **설명** * ''@A'' / ''@B''를 포함한 ARR를 **Type 0 MIDI**로 변환 * 단일 트랙, CH10 중심 구성 * 시간축이 완전히 펼쳐진 형태로 고정 **장점** * DAW나 MIDI 플레이어로 즉시 검증 가능 * 공연용 백업 포맷으로 활용 가능 * ADS 컴파일로 가는 자연스러운 중간 단계 ---- ===== Phase 3: Song-level ADS Compilation (Ardule Target) ===== **목표** Ardule 펌웨어용 최적의 재생 데이터를 생성한다. **설명** * ARR를 **곡 단위 ADS 스트림**으로 컴파일 * 모든 패턴 참조를 시간 순서 이벤트로 해소 * ''@A'' / ''@B''는 이 단계에서 완전히 처리됨 **특징** * ADS에는 패턴, 섹션 개념이 남지 않음 * 순수 스트리밍 이벤트 데이터 * 펌웨어의 런타임 복잡도 최소화 **역할 분리 결과** * APS: 편집기이자 컴파일러 * Ardule: 결정론적 재생 엔진 ---- ===== Phase 4: StepSeq 표현력 확장 (Lower Priority) ===== ==== StepSeq – 24-step 패턴 허용 ==== **목표** 블루스, 셔플 등 트리플렛 기반 리듬을 직접 제작할 수 있도록 한다. **내용** * ''GRID=8T'' 와 ''LENGTH=24'' 허용 * 그리드 렌더링, 커서 이동, 편집 로직 전반 수정 필요 **후순위인 이유** * UI 및 로직 영향 범위가 큼 * 홀수 마디 구조 표현에는 직접적으로 필요하지 않음 * ARR 파이프라인 완성 이후가 적절 ---- ===== Playback Strategy Summary ===== * APS 재생 * ARR 기반 미리보기 및 개발용 재생 * Type 0 MIDI * 검증 및 공연용 백업 * ADS * Ardule 실전 재생용 최종 산출물 * APS에서 ADS를 다시 재생할 필요는 없음 ---- ===== Final Principle ===== APS에서 ARR는 **사람이 편집하는 소스 포맷**이다. MIDI와 ADS는 **컴파일 결과물**이다. 이 분리는 다음을 보장한다. * APS의 유연성과 표현력 * 펌웨어의 단순성과 안정성 * 공연 환경에서의 신뢰성