如何在c#中将声波转换为midi

时间:2010-07-19 09:43:48

标签: c# midi wave

有谁知道如何将模拟声波转换为MIDI文件?

我知道WAV与MP3不同,但现在这并不重要。我只想学习转换的基本逻辑。如果有人能给我一些关于它的文章或一些源代码,我将不胜感激。

4 个答案:

答案 0 :(得分:2)

我意识到你想把你自己的波写入MIDI转换器。

但是,我不知道有几家公司有软件可以执行wave到MIDI的转换。

为了感兴趣的人,以下是 audio to MIDI programs 的列表。

我选择 WidiSoft 网站查看,因为它位于列表的顶部,并且在Google搜索中名列前茅。英语不是他们的第一语言。但是,您可以在购买之前下载并试用该软件。

这不是产品评论,但根据您的转化需求,您应该能够找到已存在的内容。

答案 1 :(得分:1)

波浪是某些声音的实际声波。 midi可以被认为是在预定义乐器上播放的音乐音符(存储在计算机上或声卡上)。

因此,midi生成的声音是可以存储在波形文件中的声音子集。这意味着你无法将wave转换为midi(尽管你可以反过来这样做)。

如果你知道有关你希望转换的波浪的某些事情,那么它是可能的。例如,如果您知道波只包含一个paino,则可以将其转换为注释,从那里转换为midi。

答案 2 :(得分:0)

使用遗传编程的概念:蒙娜丽莎项目的演变,但应用于声音而不是图像。

答案 3 :(得分:0)

在我看来,您应该先将音频分成小片段(每个片段约.25秒)。然后,您可以使用FFT获得每个片段所需的尽可能多的频率和相关的振幅(可能是8个?)。然后,您可以将频率四舍五入到最接近的音符。然后,我认为至少在此基本级别上,将其转换为MIDI非常容易。因此,您需要编写对音频片段进行采样的C#软件(完成:请参见NAudio),然后获取(我不知道在哪里)对片段进行FFT的软件。将频率转换为音符是查表。您也可以找到进行转换的商业软件:https://www.celemony.com/en/melodyne/new-in-melodyne-5