命令リファレンス
Ymplayer.setDynamicEffect
Midiの再生中に動的に変更できるエフェクト項目をセットします
変更したくない項目は、引数をnullにしたり、省略したりしてください
※ このメソッドの後に、updatePlayInfo()を呼び出すことで、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があります
このメソッドを使うより、下記のメソッドを使うことを推奨します
下記のメソッドを使用した後に、updatePlayInfo()を呼び出さないとMusicPlayerに反映されません。
例
(予め test.mid をTonyuに登録しておいてください)
extends SpriteChar;
$mplayer = new Ymplayer();
$mplayer.setPlayingOption(null, null, 1, null, null); // マスターピッチ機能をONにする
$mplayer.updatePlayInfo(); // 更新
$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.updatePlayInfo(); // 更新
}
drawText(100, 0, "音量 :" + midiVolume, $clWhite);
drawText(100, 20, "テンポ:" + midiTempo , $clWhite);
drawText(100, 40, "ピッチ:" + midiPitch , $clWhite);
v ++;
update();
}
戻る