Question
Frequency change on audio
#define F_SAMPLE 48000.0f
#define F_OUT 4000.0f
#define PI 3.14159f
for(uint16_t i = 0; i < sample_N; i++)
{
sin = sinf(i * 2 * PI * sample_dt);
dataI2S[i*2] = sin * 5000;
dataI2S[i*2 + 1] =sin * 5000;
}
HAL_I2S_Transmit_DMA(&hi2s3, (uint16_t *)dataI2S, sample_N*2);#define F_SAMPLE 48000.0f
#define F_OUT 4000.0f
#define PI 3.14159f
int a = 1;
for(uint16_t i = 0; i < sample_N; i++)
{
sin = sinf(i * 2 * PI * sample_dt);
if(a%3) {
dataI2S[i*2] = sin * 5000;
dataI2S[i*2 + 1] =sin * 5000;
} else if (a%2) {
dataI2S[i*2] = sin * 3000;
dataI2S[i*2 + 1] =sin * 3000;
} else if (a%1) {
dataI2S[i*2] = sin * 7000;
dataI2S[i*2 + 1] =sin * 7000;
}
a++;
}
HAL_I2S_Transmit_DMA(&hi2s3, (uint16_t *)dataI2S, sample_N*2);I am using the very above code to send sin wave to audio output and it perfectly creates sound. But I want to randomize the vawe and what I did is above. But it just generates the same sound. It does not produce sin*7000 or sin*3000. If I say only produce sin*3000 it does that. What could go wrong?
