@onjmin/dtm
    Preparing search index...

    Type Alias MmlPlayerOptions

    type MmlPlayerOptions = {
        _skipInfoModals?: boolean;
        backingAudio?: BackingAudio;
        defaultBpm?: number;
        drumPatterns?: Record<string, AnyDrumPattern | DrumPatternDef>;
        embedUrl?: string;
        getAudioTime?: () => number;
        getMml?: () => string;
        loop?: boolean;
        masterVolume?: number;
        onPlayDrum?: (e: PlayDrumEvent) => void;
        onPlayNote?: (e: PlayNoteEvent) => void;
        onResumeAudio?: () => void | Promise<void>;
        onScheduleFade?: (params: FadeScheduleParams | null) => void;
        onStop?: () => void;
        requireConsent?: boolean;
        singingVoices?: SingingVoices;
        skipConsent?: boolean;
        synth?: boolean;
        trackColors?: string[];
        volume?: number;
    }
    Index

    Properties

    _skipInfoModals?: boolean

    モーダル(MMLを表示/MML書式とは/埋め込む)のメニュー項目を省略する。 再帰的な mountMmlPlayer 呼び出しの無限ネストを防ぐために使う。

    backingAudio?: BackingAudio

    伴奏音源(mp3 / wav / YouTube)の同時再生器。 MMLの #audio=<URL> を鳴らすのに使う(URLを持たないファイル読み込みはMMLに載らないので、 ここで鳴るのは常にURLの音源)。渡さないと #audio= は無視される。

    defaultBpm?: number

    BPM未検出時のフォールバック。既定120

    drumPatterns?: Record<string, AnyDrumPattern | DrumPatternDef>

    ドラムパターン辞書。#drum=<キー> の解決に使う。既定 DRUM_PATTERNS

    embedUrl?: string

    埋め込みプレイヤーのベースURL(例: "https://onjmin.github.io/dtm/demo/embed.html")

    getAudioTime?: () => number

    再生クロック秒。既定は内蔵synthの AudioContext.currentTime もしくは performance.now()/1000

    getMml?: () => string

    「MMLを表示」「MMLコピー」押下時に呼ばれる MML 取得コールバック。 省略時は mountMmlPlayer に渡した mml をそのまま使う。 DAW と連携する場合は () => daw.getMML().full を渡すと 常に最新の full フォーマット(メタ行・#end; 込み)を返せる。

    loop?: boolean

    ループ再生(既定オフ)。#loop=on メタ行でも指定可

    masterVolume?: number

    マスタ音量 0-100。既定50(DAW編集画面の全体音量スライダーの既定値に合わせている)。

    onPlayDrum?: (e: PlayDrumEvent) => void

    ドラムノートの発音要求(MMLのトップレベル宣言 #drum=… から解決)。 未指定かつ内蔵synth有効なら、簡易ドラム音で鳴る。

    onPlayNote?: (e: PlayNoteEvent) => void

    メロディックノートの発音要求。未指定かつ synth 未指定なら内蔵synthが鳴る

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

    初回再生時に呼ばれる(AudioContext.resume 等に使う)

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

    曲頭/曲尾のフェード(#fadein= / #fadeout=)の予約要求。null で解除。 内蔵synthを使わず外のマスタバスへ鳴らしている場合(studio 経由など)に、 そのバス最終段のゲインへ掛けてもらうためのフック。 時刻は getAudioTime と同じクロックで渡すので、両者は同じ AudioContext のものにすること。

    onStop?: () => void

    再生終了または手動停止時に呼び出されるコールバック

    requireConsent?: boolean

    再生の前に音源の利用規約への同意画面を出すか(既定 false = 出さない)。

    聴く人は同意する立場ではない。 UTAU 音源の規約が縛るのは音源を使って作品を作り 公開する側で、出来た曲を再生する人ではないので、再生を同意で塞がない。聴く人には クレジット(「この曲には◯◯の音源を使用しています」+規約へのリンク)を常に出していて、 作る人向けの義務の告知は DAW の歌声モデル欄が受け持つ。 作る画面の一部としてプレイヤーを置いていて、そこで同意を取りたいときだけ true にする。

    singingVoices?: SingingVoices

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

    skipConsent?: boolean

    同意画面は既定で出なくなったので、この指定は何もしない(後方互換のため残置)。 同意画面が要る画面では MmlPlayerOptions.requireConsent を使う。

    synth?: boolean

    内蔵の簡易square-wave synthを使うか。既定は onPlayNote 未指定なら true

    trackColors?: string[]

    trackIndex順の表示色。既定はPICO-8パレット4色

    volume?: number

    各トラックの 0-100 ボリューム。既定100