需要一个从Midi生成WAVE的库

时间:2010-02-23 21:29:19

标签: .net midi wave

我有大约80个用MIDI编写的乐曲,我想用声音库将它们转换成WAVE。因此,它们可以在所有计算机上播放并发出相同的声音。是否有可以自动执行此操作的库?

最好是在C#中,但其他编程语言也可以。

6 个答案:

答案 0 :(得分:3)

这就是所谓的Soft Synth,如果您希望所有机器上的声音相同,您还需要一组乐器样本。

如果您只是将它们全部转换为波形文件并发送波形文件,您可能会发现将节省内存。高质量的仪器组件可能非常大,并且大多数都是受版权保护的。

答案 1 :(得分:3)

我已经使用了Timidity来做到这一点,但那已经很多年了,而且还在Linux上。

答案 2 :(得分:3)

快速回答 - 看看FluidSynth。它是使用SoundFont格式的声音库的软件合成器。它还有一个可用于“渲染”MIDI文件的库。

可以在http://www.hammersound.com上找到具有通用MIDI声音设置的银行,例如http://www.hammersound.com/cgi-bin/soundlink.pl?action=view_download_page;ID=407;SoundFont_Location_Selected=Download;SoundFont_Filename_Selected=http://www.jchyun.com/~sonic/sf2/hubbe/Hubbe64%20GM%20v2.50.zip

你可以采取另一种方式 - 你可以通过你的设备播放它们,启动录音软件,将输入设置为“你听到的”,录制它然后剪切它。

更长的答案 - 问题是,您对此程序的需求和目的是什么?

如果您喜欢不同计算机上MIDI文件的相同声音,则可以使用以下选项:

  • 仅使用MIDI。 MIDI声音是标准化的,但声卡中的样本可能存在差异。你想要使用一些特别好的声音吗?
  • 使用支持SoundFonts的卡 - 如SoundBlaster AWE 32及更高版本,将录音输入设置为“你听到的内容”并录制声音。
  • 将MIDI文件转换为某种跟踪器格式。此格式将音符保存为midi,但也允许将声音样本保存在一个文件中。虽然转换需要一些工作量。模块文件包含可以按请求顺序播放的所谓模式。这将是您可以轻松循环播放一首歌的游戏的理想示例。优点是每台计算机上的声音相同,体积小。缺点可能是质量下降,因为样本间距上下移动以产生各种音调。如果您使用多重采样仪器,那将不是您的担忧。如果你更喜欢这种方式,我建议你看一下IT(ImpulseTracker)和mo3格式。作为跟踪器编辑器,可以使用OpenMPT。它还允许导入和导出MIDI文件。要播放这些文件,您可以使用MikMod库或FMOD库(商业)。
  • 使用使用声音库的软件合成器。这种合成器的例子是FluidSynth。如果这些音乐应该嵌入到某个节目中,那么这可能是一个很好的选择。
  • 使用外置MIDI声音模块,如Roland SonicCell或任何好听的键盘作为我最喜欢的Korg M50,将此模块的插头输出到声卡中,在某些MIDI播放器中设置播放列表,选择此设备,从连接开始录制软件声音输入,录音和剪辑。

P.S。很抱歉没有链接,因为我是新来的,我的答案中只有两个链接。

答案 3 :(得分:0)

如果它们是静态midi安排,你可以使用带有一些软合成插件的DAW(例如http://www.cockos.com/reaper/ Cubase等等,并且只为你的应用提供wavs \ mp3s??

答案 4 :(得分:0)

PistonSofts的直接MIDI转MP3转换器。我不认为它本身就是,但它有一个命令行界面。

答案 5 :(得分:0)

你可以使用FFMPEG来处理电影和音频的转换,包括我相信MIDI到Wave。 http://ffmpeg.arrozcru.org/wiki/index.php?title=Links有关于该过程的一些基本信息,但基本上一旦安装,您就可以在后台进程线程中运行命令行进程并在完成后引发事件。

http://code.google.com/p/ffmpeg-sharp/是为FFMPEG和.net框架构建的包装器。我相信可能还有更多