@onjmin/dtm
    Preparing search index...

    Type Alias StreamVoiceNote

    ストリーミング再生する歌唱ノート1つ(絶対時刻ベース)。

    type StreamVoiceNote = {
        breath?: boolean;
        breathGapSec?: number;
        continuation?: boolean;
        durationSec: number;
        fadeCurve?: FadeStop[];
        fadeIn?: boolean;
        fadeOut?: boolean;
        phraseEnd?: boolean;
        phraseStart?: boolean;
        pitch: Units;
        pitchSegments?: PitchSegment[];
        startSec: number;
        syllable: LyricSyllable;
    }
    Index

    Properties

    breath?: boolean

    このノートの直後にブレス(、)を入れる。 durationSec は既にブレスぶん切り詰めてある。

    breathGapSec?: number

    ブレスのために durationSec から実際に削った長さ(秒)。息はこの隙間を 埋めるように鳴る(短い音符では BREATH_MAX_RATIO で隙間も短くなる)。

    continuation?: boolean

    直前ノートからの継続として鳴らす(結合できなかった ー / 〜)。 発音側は先行母音を切り、立ち上がりを直前ノートへ被せて言い直し感を消す。

    durationSec: number

    ゲート適用済みの発音長(秒)。結合されている場合は結合後の全長。

    fadeCurve?: FadeStop[]

    声量の中継点列(↓ / ↑ を1音へ複数書いたとき)。buildFadeCurve 参照。 記号が1つだけ/スウェルのときは付かない(=従来どおり1音まるごと)。

    fadeIn?: boolean

    このノートを歌いながら声量を上げていく(↑)。StreamVoiceNote.fadeOut の対。

    fadeOut?: boolean

    このノートを歌いながら声量0へ落とす(↓)。継続記号で結合されたグループの どこに ↓ が付いていても、結合後の1音全体に掛かる。

    phraseEnd?: boolean

    このノートでフレーズが終わる(次が休符・語り・ブレス・行末、または旋律側の PHRASE_GAP_SEC 以上の隙間)。音源に語尾の素片があればそれで抜く。 促音(っ)の前は閉鎖であって抜けではないので立てない。↓ で消える音にも立てない。

    phraseStart?: boolean

    直前のノートとの間に PHRASE_GAP_SEC 以上の休符がある(旋律側の休符)。 歌詞に _ が無くても声は一度止まっているので、語頭("- か")として歌う。

    pitch: Units

    ピッチ。単位は units(1/372オクターブ)。koe は Hz を受けるので、 ここから直接 Hz へ変換して歌わせる(整数MIDIノートに丸めない)。 継続記号で複数ノートが結合されている場合は先頭区間のピッチ。

    pitchSegments?: PitchSegment[]

    継続記号(ー / 〜)で結合された2区間目以降のピッチ推移。 これがあるノートは「1回の合成で歌い切る長い1音」で、区間の境界では 言い直さずにピッチだけが動く。

    startSec: number

    アンカー(再生開始時刻)からの相対秒。実発音時刻 = anchorTime + startSec。

    syllable: LyricSyllable