1

数学クラスを使用して、正方形、三角形、のこぎり波、またはその他のカスタム波形を生成する一般的なコードはありますか?

以下は、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
        }
    }
4

1 に答える 1

3

ウィキペディアには、正方形三角形のこぎり波の簡単な方程式が示されています。おそらく最も単純なものを次に示します (すべて期間 1 があります)。

平方(t) = sgn(sin(2πt))
鋸歯(t) = t - 床(t + 1/2)
三角形 (t) = abs (のこぎり歯 (t))
于 2010-08-03T19:08:33.307 に答える