문서 유형: 설계 개념 / 편집기 동작 명확화 적용 범위: APS (Ardule Pattern Studio) 편집기 – ADT 패턴 처리 상태: 초안 (개념 설계)
ADT(Ardule Drum Pattern Text)는 드럼 패턴을 고정된 길이의 스텝 시퀀스와 고정된 개수의 슬롯(slot, 일반적으로 12개)으로 표현한다. 각 슬롯은 ADT 헤더의 SLOTn=CODE@NOTE,LABEL 정의를 통해 특정 MIDI 노트에 매핑된다.
실제 사용 환경에서 사용자는 각 슬롯을 흔히 *악기 행(instrument row)*으로 인식한다. 그러나 스펙 및 데이터 모델 관점에서 슬롯은 특정 악기나 사운드에 본질적으로 고정된 개념이 아니다.
이 구분은 MIDI 패드나 키보드와 같은 외부 컨트롤러로부터, 사전에 정의되지 않은 노트 번호가 실시간으로 입력될 수 있는 상황을 지원할 때 특히 중요해진다.
전통적인 스텝 시퀀서는 행(row)과 악기(instrument)의 고정된 대응 관계를 전제로 한다. 이 경우 다음과 같은 문제가 발생한다.
APS에서는 두 접근 모두 바람직하지 않다.
따라서 APS에는 다음 조건을 만족하는 메커니즘이 필요하다.
ADT에서 슬롯은 고정 악기가 아니라 리듬적 역할(rhythmic role)이다.
이 원칙에 따라 다음이 성립한다.
따라서 슬롯 재정의(slot reassignment)는 파일 포맷의 변경이 아니라 편집기 수준의 동작으로 간주된다.
슬롯 재정의란, 사용자의 입력에 반응하여 기존 슬롯 정의를 새로운 MIDI 노트 매핑으로 교체하는 편집기 동작을 의미한다.
이 동작은 다음 조건에서 발생한다.
이때 편집기는 슬롯 수를 늘리거나 입력을 버리는 대신, 비어 있는 슬롯 하나를 선택하여 해당 노트로 재정의한다.
슬롯 재정의는 예측 가능성과 안전성을 위해 엄격한 규칙을 따른다.
편집기 정책에 따라 특정 슬롯은 코어 슬롯(core slots)으로 지정될 수 있다 (예: Kick, Snare, Closed Hi-Hat, Open Hi-Hat).
다음 조건을 모두 만족하는 슬롯만 재정의가 가능하다.
이 판단은 현재 마디나 화면 범위가 아닌, 패턴 전체를 기준으로 수행된다.
정의되지 않은 MIDI 노트가 입력되면, 편집기는 다음 절차를 따른다.
SLOTn=CODE@NOTE,LABEL 정의를 새로운 노트로 갱신한다.재정의 가능한 슬롯이 없을 경우, 편집기는 입력을 거부하거나 사용자에게 알림을 제공할 수 있다. 데이터가 있는 슬롯을 자동으로 대체하는 동작은 본 개념서의 범위에 포함되지 않는다.
슬롯 재정의는 ADT 헤더의 직접적인 수정으로 귀결된다.
이는 APS 프로젝트가 항상 하나의 이식 가능한 ADT 파일로 귀결되어야 한다는 요구를 만족한다.
사용자 관점에서 슬롯 재정의는 다음과 같은 특성을 갖는다.
UI 상에서는 슬롯을 악기 행으로 표현하되, 내부 모델은 본 문서에서 정의한 슬롯/역할 개념을 따른다.
본 설계는 다음 조건을 모두 만족한다.
슬롯 재정의는 ADT의 비고정 악기 의미론에 기반한, 합법적이고 의도된 사용 패턴이다.
편집기에 의한 슬롯 재정의는, ADT의 고정 슬롯 설계를 유지하면서도 실시간 MIDI 입력의 표현력을 확보하기 위한 핵심 메커니즘이다.
슬롯을 불변의 악기가 아닌 가변적인 리듬 역할로 취급함으로써, APS는 단일 ADT 파일이라는 제약 안에서 유연성, 이식성, 하위 호환성을 동시에 달성할 수 있다.