Простая 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;
}

Однако после компиляции и запуска программы все, что я получаю, это пронзительный визг, а не нота Си. Я не уверен, где я иду не так.

0 ответов

Другие вопросы по тегам