質問

私は同様のアプリケーションを開発しようとしています tonematrix C#で。 .NETとNaudio Libraryで最初に試してみましたが、今ではXNAで試していますが、私が得ることができるのは不協和音だけだと思われます。


ナウディオ, 、(440Hz * 1)から(440Hz * 8)までさまざまな周波数を持つ8つの単純な正弦波を生成しています。

XNA, 、同じオーディオファイル(ピアノのD4ノートなど)の複数のsoundeffectInstanceを使用しています。それぞれが異なるピッチ値を持つものです。ピッチ値は、最大オクターブの上昇または下に移動できます。

どちらの場合も、音が重複するとき、音楽の代わりにノイズを得ています。たぶん私はそれをすべて間違っていたかもしれません、そしてそれはさまざまなピッチ/周波数の音を混合するという問題ではありません。

音はかなり豊かで、それらが混ざり合っているときは常に調和のある曲を生成しますが、シンプルなサインウェーブは常にugいて人工的であるため、Tonematrixが「シンプルなサインウェーブシンセサイザー」に過ぎないと信じるのは難しいと思います。自分。

ハーモニーを作成するための悪いアプローチがありますか? Tonematrixが使用しているサインウェーブに正確に何が起こっているのかという考えがありますか?

役に立ちましたか?

解決

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

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

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

私が知る限り、波形を一緒に混合するとき、それは特別なことをしていません。それは簡単な追加をしている可能性があります。

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

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

他のヒント

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top