0

アンドレ・ミシェルに触発されて、AS3でトーンマトリックスを構築しています。なんとかマトリックスを作成し、さまざまなサウンドを生成することができました。それらはそれほど良く聞こえませんが、私はそこに到達しています。私が抱えている大きな問題の1つは、複数のドットが再生されるように設定されている場合、それはひどい音に聞こえることです。私はたくさんグーグルでアディティブシンセシスの方法を見つけましたが、それをas3に適用する方法がわかりません。複数の音を一緒に演奏する方法を知っている人はいますか?ヒントはありますか?

私のデモはwww.inklink.co.at/tonematrixにあります

4

2 に答える 2

2

ああ、一般的な音はひどいものでした...

ウィキをチェックしましたか?理解するのはそれほど難しいことではありません...数学の多くを知らなくても...あなたがすべきこと-音楽のプログラミングは簡単ではありません。

それで:

最初に何かを定義しましょう:

var harmonics:Array = new Array();

高調波は、個々の高調波を格納する配列です。各子は、["振幅"](技術的にはボリューム)、["周波数"]、および["波長"](周期)を含む別の配列になります。また、振幅波長オフセット(波の始点から)が与えられたときに波の位相を与えることができる関数も必要です。方形波の場合:

function getSquarePhase(amp:Number, wl:Number, off:Number):Number {
    while (off > wl){off -= wl;}
    return (off > wl / 2 ? -amp : amp); // Return amp in first half, -amp in 2.
}

他のタイプを追加したり、必要に応じてカスタムベクトル波を追加したりすることもできます。

さて、難しい部分です。

var samplingFrequency; // set this to your SF

function getAddSyn(harmonics:Array, time:Number):Number {
    if (harmonics.length == 1){ // We do not need to perform AS here
        return getSquarePhase(harmonics[0]["amplitude"], harmonics[0]["wavelength"], time);
    } else {
        var hs:Number = 0;
        hs += 0.5 * (harmonics[0]["amplitude"] * Math.cos(getSquarePhase(harmonics[0]["amplitude"], harmonics[0]["wavelength"], time)));
        // ^ You can try to remove the line above if it does not sound right.
        for (var i:int = 1; i < harmonics.length; i++){
            hs += (harmonics[0]["amplitude"] * Math.cos(getSquarePhase(harmonics[0]["amplitude"], harmonics[0]["wavelength"], time)) * Math.cos((Math.PI * 2 * harmonics[0]["frequency"] / samplingFrequency) * time);
            hs -= Math.sin(getSquarePhase(harmonics[0]["amplitude"], harmonics[0]["wavelength"], time)) * Math.sin((Math.PI * 2 * harmonics[0]["frequency"] / samplingFrequency) * time);
        }

        return hs;
    }
}

これはすべてウィキペディアから(弱く:D)変換されたばかりです。どこかで間違いを犯した可能性があります...しかし、アイデアを得る必要があると思います...そうでない場合は、ウィキペディアからASを自分で変換してみてください。私が言ったように、それはそれほど難しいことではありません。

私もどういうわけかナイキスト周波数を無視しました...

于 2010-09-06T18:36:04.050 に答える
0

私はあなたのデモを試しましたが、実際にはかなり良い音だと思いました。そんなに良く聞こえないってどういう意味?何が欠けていますか?私の主な関心分野は音楽ですが、何も問題はありません。シーケンスを作成した後、新しいサウンドを追加する必要があると感じているので、少しイライラするだけです。私が遊んでいたものを記録することができたなら、私はそれをあなたに送ったでしょう。

しかし、アディティブシンセシスに入るのは簡単なことではありません。どこまでプッシュしたいのか、なんらかのシンセサイザーを作りたいのか?

于 2010-09-06T16:42:04.090 に答える