从midi生成mp3

时间:2010-02-21 23:37:05

标签: c# .net mp3 midi

我需要批量生成MIDI文件中的MP3文件。有没有可以做到这一点的图书馆?最好是开源的,用.NET编写

4 个答案:

答案 0 :(得分:2)

您可以使用批处理文件和vlc将midis转换为mp3。

正如在VLC wiki中声明在Windows中播放midis一样,您需要1.1.0版本以及声音字体。此版本目前正在测试中,因此可以从http://download.videolan.org/pub/videolan/testing/

下载

根据wiki设置midi支持并进行测试(通过播放midi)。您可以设置批处理文件。

我用来将单个midi转换为mp3的命令是

C:\Users\Public\Music>"C:\Program Files\VideoLAN\VLC\vlc" -I dummy -vvv "australia.mid" --sout=#transcode{acodec="mp3",ab="512","channels=2"}:standard{access="file",mux="raw",dst="australia.mp3"} vlc://quit

上述命令将两个文件保存在同一文件夹中。 我已根据VLC wiki- How_to_Batch_Encode

上的信息调整了此命令

答案 1 :(得分:1)

你最大的困难是从midi转换为任何格式的波形。例如,midi没有指定钢琴的声音,因此每个midi播放器都会听起来不同。

答案 2 :(得分:0)

主题Need a library that generates WAVE from Midi中也讨论了这个主题,也许您可​​以在那里找到一些信息,特别是在my answer中。

然后可以将产生的波形编码为MP3或您喜欢的任何格式。使用LAME编码器dll在example project中对WAVE编码为MP3。

答案 3 :(得分:0)

可以使用timiditylame

来实现
timidity myMidiFile.midi -Ow -o - | lame - audioOutput.mp3"

对于所有批处理需求,请在bach脚本中使用这些程序。

如果必须与C相关,请尝试查看Csound

对于.NET,请查看NAudio