Skip to content

オプション関係性

このドキュメントでは、MIDI SketchのSongConfigオプション間の関係性を説明します。

これらの設定が初めての方へ

ここで関係づけられるフィールド — keymoodformIdchordExt* 系 — は、コースで章ごとに順を追って紹介されます。総仕上げの概念と設定の対応が、それらを1つのルックアップ表にまとめています。

関係性の種類

オプションには以下の関係性があります:

  • 依存: 親オプションが有効でないと子オプションは無視される
  • 優先: 特殊な値(0など)が他の設定をオーバーライド
  • 干渉: 特定の組み合わせでバリデーションエラー
  • 暗黙: あるオプションを設定すると内部パラメータが自動設定される

なぜこれが重要か

これらの関係性を理解することで、予期しない動作を回避できます。例えば、arpeggioEnabled=falseの場合、arpeggioPattern=2を設定しても効果がありません。


1. 依存関係

1.1 Call System

callSetting がコール系 4 オプションを制御する 左から右への流れです。callSetting は 0 が Auto、1 が Enabled、2 が Disabled で、コールのオン・オフに解決されます。Auto のときはボーカルスタイルが判断します。コールが非アクティブな間、introChant・mixPattern・callDensity・callNotesEnabled の 4 つは設定しても効果がありません。 親オプション callSetting 0=Auto · 1=On · 2=Off 解決結果 1 = Enabled → コールあり 2 = Disabled → コールなし 0 = Auto → スタイル次第 コール非アクティブ時は無視 introChant mixPattern callDensity callNotesEnabled Auto はスタイルプリセットではなくボーカルスタイルを見ます
親オプション子オプション説明
コールがアクティブ(callSetting=1、または 0 がオンに解決)introChantイントロチャントの種類
コールがアクティブmixPatternMIXセクションの種類
コールがアクティブcallDensityコーラスでのコール密度
コールがアクティブcallNotesEnabledコールをMIDIノートとして出力

callEnabled はレガシー

SongConfig では boolean の callEnabled に代わって callSetting(0=Auto, 1=Enabled, 2=Disabled)が正となりました。0(Auto)の場合はボーカルスタイルだけがコール生成を決定します(スタイルプリセットは参照されません)。callEnabled は後方互換のために引き続き受理されます(true→1、false→2)が、新規コードでは使用しないでください。AccompanimentConfig は引き続き単純な callEnabled boolean を使います。

1.2 Arpeggio

arpeggioEnabled がアルペジオ系フィールドすべてを制御する 左のスイッチが 6 つの従属フィールドにつながります。arpeggioPattern・arpeggioSpeed・arpeggioOctaveRange・arpeggioGate・arpeggioSyncChord・arpeggioBaseVelocity で、それぞれ取りうる値の範囲を添えています。アルペジオトラックは既定でオフで、スイッチを入れるまでこの 6 つは読まれません。 スイッチ arpeggioEnabled 既定は false オンのときだけ有効 arpeggioPattern 0–7、255 で自動 arpeggioSpeed 8分・16分・3連符 arpeggioOctaveRange 1〜3 オクターブ arpeggioGate 0.0–1.0、−1 で既定値 arpeggioSyncChord コード変更に追従 arpeggioBaseVelocity 0–127、既定は 90 アルペジオは既定でオフです。オンにするまで、ここの値はどれも読まれません。
親オプション子オプション説明
arpeggioEnabled=truearpeggioPatternUp/Down/UpDown/Random/Pinwheel/PedalRoot/Alberti/BrokenChord(0-7)、または 255(デフォルト)でムード既定のパターン
arpeggioEnabled=truearpeggioSpeed8分/16分/3連符(0-2)、または 255(デフォルト)でムード既定の速度
arpeggioEnabled=truearpeggioOctaveRange1-3オクターブ
arpeggioEnabled=truearpeggioGateゲート長 0.0-1.0、または -1(デフォルト)でムードのゲート値(0.6-0.98)を使用
arpeggioEnabled=truearpeggioSyncChordコード変更と同期
arpeggioEnabled=truearpeggioBaseVelocityアルペジオノートの基準ベロシティ(0-127、デフォルト 90)

1.3 Humanization

humanize が 2 つの揺れ量を制御する 既定でオフの humanize スイッチが、2 つの量のフィールドにつながります。humanizeTiming は既定 0.4、humanizeVelocity は既定 0.3 です。右の注記のとおり、SongConfig と AccompanimentConfig はどちらもこれらを 0.0〜1.0 の float として扱います。 スイッチ humanize 既定は false humanizeTiming 0.0–1.0、既定 0.4 humanizeVelocity 0.0–1.0、既定 0.3 スケールは 1 つ SongConfig と AccompanimentConfig は どちらも 0.0–1.0 の float です。
親オプション子オプション説明
humanize=truehumanizeTimingタイミング揺れ(0.0-1.0、デフォルト 0.4)
humanize=truehumanizeVelocityベロシティ揺れ(0.0-1.0、デフォルト 0.3)

humanizeTiminghumanize=true のときに量を与えるだけです。マイクロタイミング自体は humanize に連動しません — humanize=false でも driveFeel が 50 以外ならグルーブタイミングが発生し、量は |driveFeel - 50| / 50 でスケールされます。対象はドラムとベースのみです。

1.4 Chord Extensions

コード拡張は各フラグが自分の確率を制御する 独立した 4 組を 2 行 2 列に並べています。chordExtSus は chordExtSusProb(既定 0.2)、chordExt7th は chordExt7thProb(既定 0.15)、chordExt9th は chordExt9thProb(既定 0.25)、chordExtTritoneSub は chordExtTritoneSubProb(既定 0.5)を制御します。4 組は互いに干渉せず、確率はそれぞれのフラグが true のときだけ読まれます。 有効フラグ → 確率(SongConfig 既定値) chordExtSus chordExtSusProb 0.2 chordExt7th chordExt7thProb 0.15 chordExt9th chordExt9thProb 0.25 chordExtTritoneSub chordExtTritoneSubProb 0.5 フラグは互いに独立です。確率はそれぞれのフラグが true のときだけ読まれます。
親オプション子オプション説明
chordExtSus=truechordExtSusProbSus確率(0.0-1.0、デフォルト 0.2)
chordExt7th=truechordExt7thProb7th確率(0.0-1.0、デフォルト 0.15)
chordExt9th=truechordExt9thProb9th確率(0.0-1.0、デフォルト 0.25)
chordExtTritoneSub=truechordExtTritoneSubProbトライトーン代理確率(0.0-1.0、デフォルト 0.5)

2つの設定の値域の違い

SongConfigAccompanimentConfig は、コード拡張確率と humanizeTiming / humanizeVelocity について同じ 0.0-1.0 の float と同じデフォルト値を使います。値域が異なる唯一のフィールドは arpeggioGate で、AccompanimentConfig では整数 0-100(デフォルト 80、255 = スタイル既定)、SongConfig では 0.0-1.0(または -1 でスタイル既定)です。

