J'essaie actuellement de prendre du son et de le renvoyer aux haut-parleurs. J'utilise la bibliothèque openframeworks qui rend cela assez simple.Alimentation de l'audio directement de l'entrée vers la sortie, avec un son clair C++
J'utilise cette classe
http://www.openframeworks.cc/documentation?detail=ofSoundStream
La fonction de configuration est
ofSoundStreamSetup(int nOutputs, int nInputs, ofSimpleApp * OFSA, int sampleRate, int bufferSize, int nBuffers)
et je me sers
ofSoundStreamSetup(1, 1, this, 44100, 512, 4)
Mes infos d'en-tête est
float buffer1[1000000];
float buffer2[1000000];
float* readPointer;
float* writePointer;
int readp;
int writep;
J'ai deux fonctions
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;
}
}
}
Cela fonctionne, mais la qualité semble coquelicot et craquelée. Je pense que je devrais mettre en place un tampon de cercle approprié, ou un double tampon, mais je ne suis pas sûr.
Est-ce que quelqu'un peut me diriger dans la bonne direction pour que l'audio sonne bien, en utilisant une méthode aussi simple que possible?
plutôt que 2 tampons séparés, est-ce que je pourrais juste utiliser un seul grand tampon, et juste utiliser différentes positions dans le tableau? Ou y a-t-il un problème de performance avec cela? Dois-je également utiliser des pointeurs séparés lorsque je parcours le tableau, ou pouvez-vous utiliser le même? –
Je n'ai pas compris ce qu'il en est, alors je vais devoir attendre jusqu'à ce que je puisse recommencer. Merci. –