8月 26 2009
SiONをやってみよう・・・基本編3:MMLでの音色指定
今回は、MMLによる音色(&モジュール)指定です。
同梱サンプル、「EventTrigger2.as」のMMLコードを見ると、「EventTrigger.as」のようなシングルメロディではなく、3声のフレーズになっています。(それぞれに音色指定有り)
下記のサンプルコードは、「EventTrigger2.as」から、再生に必要な部分のみを端折って表示しています。
var driver:SiONDriver = new SiONDriver(); var mainMelody:SiONData; var mml:String = "t100;"; mml += "%3@8 l8 [ccggaag4 ffeeddc4 | [ggffeed4]2 ]2;"; mml += "%3@8 l4 [o4ccfc >g<c>g<c | cccc ccc>g< ];"; mml += "%3@8 l4 r8 [o4 ggag dgdg | gggg gggd ];"; mainMelody = driver.compile(mml); driver.play(mainMelody);
MMLでの音色(&モジュール)指定は、”%3@8”の部分です。
’%’第一引数でモジュールを選択し、’@’第一引数で音色番号を選択しています。
音色番号は選択したモジュールによって異なります。
モジュールとは、音源のスタイルです。(例えば、PSG、Noise、FM、PCM、等々)
上記の例では、MA3波形(%3)の8の音色と言うことになります。
※ご注意
SiONについて、いろいろ書いていますが、あくまで個人的な勉強としてまとめているだけなので、参考程度にどうぞ。
もし、間違いに気づかれた方は、コメント欄にてご指摘ください。
※追記
こちらは、イベント・トリガーの設定方法が違うので一応コードを・・・
SiONEvent.STREAM_STARTイベントの発生でトリガー設定をするので、つまりはplay()メソッド後にのみトリガー設定が可能になります。
driver.addEventListener(SiONEvent.STREAM_START, _onStreamStart);
driver.addEventListener(SiONTrackEvent.NOTE_ON_FRAME, _onNoteOn);
driver.addEventListener(SiONTrackEvent.NOTE_OFF_FRAME, _onNoteOff);
private function _onStreamStart(e:SiONEvent) : void {
var i:int;
var imax:int = driver.sequencer.tracks.length; // <= same as driver.trackCount
// set event trigger on all tracks. you can access them by driver.sequencer.tracks[].
// but the driver.sequencer.tracks[] is available only after driver.play().
for (i=0; i<imax; i++) {
// The eventTriggerID (The 1st argument) is track number.
driver.sequencer.tracks[i].setEventTrigger(i, 1, 1);
}
}
【 関連する投稿 】
| ■ スポンサードリンク | |
※ コメント及びトラックバックは、複数のスパム専用プラグインによって厳しくチェックされ、場合によっては自動的に駆除されます。
Trackback URI |
Comments RSS




