@onjmin/dtm 0.1.85 → 0.1.87

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -140,6 +140,17 @@ type ClipMeter = {
140
140
  dispose: () => void;
141
141
  };
142
142
 
143
+ /**
144
+ * マスタディレイ(テンポ同期エコー)— send/return バス。
145
+ *
146
+ * リバーブ({@link file://./reverb.ts})と同じ設計: masterGain の並列センドとして
147
+ * 独立に存在し、各ボーカルトラックが個別のセンド量(`e`トークン)で参加を決める。
148
+ * リバーブと違い、ディレイは曲のBPMに同期しないと不自然に聞こえるため、音価
149
+ * (8分・付点8分等)を選ばせて実秒数へ変換する方式にしている(DTMツールの定番UX)。
150
+ */
151
+ /** 選べる音価。value は保存用の短いキー、beats は四分音符を1とした拍数。 */
152
+ type DelayDivision = "4" | "8" | "8d" | "16";
153
+
143
154
  /**
144
155
  * 自動ビブラート(ロングトーンに自動で掛けるピッチLFO)の定数と曲線生成。
145
156
  *
@@ -304,7 +315,7 @@ type VoiceModel = {
304
315
  * {@link renderToCache} 済みのバッファを絶対時刻 t0(AudioContextクロック秒)へスケジュールする。
305
316
  * t0 は未来の任意時刻でよく、再生はオーディオスレッドが担うのでメインスレッドのもたつきに影響されない。
306
317
  */
307
- scheduleCached?: (key: string, t0: number, peak: number, pan: number, reverbSend?: number, destination?: AudioNode) => void;
318
+ scheduleCached?: (key: string, t0: number, peak: number, pan: number, reverbSend?: number, delaySend?: number, destination?: AudioNode) => void;
308
319
  /** スケジュール済みの発音をすべて即停止する(停止・一時停止・シーク時)。 */
309
320
  stopAll?: () => void;
310
321
  };
@@ -317,7 +328,7 @@ type VoiceModel = {
317
328
  * 戻り値の VoiceModel は (音節, PlayNoteEvent) を受け取り、
318
329
  * `ctx.currentTime + e.when` のタイミングで destination へ発音する。
319
330
  */
320
- declare const createKlattVoice: (ctx: AudioContext, destination: AudioNode, reverbBus?: AudioNode) => VoiceModel;
331
+ declare const createKlattVoice: (ctx: AudioContext, destination: AudioNode, reverbBus?: AudioNode, delayBus?: AudioNode) => VoiceModel;
321
332
  /** koe音源(.koe)が置かれているパブリックバケットのベースURL */
322
333
  declare const KOE_BASE_URL = "https://pub-12482a6b5cbc4c9e906b2e1904cabae5.r2.dev";
323
334
  /**
@@ -380,6 +391,11 @@ type KoeVoiceOptions = {
380
391
  * (=トラックごとの `r` トークンを書いてもリバーブが掛からない)。
381
392
  */
382
393
  reverbBus?: AudioNode;
394
+ /**
395
+ * マスタディレイのバス(センド先)。指定時のみ、ノートごとの `delaySend` に応じて
396
+ * ドライ経路とは別にこのノードへ送る。未指定ならディレイ送りは常にスキップされる。
397
+ */
398
+ delayBus?: AudioNode;
383
399
  };
384
400
  /**
385
401
  * @onjmin/koe の音源(UTAU由来 .koe)で1音節を歌う {@link VoiceModel} を生成する。
@@ -425,6 +441,11 @@ type StreamVoiceTrack = {
425
441
  * リバーブバスへ送るかを個別に決める。
426
442
  */
427
443
  reverbSend?: number;
444
+ /**
445
+ * マスタディレイへのセンド量 0-1。既定0(ディレイが掛からない)。マスタディレイ自体の
446
+ * つまみ(音価・掛かり具合)とは独立に、このトラックをどれだけディレイバスへ送るかを決める。
447
+ */
448
+ delaySend?: number;
428
449
  /**
429
450
  * フォルマント/ジェンダーファクター 0-1。既定0.5(無変化)。koe音源(Worldline)限定
430
451
  * — klattフォールバックには効かない。0.5未満で低め/太め、0.5超で高め/細めに寄る。
@@ -435,6 +456,11 @@ type StreamVoiceTrack = {
435
456
  * — klattフォールバックには効かない。
436
457
  */
437
458
  breathiness?: number;
459
+ /**
460
+ * オクターブダブル ON/OFF。既定false。ONにすると各音節を1オクターブ下(控えめな音量)で
461
+ * 同時に重ねて発音し、声に厚みを足す(オクターブユニゾン/ダブリング)。
462
+ */
463
+ octaveDouble?: boolean;
438
464
  /** 発音順(startSec昇順)の歌唱ノート列。 */
439
465
  notes: StreamVoiceNote[];
440
466
  };
@@ -532,6 +558,12 @@ type SingingVoicesOptions = {
532
558
  * Convolver 入力を渡す想定)。
533
559
  */
534
560
  reverbBus?: AudioNode;
561
+ /**
562
+ * マスタディレイのバス(センド先)。指定すると、各歌詞トラックの `delay`(`e`トークン)
563
+ * に応じて klatt/koe いずれの音源もこのノードへセンドできるようになる。未指定なら
564
+ * トラック側で `e` を指定してもディレイは掛からない。
565
+ */
566
+ delayBus?: AudioNode;
535
567
  /**
536
568
  * トラックID → チャンネルストリップ入口ノードの解決関数。指定すると、各トラックの
537
569
  * 発音は共有の `destination`(singingVoices内部マスタ)へ直結する代わりに、この
@@ -645,8 +677,10 @@ type LyricSyncData = {
645
677
  vocalOctave: number;
646
678
  vocalVibrato?: boolean;
647
679
  vocalReverb?: number;
680
+ vocalDelay?: number;
648
681
  vocalGender?: number;
649
682
  vocalBreathiness?: number;
683
+ vocalOctaveDouble?: boolean;
650
684
  };
651
685
  /** パッチ送受信用ノートデータ(ローカルIDを持たない)。 */
