sion遊び
SiON遊び
とりあえず、HPに載ってるソースコードを読みながらSiONの
使い方を勉強しました。
live coding実装記念 2010.10.18
SiONでmmlは小文字じゃないといけない。
音を鳴らすために、
1.Driverを準備する
2.再生する音をコンパイル
3.SiONPresetVoiceでプリセット音を鳴らせる
4.play()しておいて、sequenceOnで再生する
複数音を出す為には、
1.mmlに複数の音を登録しておく
2.コンパイルした音を複数用意して同時に鳴らす
なんとなくわかったので、なんか曲作って終わる。
山手線、京浜東北線 発射メロディ(笑)
/**
* Copyright Dorara ( http://wonderfl.net/user/Dorara )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/pCTZ
*/
// SiON遊び
// とりあえず、HPに載ってるソースコードを読みながらSiONの
// 使い方を勉強しました。
// live coding実装記念 2010.10.18
// SiONでmmlは小文字じゃないといけない。
//音を鳴らすために、
// 1.Driverを準備する
// 2.再生する音をコンパイル
// 3.SiONPresetVoiceでプリセット音を鳴らせる
// 4.play()しておいて、sequenceOnで再生する
//
//複数音を出す為には、
// 1.mmlに複数の音を登録しておく
// 2.コンパイルした音を複数用意して同時に鳴らす
//なんとなくわかったので、なんか曲作って終わる。
// 山手線、京浜東北線 発射メロディ(笑)
package {
import flash.display.Sprite;
import org.si.sion.*;
import org.si.sion.utils.*;
import com.bit101.components.*;
import flash.events.MouseEvent;
public class FlashTest extends Sprite {
public var driver:SiONDriver = new SiONDriver();
//いろんな音を出すため
public var voices:SiONPresetVoice = new SiONPresetVoice();
public var voice:SiONVoice = voices["valsound.bell2"];
//メロディ
public var mainMel:SiONData;
public var subMel:SiONData;
public function FlashTest() {
var mml:String = "t115;";
mml += "l8 [g>gag<c>g<e>g]2 <[g>gagbg<d>g]2 geg<ccceg<c4;";
mml += "l8 grrrrrrr>grrrrrrr<grrrrrrr>grrrrrrr<crrrerrrgrrr;";
mainMel = driver.compile(mml);
//mainMel = driver.compile("t100 l8 cdefg4g4af<c>ag2");
//subMel = driver.compile("t100 l8 >c2e2f2c2");
new PushButton(this, 10, 20, "play", mml_play);
new PushButton(this, 150, 20, "stop", mml_stop);
driver.play();
}
private function mml_play(e:MouseEvent):void{
driver.sequenceOn(mainMel);
//driver.sequenceOn(mainMel, voice, 0, 0, 2);
//driver.sequenceOn(subMel, voice, 0, 0, 2);
}
private function mml_stop(e:MouseEvent):void{
driver.sequenceOff(0, 0, 0);
}
}
}