@onjmin/dtm
    Preparing search index...

    Type Alias DawOptions

    type DawOptions = {
        customVocals?: CustomVocalDef[];
        defaultBpm?: number;
        drumPatterns?: Record<string, DrumPattern>;
        drumVolume?: number;
        getAudioTime?: () => number;
        initialActiveTrack?: string;
        initialMML?: string;
        initialScrollPitch?: number;
        lockedTracks?: string[];
        masterVolume?: number;
        midiSearch?: MidiSearchConfig;
        mode?: DawMode;
        onDrumChange?: (name: string) => void;
        onInstrumentChange?: (name: string) => void;
        onLyricsChange?: (trackId: string, data: LyricSyncData) => void;
        onNotesPatch?: (
            trackId: string,
            added: NoteData[],
            removed: NoteRemove[],
        ) => void;
        onPlayDrum?: (e: PlayDrumEvent) => void;
        onPlayNote?: (e: PlayNoteEvent) => void;
        onRequestAdvancedMode?: (
            pendingMml?: string,
            applyMidi?: (daw: DawInstance) => void,
        ) => void;
        onResumeAudio?: () => void | Promise<void>;
        onTrackInstrumentChange?: (
            trackIndex: number,
            instrumentName: string,
        ) => void;
        onViewStateChange?: (state: DawViewState) => void;
        parseMidi?: ParseMidiFn;
        singingVoices?: SingingVoices;
        skipConsent?: boolean;
        tracks?: TrackConfig[];
    }
    Index

    Properties

    customVocals?: CustomVocalDef[]

    静的に登録するカスタムボーカル定義の配列。 MML 中の @@key icon_url koe_url 宣言行と同等だが、コードから直接渡せる。 MML 宣言行と両方ある場合は MML 側(後読み)が優先して上書きする。

    defaultBpm?: number
    drumPatterns?: Record<string, DrumPattern>

    ドラムパターン辞書。既定は DRUM_PATTERNS

    drumVolume?: number

    ドラム音量 0-100。既定80。

    getAudioTime?: () => number

    再生の基準クロック秒。既定 performance.now()/1000。利用側は audioCtx.currentTime を返す

    initialActiveTrack?: string

    初期アクティブトラックID(未指定なら最初のトラック)。協力DAWで自分のトラックを初期選択するために使う。

    initialMML?: string
    initialScrollPitch?: number

    初期スクロールで中央に表示するMIDIピッチ番号(0–127)。未指定なら既定位置。

    lockedTracks?: string[]

    編集をロックするトラックIDの配列。 指定されたトラックへのユーザー操作(音符追加・削除)は無視される。 協力DAWで他人のトラックを誤編集しないために使う。

    masterVolume?: number

    マスタ音量 0-100。既定50。

    midiSearch?: MidiSearchConfig

    MIDI検索クライアントの設定(未指定なら検索UI非表示)。

    mode?: DawMode

    動作モード(DawMode)。 未指定のときは後方互換のため tracks の本数から推論する(4本以下→simple / 5本以上→advanced)。 4トラック構成でも1:1取り込みをしたい等、トラック数と意図がずれる場合は明示指定する。

    onDrumChange?: (name: string) => void

    ドラムパターンが変化したときに呼ばれる(ユーザー操作・MML読み込みによる自動入力の両方)。 利用側が選択状態を永続化する用途に使う。

    onInstrumentChange?: (name: string) => void

    楽器プリセットが変化したときに呼ばれる(ユーザー操作・MML読み込みによる自動入力の両方)。 利用側が選択状態を永続化したり、外部音源のロードを行ったりする用途に使う。

    onLyricsChange?: (trackId: string, data: LyricSyncData) => void

    歌詞・UTAUデータが変更されたときに呼ばれる(300msデバウンス済み)。

    onNotesPatch?: (
        trackId: string,
        added: NoteData[],
        removed: NoteRemove[],
    ) => void

    ユーザー操作によってノートが追加・削除されたときに呼ばれる(差分パッチ)。 リアルタイム同期のための送信フックとして使う。 applyPatch による適用時には呼ばれない(エコーループ防止)。

    onPlayDrum?: (e: PlayDrumEvent) => void

    ドラムノート発音要求

    onPlayNote?: (e: PlayNoteEvent) => void

    メロディックトラックのノート発音要求

    onRequestAdvancedMode?: (
        pendingMml?: string,
        applyMidi?: (daw: DawInstance) => void,
    ) => void
    onResumeAudio?: () => void | Promise<void>

    初回ユーザー操作時に呼ばれる(AudioContextのresume等に使う)

    onTrackInstrumentChange?: (trackIndex: number, instrumentName: string) => void

    トラックごとの個別楽器が変化したときに呼ばれる。 trackIndex

    の n と同じトラック番号。instrumentName は GM楽器名(空文字はデフォルト=プリセット)。

    onViewStateChange?: (state: DawViewState) => void

    表示・出力設定(ズーム / 和音分解モード / 和音伴奏トラック無視)が変化したときに呼ばれる。 利用側が選択状態を永続化する用途に使う。

    parseMidi?: ParseMidiFn
    singingVoices?: SingingVoices

    歌唱合成の先読みや制御を行うヘルパ(.koe音源の再生前プリロードに使用)

    skipConsent?: boolean

    利用規約への同意画面の表示をスキップするかどうか

    tracks?: TrackConfig[]

    トラック構成。既定は melody/submelody/bass/chord の4本