1.5 Modulation

転調の設定と、それが動かすボーカル上限 3 つのボックスが左から右につながります。modulationTiming を None 以外にすると modulationSemitones が効くようになり、1〜4 半音を受け付けます。その半音数は内部でボーカルの上限から引かれ、転調後もメロディが音域に収まります。音域が 1 オクターブ未満になることはありません。 modulationTiming None 以外 modulationSemitones 1〜4 半音 内部処理 effective_vocal_high = vocal_high − n 1 オクターブ未満にはしません 半音数が検証されるのはタイミングを指定したときだけで、BGM 系のスタイルでも転調は効きます。
親オプション子オプション説明
modulationTiming != NonemodulationSemitones転調量(1-4半音)
modulationSemitones > 0(内部) effective_vocal_high転調後も音域内に収まるよう自動調整

注意:

  • modulationTiming=Noneの場合、modulationSemitonesはバリデーションされない
  • ボーカル音域の自動調整: 上限はまず Blueprint の max_pitch 制約でクランプされ、次に確定した転調量ぶん下げられ、最後に vocalLow + 12 を下限として保たれます(音域が1オクターブを下回らないように)
  • 全CompositionStyleで有効: BGMモード(BackgroundMotif, SynthDriven)でも転調が機能する

1.6 Vocal (skipVocalによる排他)

skipVocal はボーカル系オプション全体を切り替える skipVocal から 2 つの分岐が出ます。false のときは 7 つのボーカル系フィールドが有効です。vocalLow と vocalHigh の組、vocalAttitude、vocalStyle、melodyTemplate、melodicComplexity、hookIntensity、vocalGroove です。true のときはそのすべてが無視されて BGM だけになり、後からボーカルを足す API はありません。 スイッチ skipVocal skipVocal = false — ボーカル系は有効 vocalLow / vocalHigh vocalAttitude vocalStyle melodyTemplate melodicComplexity hookIntensity vocalGroove skipVocal = true 上のフィールドはすべて無視され、BGM のみ。後からボーカルを足す API はありません。
条件有効なオプション用途
skipVocal=falseすべてのvocal関連オプション通常の楽曲生成
skipVocal=trueボーカル生成をスキップ。既にボーカルがあればそれを保持し、他のトラックがそれに追従するボーカル先行ワークフローgenerateAccompaniment() が内部で設定する値です。ボーカルを一切持たない BGM には compositionStyle=1 または 2compositionStyleExplicit=true を設定してください。

skipVocal が制御するのはVocalトラックだけです。Auxはスキップされず、compositionStyle=SynthDriven の場合だけスタイルによって無効になります。

ボーカルの復元不可

BGM専用生成後にボーカルを追加するAPIは存在しません。ボーカルが必要な場合は、compositionStyle=MelodyLeadまたはVocal-Firstワークフローを使用してください(JavaScript API参照)。

1.7 シンコペーション

enableSyncopation は 3 つの設定を束ねるマスタースイッチ enableSyncopation から 2 つの分岐が出ます。true のときは syncopation_prob と allow_bar_crossing が指定どおりに残り、グルーブのシンコペーション重み付けも効きます。false のときは syncopation_prob が 0.0 に、allow_bar_crossing が false に強制され、Syncopated グルーブを選んでも効きません。タイミングオフセットはどちらでも適用されます。 マスタースイッチ enableSyncopation true — シンコペーションは有効 syncopation_prob allow_bar_crossing グルーブの重み付け false — ゼロに固定 syncopation_prob = 0.0 allow_bar_crossing = false Syncopated でも効かない OffBeat の +30 ticks のようなタイミングオフセットは常に適用され、止まるのは重み付けだけです。
親オプション子オプション説明
enableSyncopation=truevocalGrooveのシンコペーション効果falseの場合、Syncopatedグルーブでもシンコペーション重み0.0
enableSyncopation=falsesyncopation_prob=0.0シンコペーション確率がゼロに強制
enableSyncopation=falseallow_bar_crossing=false小節線跨ぎが強制無効

注意: タイミングオフセット(OffBeatの+60 ticks等)はenableSyncopationに関係なく適用されます。シンコペーション固有の重み付けのみが影響を受けます。

1.8 明示フラグ

親オプション子オプション説明
moodExplicit=truemood (0-23)moodフィールドが直接使用される。falseの場合はstylePresetIdから自動導出
formExplicit=trueformIdformIdが指定通りに使用される。falseの場合はBlueprint/ランダム化により上書きされる可能性あり
chordExtProbExplicit=trueコード拡張確率Moodに基づくコード拡張確率の自動調整が抑制される
drumsEnabledExplicit=truedrumsEnabled明示的なドラム制御。drums_required Blueprintでドラムを無効化するために必要

1.9 Blueprint ID 9 (BehavioralLoop)

Blueprint 9 は中毒性モードと 2 つの強制設定を有効にする 左から右への流れです。blueprintId に 9(BehavioralLoop)を選ぶと内部の addictive_mode が立ち、HookIntensity が Maximum(内部レベル 4)に、RiffPolicy が LockedPitch に強制されてリフがそのまま繰り返されます。BehavioralLoop の選択ウェイトは 0% なので、ランダム選択で選ばれることはありません。 blueprintId = 9 BehavioralLoop addictive_mode = true 内部で設定 HookIntensity = Maximum 内部レベル 4 RiffPolicy = LockedPitch リフをそのまま繰り返す BehavioralLoop の選択ウェイトは 0% で、ランダム選択で選ばれることはありません。
親オプション子オプション説明
blueprintId=9addictive_mode=true内部の中毒性モードが有効化
addictive_mode=trueHookIntensity=Maximumフック強度が最大(内部レベル4)に強制
addictive_mode=trueRiffPolicy=LockedPitchリフポリシーがLockedPitchに強制

2. CompositionStyleによる分岐

compositionStyleの値によって、生成されるトラックと有効なオプションが変わります:

2.1 MelodyLead (0) - デフォルト

MelodyLead — 有効なオプションと生成されるトラック compositionStyle は 0、既定値です。ボーカル系はすべて有効、アルペジオはオンにすれば有効、転調も有効です。モチーフ系は Blueprint がモチーフを求めない限り効きません。トラックはボーカル・Aux・モチーフ・ベース・コード・ギター・アルペジオ・ドラム・SE の順に 9 本書かれ、モチーフとアルペジオは条件付きです。 compositionStyle = 0 MelodyLead — 既定 オプション系統 ボーカル系 — すべて有効 アルペジオ — オンなら有効 転調 — 有効 モチーフ系は、Blueprint がモチーフを求めない限り効きません 生成トラック(順番) ティール = 条件付きスロット 1 · ボーカル 2 · Aux 3 · モチーフ 4 · ベース 5 · コード 6 · ギター 7 · アルペジオ 8 · ドラム 9 · SE ボーカルトラックを書くコンポジションスタイルは MelodyLead だけです。

