是否有任何开源软件或c#库从复音音乐文件中提取钢琴和弦?

时间:2011-07-27 16:02:43

标签: c# audio open-source midi

我是这个领域的新手,所以请求你的帮助。有没有可以从复音音乐文件中提取钢琴和弦的C#库?我想用这个钢琴和弦创建一个midi文件。可能吗?如果你能指点我任何开源软件也没关系。

提前致谢。 Shereen

2 个答案:

答案 0 :(得分:2)

对于“你想要的图书馆在这里”的回答,这不是一个小问题。

您将不得不开始熟悉快速傅立叶变换的内容,并且有各种库可以实现这些变换。 FFT可以将时间维度数据(如音乐文件)转换为频率维度数据。您可以使用FFT算法转换音乐文件,查找频率峰值,尝试将它们映射到音符和和弦。

这是一个wikipedia entry,显示了傅立叶分析的含义以及它可以应用的例子。

以下是寻找C# FFT library

的人的答案

一点也不容易 - 祝你好运。

答案 1 :(得分:1)

编辑:正如递归指出的那样,你不只是在寻找一种读/写midi文件的方法。我误解了。如果你试图从mp3 / wav文件中提取笔记,你将找不到任何能够做到这一点的库。它并不那么简单,因为您使用的是基本模拟数据而不是数字数据。我见过一些应用程序至少会向您显示音频的光谱仪,如果音频足够干净并且只有一个乐器,您可以看到看起来像是音符。但是你必须手动完成这一切。 Izotope RX是我想到的VST。

我可能在5年或6年前遇到过这个问题,并最终开始编写自己的问题(并不像听起来那么简单)。我有一些工作要读,但没有写,但最终没时间去处理这个项目。

我会尝试NAudio。我不能特别保证它,因为我没有亲自使用它。但是,功能列表表示它对读取和写入MIDI文件有广泛的支持。