440Hz SineWave forked from: Dynamic Sound

by kappa-lab forked from forked from: SineWave forked from: Dynamic Sound (diff: 5)
♥0 | Line 28 | Modified 2011-06-25 04:21:12 | 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/rFqI
 */

// forked from kappa-lab's forked from: SineWave forked from: Dynamic Sound 
// 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:Number = 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)*.5;
                    byte.writeFloat(sample);
                    byte.writeFloat(sample);
                }                
            }
            sound.play();
        }
    }
}