Привет всем, я сейчас пытаюсь понять, как воспроизвести тон, который я сгенерировал с помощью синусоидальной волны.
Вот мой код:
#include <iostream>
#include <OpenAL/al.h>
#include <OpenAL/alc.h>
#include <Math.h>
using namespace std;
int main (int argc, char * const argv[]) {
int number = 0;
int i, size;
double const Pi=4*atan(1);
cout << "Enter number of seconds:" << endl;
scanf("%d", &number);
size = 44100*number;
unsigned char buffer [size]; //buffer array
for(i = 0; i < size; i++){
buffer[i] = (char)sin((2*Pi*440)/(44100*i))*127;
}
return 0;
}
Очевидно, что в данный момент он ничего не делает, так как я понятия не имею, как воспроизвести буфер. Я не хочу создавать wav-файл и не хочу его загружать. Я просто хочу воспроизвести созданный мной буфер.
В настоящее время я работаю над Mac OS X и пробовал использовать методы OpenAL - однако я обнаружил, что alut и alu больше не являются его частью, и если я попытаюсь использовать его, то окажется, что все это в любом случае разорительно. Я также попытался включить QAudioOutput, но по какой-то причине его нигде нет на моем Mac.
Мне просто нужно простое воспроизведение созданного мной тона. Есть ли у кого-нибудь что-нибудь, на что они могут мне указать?
Большое спасибо !!!