Простая C программа, которая выводит битовый поток, соответствующий музыкальной ноте
Я написал программу, которая должна выводить поток битов, который при передаче по pacat должен воспроизводить среднюю ноту Си:
#include <stdio.h>
#include <math.h>
#include <time.h>
#define PI 3.1415926
int main() {
clock_t t1 = clock();
clock_t t2 = clock();
double cycles = 0;
double period = 0.00382995; // = 1/261.1, the frequency of middle C
double density = 0.000001; // 1mil outputs per cycle
while(1) {
t2 = clock();
if(difftime(t2, t1) >= (period * cycles * density)) {
fputc((int) 100*sin(t2), stdout);
cycles += density;
}
}
return 0;
}
Однако после компиляции и запуска программы все, что я получаю, это пронзительный визг, а не нота Си. Я не уверен, где я иду не так.