C语言音频处理(Audio Processing in C)(1)

Winola ·
更新时间:2024-11-10
· 981 次阅读

先来简单的计算程序:将MIDI Notes映射到对应频率,或给出一个频率找到与之临近的MIDI映射。(相当于刚开始学C时做的计算题代入到这个情境中,简单,主要理解MIDI音符和频率的等比关系)。只是理解在寻找临近midi映射的时候midinote1 = (int)(fracmidi + 0.5);这个+0.5,就是小数点超过0.5,该进位就先进了、加上去了再舍弃小数点,这算最初级的四舍五入方法。

#include #include int main(void) { double semitone_ratio,frequency,frequency1,fracmidi; double c0;//MIDI note 0 double c5;//MIDI note central C int midinote,midinote1; semitone_ratio = pow(2, 1 / 12.0); c5 = 220.0*pow(semitone_ratio, 3); c0 = c5 * pow(0.5, 5); midinote = 73;//73 midinotes in total frequency = c0 * pow(semitone_ratio, midinote); printf("frequency %f cosrespond to MIDI Note %d\n", frequency, midinote); printf("input frequency\n"); scanf_s("%lf", &frequency1); fracmidi = log(frequency1 / c0) / log(semitone_ratio); midinote1 = (int)(fracmidi + 0.5); printf("nearest MIDI note to f %f is %d\n", frequency1, midinote1); system("pause"); return 0; }

原创文章 31获赞 13访问量 6006 关注 私信 展开阅读全文
作者:粽子哥哥123



processing C语言 audio

需要 登录 后方可回复, 如果你还没有账号请 注册新账号