2

割り当てられたキーを押すか、ボタンをクリックすることで正しい音を出すピアノを作成しようとしています。

関数を使用してこれまでのところ動作しbeep(freq, duration)ますが、そのコマンドには一度に 1 つのノートという制限があります。したがって、すべてのノートを実行すると、設定されたデュレーションですべてのノートが再生されるまで遅れます。

ボタンを押している間、またはキーを押している間だけ音を鳴らしたいのですが、一度に複数の音を鳴らすこともできます。ほとんどのキーボードのハードウェアの制限は知っていますが、少なくとも一度に 3 つのキーを押して、3 つのノートすべてを同時に生成して再生できるようにしたいと考えています。間隔。

私が使用しているコード:

Beep(GlobalVariables.frqD, intDuration)

Beep を次のように宣言します。

Private Declare Function Beep Lib "kernel32" (ByVal soundFrequency As Int32, ByVal soundDuration As Int32) As Int32 
4

1 に答える 1

0

キーを押している間だけ演奏するのは簡単なはずです。

while(keypressed)
{
    beep(freq,millisecond);
}

非常に短いビープ音の周波数は、単一の音のように聞こえるはずです(聴覚周波数ではなく、時間周波数です)。

ただし、ビープ音の方法については、実際のスピーカーではなく、マザーボード上のスピーカーを使用していることを最後に確認しました。私が間違っているかもしれませんが、一度に複数のトーンを取得することはできないようです。このようなことを試すか、適切なオーディオ再生ライブラリをグーグルで検索してください。これでコードを作成できるはずです。

于 2013-09-26T14:23:57.077 に答える