生成トラック: Vocal → Aux → Motif(生成が要求されたときのみ、§17.5 参照)→ Bass → Chord → Guitar → Arpeggio (有効時) → Drums → SE

モチーフにゲートがかかるのは MelodyLead だけです。モチーフ系フィールドは、モチーフトラックが実際に生成される場合にのみ読まれます。

2.2 BackgroundMotif (1) - BGM専用モード

BackgroundMotif — モチーフを中心に据えた BGM 専用スタイル compositionStyle は 1 です。ボーカルトラックは一切書かれず、Aux トラックはオンでモチーフを支え、転調は有効です。motifRepeatScope・motifFixedProgression・motifMaxChordCount といったモチーフ系がここで有効になります。生成されるのは Aux・モチーフ・ベース・コード・ギター・ドラムで、arpeggioEnabled が true のときだけアルペジオが加わります。 compositionStyle = 1 BackgroundMotif — BGM 専用 オプション系統 ボーカルトラックなし Aux — オン、モチーフを支える 転調 — 有効 モチーフ系 — ここでは有効 motifRepeatScope motifFixedProgression motifMaxChordCount 生成トラック ティール = arpeggioEnabled が true のときだけ Aux モチーフ ベース コード ギター ドラム アルペジオ ここではモチーフが主旋律を担うので、モチーフ系が効き、ボーカル系は効きません。

このスタイルで有効になるトラック:

arpeggioEnabled有効になるトラック
falseAux + Motif + Bass + Chord + Guitar + Drums
trueAux + Motif + Bass + Chord + Guitar + Drums + Arpeggio

BackgroundMotifはMotif生成を有効にします。セクションマスクとレイヤースケジュールによってMotifノートが残るセクションが決まります。

2.3 SynthDriven (2) - BGM専用モード

SynthDriven — アルペジオを中心に据えた BGM 専用スタイル compositionStyle は 2 です。ボーカルトラックも Aux トラックも書かれず、転調は有効です。モチーフは常に書かれます。アルペジオは既定でオフなので手動で有効にする必要があり、有効にすると主役になります。生成されるのはモチーフ・ベース・コード・ギター・アルペジオ・ドラムです。 compositionStyle = 2 SynthDriven — BGM 専用 オプション系統 ボーカルトラックなし Aux トラックなし 転調 — 有効 モチーフ — 常に生成 アルペジオ — 既定はオフ アルペジオが主役 生成トラック ティール = 条件付きスロット モチーフ ベース コード ギター アルペジオ ドラム 条件付きなのはアルペジオだけで、SynthDriven ではモチーフは無条件に生成されます。

このスタイルで有効になるトラック: Motif + Bass + Chord + Guitar + Arpeggio (有効時) + Drums。SynthDrivenはMotif生成を有効にし、セクションマスクとレイヤースケジュールによってMotifノートが残るセクションが決まります。

CompositionStyleの選び方

  • MelodyLead: ボーカル付きの楽曲(ポップ、ロック、バラード)
  • BackgroundMotif: 繰り返しメロディパターンのインストBGM(ゲーム音楽、アンビエント)
  • SynthDriven: エレクトロニック/シンセ主体のインストトラック

3. 優先順位(特殊値によるオーバーライド)

オプション特殊値動作
bpm0スタイルプリセットのデフォルトBPMを使用
seed0ランダムシードを自動生成
targetDurationSeconds0formIdで指定した構造パターンを使用
vocalStyle0 (Auto)スタイルに応じたランダム選択
melodyTemplate0 (Auto)スタイルに応じたデフォルト選択
arpeggioPattern255 (Auto)ムード既定のパターンを使用
arpeggioSpeed255 (Auto)ムード既定の速度を使用
arpeggioGate-1ムード既定のゲート値(0.6-0.98)を使用
driveFeel50ニュートラル(0=レイドバック、100=アグレッシブ)
moraRhythmMode2 (Auto)VocalStylePresetから自動選択
syllabicSubRate0スタイル既定値を使用。1100 はスタイル比率を上書き(%)

driveFeelの詳細

効果
0レイドバック:タイミング遅延、ベロシティ低下
50ニュートラル:標準的なタイミング(デフォルト)
100アグレッシブ:タイミング先行、ベロシティ上昇、シンコペーション強化(enableSyncopation=true時のみ)

energyCurveの値

名前効果
0GradualBuild徐々に盛り上がる(デフォルト)
1FrontLoaded冒頭からエネルギー高、後半は落ち着く
2WavePattern波状のエネルギー推移
3SteadyState一定のエネルギーを維持

ゼロ値の活用

ゼロは「自動」または「デフォルトを使用」を意味することが多いです。正確な値を指定せずにスタイルに適したデフォルトを使いたい場合に便利です。

フローチャート

ゼロが「おまかせ」を意味する 2 つのフィールド 独立した 2 つの分岐を左右に並べています。bpm が 0 のときはスタイルプリセットの既定テンポにフォールバックし、それ以外は 40〜240 の範囲でそのまま使われます。targetDurationSeconds が 0 のときは formId が指す構造パターンを使い、正の値ならその長さに合わせて構成を組み立てます。小節数は秒数 × BPM ÷ 240 から求めます。 bpm テンポは指定されている? bpm = 0 stylePreset.tempo_default bpm > 0 そのまま使用、40–240 0 は「自動」の意味です targetDurationSeconds 長さを指定している? 値 = 0 formId の構造パターン 値 > 0 その長さに合わせて構成 bars = ceil(seconds × bpm ÷ 240)

4. メロディオーバーライド

メロディオーバーライドは、VocalStylePresetとMelodicComplexityの処理に適用されます。センチネル値(パラメータに応じて0、0xFF、-128)は「プリセットデフォルトを使用」を意味します。

4.1 メロディオーバーライドパラメータ

パラメータ範囲デフォルト説明
melodyMaxLeap0=preset, 1-120最大音程跳躍(半音数)
melodySyncopationProb0-100, 0xFF=preset0xFFシンコペーション確率(%)
melodyPhraseLength0=preset, 1-80フレーズ長(小節数)
melodyLongNoteRatio0-100, 0xFF=preset0xFFロングノート比率(%)
melodyChorusRegisterShift-12〜+12, -128=preset-128コーラスのレジスタシフト(半音)
melodyHookRepetition0=preset, 1=off, 2=on0フックの反復パターン
melodyUseLeadingTone0=preset, 1=off, 2=on0セクション境界での導音挿入

4.2 三値パラメータ

melodyHookRepetitionmelodyUseLeadingToneは三値設計です:

