# ADS v0.1과 MetaTime 원칙 최종 갱신: 2026-01-11 --- ## 1. 목적 이 문서는 **ADS v0.1 (Ardule Data Stream)** 을 정의함과 동시에, 음악적 시간을 해석·계산·물리적 이벤트 스트림으로 구현하기 위한 **MetaTime 원칙**을 함께 기술한다. ADS는 **악보 포맷이 아니다**. ADS는 ARR / ADT에 담긴 상위 메타데이터를 하나의 엄격한 시간 철학에 따라 해석한 **최종 결과물**이다. --- ## 2. MetaTime 원칙 요약 ### 핵심 선언 > **기계는 박자를 알지 못한다.** 기계가 음악적 시간을 재생하기 위해 필요한 정보는 다음뿐이다. - 스텝의 순서 - 스텝 사이의 시간 간격 (grid 분해능) - 반복 길이 (PLAY_BARS) 박자(Time Signature)는 **사람과 도구를 위한 설명용 메타데이터**일 뿐이다. ### 귀결 - 시간은 **기술되는 것이 아니라 계산된다** - 재생 로직은 “3/4냐 4/4냐”에 따라 분기하지 않는다 - ADS에는 **마디·박자 정보가 포함되지 않는다** --- ## 3. Ardule 시스템의 시간 계층 구조 ``` ADT (패턴 기술) | | MetaTime 해석 v ARR (구조적 의도, 순서, 메타데이터) | | 시간 계산 v ADS (절대 시간 이벤트 스트림) ``` ### 각 계층의 역할 | 계층 | 역할 | |------|------| | ADT | 스텝 데이터, grid 분해능, 국소적 의도 | | ARR | 패턴 순서, 반복, 템포, 메타 정보 | | ADS | 계산된 절대 시간 결과물 | | FW | 재생만 수행 (음악 해석 없음) | --- ## 4. MetaTime 관점에서의 ADT 해석 ### 관련 필드 - `GRID` : 스텝 분해능 (예: 16, 8T, 16T) - `PLAY_BARS` : 재생할 반복 길이 - `TIME_SIG` : 메타데이터 ### 해석 규칙 - `GRID`는 시간 분해능만 정의한다 - `PLAY_BARS`는 실제 재생 길이를 정의한다 - `TIME_SIG`는 재생 로직에 영향을 주지 않는다 --- ## 5. 메타 도입부로서의 카운트인 카운트인은 **음악 데이터가 아닌 메타 도입부**이다. - 패턴 파일을 사용하지 않는다 - 내부적으로 이벤트를 생성한다 - 길이는 **beat 단위**로 정의된다 - tick 보정은 카운트인에만 적용된다 --- ## 6. ADS v0.1 포맷 개요 ADS는 절대 tick 기반의 선형 이벤트 스트림이다. - 박자 정보 없음 - grid 정보 없음 - 재생 엔진은 해석을 수행하지 않음 --- ## 7. 맺음말 MetaTime은 규칙이 아니라 **경계선**이다. 시간이 계산되는 순간, 모든 음악적 해석은 종료된다.