forked from: SineWave forked from: Dynamic Sound
forked from SineWave forked from: Dynamic Sound (diff: 16)
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();
}
}
}