Без обид, но... Вам сколько лет?

Цитата(uragan90 @ Dec 3 2013, 20:11)

Понемемаете мне нужна функция тестовая которая в массив сложила жы синус, два канала
CODE
#include <iostream>
#include <fstream>
#define _USE_MATH_DEFINES
#include <math.h>
class SinGen {
float amp;
float phase_inc;
public:
SinGen(float amplitude, float frequency, unsigned int rate = 8000)
{
amp = amplitude;
phase_inc = (float(2 * M_PI) * frequency) / rate;
}
unsigned char getSample(int i)
{
return 128u + (unsigned char)(amp * sin(phase_inc * i));
}
};
typedef union {
unsigned short data;
struct {
unsigned char left;
unsigned char right;
} chan;
} stereo_sample_t;
static void sine_test(stereo_sample_t *buf, int num_samples) {
SinGen left_ch(65, 10);
SinGen right_ch(45, 20);
for(int i = 0; i < num_samples; i++) {
buf[i].chan.left = left_ch.getSample(i);
buf[i].chan.right = right_ch.getSample(i);
}
}
int main(void) {
using namespace std;
enum {BUF_SIZE = 8000};
stereo_sample_t sine_buf[BUF_SIZE];
sine_test(sine_buf, BUF_SIZE);
ofstream SinDataFile;
SinDataFile.open("sin.txt");
for (int i = 0; i < BUF_SIZE; i++) {
SinDataFile << i << '\t';
SinDataFile << (unsigned)sine_buf[i].chan.left << '\t' << (unsigned)sine_buf[i].chan.right;
SinDataFile << endl;
}
SinDataFile.close();
return 0;
}