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でジェネレイティブミュージックを奏でる! サンプルコード

Get Adobe Flash player
by ll_koba_ll 24 Nov 2009
/**
 * Copyright ll_koba_ll ( http://wonderfl.net/user/ll_koba_ll )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/9oRI
 */

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 = [0, 1, 5, 2, 4, 3];

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