Table of Contents

ARR-based Pattern Length Interpretation

작성일: 2026-01-13


1. 배경과 문제의식

Ardule 시스템에서 드럼 패턴의 기본 단위는 ADT(Ardule Drum Pattern)이며, 기존에는 패턴의 길이(1-bar / 2-bar)가 ADT 파일 자체에 의해 결정되었다. 이로 인해 동일한 연주 내용을 가지면서 길이만 다른 패턴(예: half pattern)이 다수 생성되는 문제가 발생하였다.

본 문서는 패턴의 연주 내용과 재생 길이 해석을 분리하여, 패턴 길이에 대한 authority를 ADT가 아닌 ARR(체인)로 이동시키는 설계 원칙과 구현 방안을 정리한다.


2. 설계 목표


3. 기본 개념 정리

3.1 ADT (Pattern Authority)

3.2 ARR (Interpretation Authority)


4. BARS 라인 (Optional)

4.1 개요

ARR 파일에는 선택적으로 BARS| 라인을 포함할 수 있다.

4.2 MAIN| 과의 관계

예시:

MAIN|DRM_012,DRM_045,DRM_020
BARS|F,A,B

5. BARS 토큰 정의

BARS| 라인은 단일 문자 토큰만 사용한다.

토큰 의미
F Full pattern (ADT 전체 길이)
A 1st bar만 재생
B 2nd bar만 재생

해석 규칙

effective_length = min(ADT_length, BARS_selection)

6. 체인 편집 UI 동작 규칙

6.1 L 키 동작

체인 편집 창에서 L 키를 누르면, 현재 선택된 패턴 엔트리에 대해 다음 상태를 순환한다.

F → A → B → F

6.2 run (''%%xN%%'') 처리 규칙

예시:

PATT x2

L 입력 후:

PATT x1
PATT @A

이는 사용자의 의도가 “두 번째 반복만 다르게 재생하고 싶다”는 점을 명시적으로 반영한 설계이다.


7. 기존 half pattern(_h)의 처리


8. 설계 요약


이 설계는 과거의 자산을 보존하면서, 미래의 확장(세분화된 길이 해석, ADS 컴파일)을 자연스럽게 수용하기 위한 기반을 제공한다.