低速ミリ秒のレートでConsole.Beep()を使用しようとしましたが、2つの周波数を同時に再生していますが、ビープ音が鳴り止むと音が鳴ります。私はそれを研究しようとしましたが、何も見つかりませんでした。私が探しているDirectSoundを除いて、どこから始めたらいいのか分かりません。私が必要とするのは、C#では、1つのスピーカーから2つ以上の周波数を同時に再生するプログラムを作ることです。C#でのサウンド・コードですか?
ありがとうございました。
低速ミリ秒のレートでConsole.Beep()を使用しようとしましたが、2つの周波数を同時に再生していますが、ビープ音が鳴り止むと音が鳴ります。私はそれを研究しようとしましたが、何も見つかりませんでした。私が探しているDirectSoundを除いて、どこから始めたらいいのか分かりません。私が必要とするのは、C#では、1つのスピーカーから2つ以上の周波数を同時に再生するプログラムを作ることです。C#でのサウンド・コードですか?
ありがとうございました。
素晴らしい.NETバインディングを持つDirectSoundをお勧めします。 2つ(またはそれ以上)のオブジェクトを使用して、Play
メソッドを呼び出して同時に再生することができます。
This tutorialは、オンザフライでサウンドを合成することによって、C#で簡単なドラムマシンを実装する方法を示しています。それが役に立てば幸い。
MIDIを使用してみてください。 This exampleを起動してください。それはいくつかの人々が非常に推薦するMIDIライブラリを使用します。
乾杯。私はそれを見てみましょう。 – apophis
Console.Beep()は同期しており、サウンドが終了するまで戻りません。
Simple DirectMedia Layer(SDL.net)を試してください。
ここでは、WAVまたはMIDIファイルを再生するための非常に簡単なサンプルコードを示します。このようにすれば、コードを一度書くだけで、サウンドエフェクトを変更したい場合は、wavファイルまたはmidファイルを維持することができます。あなたが事前に周波数がわかっている場合
Play Any Sound File - C#(マネージコードのためのDirectX 9.0を使用します)
あなたはWaveファイル(大胆または他の同様のプログラム)にそれらを合成し、その後SoundPlayerクラスでウェーブファイルを再生することができます。
string path = /*path goes here*/;
player = new SoundPlayer(path);
player.Play();
実行時に合成する必要がある場合は、手動でファイルを書き込む必要があります。 Here'sあなたがwaveファイルを構築するために参照できるSOの質問。
私は自分のBBC Microを思い出させています...今はそれがパワーを持ったマシンでした。この種の高度なプログラミングはおそらくC#では不可能です。 –