Si, no es mala idea, pero las tween serían ya para aplicar efectos al modulador, para construir un tono necesito montar una portadora con sin() o cos() y guardarlo en un array, y luego con tween modificar la portadora para conseguir la modulación, ya tengo la parte de la portadora, el modulador creo que va a ser directamente en código gemix por que me gustaría usar el modulo tween desde C++ pero no tengo ni idea de como hacerlo, quizá busque por la red una lib que haga algo parecido, en flash hay algunas funciones muy parecidas pero todavía no he mirado sin en C/C++ tengo algo así, y montarlo yo lo veo poco factible para que me quede de la misma calidad y posibilidades que el modulo que ya tiene gemix..
El código de la portadora es este:
#include "sndfile.hh"
#include <iostream>
#include <cmath>
#include <string>
int main()
{
std::string pepe = "foo.wav";
const int format=SF_FORMAT_WAV | SF_FORMAT_PCM_16;
// const int format=SF_FORMAT_WAV | SF_FORMAT_FLOAT;
const int channels=1;
const int sampleRate=48000;
const int frecuencia = 2500;
const char* outfilename = pepe.c_str();
//const float M_PI = 3.1416;
SndfileHandle outfile(outfilename, SFM_WRITE, format, channels, sampleRate);
if (not outfile) return -1;
// prepare a 'n' seconds buffer and write it
const int n = 1;
const int size = sampleRate*n;
float sample[size];
float current=0.;
for (int i=0; i<size; i++) {
sample[i]=sin(float(i)/size*M_PI*frecuencia);
//std::cout << sample[i] << std::endl;
}
outfile.write(&sample[0], size);
return 0;
Es bastante sencillo con la lib que uso: 'libsndfile', está disponible para windows y linux, pero no estoy seguro de si me funcionará en mac.. tengo que mirarlo todavía..