15

C# で仮想ピアノを構築しようとしていますが、音符のスケールを最初から作成する方法が必要です。

音符ごとに 1 つの .wav ファイルを簡単に検索または作成できることはわかっていますが、これではユーザーのハード ディスクに多くのスペースが作成され、将来的にはあまり直感的ではなくなります。

適切なサウンドを作成する方法はありますか?たとえば、.wav ファイルを使用せずに C# で B フラットを作成し、すべて C# を使用してコードで作成します。そうでない場合は、別の言語 (C++) でこれを行う方法があります。

ありがとう、私はそれをできるだけ明確にしようとしました。

4

5 に答える 5

7

これで始められるように見えると思います:

http://blogs.msdn.com/b/dawate/archive/2009/06/24/intro-to-audio-programming-part-3-synthesizing-simple-wave-audio-using-c.aspx

EDIT : .wav サンプルを使用せずにサウンドを生成することと、ピアノをエミュレートすることは互いに矛盾していることを付け加えておきます。

「本物の」ピアノの音を出したい場合は、サンプルを使用するのが最善です (ファイルシステムに保存したくない場合は、サンプルをメモリに保持します)。正確な音符 (本物のピアノとはまったく違う音) を出力する簡単な方法が必要な場合は、プログラムで行うのが最適です。

于 2011-11-09T17:09:43.500 に答える
4

特にピアノをエミュレートする場合は、2つのオプションしかありません。1つはサンプルを使用する方法で、もう1つは物理モデリングです。物理モデリングには、DSP(フィルタリング、畳み込みなど)に関するかなり高度な知識が必要であり、ピアノは取り組むのが難しい楽器ですが、Pianoteqなどによって行われています。

サンプルに関しては、説得力のあるアナログに近いピアノを作成するには、クロスフェードを含むさまざまなベロシティに対して、ノートごとに複数のサンプルが必要になるのが理想的ですが、限られた範囲のノートでサンプルを使用することで解決できる可能性があります。サンプルの総数を減らすため。

于 2011-11-09T17:33:57.087 に答える
0

MIDI を参照してください。

C++ でラップできるWindows APIがあり、C# で使用できるマネージド インターフェイスを公開します。

于 2011-11-09T17:11:29.007 に答える
0

多分MIDIライブラリを使用すると役立つでしょうか?私はこの問題には興味がありませんが、オーディオ ファイルを使用したくない場合は、それが私の頭に浮かぶ唯一のことです。ここで質問があります。

于 2011-11-09T17:12:38.537 に答える
0

ここでは、少なくとも 1 オクターブ分の音符 (拡張可能) に対してゼロからピアノの音を作成する方法に関するソースを含む記事を見つけます。

于 2011-11-09T17:13:03.677 に答える