@onjmin/dtm
    Preparing search index...

    Type Alias AccompSong

    type AccompSong = {
        bars: number;
        bpm: number;
        chordProgression: string;
        compose: string;
        draws: { rejected: Record<string, number>; tried: number };
        edo: 12 | 31;
        homeFromMinor?: string;
        keyLabel: string;
        keyName: string;
        kind: "accomp";
        mix: AccompMix;
        pick: number;
        plan: AccompPlan;
        planSignature: string;
        rootShift: number;
        seconds: number;
        stats: AccompStats;
        stepsPerBar: number;
        tracks: [AccompTrack, AccompTrack, AccompTrack, AccompTrack];
    }
    Index
    bars: number
    bpm: number
    chordProgression: string

    ComposeResult と同じ書式("|" 区切り・ハ長調基準)。表示用。

    compose: string

    style:<スタイル id>.v<版>:<baseKey>:<k>(#compose の値。[\w:.-]+ に収まる。 docs/design/accomp-style-engine.md §2.5)。例 style:fb.v1:major:0。書式は formatAccompCompose・parseAccompCompose。

    draws: { rejected: Record<string, number>; tried: number }

    引いた候補の数と、落ちた理由(関門の名前、recent は直近と同じ計画)ごとの数。保険の計画が 関門で落ちたとき(検算上は起きない)は fallback:<関門> を数える。

    edo: 12 | 31
    homeFromMinor?: string

    短調を選んだとき「ホ短調→ト長調を家に」の注記。

    keyLabel: string
    keyName: string
    kind: "accomp"

    計画のミックス(plan.mix)の写し。書き換えてもスタイルは変わらない。

    pick: number

    採った候補番号。-1 は保険の計画。

    鳴らした計画。記録(PlanPins)を全部埋めてある: スタイル・型・ミックスの id と、実現の段が 決めた小節ごとの和音の打ち方(regions[].compHits)。overrides.plan にこのまま渡すと、同じ 計画で鳴らす(#compose は …:plan)。同じトラックになるのは、同じ種の乱数で作った候補 0 の 曲だけ。和音の置き方・分散の組の同点の割り方と色の線の順は記録に無く、overrides.plan は種の 最初の乱数列で引くため(候補 1 以降と保険の計画は変わりうる。docs/design/accomp-style-engine.md 付録 F.8)。

    planSignature: string

    区間長・借用組・セル id・低音型・bpm を連結したもの。

    rootShift: number
    seconds: number
    stepsPerBar: number