This document defines the ARR loading policy for APS (Ardule Pattern Studio). It specifies how a source ARR is applied to the currently edited chain (target), including chain entries, sections, and metadata handling.
APS treats the referenced pattern filename as an opaque identifier during ARR load. In particular, suffix conventions such as:
_P### (pattern)_B### (break)_h### (half / 1-bar playback hint; _H is supported for backward compatibility)MUST be preserved exactly as they appear in the source ARR. ARR loading MUST NOT rewrite these suffixes, normalize them, or edit the referenced ADT files.
Note: Actual 1-bar playback behavior is determined at playback time by the ADT load policy (e.g.,PLAY_BARS=1in the ADT header, with_H###as a fallback hint).
inslen(target)
Existing sections in the target are processed relative to the insertion point ins.
Condition:
section.end < ins
Condition:
section.start < ins <= section.end
Given an original section:
S = [a .. b]
It is replaced by two sections:
S_L[a .. ins - 1]S_R[ins + m .. b + m]
The original section S is removed.
Condition:
section.start >= ins
+m to both start and end.All sections defined in the source ARR are imported into the target.
i_
Examples:
Verse → i_VerseChorus → i_ChorusThis prefix unconditionally marks imported sections.
ins.i_Verse, i_Verse2, i_Verse3, …This guarantees uniqueness without merging semantics.
#PLAY in the source ARR is treated as metadata.#PLAY position may be stored with offset applied, as a reference hint.ARR loading applies the source chain to the target chain via insertion or append.
Target sections crossing the insertion point are split into_Land_R.
Source sections are imported with ani_prefix and offset ranges.
Section conflicts are resolved by renaming, not merging.
Pattern filenames (including P/B/H suffixes) are preserved as-is during load.
The chain load operation should succeed whenever possible.
Last updated: 2026-01-03