编辑:正如递归指出的,你're not simply looking for a way to read/write midi files. I misunderstood. If you'试图从mp3 / wav文件中提取笔记,你赢得't have much luck finding any library that does that. It'并不那么简单,因为你已经看到一些应用程序至少会显示你的音频光谱图,如果音频足够干净,只有一个乐器,你可以看到什么似乎是音符 . 但是你必须手动完成这一切 . Izotope RX是我想到的VST .
2 回答
这不是一个微不足道的问题,“你想要的库就在这里”的答案 .
您将不得不开始熟悉快速傅立叶变换的内容,并且有各种库可以实现这些变换 . FFT可以将时间维度数据(如音乐文件)转换为频率维度数据 . 您可以使用FFT算法转换音乐文件,查找频率峰值,尝试将它们映射到音符和和弦 .
这是一个wikipedia entry,显示了傅里叶分析的含义以及它可以应用的例子 .
这是一个寻找C# FFT library的人的答案
一点也不容易 - 祝你好运 .
编辑:正如递归指出的,你're not simply looking for a way to read/write midi files. I misunderstood. If you'试图从mp3 / wav文件中提取笔记,你赢得't have much luck finding any library that does that. It'并不那么简单,因为你已经看到一些应用程序至少会显示你的音频光谱图,如果音频足够干净,只有一个乐器,你可以看到什么似乎是音符 . 但是你必须手动完成这一切 . Izotope RX是我想到的VST .
我可能在5年或6年前遇到过这个问题,并最终开始自己编写(并不像听起来那么容易) . 我有一些工作要读,但没有写,但最终没时间去完成项目 .
我会尝试NAudio . 我不能特别保证它,因为我没有亲自使用它 . 但是,功能列表表示它对读取和写入MIDI文件有广泛的支持 .