nano_ardule_midi_controller:add_ads_binary_stream_output_to_adc-arrtool
Table of Contents
adc-arrtool ADS 출력 기능 추가 – 작업 맥락 프롬프트
작성일: 2026-01-10
이 문서는 NanoArdule 프로젝트의 adc-arrtool.py에 ADS 출력 기능을 추가하기 위한 맥락 전달용 프롬프트입니다.
새 대화창에서 그대로 사용하도록 설계되었습니다.
--
프로젝트 현황 요약
- 도구:
adc-arrtool.py - 역할: ARR → MIDI 변환 유틸리티
- 현재 기준 버전: v10 계열 (안정 버전)
- MIDI 출력:
- 정상 동작 확인됨
- 일부 HTML/Web MIDI 플레이어의 tick 0 이벤트 누락 문제를 회피하기 위해
카운트인 및 첫 이벤트를 tick=1부터 시작하는 미세 오프셋 사용
- ARR 처리 원칙:
- MAIN만 사용
- loop, repeat 등은 무시
- 메타 정보(SECTION marker 등)는 당분간 미룸
새 작업 목표
adc-arrtool.py에 ADS(Ardule Data Stream) 출력 기능을 추가한다.
요구사항
1. CLI 인터페이스
- 기존 옵션 유지
--format옵션에ads추가- 기존:
--format midi - 신규:
--format ads
2. 입력 및 기본값
- 입력 ARR 파일:
- 예:
.\patterns\SONG_001.ARR
- 패턴 디렉토리 기본값:
- 지정하지 않으면
.\patterns
- Velocity map:
- 기본값 사용
- ADT v2.2a 기준:
. - x o(4레벨)
3. ARR 처리
- ARR의
MAIN체인만 사용 - 각 MAIN 엔트리는 ADT 패턴을 가리킴
- ADT 로딩 후 MAIN 순서대로 결합
4. ADS 생성 규칙
- 출력은 Nano Ardule 재생 엔진이 스트리밍 재생 가능한 형태
- 연속된 이벤트/스텝 데이터 구조
- 메모리 사용을 고려한 단순 포맷
- 우선은 ADS v0.1 (초안) 으로 정의해도 무방
5. 카운트인 처리
- 카운트인용 패턴 파일은 사용하지 않음
- closed hi-hat 기준:
- beat당 1회
- 4/4 기준 한 마디 = 4회
- 필요 시 기존과 동일하게 tick=1 오프셋 유지
6. Half Pattern 처리
- half pattern (
_H,_h또는PLAY_BARS=1)은- 1마디 길이로 반영
- full pattern은 2마디 기준
7. 구현 원칙
- 기존 MIDI 출력 코드:
- 가급적 수정하지 말 것
- ADS 관련 로직:
- 별도 함수로 추가
if format == "ads"분기에서 호출
- 우선 목표:
- 구조 명확성
- 디버깅 가능성
- 완전한 최적화는 나중 단계
요청 사항
- ADS v0.1 초안 포맷 정의
- ADS 생성 로직 제안 및 코드 패치
- 간단한 검증 방법(출력 예시 또는 dump 방식)
nano_ardule_midi_controller/add_ads_binary_stream_output_to_adc-arrtool.txt · Last modified: by hyjeong
