MidiSoftwareSynthesisHowTo
原文出处:
原文作者:fishfork
授权许可:GNU FDL
翻译人员:firehare
校对人员:MillenniumDark spider5
贡献者:spider5
适用版本:
文章状态:等待校正
本手册用于使MIDI音乐发声,下列情况可以不用做此操作: a. 您的声卡硬件声音合成(硬波表&FM)能被Linux支持 a. 您使用外置的MIDI设备 大多数人的MIDI音乐播放需要软件(声音)合成。
<#8080FF> 下面这句话由spider5追加。 |
由于c-media和soundmax等声音芯片的卓越性能,现在使用板载声卡已经非常普遍,软波表很有必要。Ubuntu不区分内置和外置声卡,因此默认是采用软波表方法的。如果您用的是外置声卡,那么本文的大部分内容都对您没有什么用处--当然使用Timidity也是个不错的选择,您只要参照probe 将Timidity设为MIDI服务器部分的modprobe设置,应该就能使您的外置声卡的MIDI序列器工作。
有两种主要的程序可以实现软件合成,Timidity和Fluidsynth。本节此时只是展示如何安装和使用Timidity。
安装Timidity++
您需要启用Universe软件库(参见AddingRepositoriesHowto)。
开始安装TiMidity++(参见SynapticHowto)。
接下来你需要一组例子。最容易的方式就是安装‘freepats’包(下载需28MB),或者为了能得到更好的声音,把下列的软件库信息写到您的/etc/apt/sources.list文件中:
deb http://www.fbriere.net/debian/dists/etch misc/
然后您可以安装'timidity-patches-eaw'包(大约要下载31MB),并改变/etc/timidity/timidity.cfg文件里的这行:
source /etc/timidity/freepats.cfg
改成这样:
dir /usr/share/timidity/patches-eaw source /etc/timidity/eawpats.cfg
接着下载配置文件:
cd /etc/timidity sudo wget http://timidity.s11.xrea.com/files/cfgs/eawpats.cfg
要使用其他的声音采样,可参考接着的'Finding and setting up a soundfont'部分。
当你安装好了之后,你可以尝试播放一个MIDI文件:
timidity myfile.mid
如果一切正常的话,你可以听到合成音乐的优美旋律。如果你有问题,请阅读下面的“减少CPU的使用”。 Anchor(probe)
将Timidity设为MIDI服务器
执行下列命令:
sudo modprobe snd-seq-device sudo modprobe snd-seq-midi sudo modprobe snd-seq-oss sudo modprobe snd-seq-midi-event sudo modprobe snd-seq
这样会加载缺少的模块。你也许不需要全部的模块(我发现只需要前面二个就可以正常工作了)。然后输入:
timidity -iA -B2,8 -Os1l -s 44100
该命令使Timidity++成为MIDI服务器并打开2个MIDI端口,128:0 ad 128:1。在你运行它之后,你就可以运行MIDI播放器了。你可以打开另一个终端并运行命令:
pmidi -p 128:0 music.mid kmid music.mid
关闭Timidity,可以在它运行的终端里按CTRL-C。
以根用户来运行服务也许能提高性能,因为它能给进程更高的权限。
<#8080FF> 原文的Notedit疑为作者笔误,可能是NoteEdit,一个五线谱编辑器。 |
NoteEdit或者您自选的乐谱编辑器将被载入并自动识别MIDI端口。
如果计算机除了播放音乐外还在忙于处理其他事情,你也许会听到一些刮擦音或者有一些潜在的问题。这可以通过打实时内核补丁来解决,但这已经超出了本指南的范围。
引导时自启动Timidity
当你安装Timidity时,Ubuntu Hoary会在/etc/init.d目录中设置启动脚本。为了能在引导时启动,编辑/etc/default/timidity文件并反注释下列行:
TIM_ALSASEQ=true
你也需要添加需更早引导的模块到/etc/modules目录中。
找到并设置soundfont
<#8080FF> 注:SoundFont就是一组经过设定、可下载、并能运用到你的音乐里的声音。 |
网站: http://www.personalcopy.com (尝试 Unison.sf2) [WWW] http://www.hammersound.net/ 或在搜索引擎中查找Soundfonts。在http://timidity.s11.xrea.com/files/readme_cfgp.htm可以找到一个很长的列表,其中正数第15个 (SGM-whatever) 对一般情况下使用TiMidity已经足够了。
如果你的文件是以.sfArk结束的话,那么它是用讨厌的专利格式压缩的。你也许需要用Windows系统根据所用版本来解压它。详情请参见http://melodymachine.com/sfark.htm ,那儿提供一个Linux版本的工具。
接下来,你需要创建文件/etc/timidity/timidity.cfg,并将下列行添加其中(适当编辑)
soundfont /pathtothesoundfontfile/soundfontfile.sf2
Linux上的sfArk
如果您无法用Linux版的解压工具读取sfArk压缩格式的Soundfonts,您可以使用WINE在Linux中安装Windows版的sfArk。如果您的机器里没安装WINE,您可以用下列命令安装:
sudo apt-get install wine
接着,您必须从上面列出的链接中获得sfArk。一旦装好了WINE,您要做的就是切换到下载的路径,并执行下列命令:
wine nameoffile
sfArk也可以在Crossover Office 5上很漂亮地运行。
减少CPU的使用
如果Timidity++在你低配置机器上占用太多CPU的话,试着将下列几行添加到/etc/timidity/timidity.cfg文件的开头(你也许需要创建该文件)
opt EFresamp=l #use linear resampling opt EFvlpf=d #disable VLPF opt EFreverb=d #disable reverb opt EFchorus=d #disable chorus opt EFdelay=d #disable delay
在Breezy Badger and Dapper Drake里,只需要简单地反注释文件中处理低速CPU的部分。可是,其中一行有错误,"opt no-antialias"应该改成"opt --no-anti-alias"。另外,"opt p32a"换成"opt p64a"比较好,因为32个声部太少了。
讨论
请到[1]提问。