@onjmin/dtm
    Preparing search index...

    Type Alias ComposeResult

    type ComposeResult = {
        arrange: ArrangePlan;
        bars: number;
        bass: ComposedNote[];
        bpm: number;
        chordPattern: ChordPatternType;
        chordProgression: string;
        drum: string;
        form: MelodyForm;
        harmony: ComposedNote[];
        harmony2: ComposedNote[];
        instrument: string;
        keyLabel: string;
        keyName: string;
        lyricVocab?: LyricVocabName;
        melody: ComposedNote[];
        moodLabel?: string;
        octave: ComposedNote[];
        pad: ComposedNote[];
        parts?: { answer: ComposedNote[]; arp: ComposedNote[] };
        rootShift: number;
        scaleId: ComposeScaleId;
        scaleLabel: string;
        sections: PlacedSection[];
        skeletonId?: string;
        solo: ComposedNote[];
        spliceSources?: number[];
        spliceStats?: {
            bassSources: number[];
            eligible: number;
            figures: string[];
            introFromChorus: boolean;
            keyShift: number;
            substituted: number;
            unresolvedRuns: number;
        };
        stats: ComposeStats;
        submelody: ComposedNote[];
        tonal: TonalPlan;
        vocal: VocalPlan;
    }
    Index
    arrange: ArrangePlan

    上級者モードの編曲プラン。どの層をどのセクションでどの奏法で鳴らすか。 ArrangePlan

    bars: number

    曲の長さ(小節)。セクションの選び方で変わる。

    bass: ComposedNote[]
    bpm: number

    曲のテンポ(BPM)。

    chordPattern: ChordPatternType

    伴奏の奏法。

    chordProgression: string

    伴奏トラック用のコード進行文字列。buildChordPlacements へそのまま渡せる。

    drum: string

    曲に合わせて組み込みから自動選択されたドラムパターン名(DRUM_PATTERNS のキー)。

    曲の展開の仕方。MelodyForm

    harmony: ComposedNote[]

    ハモリトラック。メロディの3度/6度上。サビセクションでのみ鳴る。

    harmony2: ComposedNote[]

    2声目のハモリ。VocalPlan.harmony2 が true のときだけ中身が入る。

    instrument: string

    曲に合わせて組み込みから自動選択された楽器プリセット名(INSTRUMENT_PRESETS のキー)。

    keyLabel: string

    曲の調の表示ラベル(例: "ハ長調 (C)", "イ短調 (Am)")。

    keyName: string

    曲の調の名前(例: "C", "D", "Am")。

    lyricVocab?: LyricVocabName

    仮歌詞の語彙(テンプレートが持つときだけ)。composeLyrics の vocab。

    melody: ComposedNote[]
    moodLabel?: string

    雰囲気カテゴリのラベル(該当する場合)。

    octave: ComposedNote[]

    主旋律のオクターブ下の重ね(VocalPlan.octaveLayer)。音高は主旋律の ままで、トラック側のオクターブ設定で下げる。要所だけなので主旋律の一部。

    コードパッド。ストリングス/シンセパッド的なロングトーン。Bメロ以降で鳴る。

    parts?: { answer: ComposedNote[]; arp: ComposedNote[] }

    走句リードの曲(2号兄貴の楽器リード)だけが持つ、リードの写しに代わる層。上級者モードで 合いの手はサビ重ね(t1)、アルペジオはオクターブ重ね(t13)の枠に入る。対旋律は submelody。

    rootShift: number

    曲の調。ハ長調からの移調量(半音)。メロディ・サブメロ・ベースの音は既に移調済みなので、 呼び出し側は伴奏トラックの rootShift へ同じ値を渡すだけでよい。

    曲の音階の識別子(例: "yo", "ryukyu")。COMPOSE_SCALES

    scaleLabel: string

    曲の音階の表示ラベル(例: "琉球音階")。

    sections: PlacedSection[]

    曲の設計図。どの小節がどのセクションかを表す。

    skeletonId?: string

    骨格借用で引いた骨格の出自(Skeleton.id)。DAW の #compose には出さず、scripts と試聴の表示に使う。

    solo: ComposedNote[]

    間奏の器楽ソロ。間奏の小節にしか音が入らないので、専用トラックへそのまま書き込めば その1本だけ別の楽器に割り当てられる。歌メロと同時には鳴らない。

    spliceSources?: number[]

    継ぎ合わせで各セクションに引いた donor の元曲番号(バンクの匿名 src。曲名ではない)。近さの検査が読む。

    spliceStats?: {
        bassSources: number[];
        eligible: number;
        figures: string[];
        introFromChorus: boolean;
        keyShift: number;
        substituted: number;
        unresolvedRuns: number;
    }

    継ぎ合わせの内訳(置換した和音の数と対象数・ラスサビの転調量・小節ごとのベース型・ベースの型を借りた donor)。テストと近さの検査が読む。

    Type Declaration

    • bassSources: number[]
    • eligible: number
    • figures: string[]
    • introFromChorus: boolean

      イントロの和音を最初のサビの和音にしたか。

    • keyShift: number
    • substituted: number
    • unresolvedRuns: number

      donor と同じ和音の並びが上限を超えたのに置換できる和音が無かった回数。

    submelody: ComposedNote[]
    tonal: TonalPlan

    調のふるまい(平行調・トニック回避)。TonalPlan

    vocal: VocalPlan

    歌の割り当て(ハモリ・デュエット)。VocalPlan