forked from: SineWave forked from: Dynamic Sound

by kappa-lab forked from SineWave forked from: Dynamic Sound (diff: 16)
♥0 | Line 29 | Modified 2011-06-24 16:06:23 | MIT License
play

ActionScript3 source code

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

// forked from kappa-lab's SineWave forked from: Dynamic Sound 
// forked from kappa-lab's Dynamic Sound 
package {
    import flash.utils.ByteArray;
    import flash.events.SampleDataEvent
    import flash.media.Sound;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            var sound:Sound = new Sound();
            sound.addEventListener(SampleDataEvent.SAMPLE_DATA,onSample);
            const SAMPLE_RATE:uint = 44100;
            const LATENCY:uint = 2205;
            const PI2:uint = Math.PI * 2;
            
            var phase:Number=0;
            var frequency:Number = 440;
            var phasePerByte:Number = PI2 * frequency / SAMPLE_RATE;
            function onSample(e:SampleDataEvent):void{
                var byte:ByteArray = e.data;
                for(var i:int=0;i<LATENCY;i++){
                    phase = (phase + phasePerByte) % PI2;
                    var sample:Number = Math.sin(phase);
                    sample *= .1;
                    byte.writeFloat(sample);
                    byte.writeFloat(sample);
                }                
            }
            sound.play();
        }
    }
}

Forked