@onjmin/dtm
    Preparing search index...

    Type Alias DawOptions

    type DawOptions = {
        backingAudio?: BackingAudio;
        clipMeter?: ClipMeter;
        customVocals?: CustomVocalDef[];
        defaultBpm?: number;
        delayAmount?: number;
        delayDivision?: DelayDivision;
        drumFont?: string;
        drumPatterns?: Record<string, AnyDrumPattern | DrumPatternDef>;
        drumVolume?: number;
        fadeInSec?: number;
        fadeOutSec?: number;
        getAudioTime?: () => number;
        initialActiveTrack?: string;
        initialLoop?: boolean;
        initialMML?: string;
        initialScrollPitch?: number;
        lockedTracks?: string[];
        masterCompression?: number;
        masterVolume?: number;
        midiSearch?: MidiSearchConfig;
        mode?: DawMode;
        onBpmChange?: (bpm: number) => void;
        onDelayChange?: (amount: number) => void;
        onDelayDivisionChange?: (division: DelayDivision) => void;
        onDrumChange?: (name: string) => void;
        onDrumFontChange?: (fontId: string) => void;
        onExportWav?: () => void | Promise<void>;
        onInstrumentChange?: (name: string) => void;
        onLoopChange?: (loop: boolean) => void;
        onLyricsChange?: (trackId: string, data: LyricSyncData) => void;
        onMasterCompressionChange?: (amount: number) => 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>;
        onReverbChange?: (amount: number) => void;
        onReverbDecayChange?: (seconds: number) => void;
        onReverbPreDelayChange?: (ms: number) => void;
        onScheduleFade?: (params: FadeScheduleParams | null) => void;
        onTrackCompressionChange?: (trackId: string, amount: number) => void;
        onTrackDelaySendChange?: (trackId: string, amount: number) => void;
        onTrackEqHighChange?: (trackId: string, db: number) => void;
        onTrackEqLowChange?: (trackId: string, db: number) => void;
        onTrackEqMidChange?: (trackId: string, db: number) => void;
        onTrackInstrumentChange?: (
            trackIndex: number,
            instrumentName: string,
        ) => void;
        onTrackPanChange?: (trackId: string, pan: number) => void;
        onTrackReverbSendChange?: (trackId: string, amount: number) => void;
        onTrackWidthChange?: (trackId: string, width: number) => void;
        onViewStateChange?: (state: DawViewState) => void;
        parseMidi?: ParseMidiFn;
        reverbAmount?: number;
        reverbDecay?: number;
        reverbPreDelay?: number;
        showHelp?: boolean;
        singingVoices?: SingingVoices;
        skipConsent?: boolean;
        tour?: {
            autoStart?: boolean;
            extraSteps?: TourStep[];
            labels?: Partial<TourLabels>;
            steps?: TourStep[];
            storageKey?: string | null;
        };
        tracks?: TrackConfig[];
    }
    Index

    Properties

    backingAudio?: BackingAudio

    伴奏音源(mp3 / wav / YouTube)の同時再生器。

    ライブラリ自身は音を出さないので、AudioContextを持つ利用側(createDtmStudio 等)が createBackingAudio で作って渡す。渡さないとオーディオ同時再生のUIごと出ない。

    clipMeter?: ClipMeter

    編集中の音割れ検知メーター(マスタの安全リミッター手前を監視)。 渡すとDAW UIにクリップ警告バッジを表示できる。studio.mountEditor が自動的に渡す。

    customVocals?: CustomVocalDef[]

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

    defaultBpm?: number
    delayAmount?: number

    マスタディレイの掛かり具合 0-100。既定0(オフ)。テンポに同期したエコー。 全トラック共通のバス自体は用意されるが、実際に送る量はボーカルトラック個別の ディレイ送り(eトークン)で決める(リバーブと同じ send/return の考え方)。

    delayDivision?: DelayDivision

    マスタディレイの音価(既定 "8" = 8分音符)。曲のBPMに同期した実秒数へ変換される。

    drumFont?: string

    初期ドラム音源(font:id形式)。既定は "FluidR3_GM_sf2_file:0"

    drumPatterns?: Record<string, AnyDrumPattern | DrumPatternDef>

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

    drumVolume?: number

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

    fadeInSec?: number

    曲頭のフェードイン長(秒)。既定0(フェードなし)。範囲0〜10。

    fadeOutSec?: number

    曲尾のフェードアウト長(秒)。既定0(フェードなし)。範囲0〜10。

    getAudioTime?: () => number

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

    initialActiveTrack?: string

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

    initialLoop?: boolean

    ループ再生の初期状態(既定 false)。 MML読み込み時に #loop=on があればそちらが優先される。

    initialMML?: string
    initialScrollPitch?: number

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

    lockedTracks?: string[]

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

    masterCompression?: number

    マスタバスの「グルーコンプレッサー」量 0-100。既定0(オフ)。 全トラックの合流点(リバーブ・ディレイの戻りも含む)にまとめて軽く掛ける、 表現目的の音楽的な圧縮(常時ONの安全リミッターとは別物)。

    masterVolume?: number

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

    midiSearch?: MidiSearchConfig

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

    mode?: DawMode

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

    onBpmChange?: (bpm: number) => void

    BPMが変化したときに呼ばれる(MML読込・スライダー操作・MIDI取り込み等、経路に依らず単一の窓口)。 テンポ同期エフェクト(ディレイ等)が実時間へ再計算するために使う。

    onDelayChange?: (amount: number) => void

    マスタディレイのつまみが動かされたときに呼ばれる(0-100)。

    onDelayDivisionChange?: (division: DelayDivision) => void

    マスタディレイの音価が変更されたときに呼ばれる。

    onDrumChange?: (name: string) => void

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

    onDrumFontChange?: (fontId: string) => void

    ドラム音源が変更されたときのコールバック(font:id形式)

    onExportWav?: () => void | Promise<void>

    「MIDI / MML 出力」パネルの「WAV書き出し」ボタン押下時に呼ばれる。 未指定ならボタン自体を表示しない(ライブラリは音を出さないため、書き出し処理は AudioContextを持つ利用側 = createDtmStudio 等が担う)。

    onInstrumentChange?: (name: string) => void

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

    onLoopChange?: (loop: boolean) => void

    ループ再生のON/OFFが変化したときに呼ばれる

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

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

    onMasterCompressionChange?: (amount: number) => void

    マスタバスのグルーコンプレッサー量のつまみが動かされたときに呼ばれる(0-100)。

    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

    シンプルモードでトラック数超過コンテンツを読み込もうとしたとき、上級者モードへの切替を 要求するコールバック。mountModeSwitch が自動的に接続する。未接続なら確認モーダルは 表示しない。

    • MML読み込み時: pendingMml にMML文字列が渡され、applyMidi は undefined。
    • MIDI読み込み時: pendingMml は undefined、applyMidi に新DAWへ適用する関数が渡される。
    onResumeAudio?: () => void | Promise<void>

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

    onReverbChange?: (amount: number) => void

    マスタリバーブのつまみが動かされたときに呼ばれる(0-100)。実際の音声処理は呼び出し側(studio)が担う。

    onReverbDecayChange?: (seconds: number) => void

    マスタリバーブのDecayが変化したときに呼ばれる(秒)。

    onReverbPreDelayChange?: (ms: number) => void

    マスタリバーブのPre Delayが変化したときに呼ばれる(ms)。

    onScheduleFade?: (params: FadeScheduleParams | null) => void

    play() のたびに、今回の再生で使うフェードのスケジュール(絶対 AudioContext 時刻)を 通知する。params が null ならフェードを解除し音量を1へ戻す(pause/stop時)。 実際のゲイン自動化は呼び出し側(studio)が担う。

    onTrackCompressionChange?: (trackId: string, amount: number) => void

    トラック単位のコンプレッサー(音圧強化)量 0-100 が変化したときに呼ばれる。 trackId は演奏トラックのID(歌詞トラックと同じIDを共有していれば同じ処理が掛かる)。 実際の音声処理は呼び出し側(studio)が担う。

    onTrackDelaySendChange?: (trackId: string, amount: number) => void

    トラック単位のマスタディレイへのセンド量 0-100 が変化したときに呼ばれる。 楽器・歌詞トラックを問わず掛かる(歌詞トラック固有の vocalDelay/dトークンとは別軸で、 両方が同じマスタディレイへ加算的に送られる)。既定0(センドしない=ディレイが掛からない)。

    onTrackEqHighChange?: (trackId: string, db: number) => void

    トラック単位EQの高域(シェルフ)ゲイン -12〜+12dB が変化したときに呼ばれる。

    onTrackEqLowChange?: (trackId: string, db: number) => void

    トラック単位EQの低域(シェルフ)ゲイン -12〜+12dB が変化したときに呼ばれる。

    onTrackEqMidChange?: (trackId: string, db: number) => void

    トラック単位EQの中域(ピーキング)ゲイン -12〜+12dB が変化したときに呼ばれる。

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

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

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

    onTrackPanChange?: (trackId: string, pan: number) => void

    トラック単位のステレオ定位(パン)0-127(64=中央、0=左いっぱい、127=右いっぱい)が 変化したときに呼ばれる。歌詞トラック固有の vocalPan(歌唱の定位)とは別軸で、 楽器トラック自体の左右配置を決める。

    onTrackReverbSendChange?: (trackId: string, amount: number) => void

    トラック単位のマスタリバーブへのセンド量 0-100 が変化したときに呼ばれる。 楽器・歌詞トラックを問わず掛かる(歌詞トラック固有の vocalReverb/rトークンとは別軸で、 両方が同じマスタリバーブへ加算的に送られる)。既定0(センドしない=リバーブが掛からない)。

    onTrackWidthChange?: (trackId: string, width: number) => void

    トラック単位のステレオ幅 0-200 が変化したときに呼ばれる。

    onViewStateChange?: (state: DawViewState) => void

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

    parseMidi?: ParseMidiFn
    reverbAmount?: number

    マスタリバーブの掛かり具合 0-100。既定0(オフ)。 全トラック(楽器・歌唱とも)に一律で掛かるマスタエフェクト。

    reverbDecay?: number

    マスタリバーブのDecay(残響の長さ、秒)。既定2.2、範囲0.3〜4.0。

    reverbPreDelay?: number

    マスタリバーブのPre Delay(原音から残響が立ち上がるまでの遅延、ms)。既定0、範囲0〜150。

    showHelp?: boolean

    ツールバーにヘルプ(「?」)ボタンを出すか(既定 true)。 使い方モーダルとガイドツアーの入口で、画面内に散らばる ⓘ 解説への案内も兼ねる。

    singingVoices?: SingingVoices

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

    skipConsent?: boolean

    同意画面は既定で出なくなったので、この指定は何もしない(後方互換のため残置)。 DAW は元からこの値を読んでいない。聴く人に同意を求めない理由は MmlPlayerOptions.requireConsent の説明を参照。

    tour?: {
        autoStart?: boolean;
        extraSteps?: TourStep[];
        labels?: Partial<TourLabels>;
        steps?: TourStep[];
        storageKey?: string | null;
    }

    ガイドツアー(スポットライト型ウォークスルー)の設定。

    自動再生は既定でオフ。埋め込み先の第一印象を勝手に上書きしないための既定値で、 初回に流したいアプリ(デモページ等)だけが autoStart: true を渡す。 自動再生を切っていても、ヘルプボタンからはいつでも開始できる。

    Type Declaration

    • OptionalautoStart?: boolean

      初回訪問時(storageKey が未記録のとき)に自動で開始する。既定 false。

    • OptionalextraSteps?: TourStep[]

      既定ステップの後ろに足すステップ(埋め込み側のUIを案内したいとき)。

    • Optionallabels?: Partial<TourLabels>

      吹き出しの文言の差し替え(日本語以外へ差し替えるとき)。

    • Optionalsteps?: TourStep[]

      既定ステップ(import("./tour").DAW_TOUR_STEPS)を丸ごと差し替える。

    • OptionalstorageKey?: string | null

      「もう見た」フラグの保存キー(既定 "dtm-tour-seen")。null で記録しない。

    tracks?: TrackConfig[]

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