命令リファレンス 


Ymplayer.setDynamicEffect

Midiの再生中に動的に変更できるエフェクト項目をセットします

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

書式

setDynamicEffect(vol, tempo, pitch)
vol(省略可能)
Midiの音量(0〜127)
tempo(省略可能)
Midiのテンポ(0.1〜8)
1で等速、2で2倍のテンポ、0.5で半分のテンポになります
pitch(省略可能)
Midiのピッチ(音の高低)(-8192〜8191)
-8192で1オクターブ下がり、8191で1オクターブ上がります
マスターピッチ機能がONのとき有効です
setPlayingOption()でマスターピッチ機能をONにできます
※ マスターピッチ機能をONにすると、ピッチベンドが送信されているMidiでは、音が変になるMidiがあります

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

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

$mplayer = new Ymplayer();
$mplayer.setPlayingOption(null, null, 1, null, null); // マスターピッチ機能をONにする
$mplayer.updatePlayingInfomation(); // 更新
$mplayer.play($se_test, 1); // 再生
midiVolume = 127;
midiTempo  = 1;
midiPitch  = 0;
v = 1;
while (1) {
  if (getkey(65) > 0 && midiVolume >     0) midiVolume --;       // A:音量−
  if (getkey(83) > 0 && midiVolume <   127) midiVolume ++;       // S:音量+
  if (getkey(68) > 0 && midiTempo  >   0.1) midiTempo  -= 0.125; // D:テンポ−
  if (getkey(70) > 0 && midiTempo  <   8  ) midiTempo  += 0.125; // F:テンポ+
  if (getkey(71) > 0 && midiPitch  > -8192) midiPitch  -= 64;    // G:ピッチ−
  if (getkey(72) > 0 && midiPitch  <  8191) midiPitch  += 64;    // H:ピッチ+
  if (v % 6 == 0) { // 1秒間に10回更新
    $mplayer.setDynamicEffect(midiVolume, midiTempo, midiPitch); // エフェクト設定
    $mplayer.updatePlayingInfomation(); // 更新
  }
  drawText(100,  0, "音量 :" + midiVolume, $clWhite);
  drawText(100, 20, "テンポ:" + midiTempo , $clWhite);
  drawText(100, 40, "ピッチ:" + midiPitch , $clWhite);
  v ++;
  update();
}

戻る