8月 26 2009

SiONをやってみよう・・・基本編3:MMLでの音色指定

Published by admin at 23:42 under ActionScript,Sound / MIDI / Video

今回は、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);
    }
 }

【 関連する投稿 】

No responses yet





■ スポンサードリンク  


※ コメント及びトラックバックは、複数のスパム専用プラグインによって厳しくチェックされ、場合によっては自動的に駆除されます。

Trackback URI | Comments RSS

Leave a Reply

Get Adobe Flash playerPlugin by wpburn.com wordpress themes