In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

sion遊び

SiON遊び
とりあえず、HPに載ってるソースコードを読みながらSiONの
使い方を勉強しました。
live coding実装記念 2010.10.18
SiONでmmlは小文字じゃないといけない。
音を鳴らすために、
1.Driverを準備する
2.再生する音をコンパイル
3.SiONPresetVoiceでプリセット音を鳴らせる
4.play()しておいて、sequenceOnで再生する
複数音を出す為には、
1.mmlに複数の音を登録しておく
2.コンパイルした音を複数用意して同時に鳴らす
なんとなくわかったので、なんか曲作って終わる。
山手線、京浜東北線 発射メロディ(笑)
Get Adobe Flash player
by Dorara 17 Feb 2010
    Embed
/**
 * 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);
		}
    }
}