SiONを勉強するよ(1)

by naoto5959
SiONWork1
SiONまだわかってない & applyFilter覚えたてで気に入りすぎ
@author naoto koshikawa
♥2 | Line 52 | Modified 2009-09-15 00:32:06 | MIT License
play

ActionScript3 source code

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

package  
{
    
    import flash.display.Sprite;
    import flash.display.StageQuality;
    import flash.filters.BlurFilter;
    import flash.geom.Point;
    import frocessing.display.F5MovieClip2DBmp;
    import org.si.sion.events.SiONTrackEvent;
    import org.si.sion.SiONData;
    import org.si.sion.SiONDriver;
    import org.si.sion.utils.SiONPresetVoice;
    /**
     * SiONWork1
     * SiONまだわかってない & applyFilter覚えたてで気に入りすぎ
     * @author naoto koshikawa
     */
    public class SiONWork1 extends F5MovieClip2DBmp
    {
        //----------------------------------------------------------------------
        //  properties
        //----------------------------------------------------------------------
        //------------------------------
        //  private properties
        //------------------------------
        /**
         * SiON driver
         */
        private var _driver:SiONDriver;
        
        /**
         * prreset voice
         */
        private var _presetVoice:SiONPresetVoice;
        
        private var _rythmLoop:SiONData;
        
        //----------------------------------------------------------------------
        //  methods
        //----------------------------------------------------------------------
        //------------------------------
        //  public methods
        //------------------------------
        /**
         * constructor
         */
        public function SiONWork1() 
        {
            stage.quality = StageQuality.HIGH;
            _driver = new SiONDriver();
            _presetVoice = new SiONPresetVoice();
            _driver.volume = 0.5;
            var mml:String = "t132;";
            mml += "%6@0o3l8$c2cc.c.; %6@1o3$rcrc; %6@2v8l16$[crccrrcc]; %6@3v8o3$[rc8r8];";
            mml += "%t,1,1 %6@4v8l16o3$aa<a8>a<ga>ararara<e8>;";
            _rythmLoop = _driver.compile(mml);
            
            _rythmLoop.setVoice(0, _presetVoice["valsound.guitar3"]);
            _rythmLoop.setVoice(1, _presetVoice["valsound.percus28"]);
            _rythmLoop.setVoice(2, _presetVoice["valsound.percus17"]);
            _rythmLoop.setVoice(3, _presetVoice["valsound.percus23"]);
            _rythmLoop.setVoice(4, _presetVoice["valsound.bass4"]);
            
            _driver.addEventListener(SiONTrackEvent.NOTE_ON_FRAME,  _onNoteOn);
            _driver.play(_rythmLoop);
        }
        
        private function _onNoteOn(event:SiONTrackEvent):void
        {
            stroke(event.note, random(0.5, 0.9) , 1);
            line(0, random(0, stage.stageHeight), stage.stageWidth, random(0, stage.stageHeight));
            bitmapData.applyFilter(bitmapData, bitmapData.rect, new Point(), new BlurFilter(4, 4, 2));
            
        }
        
        public function setup():void
        {
            size(stage.stageWidth, stage.stageHeight);
            
            colorMode(HSV, 48, 1, 1);
            background(0);
        }
        
        public function draw():void
        {
            
            line(0, random(0, stage.stageHeight), stage.stageWidth, random(0, stage.stageHeight));
        }
    }    
}