意味
0プリセット/VocalStylePresetの値を使用(デフォルト)
1明示的にOFF
2明示的にON

4.3 プリセット制御のみのパラメータ(オーバーライドなし)

以下はVocalStylePresetのみで制御され、SongConfigオーバーライドは提供されません:

  • chorus_long_tones: サビでの音符延長(Idol/Rock/Anime等で有効)
  • allow_bar_crossing: 小節線を跨ぐ音符の許可(Vocaloid/Rock/Anime等で有効)
  • allow_unison_repeat: 連続同音の許可(デフォルトtrue)

5. モチーフオーバーライド

モチーフオーバーライドは、BackgroundMotifとSynthDriven、およびBlueprintベースのMelodyLeadモチーフセクションでのメロディモチーフ生成パラメータを制御します。

5.1 モチーフオーバーライドパラメータ

パラメータ範囲デフォルト説明
motifLength0=auto, 1/2/40モチーフ長(小節単位)
motifNoteCount0=auto, 3-80モチーフ内の音数
motifMotion0xFF=preset, 0-50xFF音の動き
motifRegisterHigh0=auto, 1=low, 2=high0音域(0=中音域)
motifRhythmDensity0xFF=preset, 0-20xFFリズム密度
motifMaxChordCount0=制限なし, 2-84モチーフセクションが巡回する和音数の上限

5.2 MotifMotionの値

名前説明
0Stepwiseスケールステップのみ(2度)
1GentleLeap3度まで
2WideLeap5度まで
3NarrowStep狭いスケール度(ジャジー)
4Disjunct不規則な跳躍(実験的)
5Ostinato全音をルートのピッチクラスに置き、ルート/5度で変化

Ostinatoモーション

motifMotion=5(Ostinato)はモチーフの全音をルートのピッチクラスに置き、ルート/5度で変化させます。中毒ループ系のブループリントが使うモーションですが、APIからも指定できます。バリデータは0-5または0xFF(プリセット)を受理し、それ以外の5を超える値は INVALID_MOTIF_OVERRIDE エラーで拒否します。クランプは行いません。意図的に単調なリフになります。

5.3 MotifRhythmDensityの値

名前説明
0Sparse低密度パターン
1Medium標準密度
2Driving高密度パターン

6. バリデーション干渉

6.1 パラメータ有効範囲一覧

パラメータ有効範囲エラーコード
stylePresetId0-16INVALID_STYLE
key0-11INVALID_KEY
bpm0, 40-240INVALID_BPM
chordProgressionId0-21INVALID_CHORD
formId0-17INVALID_FORM
vocalAttitudeスタイル依存(allowedAttitudesビットマスク)INVALID_ATTITUDE
vocalLow, vocalHigh36-96, low ≤ highINVALID_VOCAL_RANGE
compositionStyle0-2INVALID_COMPOSITION_STYLE
vocalStyle0-13INVALID_VOCAL_STYLE
melodyTemplate0-7INVALID_MELODY_TEMPLATE
melodicComplexity0-2INVALID_MELODIC_COMPLEXITY
hookIntensity0-4INVALID_HOOK_INTENSITY
vocalGroove0-5INVALID_VOCAL_GROOVE
modulationTiming0-4INVALID_MODULATION_TIMING
modulationSemitones1-4 (timing≠0時)INVALID_MODULATION
arpeggioPattern0-7, 255INVALID_ARPEGGIO_PATTERN
arpeggioSpeed0-2, 255INVALID_ARPEGGIO_SPEED
callDensity0-3INVALID_CALL_DENSITY
introChant0-2INVALID_INTRO_CHANT
mixPattern0-2INVALID_MIX_PATTERN
motifRepeatScope0-1INVALID_MOTIF_REPEAT_SCOPE
arrangementGrowth0-1INVALID_ARRANGEMENT_GROWTH
blueprintId0-9, 255(255=自動ランダム)

6.2 追加でバリデーションされる範囲

上の表には載っていませんが、以下も同様にバリデーションされます:

パラメータ有効範囲エラーコード
energyCurve0-3INVALID_ENERGY_CURVE
driveFeel0-100INVALID_DRIVE_FEEL
moraRhythmMode0-2INVALID_MORA_RHYTHM_MODE
syllabicSubRate0(スタイル既定)、1-100(%上書き)INVALID_MELODY_OVERRIDE
callSetting0-2INVALID_CALL_SETTING
humanizeTiming, humanizeVelocity0.0-1.0INVALID_PROBABILITY
chordExt*Prob0.0-1.0INVALID_PROBABILITY
arpeggioOctaveRange1-3INVALID_ARPEGGIO_RANGE
arpeggioGate0.0-1.0、または -1 でスタイル既定INVALID_ARPEGGIO_RANGE
arpeggioBaseVelocity0-127INVALID_ARPEGGIO_RANGE
melodyMaxLeap0=preset, 1-12INVALID_MELODY_OVERRIDE
melodySyncopationProb0-100, 0xFF=presetINVALID_MELODY_OVERRIDE
melodyPhraseLength0=preset, 1-8INVALID_MELODY_OVERRIDE
melodyLongNoteRatio0-100, 0xFF=presetINVALID_MELODY_OVERRIDE
melodyChorusRegisterShift-12〜+12, -128=presetINVALID_MELODY_OVERRIDE
melodyHookRepetition, melodyUseLeadingTone0-2INVALID_MELODY_OVERRIDE
motifLength0, 1, 2, 4(小節単位)INVALID_MOTIF_OVERRIDE
motifNoteCount0=auto, 3-8INVALID_MOTIF_OVERRIDE
motifMotion0-5, 0xFF=presetINVALID_MOTIF_OVERRIDE
motifRegisterHigh0-2INVALID_MOTIF_OVERRIDE
motifRhythmDensity0-2, 0xFF=presetINVALID_MOTIF_OVERRIDE
motifMaxChordCount0=制限なし, 2-8INVALID_MOTIF_OVERRIDE

範囲外の値はクランプされず、エラーになります。ここでの boolean は enableSyncopation のみで、範囲チェックは不要です。

6.3 スタイル x vocalAttitude の組み合わせ

各スタイルプリセットにはallowedAttitudesビットフラグがあり、許可されていないAttitudeを指定するとエラー:

typescript
// 例: スタイルがCleanとExpressiveのみ許可
allowedAttitudes = ATTITUDE_CLEAN | ATTITUDE_EXPRESSIVE  // 0b011 = 3

vocalAttitude = 2 (Raw) → INVALID_ATTITUDE エラー

許可Attitudeは midisketch_style_preset_allowed_attitudes(styleId) で取得可能。

6.4 modulationTiming x modulationSemitones の依存関係

modulationTimingmodulationSemitones結果
0 (None)任意(無視される)OK
1-40INVALID_MODULATION
1-41-4OK
1-45以上INVALID_MODULATION

