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

forked from: SiONでジェネレイティブミュージックを奏でる! サンプルコード

/**
 * Copyright asano ( http://wonderfl.net/user/asano )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/ydfF
 */

// forked from ll_koba_ll's SiONでジェネレイティブミュージックを奏でる! サンプルコード 
package {
    import flash.display.Sprite;
    import org.si.sion.SiONData;
    import org.si.sion.SiONDriver;
    import org.si.sion.events.SiONEvent;
    import org.si.sion.utils.SiONPresetVoice;
    import org.si.sion.utils.Scale;
    import org.si.sound.Arpeggiator;
    
    public class C3_3 extends Sprite {
        //ドライバ
        public var _driver:SiONDriver;
        //アルペジェータ
        public var _arpeggiator:Arpeggiator;
        
        function C3_3() {
            //ドライバーの生成
            _driver = new SiONDriver();
            //イベントハンドラメソッドを登録
            //_driver.addEventListener(SiONEvent.STREAM, streamhandler);
            
            //アルペジェーターの生成 及び スケールの設定
            _arpeggiator = new Arpeggiator(new Scale("o1Ajap"));
            /*アルペジェーターのパラメーターを設定*/
            //音色を設定
            var voice:SiONPresetVoice = new SiONPresetVoice();
            _arpeggiator.voice = voice["valsound.bell1"];
            //パターンの設定
            _arpeggiator.pattern = [60];

            /*MMLを定義*/
            //テンポを設定
            var mml:String = "t";
            //リバーブエフェクトをかける
            mml += "#EFFECT0{chorus 1,1,1,1}";
            //MMLをコンパイル
            var data:SiONData = _driver.compile(mml);            
            //再生
            _driver.play(data);
            _arpeggiator.play();
        }
        /*
        private function streamhandler(e:SiONEvent) : void {
            //スケールをランダムに変更
            //_arpeggiator.scaleIndex = Math.random() * 16 + 8;
        }*/
    }
}