【问题标题】:Are there any open source software or c# libraries to extract piano chords from polyphonic music file? [closed]是否有任何开源软件或 c# 库可以从复音音乐文件中提取钢琴和弦? [关闭]
【发布时间】:2011-10-14 10:09:19
【问题描述】:

我是这个领域的新手,恳请您的帮助。是否有任何 C# 库可以从复音音乐文件中提取钢琴和弦?我想用这个钢琴和弦创建一个 MIDI 文件。可能吗?如果你能指出任何开源软件也很好。

提前致谢。 谢琳

【问题讨论】:

  • 多态是什么意思?
  • 如果是“断弦”呢?
  • @recursive 猜测,“复音”
  • 是的.. 很抱歉它是和弦的
  • @thSoft 每个琶音的和弦都断了,但不是每个断的和弦都是琶音

标签: c# audio open-source midi


【解决方案1】:

编辑:正如递归所指出的,您不仅仅是在寻找一种读取/写入 midi 文件的方法。我误解了。如果您尝试从 mp3/wav 文件中提取注释,那么您将很难找到任何可以做到这一点的库。这并不简单,因为您使用的是模拟数据而不是数字数据。我见过一些应用程序,它至少会向您显示音频的光谱图,如果音频足够干净并且只有一个乐器,您可以看到似乎是音符。但是您必须手动解决所有问题。 Izotope RX 是我想到的 VST。

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

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

【讨论】:

  • 我认为提问者希望从数字音频源中提取音符数据,而不是 MIDI。这要困难得多。
【解决方案2】:

这不是一个“你想要的库在这里”答案的小问题。

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

这里有一个wikipedia entry,展示了傅里叶分析是什么以及它可以应用于什么的示例。

对于正在寻找 C# FFT library 的人来说,这是一个 SO 答案

一点都不容易——祝你好运。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-26
    • 2013-03-07
    • 2011-06-15
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多