3

C#のtonematrixに似たアプリケーションを開発しようとしています。最初に.netとNAudioライブラリを試しましたが、現在はXNAを試していますが、取得できるのは不協和音だけのようです。


NAudioを使用して、(440hz * 1)から(440hz * 8)までのさまざまな周波数の8つの単純な正弦波を生成しています。

XNAでは、同じオーディオファイル(ピアノのD4ノートなど)の複数のSoundEffectInstanceを使用しており、それぞれが異なるピッチ値を持っています。ピッチ値は、最大1オクターブ上下する可能性があります。

どちらの場合も、音が重なると、音楽ではなくノイズが発生します。多分私はそれをすべて間違っていました、そしてそれは変化するピッチ/周波数の音を混ぜることの問題ではありません。

トーンマトリックスが「シンプルな正弦波シンセサイザー」を使用しているとは信じがたいです。サウンドはかなり豊かで、それらを混ぜ合わせると常に倍音が生成されますが、シンプルな正弦波は常に醜く人工的に聞こえます。自分。

ハーモニーを作成するための悪いアプローチがありますか?トーンマトリックスで使用される正弦波に何が起こっているのか正確にわかっていますか?

4

2 に答える 2

2

私はたまたまあなたの音楽の質問に答えることができますが、この種の質問はおそらくhttps://music.stackexchange.com/で尋ねたほうがよいでしょう。

まず第一に、スケール。これらのものは一般的にペンタトニックスケールを使用します(ウィキペディアから:「そのようなスケールの任意のピッチは、衝突することなく任意の順序または組み合わせで演奏できます」)。コメントによると、リンクした例では、AからAまでのニ長調ペンタトニックを使用しています。

まっすぐな正弦波を使用していないことがわかりますが、実際にはADSRエンベロープを使用して、最初に心地よい「パンチ」を、最後に(偽の)「エコー」を与えています。振幅を変調するだけでよいので、これは簡単に実装できます。

私の知る限り、波形を混ぜ合わせるときに特別なことは何もしていません。単純な加算を行っている可能性があります。

実装に関しては、サンプルをピッチシフトするのではなく、正弦波を生成する方法がある場合は、それを使用DynamicSoundEffectInstanceして正弦波を供給してみませんか?

XNAに組み込まれているピッチシフトは、このタスクにはあまり適していません。正しい値を使用して調整していますか?

于 2011-06-18T14:15:31.773 に答える
1

入力と同じ周波数の倍数を使用している場合、各正弦波は他の正弦波よりも正確に1オクターブ高くなります。このように8つの正弦波を足し合わせると、混合波形に非常に高いピークが生じるため、歪みが発生しないように、制限を適用するか、全体の音量を下げる必要があります。あなたのコードを見ずに確実に言うのは難しいですが、それはあなたのノイズの原因の一部かもしれません。

于 2011-06-19T12:51:18.917 に答える