6.5 コール x targetDurationSeconds x bpm の干渉

IF callSetting != 2(Disabled)AND targetDurationSeconds > 0
THEN targetDurationSeconds >= getMinimumSecondsForCall(introChant, mixPattern, bpm)

このチェックは Auto を解決しません — callSetting=0 は、実際にはコールが生成されないボーカルスタイルでも最小秒数の制約を発動させます。

最小時間の計算式:

min_bars = 24 + introChant_bars + mixPattern_bars
min_seconds = min_bars * 240 / bpm
bpm基本最小秒数(call有効時)introChant/mixPattern追加時
40144秒さらに増加
6096秒さらに増加
12048秒さらに増加
24024秒さらに増加

対処法: targetDurationSeconds=0(自動)を使用してシステムに適切な長さを決定させる。

6.6 危険な組み合わせ

これらの組み合わせは避けてください

以下の組み合わせはバリデーションエラーまたは予期しない動作を引き起こします。生成前にパラメータを確認してください。

パターン原因対処法
modulationTiming≠0 + modulationSemitones=0転調有効だが量が無効modulationSemitones=2に設定
callSetting=1 + targetDurationSeconds=30 + bpm=40時間不足targetDurationSeconds=0に設定
vocalLow=80 + vocalHigh=60範囲反転low ≤ highにする
vocalLow=30 または vocalHigh=100範囲外36-96の範囲内にする
bpm=300BPM範囲外40-240の範囲内にする
blueprintId=1,5,7 + drumsEnabled=falsedrumsEnabledExplicit=trueなし)drums_required Blueprintがドラムを強制有効化drumsEnabledExplicit: trueを設定して明示的に無効化
enableSyncopation=false + 高いvocalGrooveシンコペーション効果がサイレントに無効化enableSyncopation: trueを設定
Blueprint mood_maskの不一致MoodがBlueprintと非互換isMoodCompatible(blueprintId, mood)で互換性を確認

7. ギタートラック

guitarEnabledはギタートラックの生成を制御します。

