命令リファレンス 


Ymplayer.setPlayingOption

Midiの再生オプションを設定します
※ 再生前にあらかじめ設定しておく項目です

変更したくない項目は、引数をnullにしたり、省略したりしてください
※ このメソッドの後に、updatePlayInfo()を呼び出すことで、MusicPlayerに反映されます

書式

setPlayingOption(skipBeginning, skipEnding, masterPitch, normalize, exclusive)
skipBeginning(省略可能)
Midiの冒頭の空白をスキップするなら1、しないなら0
skipEnding(省略可能)
Midiの末尾の空白をスキップするなら1、しないなら0
masterPitch(省略可能)
マスターピッチ機能をONにするなら1、OFFにするなら0
再生中にピッチ(音の高低)を変えたい場合は、1にしてください
1にすると、setDynamicEffect()のpitchが使えるようになります。
ただし、ピッチベンドが送信されているMidiでは、1にすると音が変になることがあります。
使う場合は、うまく使い分けてください
normalize(省略可能)
ノーマライズ機能をONにするなら1、OFFにするなら0
Midiデータの音量が最大(127)になっていない場合、
全体的に音量を最大に上げる機能です
音割れするときは、setDynamicEffect()で音量を調節できます
exclusive(省略可能)
Midiデータ中のエクスクルーシブを送信するなら1、送信しないなら0
複数リズムパートを使っているMidiなどに有効らしいです
ただし、この機能を有効にしてもリセットメッセージと、
マスターボリュームメッセージは送りません
(ライブラリで提供されていた機能をとりあえず導入。作者は使用用途をわかっていません(^^;))
使いたい方以外は、0で構いません

このメソッドを使うより、下記のメソッドを使うことを推奨します
下記のメソッドを使用した後に、updatePlayInfo()を呼び出さないとMusicPlayerに反映されません。

(予め test.mid をTonyuに登録しておいてください)
extends SpriteChar;

$mplayer = new Ymplayer();
midiSkipBeginning = 1;
midiSkipEnding    = 0;
midiMasterPitch   = 0;
midiNormalize     = 0;
midiExclusive     = 0;
while (1) {
  if (getkey(65) == 1) midiSkipBeginning = !midiSkipBeginning; // A:冒頭の空白スキップ
  if (getkey(83) == 1) midiSkipEnding    = !midiSkipEnding;    // S:末尾の空白スキップ
  if (getkey(68) == 1) midiMasterPitch   = !midiMasterPitch;   // D:マスターピッチ機能
  if (getkey(70) == 1) midiNormalize     = !midiNormalize;     // F:ノーマライズ機能
  if (getkey(71) == 1) midiExclusive     = !midiExclusive;     // G:エクスクルーシブ送信
  if (getkey(90) == 1) { // Z:再生
    $mplayer.setPlayingOption(midiSkipBeginning, midiSkipEnding, midiMasterPitch, midiNormalize, midiExclusive); // 再生オプション設定
    $mplayer.updatePlayInfo(); // 更新
    $mplayer.play($se_test, 1);
  }
  if (getkey(88) == 1) { // X:停止
    $mplayer.stop();
  }
  
  drawText(100,  0, "冒頭の空白スキップ :" + midiSkipBeginning, $clWhite);
  drawText(100, 20, "末尾の空白スキップ :" + midiSkipEnding   , $clWhite);
  drawText(100, 40, "マスターピッチ機能 :" + midiMasterPitch  , $clWhite);
  drawText(100, 60, "ノーマライズ機能  :" + midiNormalize    , $clWhite);
  drawText(100, 80, "エクスクルーシブ送信:" + midiExclusive    , $clWhite);
  update();
}

戻る