サウンド カードにトーンを生成しようとしています (周波数: 1950 hz、持続時間: 40 ms、レベル: -30 db、右チャンネル (ステレオ)、蒸気 1)。最終的には、これらのトーンを 2 つ再生したいと考えています (1 つはチャンネル 1 に、もう 1 つはチャンネル 2 に行きます)。
どんな助けや指示も大歓迎です。
ありがとう、DW
こんにちはビョルン、私はこれを試しましたが、周波数として期待しているものを取得していません (さらに、音がきれいではないようです)。何が問題なのですか?助けていただければ幸いです。
#define SAMPLE_RATE (44100)
#define TABLE_SIZE (200)
float FREQUENCY = 422;
...
for(int i=0; i<TABLE_SIZE; i++ )
{
data.sine[i] = (float) sin( (double)i * ((2.0 * M_PI)/(double)SAMPLE_RATE) * FREQUENCY );
}
data.left_phase = 0;
data.right_phase = 0;
...
... in callback function ...
for(unsigned long i = 0; i < framesPerBuffer; i++ )
{
// fill output buffer with sin wave
*out++ = data->amp * data->sine[data->left_phase]; // left
*out++ = data->amp * data->sine[data->right_phase]; // right
data->left_phase += 1;
if( data->left_phase >= TABLE_SIZE )
data->left_phase -= TABLE_SIZE;
data->right_phase += 1;
if( data->right_phase >= TABLE_SIZE )
data->right_phase -= TABLE_SIZE;
}