# APS StepSeq & Chain Editing – Improvement Ideas _Last updated: 2026-02-03_ {{:pictures:aps_improvement.png?400|}} --- 본 문서는 **APS(Ardule Pattern Studio)**의 실제 사용 경험(곡 단위 제작)을 바탕으로 도출된 개선 아이디어를 정리한 제안서이다. 목표는 기능의 양적 확장이 아니라, **입력 속도·예측 가능성·회귀 안전성**을 강화하여 APS를 “실제로 계속 쓰게 되는 도구”로 고도화하는 데 있다. --- ## 1. Bar 단위 액센트 전체 레벨 조정 ### 1.1 개요 한 마디(bar)에 포함된 모든 노트의 액센트(velocity level)를 **일괄적으로 +1 또는 -1 조정**하는 기능. ### 1.2 문제 인식 - APS의 액센트는 이산 단계(`. - x o`)로 정의됨 - 이미 최소(`.`) 또는 최대(`o`)에 도달한 노트가 존재할 경우: - Saturating(clamp) 방식은 **정보 손실(lossy)** 발생 - 일부 노트만 변화 → 패턴의 상대적 뉘앙스가 깨질 수 있음 - Clamp가 발생한 연산은 **원리적으로 undo 불가능** ### 1.3 권장 설계 원칙 **Lossless-only 기본 정책** - Bar 전체 ±1 연산 시 - 하나라도 clip(최소/최대 초과) 가능성이 있으면 **연산 자체를 차단** - 상태 메시지 예: `Blocked: accent already at max in this bar` ### 1.4 선택적 확장(옵션) - 강제 모드(saturating shift) 허용 가능 - 단, 이 경우: - 연산 직전 bar 스냅샷 1회 저장 - 해당 bar에 한해 단일 undo 제공 --- ## 2. 선택 블록 단위 액센트 조정 (권장 대안) ### 2.1 개요 Bar 전체가 아닌, **사용자가 선택한 블록(row/column/범위)**에 대해서만 액센트 ±1 적용. ### 2.2 장점 - Bar 전체보다 훨씬 안전 - 뉘앙스 조정이 정교함 - 기존 Shift+B/R/C(범위 삭제) 개념과 잘 어울림 ### 2.3 설계 제안 - 선택 블록에 대해서만 lossless 조건 검사 - clip 발생 가능 시 연산 차단 --- ## 3. 패턴 즉석 복제 + 바로 편집 (Chain 중심 워크플로우) ### 3.1 문제 인식 곡 제작 시: - 기존 패턴을 그대로 재사용하기보다 - **약간 변형된 새 패턴**이 반복적으로 필요함 ### 3.2 제안 기능 Chain 편집 상태에서 단일 키로: 1. 현재 커서의 패턴 파일 복제 2. suffix 자동 증가(P → B → h 등 규칙 유지) 3. 체인에 새 패턴 삽입 4. 즉시 StepSeq로 진입 ### 3.3 기대 효과 - 패턴 재사용 진입 장벽 감소 - “기존 패턴을 못 쓰고 새로 입력”하는 부담 완화 --- ## 4. StepSeq 저장 후 Chain 흐름 최적화 ### 4.1 제안 내용 - StepSeq 종료 후: - Chain 커서를 원래 위치로 복귀 - 옵션: 자동으로 다음 체인 엔트리로 이동 ### 4.2 효과 - 곡을 위에서 아래로 연속 편집하는 흐름이 자연스러워짐 - 반복적인 커서 이동 감소 --- ## 5. Step 단위 Nudge(좌/우 미세 이동) ### 5.1 개요 선택한 row 또는 블록을 **좌/우 한 스텝씩 이동**시키는 기능. ### 5.2 필요성 - Triplet(24/48-step) 그리드 사용 시 특히 유용 - “한 칸만 밀렸네”를 즉시 수정 가능 ### 5.3 설계 옵션 - 경계 처리: wrap 또는 clamp 중 선택 --- ## 6. 마지막 입력 액센트 레벨 기억 ### 6.1 개요 각 row(악기)별로 **마지막으로 사용한 액센트 레벨**을 기억. ### 6.2 동작 예 - 빈 셀(`.`)에서 입력 시 - 기본: 마지막 레벨로 바로 입력 - 옵션: Shift 조합으로 cycle ### 6.3 효과 - 반복 입력 속도 대폭 향상 - 손의 피로 감소 --- ## 7. Ghost Copy / Humanize (선택적) ### 7.1 개요 같은 row의 패턴을 복제하면서: - 타이밍은 유지 - 액센트만 ±1 범위에서 미세 변형 ### 7.2 안전장치 - clip 발생 시 연산 차단 또는 - bar 스냅샷 기반 단일 undo --- ## 8. 유령 커서(미리보기 커서) ### 8.1 개요 현재 커서 위치의 스텝에 대해: - 어떤 악기들이 어떤 액센트로 존재하는지 - 상태줄에 요약 표시 ### 8.2 효과 - 실수 입력 감소 - 복잡한 패턴에서도 맥락 유지 --- ## 9. 설계 철학 요약 - **예측 가능성 > 기능의 강력함** - Lossy 연산은 기본적으로 금지 - Undo는 전역이 아니라 **국소(bar/블록 단위)**로 최소화 - “곡 하나를 끝까지 만드는 흐름”을 최우선 기준으로 설계 --- ## 10. 우선순위 제안 (실전 기준) 1. 선택 블록 액센트 ±1 2. 패턴 즉석 복제 + 바로 StepSeq 3. StepSeq 종료 후 Chain 흐름 개선 4. Nudge(좌/우 이동) 5. Bar 전체 액센트 조정(lossless-only) --- 이 문서는 기능 구현을 강제하지 않는다. **“어디까지가 APS다운가”를 판단하기 위한 설계 메모이자, 향후 회귀를 막기 위한 기준점**으로 활용하는 것을 목표로 한다.