652
686
  type NoteData = {
@@ -729,6 +763,11 @@ type PlayNoteEvent = {
729
763
  * 反映する。合成側はドライ経路とは別にこの割合だけリバーブバスへ送ればよい。
730
764
  */
731
765
  reverbSend?: number;
766
+ /**
767
+ * マスタディレイへのセンド量 0-1(既定0)。歌詞トラックの個別ディレイ送り設定を反映する。
768
+ * リバーブと同じくドライ経路とは別にこの割合だけディレイバスへ送ればよい。
769
+ */
770
+ delaySend?: number;
732
771
  /**
733
772
  * 発音先の上書き(未指定なら合成側の既定destinationへ)。トラック単位チャンネルストリップ
734
773
  * (コンプレッサー/ステレオワイド)の入口ノードを渡すことを想定。
@@ -787,6 +826,13 @@ type LyricTrack = {
787
826
  * MMLでは `@@n klatt r50 …` のように r トークンで付与する。
788
827
  */
789
828
  reverb?: number;
829
+ /**
830
+ * このボーカルトラック個別のディレイセンド量 0-100。既定0(マスタディレイの影響を受けない)。
831
+ * マスタディレイのつまみ(テンポ同期した音価・掛かり具合そのもの)とは別軸で、
832
+ * 「このトラックをどれだけディレイバスへ送るか」を個別に決める。
833
+ * MMLでは `@@n klatt e50 …` のように e トークンで付与する。
834
+ */
835
+ delay?: number;
790
836
  /**
791
837
  * フォルマント/ジェンダーファクター 0-100。既定50(無変化)。
792
838
  * ピッチはそのままに声の太さ/細さ(年齢・性別感)だけを動かす。
@@ -800,6 +846,13 @@ type LyricTrack = {
800
846
  * MMLでは `@@n klatt h70 …` のように h トークンで付与する。
801
847
  */
802
848
  breathiness?: number;
849
+ /**
850
+ * オクターブダブル ON/OFF。既定false。
851
+ * ONにすると各音節を1オクターブ下(控えめな音量)で同時に重ねて発音し、声に厚みを足す
852
+ * (オクターブユニゾン/ダブリング)。
853
+ * MMLでは `@@n klatt w1 …` のように w トークンで付与する。
854
+ */
855
+ octaveDouble?: boolean;
803
856
  /** 正規化済み音節列 */
804
857
  syllables: LyricSyllable[];
805
858
  /**
@@ -825,6 +878,20 @@ type PlayDrumEvent = {
825
878
  duration: number;
826
879
  };
827
880
  type ParseMidiFn = (bytes: Uint8Array) => unknown | Promise<unknown>;
881
+ /**
882
+ * 1回の play() 呼び出しで使うフェードのスケジュール(絶対 AudioContext 時刻、秒)。
883
+ * いずれも未指定ならそちらのフェードは掛けない(曲頭から再生していない/フェード長0等)。
884
+ */
885
+ type FadeScheduleParams = {
886
+ /** フェードイン開始時刻(通常は再生アンカー時刻と同じ)。 */
887
+ fadeInStartAt?: number;
888
+ /** フェードイン完了時刻(この時刻に音量1へ到達)。 */
889
+ fadeInEndAt?: number;
890
+ /** フェードアウト開始時刻(この時刻までは音量1を維持)。 */
891
+ fadeOutStartAt?: number;
892
+ /** フェードアウト完了時刻(この時刻に音量0へ到達、通常は曲の終端)。 */
893
+ fadeOutEndAt?: number;
894
+ };
828
895
  /**
829
896
  * 永続化対象の表示・出力設定。利用側がブラウザ再訪時に復元する用途に使う。
830
897
  * (ノートやMML本体ではなく、エディタの見え方/出力の挙動の設定)
@@ -878,6 +945,27 @@ type DawOptions = {
878
945
  onTrackCompressionChange?: (trackId: string, amount: number) => void;
879
946
  /** トラック単位のステレオ幅 0-200 が変化したときに呼ばれる。 */
880
947
  onTrackWidthChange?: (trackId: string, width: number) => void;
948
+ /** トラック単位EQの低域(シェルフ)ゲイン -12〜+12dB が変化したときに呼ばれる。 */
949
+ onTrackEqLowChange?: (trackId: string, db: number) => void;
950
+ /** トラック単位EQの中域(ピーキング)ゲイン -12〜+12dB が変化したときに呼ばれる。 */
951
+ onTrackEqMidChange?: (trackId: string, db: number) => void;
952
+ /** トラック単位EQの高域(シェルフ)ゲイン -12〜+12dB が変化したときに呼ばれる。 */
953
+ onTrackEqHighChange?: (trackId: string, db: number) => void;
954
+ /**
955
+ * BPMが変化したときに呼ばれる(MML読込・スライダー操作・MIDI取り込み等、経路に依らず単一の窓口)。
956
+ * テンポ同期エフェクト(ディレイ等)が実時間へ再計算するために使う。
957
+ */
958
+ onBpmChange?: (bpm: number) => void;
959
+ /** 曲頭のフェードイン長(秒)。既定0(フェードなし)。範囲0〜10。 */
960
+ fadeInSec?: number;
961
+ /** 曲尾のフェードアウト長(秒)。既定0(フェードなし)。範囲0〜10。 */
962
+ fadeOutSec?: number;
963
+ /**
964
+ * play() のたびに、今回の再生で使うフェードのスケジュール(絶対 AudioContext 時刻)を
965
+ * 通知する。`params` が null ならフェードを解除し音量を1へ戻す(pause/stop時)。
966
+ * 実際のゲイン自動化は呼び出し側(studio)が担う。
967
+ */
968
+ onScheduleFade?: (params: FadeScheduleParams | null) => void;
881
969
  /**
882
970
  * 表示・出力設定(ズーム / 和音分解モード / 和音伴奏トラック無視)が変化したときに呼ばれる。
883
971
  * 利用側が選択状態を永続化する用途に使う。
@@ -912,6 +1000,26 @@ type DawOptions = {
912
1000
  reverbAmount?: number;
913
1001
  /** マスタリバーブのつまみが動かされたときに呼ばれる(0-100)。実際の音声処理は呼び出し側(studio)が担う。 */
914
1002
  onReverbChange?: (amount: number) => void;
1003
+ /** マスタリバーブのDecay(残響の長さ、秒)。既定2.2、範囲0.3〜4.0。 */
1004
+ reverbDecay?: number;
1005
+ /** マスタリバーブのDecayが変化したときに呼ばれる(秒)。 */
1006
+ onReverbDecayChange?: (seconds: number) => void;
1007
+ /** マスタリバーブのPre Delay(原音から残響が立ち上がるまでの遅延、ms)。既定0、範囲0〜150。 */
1008
+ reverbPreDelay?: number;
1009
+ /** マスタリバーブのPre Delayが変化したときに呼ばれる(ms)。 */
1010
+ onReverbPreDelayChange?: (ms: number) => void;
1011
+ /**
1012
+ * マスタディレイの掛かり具合 0-100。既定0(オフ)。テンポに同期したエコー。
1013
+ * 全トラック共通のバス自体は用意されるが、実際に送る量はボーカルトラック個別の
1014
+ * ディレイ送り(`e`トークン)で決める(リバーブと同じ send/return の考え方)。
1015
+ */
1016
+ delayAmount?: number;
1017
+ /** マスタディレイのつまみが動かされたときに呼ばれる(0-100)。 */
1018
+ onDelayChange?: (amount: number) => void;
1019
+ /** マスタディレイの音価(既定 "8" = 8分音符)。曲のBPMに同期した実秒数へ変換される。 */
1020
+ delayDivision?: DelayDivision;
1021
+ /** マスタディレイの音価が変更されたときに呼ばれる。 */
1022
+ onDelayDivisionChange?: (division: DelayDivision) => void;
915
1023
  parseMidi?: ParseMidiFn;
916
1024
  /**
917
1025
  * 動作モード({@link DawMode})。
@@ -1008,6 +1116,12 @@ type DawInstance = {
1008
1116
  setDrumVolume: (volume: number) => void;
1009
1117
  /** マスタリバーブの掛かり具合を 0-100 で変更する。 */
1010
1118
  setReverbAmount: (amount: number) => void;
1119
+ /** マスタリバーブのDecay(残響の長さ)を秒で変更する。 */
1120
+ setReverbDecay: (seconds: number) => void;
1121
+ /** マスタリバーブのPre Delayをmsで変更する。 */
1122
+ setReverbPreDelay: (ms: number) => void;
1123
+ /** マスタディレイの掛かり具合を 0-100 で変更する。 */
1124
+ setDelayAmount: (amount: number) => void;
1011
1125
  /** リモートから受信したトラック個別楽器を適用する(`onTrackInstrumentChange` は発火しない)。 */
1012
1126
  applyTrackInstrument: (trackIndex: number, instrumentName: string) => void;
1013
1127
  /**
@@ -1409,6 +1523,12 @@ declare const applyMonophonic: (targetCore: MMLCore, chordCore: MMLCore, options
1409
1523
  * 全トラックのノートを一括でステップシフトする(負方向で範囲外は削除)。
1410
1524
  */
1411
1525
  declare const shiftNotes: (cores: MMLCore[], shiftSteps: number) => void;
1526
+ /**
1527
+ * 全トラックのノートを一括で移調する(半音単位)。歌唱ピッチもノート由来なので、
1528
+ * 歌詞トラックの歌声も一緒に移調される。MIDI範囲(0-127)を超える場合はクランプする
1529
+ * (音域外に飛んで無音・破綻するのを防ぐ)。
1530
+ */
1531
+ declare const transposeNotes: (cores: MMLCore[], semitones: number) => void;
1412
1532
 
1413
1533
  type MidiTrackAnalysis = {
1414
1534
  index: number;
@@ -1528,6 +1648,25 @@ type MmlMeta = {
1528
1648
  drumVolume?: number;
1529
1649
  /** マスタリバーブの掛かり具合 0-100(全トラック共通、`#reverb=` で埋め込む) */
1530
1650
  reverb?: number;
1651
+ /**
1652
+ * マスタリバーブのDecay(残響の長さ)を10倍した整数(0.3〜4.0秒 → 3〜40)。
1653
+ * `#reverbdecay=` で埋め込む。省略時は22(2.2秒)。
1654
+ */
1655
+ reverbDecay?: number;
1656
+ /** マスタリバーブのPre Delay(ms、0〜150)。`#reverbpredelay=` で埋め込む。省略時は0。 */
1657
+ reverbPreDelay?: number;
1658
+ /** マスタディレイの掛かり具合 0-100(全トラック共通、`#delay=` で埋め込む) */
1659
+ delay?: number;
1660
+ /** マスタディレイの音価("4"|"8"|"8d"|"16")。`#delaydiv=` で埋め込む。省略時は"8"。 */
1661
+ delayDivision?: string;
1662
+ /**
1663
+ * 曲頭のフェードイン長を10倍した整数(秒 → 0〜100)。`#fadein=` で埋め込む。省略時は0。
1664
+ */
1665
+ fadeIn?: number;
1666
+ /**
1667
+ * 曲尾のフェードアウト長を10倍した整数(秒 → 0〜100)。`#fadeout=` で埋め込む。省略時は0。
1668
+ */
1669
+ fadeOut?: number;
1531
1670
  /** DAWの動作モード(simple | advanced) */
1532
1671
  mode?: "simple" | "advanced";
1533
1672
  /**
@@ -1545,6 +1684,12 @@ type MmlMeta = {
1545
1684
  * トラックごとのステレオ幅 0-200。`#t<n>width=<値>` で埋め込む。省略時は100(原音のまま)。
1546
1685
  */
1547
1686
  trackWidth?: Record<number, number>;
1687
+ /** トラックごとのEQ低域ゲイン -12〜+12dB。`#t<n>eqlo=<値>` で埋め込む。省略時は0(無変化)。 */
1688
+ trackEqLow?: Record<number, number>;
1689
+ /** トラックごとのEQ中域ゲイン -12〜+12dB。`#t<n>eqmid=<値>` で埋め込む。省略時は0(無変化)。 */
1690
+ trackEqMid?: Record<number, number>;
1691
+ /** トラックごとのEQ高域ゲイン -12〜+12dB。`#t<n>eqhi=<値>` で埋め込む。省略時は0(無変化)。 */
1692
+ trackEqHigh?: Record<number, number>;
1548
1693
  };
1549
1694
  /** MMLからトップレベル宣言を抽出する */
1550
1695
  declare const parseMmlMeta: (mml: string) => MmlMeta;
@@ -1890,6 +2035,18 @@ type DtmStudioOptions = {
1890
2035
  drumVolume?: number;
1891
2036
  /** マスタリバーブの掛かり具合 0-100。既定0(オフ)。全トラックへ一律で掛かる。 */
1892
2037
  reverbAmount?: number;
2038
+ /** マスタリバーブのDecay(残響の長さ、秒)。既定2.2、範囲0.3〜4.0。 */
2039
+ reverbDecay?: number;
2040
+ /** マスタリバーブのPre Delay(ms)。既定0、範囲0〜150。 */
2041
+ reverbPreDelay?: number;
2042
+ /** マスタディレイの掛かり具合 0-100。既定0(オフ)。テンポに同期したエコー。 */
2043
+ delayAmount?: number;
2044
+ /** マスタディレイの音価(既定 "8" = 8分音符)。 */
2045
+ delayDivision?: DelayDivision;
2046
+ /** 曲頭のフェードイン長(秒)。既定0(フェードなし)。 */
2047
+ fadeInSec?: number;
2048
+ /** 曲尾のフェードアウト長(秒)。既定0(フェードなし)。 */
2049
+ fadeOutSec?: number;
1893
2050
  /**
1894
2051
  * 最終出力先の AudioNode。未指定時は audioCtx.destination(スピーカー)。
1895
2052
  * MediaStreamAudioDestinationNode や GainNode を指定できます。
@@ -2091,6 +2248,12 @@ type DtmStudio = {
2091
2248
  setVolume: (volume: number) => void;
2092
2249
  /** マスタリバーブの掛かり具合を 0-100 で変更する。 */
2093
2250
  setReverbAmount: (amount: number) => void;
2251
+ /** マスタリバーブのDecay(残響の長さ)を秒で変更する。 */
2252
+ setReverbDecay: (seconds: number) => void;
2253
+ /** マスタリバーブのPre Delayをmsで変更する。 */
2254
+ setReverbPreDelay: (ms: number) => void;
2255
+ /** マスタディレイの掛かり具合を 0-100 で変更する。 */
2256
+ setDelayAmount: (amount: number) => void;
2094
2257
  /** AudioContext を閉じ、生成物を破棄する。 */
2095
2258
  dispose: () => void;
2096
2259
  };
@@ -2166,4 +2329,4 @@ declare const createSynth: (ctx: AudioContext, destination?: AudioNode, tone?: S
2166
2329
 
2167
2330
  declare const VOICE_IMAGES: Record<string, string>;
2168
2331
 
2169
- export { type AddNoteOptions, type AnyDrumPattern, type ApplyChordOptions, type ChordPatternType, type ChordPlacement, type ChordPlayerInstance, type ConsumedSyllable, type CoreEventHandlers, type CustomVocalDef, DAW_CSS, DEFAULT_BPM, DEFAULT_GATE, DEFAULT_PAN, DEFAULT_PLAYBACK_VELOCITY, DEFAULT_STEPS_PER_BAR, DEFAULT_VELOCITY, DEFAULT_VOCAL_VOLUME, DRUM_FONT, DRUM_KEYS, DRUM_PATTERNS, type DawInstance, type DawMode, type DawOptions, type DawViewState, type DrumPattern, type DrumPatternDef, type DtmStudio, type DtmStudioEngines, type DtmStudioOptions, type ExportMidiOptions, GM_INSTRUMENT_NAMES, INSTRUMENT_PRESETS, type InstrumentPreset, KOE_BASE_URL, KOE_VOICEBANKS, KOE_VOICEBANK_LABELS, KOE_VOICEBANK_TERMS, type KoeVoiceOptions, LinkedList, type LoopConfig, type LoopPoint, type LyricSyllable, type LyricSyncData, type LyricTrack, type LyricsConductor, MAX_VOCAL_VOLUME, MMLCore, type MMLDisplayToken, type MMLNotePlacement, MML_END_MARKER, type MidiExtraction, type MidiNotePlacement, MidiSearchClient, type MidiSearchConfig, type MidiTrackAnalysis, type MmlMeta, type MmlPlayback, type MmlPlayerInstance, type MmlPlayerOptions, type ModeSwitchInstance, type ModeSwitchOptions, type MountChordPlayerOptions, type MountEditorOptions, type MountPlayerOptions, type Note, type NoteData, type NoteRemove, PITCH_MAP, PREWARM_NOTES, type ParseMMLOptions, type ParseMidiFn, type ParsedMML, type PianoRollInstance, type PianoRollOptions, type PicotuneSearchParams, type PicotuneSong, type PitchToken, type PlayChordsOptions, type PlayDrumEvent, type PlayMmlOptions, type PlayNoteEvent, type PlayNoteOptions, type PlayPlacementsOptions, type PlaySingingMmlOptions, type PlaybackCue, type PlaybackState, type PresetSelectInstance, type PresetSelectOptions, type PreviewSoundCallback, type RenderConfig, type Sequencer, type SequencerOptions, type SequencerTrack, type SingingVoices, type SingingVoicesOptions, type StreamPlaybackOptions, type StreamVoiceNote, type StreamVoiceTrack, type Synth, TRACKS_ADVANCED, TRACKS_SIMPLE, type ToolMode, type TrackConfig, VIBRATO_MIN_SEC, VOICE_IMAGES, VOICE_IMAGE_KEY, type VoiceExpression, type VoiceModel, type VoiceRegistry, analyzeMidiTracks, applyHarmonicFilter, applyMonophonic, buildChordPlacements, buildDrumPatternJson, buildNameToKeyMapping, collectPitchTokens, createAudioContext, createDtmStudio, createKlattVoice, createKoeVoice, createLyricsConductor, createPianoRoll, createSequencer, createSingingVoices, createSynth, createVoiceRegistry, decodeMml, decomposeToMonophonic, drawGrid, drawHeader, drawKeyboard, drawNotes, drawSelectedNotes, drawSelectionRect, encodeMml, exportMIDI, extractDrumPatternFromNotes, extractMidiDrumPattern, extractMidiPlacements, extractMidiPlacementsByTrack, formatMmlMeta, freqFromPitch, generateRandomPattern, getDrawOffset, getDrumPatternKeys, getGridCanvas, getGridContext, getGridPosition, getHeaderCanvas, getMidiBPM, getRenderConfig, getXY, icon, init, injectStyles, isChordHeavyTrack, isPlausibleMidiTranscription, isValidHttpUrl, koeUrl, mountChordPlayer, mountDAW, mountMmlPlayer, normalizeDrumPatterns, normalizeLyrics, onClick, panToStereo, parseCustomVocals, parseLyrics, parseMML, parseMmlMeta, playChords, playMML, playNote, playPlacements, playSingingMML, resolveDrumPattern, resolveLoopPoint, setBackgroundActive, setDrawOffset, shiftNotes, showLoadingOverlay, stripCustomVocals, stripLyrics, stripMmlMeta, vocalVolumeToGain };
2332
+ export { type AddNoteOptions, type AnyDrumPattern, type ApplyChordOptions, type ChordPatternType, type ChordPlacement, type ChordPlayerInstance, type ConsumedSyllable, type CoreEventHandlers, type CustomVocalDef, DAW_CSS, DEFAULT_BPM, DEFAULT_GATE, DEFAULT_PAN, DEFAULT_PLAYBACK_VELOCITY, DEFAULT_STEPS_PER_BAR, DEFAULT_VELOCITY, DEFAULT_VOCAL_VOLUME, DRUM_FONT, DRUM_KEYS, DRUM_PATTERNS, type DawInstance, type DawMode, type DawOptions, type DawViewState, type DrumPattern, type DrumPatternDef, type DtmStudio, type DtmStudioEngines, type DtmStudioOptions, type ExportMidiOptions, type FadeScheduleParams, GM_INSTRUMENT_NAMES, INSTRUMENT_PRESETS, type InstrumentPreset, KOE_BASE_URL, KOE_VOICEBANKS, KOE_VOICEBANK_LABELS, KOE_VOICEBANK_TERMS, type KoeVoiceOptions, LinkedList, type LoopConfig, type LoopPoint, type LyricSyllable, type LyricSyncData, type LyricTrack, type LyricsConductor, MAX_VOCAL_VOLUME, MMLCore, type MMLDisplayToken, type MMLNotePlacement, MML_END_MARKER, type MidiExtraction, type MidiNotePlacement, MidiSearchClient, type MidiSearchConfig, type MidiTrackAnalysis, type MmlMeta, type MmlPlayback, type MmlPlayerInstance, type MmlPlayerOptions, type ModeSwitchInstance, type ModeSwitchOptions, type MountChordPlayerOptions, type MountEditorOptions, type MountPlayerOptions, type Note, type NoteData, type NoteRemove, PITCH_MAP, PREWARM_NOTES, type ParseMMLOptions, type ParseMidiFn, type ParsedMML, type PianoRollInstance, type PianoRollOptions, type PicotuneSearchParams, type PicotuneSong, type PitchToken, type PlayChordsOptions, type PlayDrumEvent, type PlayMmlOptions, type PlayNoteEvent, type PlayNoteOptions, type PlayPlacementsOptions, type PlaySingingMmlOptions, type PlaybackCue, type PlaybackState, type PresetSelectInstance, type PresetSelectOptions, type PreviewSoundCallback, type RenderConfig, type Sequencer, type SequencerOptions, type SequencerTrack, type SingingVoices, type SingingVoicesOptions, type StreamPlaybackOptions, type StreamVoiceNote, type StreamVoiceTrack, type Synth, TRACKS_ADVANCED, TRACKS_SIMPLE, type ToolMode, type TrackConfig, VIBRATO_MIN_SEC, VOICE_IMAGES, VOICE_IMAGE_KEY, type VoiceExpression, type VoiceModel, type VoiceRegistry, analyzeMidiTracks, applyHarmonicFilter, applyMonophonic, buildChordPlacements, buildDrumPatternJson, buildNameToKeyMapping, collectPitchTokens, createAudioContext, createDtmStudio, createKlattVoice, createKoeVoice, createLyricsConductor, createPianoRoll, createSequencer, createSingingVoices, createSynth, createVoiceRegistry, decodeMml, decomposeToMonophonic, drawGrid, drawHeader, drawKeyboard, drawNotes, drawSelectedNotes, drawSelectionRect, encodeMml, exportMIDI, extractDrumPatternFromNotes, extractMidiDrumPattern, extractMidiPlacements, extractMidiPlacementsByTrack, formatMmlMeta, freqFromPitch, generateRandomPattern, getDrawOffset, getDrumPatternKeys, getGridCanvas, getGridContext, getGridPosition, getHeaderCanvas, getMidiBPM, getRenderConfig, getXY, icon, init, injectStyles, isChordHeavyTrack, isPlausibleMidiTranscription, isValidHttpUrl, koeUrl, mountChordPlayer, mountDAW, mountMmlPlayer, normalizeDrumPatterns, normalizeLyrics, onClick, panToStereo, parseCustomVocals, parseLyrics, parseMML, parseMmlMeta, playChords, playMML, playNote, playPlacements, playSingingMML, resolveDrumPattern, resolveLoopPoint, setBackgroundActive, setDrawOffset, shiftNotes, showLoadingOverlay, stripCustomVocals, stripLyrics, stripMmlMeta, transposeNotes, vocalVolumeToGain };
package/dist/index.d.ts CHANGED
@@ -140,6 +140,17 @@ type ClipMeter = {
140
140
  dispose: () => void;
141
141
  };
142
142
 
143
+ /**
144
+ * マスタディレイ(テンポ同期エコー)— send/return バス。
145
+ *
146
+ * リバーブ({@link file://./reverb.ts})と同じ設計: masterGain の並列センドとして
147
+ * 独立に存在し、各ボーカルトラックが個別のセンド量(`e`トークン)で参加を決める。
148
+ * リバーブと違い、ディレイは曲のBPMに同期しないと不自然に聞こえるため、音価
149
+ * (8分・付点8分等)を選ばせて実秒数へ変換する方式にしている(DTMツールの定番UX)。
150
+ */
151
+ /** 選べる音価。value は保存用の短いキー、beats は四分音符を1とした拍数。 */
152
+ type DelayDivision = "4" | "8" | "8d" | "16";
153
+
143
154
  /**
144
155
  * 自動ビブラート(ロングトーンに自動で掛けるピッチLFO)の定数と曲線生成。
145
156
  *
@@ -304,7 +315,7 @@ type VoiceModel = {
304
315
  * {@link renderToCache} 済みのバッファを絶対時刻 t0(AudioContextクロック秒)へスケジュールする。
305
316
  * t0 は未来の任意時刻でよく、再生はオーディオスレッドが担うのでメインスレッドのもたつきに影響されない。
306
317
  */
307
- scheduleCached?: (key: string, t0: number, peak: number, pan: number, reverbSend?: number, destination?: AudioNode) => void;
318
+ scheduleCached?: (key: string, t0: number, peak: number, pan: number, reverbSend?: number, delaySend?: number, destination?: AudioNode) => void;
308
319
  /** スケジュール済みの発音をすべて即停止する(停止・一時停止・シーク時)。 */
309
320
  stopAll?: () => void;
310
321
  };
@@ -317,7 +328,7 @@ type VoiceModel = {
317
328
  * 戻り値の VoiceModel は (音節, PlayNoteEvent) を受け取り、
318
329
  * `ctx.currentTime + e.when` のタイミングで destination へ発音する。
319
330
  */
320
- declare const createKlattVoice: (ctx: AudioContext, destination: AudioNode, reverbBus?: AudioNode) => VoiceModel;
331
+ declare const createKlattVoice: (ctx: AudioContext, destination: AudioNode, reverbBus?: AudioNode, delayBus?: AudioNode) => VoiceModel;
321
332
  /** koe音源(.koe)が置かれているパブリックバケットのベースURL */
322
333
  declare const KOE_BASE_URL = "https://pub-12482a6b5cbc4c9e906b2e1904cabae5.r2.dev";
323
334
  /**
@@ -380,6 +391,11 @@ type KoeVoiceOptions = {
380
391
  * (=トラックごとの `r` トークンを書いてもリバーブが掛からない)。
381
392
  */
382
393
  reverbBus?: AudioNode;
394
+ /**
395
+ * マスタディレイのバス(センド先)。指定時のみ、ノートごとの `delaySend` に応じて
396
+ * ドライ経路とは別にこのノードへ送る。未指定ならディレイ送りは常にスキップされる。
397
+ */
398
+ delayBus?: AudioNode;
383
399
  };
384
400
  /**
385
401
  * @onjmin/koe の音源(UTAU由来 .koe)で1音節を歌う {@link VoiceModel} を生成する。
@@ -425,6 +441,11 @@ type StreamVoiceTrack = {
425
441
  * リバーブバスへ送るかを個別に決める。
426
442
  */
427
443
  reverbSend?: number;
444
+ /**
445
+ * マスタディレイへのセンド量 0-1。既定0(ディレイが掛からない)。マスタディレイ自体の
446
+ * つまみ(音価・掛かり具合)とは独立に、このトラックをどれだけディレイバスへ送るかを決める。
447
+ */
448
+ delaySend?: number;
428
449
  /**
429
450
  * フォルマント/ジェンダーファクター 0-1。既定0.5(無変化)。koe音源(Worldline)限定
430
451
  * — klattフォールバックには効かない。0.5未満で低め/太め、0.5超で高め/細めに寄る。
@@ -435,6 +456,11 @@ type StreamVoiceTrack = {
435
456
  * — klattフォールバックには効かない。
436
457
  */
437
458
  breathiness?: number;
459
+ /**
460
+ * オクターブダブル ON/OFF。既定false。ONにすると各音節を1オクターブ下(控えめな音量)で
461
+ * 同時に重ねて発音し、声に厚みを足す(オクターブユニゾン/ダブリング)。
462
+ */
463
+ octaveDouble?: boolean;
438
464
  /** 発音順(startSec昇順)の歌唱ノート列。 */
439
465
  notes: StreamVoiceNote[];
440
466
  };
@@ -532,6 +558,12 @@ type SingingVoicesOptions = {
532
558
  * Convolver 入力を渡す想定)。
533
559
  */
534
560
  reverbBus?: AudioNode;
561
+ /**
562
+ * マスタディレイのバス(センド先)。指定すると、各歌詞トラックの `delay`(`e`トークン)
563
+ * に応じて klatt/koe いずれの音源もこのノードへセンドできるようになる。未指定なら
564
+ * トラック側で `e` を指定してもディレイは掛からない。
565
+ */
566
+ delayBus?: AudioNode;
535
567
  /**
536
568
  * トラックID → チャンネルストリップ入口ノードの解決関数。指定すると、各トラックの
537
569
  * 発音は共有の `destination`(singingVoices内部マスタ)へ直結する代わりに、この
@@ -645,8 +677,10 @@ type LyricSyncData = {
645
677
  vocalOctave: number;
646
678
  vocalVibrato?: boolean;
647
679
  vocalReverb?: number;
680
+ vocalDelay?: number;
648
681
  vocalGender?: number;
649
682
  vocalBreathiness?: number;
683
+ vocalOctaveDouble?: boolean;
650
684
  };
651
685
  /** パッチ送受信用ノートデータ(ローカルIDを持たない)。 */
652
686
  type NoteData = {
@@ -729,6 +763,11 @@ type PlayNoteEvent = {
729
763
  * 反映する。合成側はドライ経路とは別にこの割合だけリバーブバスへ送ればよい。
730
764
  */
731
765
  reverbSend?: number;
766
+ /**
767
+ * マスタディレイへのセンド量 0-1(既定0)。歌詞トラックの個別ディレイ送り設定を反映する。
768
+ * リバーブと同じくドライ経路とは別にこの割合だけディレイバスへ送ればよい。
769
+ */
770
+ delaySend?: number;
732
771
  /**
733
772
  * 発音先の上書き(未指定なら合成側の既定destinationへ)。トラック単位チャンネルストリップ
734
773
  * (コンプレッサー/ステレオワイド)の入口ノードを渡すことを想定。
@@ -787,6 +826,13 @@ type LyricTrack = {
787
826
  * MMLでは `@@n klatt r50 …` のように r トークンで付与する。
788
827
  */
789
828
  reverb?: number;
829
+ /**
830
+ * このボーカルトラック個別のディレイセンド量 0-100。既定0(マスタディレイの影響を受けない)。
831
+ * マスタディレイのつまみ(テンポ同期した音価・掛かり具合そのもの)とは別軸で、
832
+ * 「このトラックをどれだけディレイバスへ送るか」を個別に決める。
833
+ * MMLでは `@@n klatt e50 …` のように e トークンで付与する。
834
+ */
835
+ delay?: number;
790
836
  /**
791
837
  * フォルマント/ジェンダーファクター 0-100。既定50(無変化)。
792
838
  * ピッチはそのままに声の太さ/細さ(年齢・性別感)だけを動かす。
@@ -800,6 +846,13 @@ type LyricTrack = {
800
846
  * MMLでは `@@n klatt h70 …` のように h トークンで付与する。
801
847
  */
802
848
  breathiness?: number;
849
+ /**
850
+ * オクターブダブル ON/OFF。既定false。
851
+ * ONにすると各音節を1オクターブ下(控えめな音量)で同時に重ねて発音し、声に厚みを足す
852
+ * (オクターブユニゾン/ダブリング)。
853
+ * MMLでは `@@n klatt w1 …` のように w トークンで付与する。
854
+ */
855
+ octaveDouble?: boolean;
803
856
  /** 正規化済み音節列 */
804
857
  syllables: LyricSyllable[];
805
858
  /**
@@ -825,6 +878,20 @@ type PlayDrumEvent = {
825
878
  duration: number;
826
879
  };
827
880
  type ParseMidiFn = (bytes: Uint8Array) => unknown | Promise<unknown>;
881
+ /**
882
+ * 1回の play() 呼び出しで使うフェードのスケジュール(絶対 AudioContext 時刻、秒)。
883
+ * いずれも未指定ならそちらのフェードは掛けない(曲頭から再生していない/フェード長0等)。
884
+ */
885
+ type FadeScheduleParams = {
886
+ /** フェードイン開始時刻(通常は再生アンカー時刻と同じ)。 */
887
+ fadeInStartAt?: number;
888
+ /** フェードイン完了時刻(この時刻に音量1へ到達)。 */
889
+ fadeInEndAt?: number;
890
+ /** フェードアウト開始時刻(この時刻までは音量1を維持)。 */
891
+ fadeOutStartAt?: number;
892
+ /** フェードアウト完了時刻(この時刻に音量0へ到達、通常は曲の終端)。 */
893
+ fadeOutEndAt?: number;
894
+ };
828
895
  /**
829
896
  * 永続化対象の表示・出力設定。利用側がブラウザ再訪時に復元する用途に使う。
830
897
  * (ノートやMML本体ではなく、エディタの見え方/出力の挙動の設定)
@@ -878,6 +945,27 @@ type DawOptions = {
878
945
  onTrackCompressionChange?: (trackId: string, amount: number) => void;
879
946
  /** トラック単位のステレオ幅 0-200 が変化したときに呼ばれる。 */
880
947
  onTrackWidthChange?: (trackId: string, width: number) => void;
948
+ /** トラック単位EQの低域(シェルフ)ゲイン -12〜+12dB が変化したときに呼ばれる。 */
949
+ onTrackEqLowChange?: (trackId: string, db: number) => void;
950
+ /** トラック単位EQの中域(ピーキング)ゲイン -12〜+12dB が変化したときに呼ばれる。 */
951
+ onTrackEqMidChange?: (trackId: string, db: number) => void;
952
+ /** トラック単位EQの高域(シェルフ)ゲイン -12〜+12dB が変化したときに呼ばれる。 */
953
+ onTrackEqHighChange?: (trackId: string, db: number) => void;
954
+ /**
955
+ * BPMが変化したときに呼ばれる(MML読込・スライダー操作・MIDI取り込み等、経路に依らず単一の窓口)。
956
+ * テンポ同期エフェクト(ディレイ等)が実時間へ再計算するために使う。
957
+ */
958
+ onBpmChange?: (bpm: number) => void;
959
+ /** 曲頭のフェードイン長(秒)。既定0(フェードなし)。範囲0〜10。 */
960
+ fadeInSec?: number;
961
+ /** 曲尾のフェードアウト長(秒)。既定0(フェードなし)。範囲0〜10。 */
962
+ fadeOutSec?: number;
963
+ /**
964
+ * play() のたびに、今回の再生で使うフェードのスケジュール(絶対 AudioContext 時刻)を
965
+ * 通知する。`params` が null ならフェードを解除し音量を1へ戻す(pause/stop時)。
966
+ * 実際のゲイン自動化は呼び出し側(studio)が担う。
967
+ */
968
+ onScheduleFade?: (params: FadeScheduleParams | null) => void;
881
969
  /**
882
970
  * 表示・出力設定(ズーム / 和音分解モード / 和音伴奏トラック無視)が変化したときに呼ばれる。
883
971
  * 利用側が選択状態を永続化する用途に使う。
@@ -912,6 +1000,26 @@ type DawOptions = {
912
1000
  reverbAmount?: number;
913
1001
  /** マスタリバーブのつまみが動かされたときに呼ばれる(0-100)。実際の音声処理は呼び出し側(studio)が担う。 */
914
1002
  onReverbChange?: (amount: number) => void;
1003
+ /** マスタリバーブのDecay(残響の長さ、秒)。既定2.2、範囲0.3〜4.0。 */
1004
+ reverbDecay?: number;
1005
+ /** マスタリバーブのDecayが変化したときに呼ばれる(秒)。 */
1006
+ onReverbDecayChange?: (seconds: number) => void;
1007
+ /** マスタリバーブのPre Delay(原音から残響が立ち上がるまでの遅延、ms)。既定0、範囲0〜150。 */
1008
+ reverbPreDelay?: number;
1009
+ /** マスタリバーブのPre Delayが変化したときに呼ばれる(ms)。 */
1010
+ onReverbPreDelayChange?: (ms: number) => void;
1011
+ /**
1012
+ * マスタディレイの掛かり具合 0-100。既定0(オフ)。テンポに同期したエコー。
1013
+ * 全トラック共通のバス自体は用意されるが、実際に送る量はボーカルトラック個別の
1014
+ * ディレイ送り(`e`トークン)で決める(リバーブと同じ send/return の考え方)。
1015
+ */
1016
+ delayAmount?: number;
1017
+ /** マスタディレイのつまみが動かされたときに呼ばれる(0-100)。 */
1018
+ onDelayChange?: (amount: number) => void;
1019
+ /** マスタディレイの音価(既定 "8" = 8分音符)。曲のBPMに同期した実秒数へ変換される。 */
1020
+ delayDivision?: DelayDivision;
1021
+ /** マスタディレイの音価が変更されたときに呼ばれる。 */
1022
+ onDelayDivisionChange?: (division: DelayDivision) => void;
915
1023
  parseMidi?: ParseMidiFn;
916
1024
  /**
917
1025
  * 動作モード({@link DawMode})。
@@ -1008,6 +1116,12 @@ type DawInstance = {
1008
1116
  setDrumVolume: (volume: number) => void;
1009
1117
  /** マスタリバーブの掛かり具合を 0-100 で変更する。 */
1010
1118
  setReverbAmount: (amount: number) => void;
1119
+ /** マスタリバーブのDecay(残響の長さ)を秒で変更する。 */
1120
+ setReverbDecay: (seconds: number) => void;
1121
+ /** マスタリバーブのPre Delayをmsで変更する。 */
1122
+ setReverbPreDelay: (ms: number) => void;
1123
+ /** マスタディレイの掛かり具合を 0-100 で変更する。 */
1124
+ setDelayAmount: (amount: number) => void;
1011
1125
  /** リモートから受信したトラック個別楽器を適用する(`onTrackInstrumentChange` は発火しない)。 */
1012
1126
  applyTrackInstrument: (trackIndex: number, instrumentName: string) => void;
1013
1127
  /**
@@ -1409,6 +1523,12 @@ declare const applyMonophonic: (targetCore: MMLCore, chordCore: MMLCore, options
1409
1523
  * 全トラックのノートを一括でステップシフトする(負方向で範囲外は削除)。
1410
1524
  */
1411
1525
  declare const shiftNotes: (cores: MMLCore[], shiftSteps: number) => void;
1526
+ /**
1527
+ * 全トラックのノートを一括で移調する(半音単位)。歌唱ピッチもノート由来なので、
1528
+ * 歌詞トラックの歌声も一緒に移調される。MIDI範囲(0-127)を超える場合はクランプする
1529
+ * (音域外に飛んで無音・破綻するのを防ぐ)。
1530
+ */
1531
+ declare const transposeNotes: (cores: MMLCore[], semitones: number) => void;
1412
1532
 
1413
1533
  type MidiTrackAnalysis = {
1414
1534
  index: number;
@@ -1528,6 +1648,25 @@ type MmlMeta = {
1528
1648
  drumVolume?: number;
1529
1649
  /** マスタリバーブの掛かり具合 0-100(全トラック共通、`#reverb=` で埋め込む) */
1530
1650
  reverb?: number;
1651
+ /**
1652
+ * マスタリバーブのDecay(残響の長さ)を10倍した整数(0.3〜4.0秒 → 3〜40)。
1653
+ * `#reverbdecay=` で埋め込む。省略時は22(2.2秒)。
1654
+ */
1655
+ reverbDecay?: number;
1656
+ /** マスタリバーブのPre Delay(ms、0〜150)。`#reverbpredelay=` で埋め込む。省略時は0。 */
1657
+ reverbPreDelay?: number;
1658
+ /** マスタディレイの掛かり具合 0-100(全トラック共通、`#delay=` で埋め込む) */
1659
+ delay?: number;
1660
+ /** マスタディレイの音価("4"|"8"|"8d"|"16")。`#delaydiv=` で埋め込む。省略時は"8"。 */
1661
+ delayDivision?: string;
1662
+ /**
1663
+ * 曲頭のフェードイン長を10倍した整数(秒 → 0〜100)。`#fadein=` で埋め込む。省略時は0。
1664
+ */
1665
+ fadeIn?: number;
1666
+ /**
1667
+ * 曲尾のフェードアウト長を10倍した整数(秒 → 0〜100)。`#fadeout=` で埋め込む。省略時は0。
1668
+ */
1669
+ fadeOut?: number;
1531
1670
  /** DAWの動作モード(simple | advanced) */
1532
1671
  mode?: "simple" | "advanced";
1533
1672
  /**
@@ -1545,6 +1684,12 @@ type MmlMeta = {
1545
1684
  * トラックごとのステレオ幅 0-200。`#t<n>width=<値>` で埋め込む。省略時は100(原音のまま)。
1546
1685
  */
1547
1686
  trackWidth?: Record<number, number>;
1687
+ /** トラックごとのEQ低域ゲイン -12〜+12dB。`#t<n>eqlo=<値>` で埋め込む。省略時は0(無変化)。 */
1688
+ trackEqLow?: Record<number, number>;
1689
+ /** トラックごとのEQ中域ゲイン -12〜+12dB。`#t<n>eqmid=<値>` で埋め込む。省略時は0(無変化)。 */
1690
+ trackEqMid?: Record<number, number>;
1691
+ /** トラックごとのEQ高域ゲイン -12〜+12dB。`#t<n>eqhi=<値>` で埋め込む。省略時は0(無変化)。 */
1692
+ trackEqHigh?: Record<number, number>;
1548
1693
  };
1549
1694
  /** MMLからトップレベル宣言を抽出する */
1550
1695
  declare const parseMmlMeta: (mml: string) => MmlMeta;
@@ -1890,6 +2035,18 @@ type DtmStudioOptions = {
1890
2035
  drumVolume?: number;
1891
2036
  /** マスタリバーブの掛かり具合 0-100。既定0(オフ)。全トラックへ一律で掛かる。 */
1892
2037
  reverbAmount?: number;
2038
+ /** マスタリバーブのDecay(残響の長さ、秒)。既定2.2、範囲0.3〜4.0。 */
2039
+ reverbDecay?: number;
2040
+ /** マスタリバーブのPre Delay(ms)。既定0、範囲0〜150。 */
2041
+ reverbPreDelay?: number;
2042
+ /** マスタディレイの掛かり具合 0-100。既定0(オフ)。テンポに同期したエコー。 */
2043
+ delayAmount?: number;
2044
+ /** マスタディレイの音価(既定 "8" = 8分音符)。 */
2045
+ delayDivision?: DelayDivision;
2046
+ /** 曲頭のフェードイン長(秒)。既定0(フェードなし)。 */
2047
+ fadeInSec?: number;
2048
+ /** 曲尾のフェードアウト長(秒)。既定0(フェードなし)。 */
2049
+ fadeOutSec?: number;
1893
2050
  /**
1894
2051
  * 最終出力先の AudioNode。未指定時は audioCtx.destination(スピーカー)。
1895
2052
  * MediaStreamAudioDestinationNode や GainNode を指定できます。
@@ -2091,6 +2248,12 @@ type DtmStudio = {
2091
2248
  setVolume: (volume: number) => void;
2092
2249
  /** マスタリバーブの掛かり具合を 0-100 で変更する。 */
2093
2250
  setReverbAmount: (amount: number) => void;
2251
+ /** マスタリバーブのDecay(残響の長さ)を秒で変更する。 */
2252
+ setReverbDecay: (seconds: number) => void;
2253
+ /** マスタリバーブのPre Delayをmsで変更する。 */
2254
+ setReverbPreDelay: (ms: number) => void;
2255
+ /** マスタディレイの掛かり具合を 0-100 で変更する。 */
2256
+ setDelayAmount: (amount: number) => void;
2094
2257
  /** AudioContext を閉じ、生成物を破棄する。 */
2095
2258
  dispose: () => void;
2096
2259
  };
@@ -2166,4 +2329,4 @@ declare const createSynth: (ctx: AudioContext, destination?: AudioNode, tone?: S
2166
2329
 
2167
2330
  declare const VOICE_IMAGES: Record<string, string>;
2168
2331
 
2169
- export { type AddNoteOptions, type AnyDrumPattern, type ApplyChordOptions, type ChordPatternType, type ChordPlacement, type ChordPlayerInstance, type ConsumedSyllable, type CoreEventHandlers, type CustomVocalDef, DAW_CSS, DEFAULT_BPM, DEFAULT_GATE, DEFAULT_PAN, DEFAULT_PLAYBACK_VELOCITY, DEFAULT_STEPS_PER_BAR, DEFAULT_VELOCITY, DEFAULT_VOCAL_VOLUME, DRUM_FONT, DRUM_KEYS, DRUM_PATTERNS, type DawInstance, type DawMode, type DawOptions, type DawViewState, type DrumPattern, type DrumPatternDef, type DtmStudio, type DtmStudioEngines, type DtmStudioOptions, type ExportMidiOptions, GM_INSTRUMENT_NAMES, INSTRUMENT_PRESETS, type InstrumentPreset, KOE_BASE_URL, KOE_VOICEBANKS, KOE_VOICEBANK_LABELS, KOE_VOICEBANK_TERMS, type KoeVoiceOptions, LinkedList, type LoopConfig, type LoopPoint, type LyricSyllable, type LyricSyncData, type LyricTrack, type LyricsConductor, MAX_VOCAL_VOLUME, MMLCore, type MMLDisplayToken, type MMLNotePlacement, MML_END_MARKER, type MidiExtraction, type MidiNotePlacement, MidiSearchClient, type MidiSearchConfig, type MidiTrackAnalysis, type MmlMeta, type MmlPlayback, type MmlPlayerInstance, type MmlPlayerOptions, type ModeSwitchInstance, type ModeSwitchOptions, type MountChordPlayerOptions, type MountEditorOptions, type MountPlayerOptions, type Note, type NoteData, type NoteRemove, PITCH_MAP, PREWARM_NOTES, type ParseMMLOptions, type ParseMidiFn, type ParsedMML, type PianoRollInstance, type PianoRollOptions, type PicotuneSearchParams, type PicotuneSong, type PitchToken, type PlayChordsOptions, type PlayDrumEvent, type PlayMmlOptions, type PlayNoteEvent, type PlayNoteOptions, type PlayPlacementsOptions, type PlaySingingMmlOptions, type PlaybackCue, type PlaybackState, type PresetSelectInstance, type PresetSelectOptions, type PreviewSoundCallback, type RenderConfig, type Sequencer, type SequencerOptions, type SequencerTrack, type SingingVoices, type SingingVoicesOptions, type StreamPlaybackOptions, type StreamVoiceNote, type StreamVoiceTrack, type Synth, TRACKS_ADVANCED, TRACKS_SIMPLE, type ToolMode, type TrackConfig, VIBRATO_MIN_SEC, VOICE_IMAGES, VOICE_IMAGE_KEY, type VoiceExpression, type VoiceModel, type VoiceRegistry, analyzeMidiTracks, applyHarmonicFilter, applyMonophonic, buildChordPlacements, buildDrumPatternJson, buildNameToKeyMapping, collectPitchTokens, createAudioContext, createDtmStudio, createKlattVoice, createKoeVoice, createLyricsConductor, createPianoRoll, createSequencer, createSingingVoices, createSynth, createVoiceRegistry, decodeMml, decomposeToMonophonic, drawGrid, drawHeader, drawKeyboard, drawNotes, drawSelectedNotes, drawSelectionRect, encodeMml, exportMIDI, extractDrumPatternFromNotes, extractMidiDrumPattern, extractMidiPlacements, extractMidiPlacementsByTrack, formatMmlMeta, freqFromPitch, generateRandomPattern, getDrawOffset, getDrumPatternKeys, getGridCanvas, getGridContext, getGridPosition, getHeaderCanvas, getMidiBPM, getRenderConfig, getXY, icon, init, injectStyles, isChordHeavyTrack, isPlausibleMidiTranscription, isValidHttpUrl, koeUrl, mountChordPlayer, mountDAW, mountMmlPlayer, normalizeDrumPatterns, normalizeLyrics, onClick, panToStereo, parseCustomVocals, parseLyrics, parseMML, parseMmlMeta, playChords, playMML, playNote, playPlacements, playSingingMML, resolveDrumPattern, resolveLoopPoint, setBackgroundActive, setDrawOffset, shiftNotes, showLoadingOverlay, stripCustomVocals, stripLyrics, stripMmlMeta, vocalVolumeToGain };
2332
+ export { type AddNoteOptions, type AnyDrumPattern, type ApplyChordOptions, type ChordPatternType, type ChordPlacement, type ChordPlayerInstance, type ConsumedSyllable, type CoreEventHandlers, type CustomVocalDef, DAW_CSS, DEFAULT_BPM, DEFAULT_GATE, DEFAULT_PAN, DEFAULT_PLAYBACK_VELOCITY, DEFAULT_STEPS_PER_BAR, DEFAULT_VELOCITY, DEFAULT_VOCAL_VOLUME, DRUM_FONT, DRUM_KEYS, DRUM_PATTERNS, type DawInstance, type DawMode, type DawOptions, type DawViewState, type DrumPattern, type DrumPatternDef, type DtmStudio, type DtmStudioEngines, type DtmStudioOptions, type ExportMidiOptions, type FadeScheduleParams, GM_INSTRUMENT_NAMES, INSTRUMENT_PRESETS, type InstrumentPreset, KOE_BASE_URL, KOE_VOICEBANKS, KOE_VOICEBANK_LABELS, KOE_VOICEBANK_TERMS, type KoeVoiceOptions, LinkedList, type LoopConfig, type LoopPoint, type LyricSyllable, type LyricSyncData, type LyricTrack, type LyricsConductor, MAX_VOCAL_VOLUME, MMLCore, type MMLDisplayToken, type MMLNotePlacement, MML_END_MARKER, type MidiExtraction, type MidiNotePlacement, MidiSearchClient, type MidiSearchConfig, type MidiTrackAnalysis, type MmlMeta, type MmlPlayback, type MmlPlayerInstance, type MmlPlayerOptions, type ModeSwitchInstance, type ModeSwitchOptions, type MountChordPlayerOptions, type MountEditorOptions, type MountPlayerOptions, type Note, type NoteData, type NoteRemove, PITCH_MAP, PREWARM_NOTES, type ParseMMLOptions, type ParseMidiFn, type ParsedMML, type PianoRollInstance, type PianoRollOptions, type PicotuneSearchParams, type PicotuneSong, type PitchToken, type PlayChordsOptions, type PlayDrumEvent, type PlayMmlOptions, type PlayNoteEvent, type PlayNoteOptions, type PlayPlacementsOptions, type PlaySingingMmlOptions, type PlaybackCue, type PlaybackState, type PresetSelectInstance, type PresetSelectOptions, type PreviewSoundCallback, type RenderConfig, type Sequencer, type SequencerOptions, type SequencerTrack, type SingingVoices, type SingingVoicesOptions, type StreamPlaybackOptions, type StreamVoiceNote, type StreamVoiceTrack, type Synth, TRACKS_ADVANCED, TRACKS_SIMPLE, type ToolMode, type TrackConfig, VIBRATO_MIN_SEC, VOICE_IMAGES, VOICE_IMAGE_KEY, type VoiceExpression, type VoiceModel, type VoiceRegistry, analyzeMidiTracks, applyHarmonicFilter, applyMonophonic, buildChordPlacements, buildDrumPatternJson, buildNameToKeyMapping, collectPitchTokens, createAudioContext, createDtmStudio, createKlattVoice, createKoeVoice, createLyricsConductor, createPianoRoll, createSequencer, createSingingVoices, createSynth, createVoiceRegistry, decodeMml, decomposeToMonophonic, drawGrid, drawHeader, drawKeyboard, drawNotes, drawSelectedNotes, drawSelectionRect, encodeMml, exportMIDI, extractDrumPatternFromNotes, extractMidiDrumPattern, extractMidiPlacements, extractMidiPlacementsByTrack, formatMmlMeta, freqFromPitch, generateRandomPattern, getDrawOffset, getDrumPatternKeys, getGridCanvas, getGridContext, getGridPosition, getHeaderCanvas, getMidiBPM, getRenderConfig, getXY, icon, init, injectStyles, isChordHeavyTrack, isPlausibleMidiTranscription, isValidHttpUrl, koeUrl, mountChordPlayer, mountDAW, mountMmlPlayer, normalizeDrumPatterns, normalizeLyrics, onClick, panToStereo, parseCustomVocals, parseLyrics, parseMML, parseMmlMeta, playChords, playMML, playNote, playPlacements, playSingingMML, resolveDrumPattern, resolveLoopPoint, setBackgroundActive, setDrawOffset, shiftNotes, showLoadingOverlay, stripCustomVocals, stripLyrics, stripMmlMeta, transposeNotes, vocalVolumeToGain };