Я сейчас пытаюсь взять звук и подать его обратно на динамики.Я использую библиотеку openframeworks, которая делает это довольно простым.
Я использую этот класс
http://www.openframeworks.cc/documentation?detail=ofSoundStream
Функция установки
ofSoundStreamSetup(int nOutputs, int nInputs, ofSimpleApp * OFSA, int sampleRate, int bufferSize, int nBuffers)
и я использую
ofSoundStreamSetup(1, 1, this, 44100, 512, 4)
Моя информация заголовка:
float buffer1[1000000];
float buffer2[1000000];
float* readPointer;
float* writePointer;
int readp;
int writep;
У меня есть две функции
audioReceived (float * input, int bufferSize, int nChannels)
if (writep < 10)
{
for (int i = 0;i < bufferSize; i++)
{
writePointer[writep*i] = input[i];
}
writep++;
if (writep >= 10)
{
writep = 0;
}
}
audioRequested(float * output, int buffersize, int numChannels)
{
if (writep > 0)
{
for (int i = 0; i < bufferSize; i++)
{
output[i] = readPointer[readp * i];
}
readp++;
if (readp >=10)
{
readp = 0;
}
}
}
Это работает, но качествокажется маком и хрустящим.Я думаю, что мне, возможно, придется реализовать правильный круговой буфер или двойную буферизацию, но я не уверен.
Может ли кто-нибудь указать мне правильное направление, как я могу получить хорошее звучание звука, используя какпростой метод, насколько это возможно?