命令リファレンス
Ymplayer.setPlayingOption
Midiの再生オプションを設定します
※ 再生前にあらかじめ設定しておく項目です
変更したくない項目は、引数をnullにしたり、省略したりしてください
※ このメソッドの後に、updatePlayingInfomation()を呼び出すことで、MusicPlayerに反映されます
書式
setPlayingOption(skipBeginning, skipEnding, masterPitch, normalize, exclusive)
- midiSkipBeginning(省略可能)
- Midiの冒頭の空白をスキップするなら1、しないなら0
- midiSkipEnding(省略可能)
- Midiの末尾の空白をスキップするなら1、しないなら0
- midiMasterPitch(省略可能)
- マスターピッチ機能をONにするなら1、OFFにするなら0
再生中にピッチ(音の高低)を変えたい場合は、1にしてください
1にすると、setDynamicEffect()のpitchが使えるようになります。
ただし、ピッチベンドが送信されているMidiでは、1にすると音が変になることがあります。
使う場合は、うまく使い分けてください
- midiNormalize(省略可能)
- ノーマライズ機能をONにするなら1、OFFにするなら0
Midiデータの音量が最大(127)になっていない場合、
全体的に音量を最大に上げる機能です
音割れするときは、setDynamicEffect()で音量を調節できます
- midiExclusive(省略可能)
- Midiデータ中のエクスクルーシブを送信するなら1、送信しないなら0
複数リズムパートを使っているMidiなどに有効らしいです
ただし、この機能を有効にしてもリセットメッセージと、
マスターボリュームメッセージは送りません
(ライブラリで提供されていた機能をとりあえず導入。作者は使用用途をわかっていません(^^;))
使いたい方以外は、0で構いません
メソッドから設定する以外に、Ymplayerクラスの変数を直接変更する方法もあります。
変数を変更した後に、updatePlayingInfomation()を呼び出さないとMusicPlayerに反映されません。
- midiSkipBeginning
- midiSkipEnding
- midiMasterPitch
- midiNormalize
- midiExclusive
例1
メソッドを使う場合
(予め 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.updatePlayingInfomation(); // 更新
$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();
}
例2
変数を直接変更する場合
(予め test.mid をTonyuに登録しておいてください)
extends SpriteChar;
$mplayer = new Ymplayer();
while (1) {
if (getkey(65) == 1) $mplayer.midiSkipBeginning = !$mplayer.midiSkipBeginning; // A:冒頭の空白スキップ
if (getkey(83) == 1) $mplayer.midiSkipEnding = !$mplayer.midiSkipEnding; // S:末尾の空白スキップ
if (getkey(68) == 1) $mplayer.midiMasterPitch = !$mplayer.midiMasterPitch; // D:マスターピッチ機能
if (getkey(70) == 1) $mplayer.midiNormalize = !$mplayer.midiNormalize; // F:ノーマライズ機能
if (getkey(71) == 1) $mplayer.midiExclusive = !$mplayer.midiExclusive; // G:エクスクルーシブ送信
if (getkey(90) == 1) { // Z:再生
$mplayer.updatePlayingInfomation(); // 更新
$mplayer.play($se_test, 1);
}
if (getkey(88) == 1) { // X:停止
$mplayer.stop();
}
drawText(100, 0, "冒頭の空白スキップ :" + $mplayer.midiSkipBeginning, $clWhite);
drawText(100, 20, "末尾の空白スキップ :" + $mplayer.midiSkipEnding , $clWhite);
drawText(100, 40, "マスターピッチ機能 :" + $mplayer.midiMasterPitch , $clWhite);
drawText(100, 60, "ノーマライズ機能 :" + $mplayer.midiNormalize , $clWhite);
drawText(100, 80, "エクスクルーシブ送信:" + $mplayer.midiExclusive , $clWhite);
update();
}
戻る