日本語English

PCM音色パラメータ仕様

WAVサンプルを鳴らすPCM音色(音色)を定義するYAMLファイルの記載方法です。1ファイルに 複数音色を定義できます。

ファイル形式

YAML形式。コメント行は#で表現し、空行・スペースのみの行は無視されます。 fileio.LoadPCMVoiceFile / LoadPCMVoiceFileFS / SetPCMVoiceData のいずれかで読み込みます。読み込み時にYAML解析と同時に参照WAVファイルもメモリへデコードされます (同一WAVファイルは重複デコードせずキャッシュを再利用)。

voiceType: 2つのタイプ

oneShot(ワンショット) ドラムキットのように、複数のノートそれぞれに独立したWAVサンプルを割り当てて発音するタイプです。 1音色につき最大16個のvoiceSettingを持てます。ファイル自体にループ設定があっても無視 され、常にワンショット(波形の最後まで)再生されます。loop / baseNote / envelope は無視されます。
long(ロング) ヴァイオリン等の持続音を想定したタイプです。voiceSettingは1個のみ。baseNote を起点に、鳴らすノートに応じて12音階でピッチが変化して再生されます。note / volume / pan(voiceSetting側)は無視され、代わりにパート設定側の volume/panが使われます。エンベロープ・LFO・ループ再生に対応します。

共通パラメータ

キー範囲・書式説明
voiceID整数音色を一意に識別するID。
voiceTypeoneShot / long音色タイプ。 未知の値はYAML自体のエラーとして扱われ、読み込みが中止されます。
looptrue / falselongのみ有効。trueかつWAVファイル自体 にsmplチャンクのループ設定が含まれる場合はその区間をループ、含まれない場合は波形の 先頭〜末尾をループします。falseの場合はWAV自体にループ設定があってもループ再生しません (oneShotでは常に無視)。
lfotrue / falselongのみ有効(Phase 8)。oneShotでは 無視されます。未設定時はfalse。
lfoDelay / lfoFade / lfoDepth / lfoHz FM音色と同じデフォルトはそれぞれ0.4 / 0.5 / 30 / 6。詳細はFM音色パラメータ仕様参照。

voiceSetting

キーoneShotlong説明
fileName必須必須WAVファイル名(モノラル・44.1kHz のみ対応)。絶対パス指定、またはファイル名のみの場合はYAML自体と同一フォルダ(LoadPCMVoiceFileFS の場合はfsysルートからの絶対パス、ファイル名のみならYAMLと同フォルダ)を探索します。
note必須(例: C1無視このサンプルを 発音させるノート名。1音色内で最大16個まで設定でき、ノートごとに異なるサンプルを割り当てます。
baseNote無視必須(例: A3このサンプルが 原音(無変換)で再生されるノート。未設定・不正値の場合は警告の上A4にフォールバックします。
volume0〜127無視そのサンプル単体の音量(oneShotは サンプルごとに個別ミックス可能)。
pan-16(左)〜16(右)無視そのサンプル単体のパン定位。 0が中央、連続値(例: -7で少し左寄り)。
envelope無視"attackRate, decay1Rate, sustainLevel, decay2Rate, releaseRate" FM音色のenvelopeと同一書式・同一意味。FM音色パラメータ仕様 参照。

設定例

pcmVoice:
  # ワンショットタイプ(ドラムキット)
  - voiceID: 0
    voiceType: oneShot
    loop: false
    voiceSetting:
      - fileName: kick.wav
        note: C1
        volume: 100
        pan: 0
      - fileName: snare.wav
        note: E1
        volume: 100
        pan: 0
      - fileName: hat1.wav
        note: F#1
        volume: 100
        pan: -16

  # ロングタイプ(持続音、ループ・エンベロープ・LFO付き)
  - voiceID: 1
    voiceType: long
    loop: true
    lfo: true
    lfoDelay: 0.3
    lfoFade: 0.4
    lfoHz: 7
    voiceSetting:
      - fileName: uhh.wav
        baseNote: A3
        envelope: "31, 1, 2, 6, 14"

WAVファイル仕様

未定義・不正な値(軽微なもの)は警告ログを出力した上で0扱いにして解析を継続します。 voiceTypeが不明な値、またはWAVファイルの読み込み自体に失敗した場合は致命的エラーとして 読み込みが中止されます。