【发布时间】:2010-08-02 11:13:41
【问题描述】:
是否有可用的通用代码使用数学类生成方形、三角形、锯齿或任何其他自定义波形?
以下是处理 SampleDataEvent 并播放中间 c (440 Hz) 正弦波的基本函数。我想通过合并方波、三角波和其他波来改变音调。
var position:int = 0;
var sound:Sound = new Sound();
sound.addEventListener(SampleDataEvent.SAMPLE_DATA, sampleDataHandler);
sound.play();
function sampleDataHandler(event:SampleDataEvent):void
{
for(var i:int = 0; i < 2048; i++)
{
var phase:Number = position / 44100 * Math.PI * 2;
position ++;
var sample:Number = Math.sin(phase * 440);
event.data.writeFloat(sample); // left
event.data.writeFloat(sample); // right
}
}
【问题讨论】:
-
必须只使用
sin吗?可以自己写函数吗? -
我没有使用 Math.sin() 的要求,但我只是假设使用 Math.sin()(或 .cos())将如何完成创建自定义波形?或者至少很容易完成。
标签: actionscript-3 math waveform