プロパティ
デフォルト(SongConfig、JS/C++共通)true
デフォルト(AccompanimentConfigtrue

ギターはデフォルトで有効

ギタートラックはデフォルトで生成されます。無効にするには guitarEnabled: false を設定してください。Blueprintがギターをボーカル音域より下に保つかどうかは、Blueprintの guitar_below_vocal 制約で制御されます。


8. トライトーン代理

chordExtTritoneSubchordExtTritoneSubProbは、V7からbII7へのトライトーン代理を有効化します。

プロパティ説明
chordExtTritoneSubトライトーン代理の有効/無効(デフォルト false
chordExtTritoneSubProbトライトーン代理の確率(SongConfigAccompanimentConfig ともに 0.0-1.0、デフォルト 0.5)

利用可能範囲

トライトーン代理は JS SongConfig(全曲生成)と AccompanimentConfig(伴奏再生成)の両方、および C++ の chord_extension 構造体で利用できます。音楽的な背景はハーモニーを参照してください。


9. Mood依存のコード拡張確率

chordExtProbExplicit=false(デフォルト)の場合、Moodに応じてコード拡張確率が自動調整されます:

Mood7th確率9th確率sus確率
CityPop0.400.25-
RnBNeoSoul0.500.35-
Ballad/Sentimental0.30-0.25
Nostalgic/Chill0.25--
Lofi0.400.30-

chordExtProbExplicit=trueを設定すると、この自動調整が抑制され、明示的に指定した確率値が使用されます。


10. drumsEnabledExplicitの動作

drumsEnabledExplicitフラグは、drums_required Blueprintに対してdrumsEnabled設定を尊重するかどうかを制御します。

drumsEnabledExplicitdrumsEnabledBlueprint drums_required結果
false(デフォルト)falsetrue(ID 1,5,7)ドラム強制有効
false(デフォルト)true任意ドラム有効
truefalsetrue(ID 1,5,7)ドラム無効(明示的オーバーライドが尊重)
truefalsefalseドラム無効

ドラム必須Blueprint

drumsEnabledExplicit=trueなしでは、drums_required=trueのBlueprint(ID 1, 5, 7)はdrumsEnabled設定に関係なくドラムを強制有効化します。実行時の確認には getBlueprintDrumsRequired(id) を使用してください。


11. 推奨組み合わせパターン

11.1 シンプルなポップ(デフォルト)

javascript
{
  stylePresetId: 0,
  compositionStyle: 0,  // MelodyLead
  drumsEnabled: true,
  arpeggioEnabled: false,
  callSetting: 2        // Disabled
}

11.2 ボーカロイド風

javascript
{
  stylePresetId: 14,  // Anime Opening
  compositionStyle: 0,
  vocalStyle: 2,      // Vocaloid - 高密度・広跳躍
  arpeggioEnabled: true,
  arpeggioSpeed: 1    // 16分
}

11.3 アイドル曲(コールあり)

javascript
{
  stylePresetId: 3,   // Idol Standard
  vocalStyle: 4,      // Idol
  callSetting: 1,     // Enabled
  introChant: 1,      // ガチ恋
  mixPattern: 2,      // タイガー
  callDensity: 2,     // Standard
  callNotesEnabled: true,
  targetDurationSeconds: 180  // 3分以上必要
}

11.4 BGMモード(Motif + Arpeggio)

javascript
{
  compositionStyle: 1,  // BackgroundMotif (BGM専用)
  compositionStyleExplicit: true,
  // skipVocalの指定は不要(BackgroundMotifでは自動的にVocal無効)

  // Motif設定
  motifMaxChordCount: 4,

  // Arpeggio設定(BackgroundMotifでも使用可能)
  arpeggioEnabled: true,      // → Motif + Arpeggio 両方生成
  arpeggioPattern: 2,         // UpDown
  arpeggioSpeed: 1,           // 16分
  arpeggioOctaveRange: 2,
  arpeggioGate: 0.8,        // SongConfigのゲート(0.0-1.0)

  // 転調設定(BGMモードでも有効)
  modulationTiming: 1,        // LastChorus
  modulationSemitones: 2      // +2半音
}
// 出力: Aux + Motif + Bass + Chord + Drums + Arpeggio(最後のサビで+2半音転調)
// Motifノートの配置はセクションマスクとレイヤースケジュールに従います。

11.5 BGMモード(Arpeggio中心)

javascript
{
  compositionStyle: 2,  // SynthDriven (BGM専用)
  compositionStyleExplicit: true,
  arpeggioEnabled: true,      // 手動で有効化が必要(自動有効ではない)
  arpeggioPattern: 0,         // Up
  arpeggioSpeed: 2,           // 3連符
  arpeggioOctaveRange: 3,

  // 転調設定(BGMモードでも有効)
  modulationTiming: 2,        // AfterBridge
  modulationSemitones: 3      // +3半音
}
// 出力: Motif + Bass + Chord + Drums + Arpeggio(Vocal/Auxなし、ブリッジ後に+3半音転調)
// Motifノートの配置はセクションマスクとレイヤースケジュールに従います。

11.6 シンコペーテッドフィール

javascript
{
  enableSyncopation: true,
  vocalGroove: 3  // Syncopated
}
// vocalGroove=3のシンコペーション効果がenableSyncopation=trueで有効になる

11.7 ドライビング16th

javascript
{
  enableSyncopation: true,
  vocalGroove: 4,   // Driving16th
  driveFeel: 80     // アグレッシブなドライブ
}
// 16分音符強調 + 高driveFeelでアグレッシブなシンコペーション

11.8 メロディ制御

javascript
{
  melodyMaxLeap: 5,
  melodyPhraseLength: 4,
  melodyLongNoteRatio: 60,
  melodyHookRepetition: 2  // 明示的にON
}
// 跳躍小さめ、4小節フレーズ、ロングノート60%、フック反復ON

11.9 R&Bスタイル

javascript
{
  moodExplicit: true,
  mood: 20,           // RnBNeoSoul
  chordExt7th: true,
  chordExt9th: true
}
// 強スウィング、拡張コード、85-100 BPM

11.10 ギター + ローファイ

javascript
{
  guitarEnabled: true,
  moodExplicit: true,
  mood: 23,            // Lofi
  compositionStyle: 1,  // BackgroundMotif
  compositionStyleExplicit: true
}
// 80 BPM、強スウィング、ベロシティ上限90、ギタートラック有効

12. 暗黙的な内部設定

特定のパラメータを設定すると、内部で他のパラメータが自動的に設定されます。

12.1 VocalStylePreset → メロディパラメータ

vocalStyleを設定すると、内部のメロディ生成パラメータが自動設定されます:

パラメータ説明
max_leap_interval最大跳躍幅(半音数)
syncopation_probシンコペーション確率
verse/chorus_density_modifierセクション別密度係数
hook_repetitionフック反復の有無
chorus_long_tonesコーラスでの長音符
tension_usageテンション使用率

VocalStylePreset一覧 (0-13):

ID名前特徴
0Autoスタイルに応じてランダム選択
1Standard標準的なポップス
2Vocaloid高密度・広跳躍・シンコペーション(歌唱可能)
3UltraVocaloid超高速・極端な跳躍(機械向け)
4Idolキャッチー・フック重視
5Balladゆったり・長音符重視
6Rockパワフル・コーラス強調
7CityPopおしゃれ・テンション使用
8Animeドラマチック・フック強め
9BrightKira明るい・キラキラ
10CoolSynthクール・16分音符多め
11CuteAffectedかわいい・控えめシンコペ
12PowerfulShout力強い・長音符+密度上昇
13KPopK-POP スタイル、シンコペーション重視、フック駆動

12.2 MelodicComplexity → 複数パラメータ

melodicComplexity自動設定
Simple (0)note_density *= 0.7, max_leap_interval ≤ 5, hook_repetition=true, tension_usage *= 0.5, sixteenth_note_ratio *= 0.5, syncopation_prob *= 0.5
Standard (1)変更なし(デフォルト)
Complex (2)note_density *= 1.3, max_leap_interval *= 1.5 (max 12), tension_usage *= 1.5, sixteenth_note_ratio *= 1.5 (max 0.5), syncopation_prob *= 1.5 (max 0.5)

12.3 VocalAttitude → ピッチ選択

vocalAttitudeピッチ候補音楽的特徴
Clean (0)コードトーン(1, 3, 5)のみ安全・協和的・安定
Expressive (1)コードトーン + テンション(7th, 9th)カラフル・遅延解決
Raw (2)全スケールトーンエッジー・ノンコードトーン着地

12.4 CompositionStyle → 暗黙的動作

compositionStyle暗黙的に発生する動作
BackgroundMotif (1)Vocal無効化(生成されない)、Aux有効(モチーフをサポート)、Motif生成を有効化、modulation有効。セクションマスクとレイヤースケジュールで生成ノートを決定
SynthDriven (2)Vocal/Aux完全無効化、Motif生成を有効化、arpeggioは手動でarpeggioEnabled=trueが必要modulation有効。セクションマスクとレイヤースケジュールで生成ノートを決定

12.5 自動Call有効化

callSetting=0(Auto)の場合、特定のボーカルスタイルで自動的にコールが有効化されます:

vocalStyle名前自動Call
4Idolあり
9BrightKiraあり
11CuteAffectedあり

他のボーカルスタイルでは自動Call有効化は行われません。

javascript
// 例: SynthDrivenではアルペジオの手動有効化が必要
{
  compositionStyle: 2,  // SynthDriven (BGM専用)
  compositionStyleExplicit: true,
  arpeggioEnabled: true,   // 手動で有効化が必要
  modulationTiming: 1,     // BGMモードでも有効
  modulationSemitones: 2
  // 注: Vocal/Auxトラックはこのモードでは生成されない
}

12.6 VocalGrooveFeel → タイミング調整

vocalGroove効果
Straight (0)変更なし
OffBeat (1)オンビートの音を60ティック(1拍の1/8)後ろへ
Swing (2)各拍の裏8分を60ティック遅らせる
Syncopated (3)2・4拍目付近の音を60ティック先取り
Driving16th (4)16分音符のオンセットを30ティック前へ
Bouncy8th (5)裏8分を40ティック遅らせ、表8分を短くする

シンコペーション依存: enableSyncopation=falseの場合、全グルーブフィールでシンコペーション重みは0.0、さらにsyncopation_prob=0.0 / allow_bar_crossing=falseが強制されます。タイミングオフセットはenableSyncopationに関係なく適用されます。

12.7 hookIntensity → フレーズ生成変更

hookIntensityduration乗数velocity加算対象セクション
Off (0)--なし
Light (1)×1.3+5Chorus, B
Normal (2)×1.5+10Chorus, B
Strong (3)×2.0+15全セクション

Maximum (4) は Behavioral Loop 用

hookIntensity=4(Maximum)はBehavioralLoopモード向けで、blueprintId=9またはaddictiveMode=trueの場合に自動設定されます。明示的に指定してもバリデーションは通りますが、シンプルなパターンの最大反復が強制されるため、通常の楽曲では0-3を使用してください。


13. パラメータ適用順序

パラメータは以下の順序で適用されます。後のステージが前のステージをオーバーライドします:

1. StylePreset          → 基本パラメータ(melody_params、mood、bpmデフォルト)
2. VocalStylePreset     → max_leap、syncopation、densityのプリセット調整
3. MelodicComplexity    → 密度倍率、跳躍倍率、hook_repetition
4. SongConfig Overrides → melody/motifオーバーライドパラメータ(ユーザー指定値が最優先)
5. Master Switch        → enableSyncopation=falseでsyncopation_prob=0.0を強制

構造構築の優先順位

構造は最初にマッチするルールで決定されます:

1. targetDurationSeconds > 0  → 時間ベースの自動構築
2. formExplicit = true        → formId厳密使用(Blueprint section_flow無視)
3. Blueprint section_flow存在 → Blueprint定義のセクション構成
4. デフォルト                  → StructurePatternから構築

14. オプション依存関係ツリー

SongConfig
├── Basic Settings
│   ├── stylePresetId     ─────┐
│   ├── key                    │ スタイルが他オプションの
│   ├── bpm (0=default)        │ デフォルト値を決定
│   └── seed (0=random)        │
│                              ▼
├── Structure ◄────────────────┤
│   ├── formId                 │
│   ├── formExplicit ──────────┴─▶ true=formIdを厳密に使用
│   └── targetDurationSeconds ───▶ formIdと排他(0以外なら自動生成)

├── Mood
│   ├── moodExplicit ─────────────▶ true=moodフィールドを使用
│   └── mood (0-23) ─────────────▶ moodExplicit=falseなら無視

├── Vocal (skipVocal=falseの場合のみ)
│   ├── vocalAttitude  ◄────────── styleで制限あり
│   ├── vocalStyle     ◄────────── 0=Auto, 1-13=明示的プリセット
│   ├── vocalLow/High
│   ├── melodicComplexity
│   ├── hookIntensity
│   ├── vocalGroove    ◄────────── シンコペーション効果にはenableSyncopation=trueが必要
│   └── メロディオーバーライド
│       ├── melodyMaxLeap
│       ├── melodySyncopationProb
│       ├── melodyPhraseLength
│       ├── melodyLongNoteRatio
│       ├── melodyChorusRegisterShift
│       ├── melodyHookRepetition
│       └── melodyUseLeadingTone

├── Arpeggio (arpeggioEnabled=trueの場合のみ)
│   ├── arpeggioPattern
│   ├── arpeggioSpeed
│   ├── arpeggioOctaveRange
│   ├── arpeggioGate
│   └── arpeggioSyncChord

├── Call System (コールがアクティブな場合のみ: callSetting=1、または0がオンに解決)
│   ├── introChant
│   ├── mixPattern  ─────────────▶ targetDurationSecondsと干渉
│   ├── callDensity
│   └── callNotesEnabled

├── Chord Extensions (各enabledがtrueの場合のみprob有効)
│   ├── chordExtSus  → chordExtSusProb
│   ├── chordExt7th  → chordExt7thProb
│   ├── chordExt9th  → chordExt9thProb
│   └── chordExtProbExplicit ────▶ true=Mood基づく自動調整を抑制

├── Modulation (modulationTiming!=Noneの場合のみ)
│   └── modulationSemitones

├── Humanize (humanize=trueの場合のみ)
│   ├── humanizeTiming
│   └── humanizeVelocity

├── トラック切り替え
│   ├── drumsEnabled
│   ├── drumsEnabledExplicit ────▶ true=drums_required BlueprintでもdrumsEnabled設定を尊重
│   └── guitarEnabled ───────────▶ デフォルト=true(無効化はfalseを指定)

├── マスタースイッチ
│   ├── enableSyncopation ───────▶ false=シンコペーション重み0.0
│   ├── energyCurve ─────────────▶ 0-3 エネルギー推移
│   └── driveFeel ───────────────▶ 0-100 タイミング/ベロシティフィール

├── モチーフオーバーライド (BackgroundMotif / SynthDriven / Blueprintモチーフセクション)
│   ├── motifLength
│   ├── motifNoteCount
│   ├── motifMotion
│   ├── motifRegisterHigh
│   └── motifRhythmDensity

└── CompositionStyle依存
    ├── compositionStyle=0 (MelodyLead): Vocal/Aux有効・標準
    ├── compositionStyle=1 (BackgroundMotif): BGM専用(Vocal無効、Aux有効)
    │   ├── motifRepeatScope
    │   └── motifMaxChordCount
    └── compositionStyle=2 (SynthDriven): BGM専用(Vocal/Aux無効、arpeggioは手動有効化が必要)

15. ワークフロー別のオプション使用

15.1 generateVocal(config) で使用されるパラメータ

カテゴリパラメータ使用説明
基本stylePresetIdはいスタイル決定
keyはいキー(内部はCメジャー、出力時に移調)
bpmはいテンポ(0=スタイルデフォルト)
seedはいランダムシード
chordProgressionIdはいコード進行(メロディ生成の参照)
formIdはい構造パターン
ボーカルvocalLowはい音域下限
vocalHighはい音域上限
vocalAttitudeはい表現スタイル
vocalStyleはいボーカルスタイルプリセット
melodicComplexityはいメロディの複雑さ
hookIntensityはいフック強度
vocalGrooveはいグルーブ感
無視drumsEnabledいいえVocalのみ生成
arpeggioEnabledいいえVocalのみ生成
humanizeいいえ伴奏追加時に適用

15.2 generateAccompaniment(config?) で使用されるパラメータ

カテゴリパラメータ使用説明
トラックdrumsEnabledはいドラム生成
arpeggioEnabledはいアルペジオ生成
guitarEnabledはいギター生成
arpeggio.*はいアルペジオ設定
chordExt*はいコード拡張設定
chordExtTritoneSubはいトライトーン代理
後処理humanizeはいヒューマナイズ適用
humanizeTimingはいタイミング変動
humanizeVelocityはいベロシティ変動
SE/CallseEnabledはいSEトラック生成
callEnabledはいコール機能(AccompanimentConfigではboolean)
callDensityはいコール密度

15.3 regenerateVocal(configOrSeed) で使用されるパラメータ

シード指定の場合 (regenerateVocal(12345)):

  • seedのみ変更、他のパラメータは前回のgenerateVocal設定を継続

VocalConfig指定の場合 (regenerateVocal({...})):

パラメータ使用説明
seedはい新しいランダムシード
vocalLowはい音域下限を変更
vocalHighはい音域上限を変更
vocalAttitudeはい表現スタイルを変更
vocalStyleはいボーカルスタイルプリセットを変更
melodicComplexityはい複雑さを変更
hookIntensityはいフック強度を変更
vocalGrooveはいグルーブを変更
keepMotifはいRhythmSync限定: 既存のMotifをリズムの軸として保持(デフォルト false = 両方再生成)

注意: コード進行と構造は変更されません(generateVocal時の設定を継続)。


16. パラメータ適用フロー

SongConfig

    ├── stylePresetId ──→ mood, compositionStyle, bpm(default), melody_params
    │                           │
    │                           ▼ (明示設定で上書き可)
    ├── compositionStyle ──────────────→ 最終compositionStyle
    ├── bpm ───────────────────────────→ 最終BPM

    ├── vocalStyle ─────────→ melody_params上書き ─────→ │
    │       │                                            │
    │       └── (Auto) ────→ ランダム選択               │
    │                                                    ▼
    ├── melodicComplexity ─→ melody_params乗算調整 ────→ │
    │                                                    ▼
    ├── メロディオーバーライド → 個別パラメータ上書き ──→ 最終melody_params

    ├── hookIntensity ─────→ Chorus/Bセクションのノート調整

    ├── vocalGroove ───────→ 全ノートのタイミング調整

    ├── enableSyncopation ─→ マスターシンコペーションスイッチ(false=重み0.0)

    └── callSetting ──────→ (0=Auto時) vocalStyleで判定 → コール有効化

適用順序: StylePresetVocalStylePresetMelodicComplexitySongConfig Overrides (melody/motif)Master Switch (enableSyncopation)


17. Production Blueprint によるオーバーライド

Production Blueprintは、スタイル/ムード設定とは独立して、音楽の生成方法を制御します。

17.1 Blueprint 一覧

ID名前パラダイムRiffPolicyドラム必須ウェイト
0TraditionalTraditionalFree-42%
1RhythmLockRhythmSyncLocked必須14%
2StoryPopMelodyDrivenEvolving-10%
3BalladMelodyDrivenFree-4%
4IdolStandardMelodyDrivenEvolving-10%
5IdolHyperRhythmSyncLocked必須6%
6IdolKawaiiMelodyDrivenLocked-5%
7IdolCoolPopRhythmSyncLocked必須5%
8IdolEmoMelodyDrivenLocked-4%
9BehavioralLoopRhythmSyncLockedPitch-0%*
255(Random)----

* BehavioralLoopはウェイト0%のため、ランダム選択では選ばれません。明示的に選択する必要があります。選択するとaddictive_mode=trueHookIntensity=MaximumRiffPolicy=LockedPitchが強制されます。

17.2 パラダイムの種類

パラダイム説明生成順序
Traditionalクラシックなポップ生成Vocal → Aux → Motif → Bass → Chord → Guitar → Arpeggio → Drums → SE
RhythmSyncリズム同期型生成Motif → Vocal → Aux → Bass → Chord → Guitar → Arpeggio → Drums → SE
MelodyDrivenメロディ中心のアレンジVocal → Aux → Motif → Bass → Chord → Guitar → Arpeggio → Drums → SE

17.3 RiffPolicy の種類

ポリシー説明motifRepeatScope への影響
Free0セクションごとに変化motifRepeatScope 設定を使用
LockedContour1ピッチ輪郭は固定、リズムと表現は変化motifRepeatScope無視
LockedPitch2ピッチ完全固定、ベロシティは変化motifRepeatScope無視
LockedAll3全要素固定motifRepeatScope無視
Evolving4キャッシュされたリフをセクションごとに1回変異させ、同一性を保ったまま少しずつ変化motifRepeatScope無視

LockedLockedContour(1)のエイリアスです。motifRepeatScopeFree の分岐でのみ読まれ、それ以外のポリシーでは無視されます。

17.4 Blueprint によるオーバーライドルール

Blueprint が選択されると(Traditional/ID 0 以外)、いくつかの設定が自動的にオーバーライドされます:

Blueprint が上書きするものと、それを止めるもの 0 以外の Blueprint を選ぶと、独立した 3 つの上書きが働きます。section_flow があれば formId は上書きされ、なければ維持されます。riff_policy が Free なら motifRepeatScope が使われ、それ以外のポリシーでは無視されます。drums_required が true なら drumsEnabled は強制的にオンになり、false なら維持されます。2 つの明示フラグはこの上書きより優先され、formExplicit はフォームを、drumsEnabledExplicit と drumsEnabled = false はドラムのオフを守ります。 blueprintId ≠ 0 Blueprint が有効 フォーム section_flow あり → formId を上書き なし → formId は維持 モチーフの反復 riff_policy Free → motifRepeatScope を使用 それ以外のポリシーでは無視 ドラム drums_required true → drumsEnabled を強制オン false → drumsEnabled は維持 明示フラグが優先 formExplicit = true ならフォームは維持、 drumsEnabledExplicit = true drumsEnabled = false ならドラムはオフのまま。
Blueprint 設定オーバーライド対象条件
section_flowformIdsection_flowが存在しformExplicit=falseの場合。formExplicit=trueが優先
riff_policymotifRepeatScopeFree=設定使用。それ以外のポリシーは無視
drums_sync_vocal内部同期設定Blueprint 定義が優先
drums_requireddrumsEnabledtrueの場合、drumsEnabled=trueを強制(drumsEnabledExplicit=true + drumsEnabled=falseの場合は尊重)
TrackMask::Motifモチーフ生成MelodyLeadではセクションごとに制御。BGMスタイルではMotif生成を有効にし、マスク/レイヤー設定で生成ノートを決定

17.5 モチーフ生成フロー

CompositionStyle が BackgroundMotif または SynthDriven → モチーフ生成を有効化
└─ MelodyLead: 以下のいずれかが成立するとき生成を有効化
   ├─ パラダイムが RhythmSync                       (モチーフが座標軸)
   ├─ addictiveMode / blueprintId 9                 (ループそのものがリフ)
   ├─ riffPolicy が LockedContour / LockedPitch / LockedAll
   │                                                (固定されたリフもリフ)
   └─ Blueprint の section_flow がいずれかのセクションで TrackMask::Motif を立てている
   それ以外:モチーフなし

これは生成器を有効にする条件です。Blueprintのトラックマスクとレイヤースケジュールによって、個々のセクションにMotifノートが残らない場合があります。

ドラム必須

requiresDrums=true の Blueprint(ID: 1, 5, 7)は自動的にドラムを有効化します。この動作を明示的にオーバーライドするには、drumsEnabledExplicit: truedrumsEnabled: falseを同時に設定してください。

17.6 例:Blueprint のオーバーライド動作

javascript
// RhythmLock Blueprint を使用
{
  blueprintId: 1,        // RhythmLock
  formId: 5,             // ← 無視!Blueprint の section_flow が使用される
  motifRepeatScope: 1,   // ← 無視!Locked ポリシーで同一パターン強制
  drumsEnabled: false,   // ← 無視!drums_required=true で強制有効
}
javascript
// Traditional Blueprint を使用
{
  blueprintId: 0,        // Traditional
  formId: 5,             // ← 指定通り使用
  motifRepeatScope: 1,   // ← 指定通り使用
  drumsEnabled: false,   // ← 指定通り使用
}
javascript
// drums_required Blueprintでドラムを明示的に無効化
{
  blueprintId: 1,              // RhythmLock(drums_required)
  drumsEnabled: false,         // ドラムをオフにしたい
  drumsEnabledExplicit: true,  // 明示フラグ → オーバーライドが尊重される
}