C ++ - Воспроизведение тона, созданного из синусоидальной волны

Привет всем, я сейчас пытаюсь понять, как воспроизвести тон, который я сгенерировал с помощью синусоидальной волны.

Вот мой код:

#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.

Мне просто нужно простое воспроизведение созданного мной тона. Есть ли у кого-нибудь что-нибудь, на что они могут мне указать?

Большое спасибо !!!

5
задан Paul R 29 March 2011 в 08:08
поделиться