2011-01-15 11 views
6

低速ミリ秒のレートでConsole.Beep()を使用しようとしましたが、2つの周波数を同時に再生していますが、ビープ音が鳴り止むと音が鳴ります。私はそれを研究しようとしましたが、何も見つかりませんでした。私が探しているDirectSoundを除いて、どこから始めたらいいのか分かりません。私が必要とするのは、C#では、1つのスピーカーから2つ以上の周波数を同時に再生するプログラムを作ることです。C#でのサウンド・コードですか?

ありがとうございました。

+0

私は自分のBBC Microを思い出させています...今はそれがパワーを持ったマシンでした。この種の高度なプログラミングはおそらくC#では不可能です。 –

答えて

2

素晴らしい.NETバインディングを持つDirectSoundをお勧めします。 2つ(またはそれ以上)のオブジェクトを使用して、Playメソッドを呼び出して同時に再生することができます。

This tutorialは、オンザフライでサウンドを合成することによって、C#で簡単なドラムマシンを実装する方法を示しています。それが役に立てば幸い。

+0

それは私が必要とするもののように見えます。ありがとう。 – apophis

+0

@apophis:心配はいりません。 – CesarGon

0

MIDIを使用してみてください。 This exampleを起動してください。それはいくつかの人々が非常に推薦するMIDIライブラリを使用します。

+0

乾杯。私はそれを見てみましょう。 – apophis

0

Console.Beep()は同期しており、サウンドが終了するまで戻りません。

Simple DirectMedia Layer(SDL.net)を試してください。

0

ここでは、WAVまたはMIDIファイルを再生するための非常に簡単なサンプルコードを示します。このようにすれば、コードを一度書くだけで、サウンドエフェクトを変更したい場合は、wavファイルまたはmidファイルを維持することができます。あなたが事前に周波数がわかっている場合

Play Any Sound File - C#(マネージコードのためのDirectX 9.0を使用します)

0

あなたはWaveファイル(大胆または他の同様のプログラム)にそれらを合成し、その後SoundPlayerクラスでウェーブファイルを再生することができます。

string path = /*path goes here*/; 
player = new SoundPlayer(path); 
player.Play(); 

実行時に合成する必要がある場合は、手動でファイルを書き込む必要があります。 Here'sあなたがwaveファイルを構築するために参照できるSOの質問。

関連する問題