KeyFC欢迎致辞,点击播放
资源、介绍、历史、Q群等新人必读
KeyFC 社区总索引
如果你找到这个笔记本,请把它邮寄给我们的回忆
KeyFC 漂流瓶传递活动 Since 2011
 

midi軟件一問

[ 9078 查看 / 12 回复 ]

小弟最近在試玩幾個midi編輯軟件, 有些是五線譜輸入的,
但是發現同一個midi檔案, 不同的軟件下, 播放的聲音是不同的.
但 "另存新檔" 成*.mid檔案後, 播放是一樣的. (不是錄成*.wav, *.ogg之類)
為什麼呢??
是不是每一個軟件都會有它自己的一個獨立的midi庫呢??
分享 转发
TOP

回复:midi軟件一問

所谓Midi文件,其实就是一串数据
这个和Wav等波形格式是不一样的。
而Midi文件里面,有音色的定义
不过只定义了音色代码。
而每个软件用的音色库,的确是不一样的
这个不只是软件,电子琴都是这样
本人家里的PSR-640,排在音色库001的是大钢琴,排在音色库第5位的是爵士乐钢琴。
但是软件里自己附带的音色库,也许排在音色库005的,是其它的乐器。
这时我在PSR-640上面用这两种音色录制成得Midi,到了电脑上,就有可能不同。
当然,001是大钢琴,这个很多软件都是统一的就是了。
至于播放Mid档案效果一样。那是因为播放的时候,调用的是同一个音色库,就是微软的GM Midi音色库。(当然如果你装了Yamaha等软波表则另当别论就是了……)
「大地坏灭,城市尽毁,死伤惨重;唯一语足志:胜利。」
TOP

回复:midi軟件一問

midi文件可以看成是“为电子设备准备的乐谱”
在windows里默认播放midi的音源是GS,当然你可以改变它
同样编号在不同的音源里可能对应不同的音色,所以midi在不同设备上播放效果不同是很正常的事情
当播放midi时如果CPU负荷过大还容易出现播放错误杂音错音的现象,再加上不同音源不同效果的特性,现在用midi表现的成品音乐已经很少了,不过在以前存储器容量不像现在这么宽裕的情况下用midi做BGM是很多游戏的选择
黑暗之神的约束:
复仇之事,只属于汝,与吾无关
身既事吾,吾亦将赐福与汝
行事之罪,无论大小,皆记于汝身
终末之时,破其混沌之世,并归一始
TOP

回复: midi軟件一問

那麼就是說, 在必要時, 寫譜和錄製需要用不同的軟件??
(不知道各位高手的偏好...)
因為我是鋼琴控, 想用5線譜輸入, 但是那個軟件的midi聲很難聽;
另一個軟件的midi聲不錯, 但是它的輸入方法對我來說很艱難...

還有, 怎樣能減少 / 避免cpu重載而出現雜音呢???

呀, 補充一點, 我不是想用midi來作最後作品格式,
而是想用一個較好的midi音色來錄成*.wav,
無奈現在用的那個軟件, midi音色太差了...
最后编辑koniygn 最后编辑于 2008-12-19 23:20:48
TOP

回复: midi軟件一問

关于之这个问题猫也来稍微解释一下

MIDI这个标准和Wave、Ogg、Mp3一类的标准是两种不同的概念。
MIDI记录的是一种描述,就像乐谱一样,他从逻辑上描述一首曲子使用了哪些乐器,这个乐器演奏的音符是什么样的,这个乐器是采用怎么样的技法来演奏的,是一本可以被电脑识别和读取的数据化的乐谱和演奏指南。而Wave、Mp3这类格式则是记录声音的物理信号,好比唱片或者录音带,它不管音乐是怎么演奏的,它只是把声音的物理振动波形进行记录和还原。

MIDI就像乐谱,你需要一支乐队来演奏乐谱才能明白乐谱中到底写了什么。
Wave就像录音带,你只需要放到录音机里你就能听到音乐。

关于为什么不同的软件播放MIDI的声音不同,楼主需要明白MIDI的技术构成,猫简单的讲一下:
关于MIDI标准:
MIDI是数字乐器的一种工业化的通用通信协议,就像网络上的TCP/IP协议一样。MIDI标准约定各种数字乐器或者MIDI设备之间如何对话和通信。
就像人和人之间使用简谱或者五线谱这些音乐语言互相交流音乐一样,MIDI是各种电子设备之间通行的数字化音乐语言。
关于MIDI设备:
MIDI的设备五花八门,但是有一点是共同的,那就是除了“音源”之外,任何MIDI设备都不能发出声音。
关于音源,猫会在后面具体描述。
我们首先针对MIDI设备举个例子:
例如MIDI键盘,他的外表和一架钢琴的键盘几乎是一样的,但是MIDI键盘不像钢琴那样拥有音锤和钢弦等发声装置。取而代之是一系列的电子仪器装置,他们随时记录键盘的演奏者按下了哪个键,按键的力度有多大。这些信息将被转化为数字信息并通过通信电缆(或其它通信方式)传达给其他的MIDI设备。也许我们的MIDI设备会收到来自MIDI键盘发来这样的信息:“37,100”,这时37可能是按键编号,也许就对应着音乐学上的小字1组a音,而这个100则量化的表明我们到底用了多大的力气来按键。MIDI标准阐述的就是这一堆数字到底代表什么意思,当然我们人无需去理解这些信息,阅读这些信息的是各种电子设备。
关于音源:
猫前面说过,我们有乐谱的时候,需要一支乐队来演奏乐谱,我们才能明白乐谱到底是描述了什么样的音乐内容。
音源这个设备正扮演着MIDI世界中的乐队角色。
音源中包含着一系列的预置声音信息,当有其他MIDI设备向音源发来消息的时候,音源就到自己预置的声音数据中查找收到的消息所相对应的声音信息,并将这些声音信息转变为我们能够听到的音频信号。
例如:音源收到一条消息这样描述:“用1号乐器,演奏第60号音符,演奏力度100”。
这时音源可能理解为:
1号乐器:钢琴
60号音符:小字组c音
100力度:演奏按键力度为最大力度的100/127
于是音源从自己的的资料库中取出钢琴乐器的小字组c音样本,调整样本的声音强度为最大值的127分之100,然后将这个样本信息输出到声卡,于是我们听到了钢琴弹奏中央C的声音。
一个音源中可以包含多种乐器的样本,这些样本可能是通过数学计算模拟出来的,也可能是通过真实的乐器录音获得的,他们都是演奏音乐的最基本的音符发音,当这些发音按照MIDI的乐谱数据编排组合起来并输出的时候,我们就听到了动听的音乐。

正如猫上面所说,音源中的样本可能是从多种途径产生的。现今有很多著名的MIDI设备制造商都出品了大量的音源产品,这些产品既有软件形式的音源也有硬件形式的音源,不同的厂商,不同的音源产品由于使用了截然不同的技术或者录制了截然不同的样本而使得相互之间的音色存在着差异。
例如两个不同的音源对于1号乐器的定义,其中一个音源认为是钢琴,而另一个音源认为是小提琴,同样是是要求使用1号乐器的MIDI音乐可能演奏出截然不同的声音来。是事实上即便两个音源都认为1号乐器是钢琴,但是其中一个音源也许是录制了YAMAHA钢琴的音色,而另一个则录制了Steinway钢琴的音色,则两者还原相同的MIDI信息也会存在声音上的差异。

特别说明:以上仅仅只是猫的举例,那些数字并不一定真的就代表上面所说的东西

楼主使用不同的软件编辑MIDI信息的时候虽然MIDI数据可能是完全相同的,但是由于不同的软件使用了不同的音源导致听上去声音存在差异。
而导出MIDI文件(*.mid)之后,由于大多数播放器都使用了Windows自带的Roland GM/GS音源来播放音乐,所以楼主认为音乐的信号是一致的,但是假如楼主将这个.mid文件放到Quick Time、Windows Media Player和WinGroove Player三种不同不同的播放器中分别播放的时候,很容易就会发现他们播放出来的音乐听上去都有不同之处,原因就是3中播放器都使用了不同的音源来播放MIDI


关于楼主后来提出的关于合成录音的问题
猫建议楼主使用一些音乐工作站软件来达到自己的目的,所谓音乐工作站,就是那些可以将从音乐编辑、合成和混音工作全部包揽下来的软件。例如Cakewalk Sonar或者Steinberg Cubase。
音乐工作站软件大多可以挂载多种不同的音源,我们通常称这些可挂载的音源为音源插件。Windows环境下最常见最通用的是DXi和VSTi两种不同标准的音源插件。
各种音源的信号质量参差不齐,有数百KB容量的超轻量合成器,也有数百GB容量的超豪华取样器,他们的功能特性和使用场合也各不相同。

关于音频插件的使用方法和音乐工作站的使用方法,我们可以写出一大摞的书。楼主要真的做到通晓这些东西可能需要花费几年的时间来学习和积累经验。猫不再过多的赘述。

除了音频工作站之外,猫还有一种解决办法——打谱编辑软件+MIDI合成软件的方式
也就是说利用Guitar Pro或者Overtrue之类的乐谱编辑软件编辑一份乐谱并将其输出为MIDI文件(*.mid),然后使用合成软件将MIDI合成为音频(WAVE)。
这种方式非常原始,但是最容易构建和使用。
常见的可以将MIDI合成为软件WAVE的方案有:Roland VSC波表方案、WinGroove波表方案,QuickTime Pro波表方案,Foobar2000+foo_midi+VSTi方案,Timidity+soundfont方案。
前3种方案都是利用合成器自带的转换功能将MIDI转化为音频数据,操作非常简单但是都只是单一的一个合成器,效果取决于合成器的风格和个人的喜好,总体来说这几个合成器都不算很好的音源,但是确实能够达到目的。当然这几个软件都是收费软件,使用代价都比较高(用PJ的就当猫没有说)。
Foobar2000+foo_midi+VSTi是一种非常不错的解决方案,灵活性、易用性和合成质量都有着不俗的表现,缺点就是目前只能兼容很少的几种VSTi插件,使用需要具备VSTi的相关知识和经验。另外Foobar虽然是免费的,但是大多数VSTi的价格都不菲(用PJ的再次无视猫吧)

Timidity+soundfont方案:
Timidity+soundfont方案是猫的推荐方案,理由有三:
1.搭配组合方式灵活,可以选择很多不同的Sounfront音色库来完成不同的任务。
2.采用音色取样的合成方式,合成质量相对比较高,特别对于真实乐器的还原演绎,这个方案比大多数的低端合成都要强得多。
3.Timidity++是基于GPL协议的开源自由软件,可以跨平台使用,使用可以不支付任何费用而功能不会受到任何限制,如果自己编译的话更不用担心软件存在任何不良插件和病毒。而Timidity++所支持的SoundFont音色库数量庞大,拥有很多达人制作的免费版本可供下载。
说了那么多的优点,猫也谈谈他的缺点:
首先Timidity++的配置和使用相对其他方案来说较为复杂,需要自己去写配置文件。
其次Timidity++将音色库加载到内存里运行,如果加载那些百来MB的音色库文件的话,内存消耗还是比较大的,内存低于512的电脑用起来是一种折磨
当然不管是什么样的缺点,这个方案在猫看来是经典中的经典,这个方案也支持猫度过了长达两年的创作生活。

下面是针对楼主的需求,猫写的一个简单的Timidity+soundfont合成方案构建教程:
1.我们需要下载Timidity++这个软件,如果楼主精通编程的话可以到以下地址下载Timidity++的源代码,并在Cygwin环境使用Autoconfigu和Automake来编译软件
http://timidity.sourceforge.net/
当然你也可以直接下载有爱的达人们已经编译好的Windows应用程序,下面的地址可以获得下载
http://timidity.s11.xrea.com/index.en.html
2.解压缩后可以获得如下几个文件
timw32g.exe
twsyng.exe
twsynsrv.exe
timpp32g.ini
timidity_window.ini
timidity_output.ini
这里我们主要只会使用timw32g.exe这个应用程序,它是Timidity++在Windows下的图形界面程序,而twsyng.exe和twsynsrv.exe则是Windows下的服务程序和管理服务的托盘按钮(其实猫还没有见过什么软件能够用上他们><);
timpp32g.ini、timidity_window.ini和timidity_output.ini几个文件是Timidity++的系统配置文件,从这几个文件可以更改Timidity++的各种配置参数诸如:音色库配置文件的地址、显示字号、显示字体和音频输出方式等,如果不是很明白的话,其实可以不配置这3个文件,大多数我们需要的操作可以在Timidity++的图形界面中解决。
3.除了获得软件之外,我们还需要获得一个SoundFont音色库,楼主喜欢钢琴,那么可以去下载一个钢琴音色库,以下猫给楼主提供一个Fazioli大钢琴音色库的下载地址:
http://www.hum.aau.dk/~bovbjerg/piano3.html
下载的音色库为SfArk格式,这个文件还不能用,它是一个压缩后的SoundFont音色库,需要下载SfArk来解压缩,下载地址如下(网站下点击左侧栏的”SfArk“,在右边打开页面中选择”sfArk v2.15 Download“):
http://www.melodymachine.com/
下载安装并启动SfArk后,将下载的音色库文件”Fazioli Grand Piano v1.3.sfArk“拖放到SfArk中,点击Start,稍候将在原文件所在目录下生成一个同名的SF2格式的文件”Fazioli Grand Piano v1.3.SF2“,喵~这就是我么么想要的音色库文件了 ^^
4.在Timidity++的程序目录下请新建一个文本文档,输入以下内容:
bank 0
0 %font "<path>\Fazioli Grand Piano v1.3.SF2" 0 0 amp=100 pan=0
上述文字中请自己将<path>替换为”Fazioli Grand Piano v1.3.SF2“音色库文件所在的文件目录,例如文件在D:\soundfont目录下,那么语句应当写作
bank 0
0 %font "D:\soundfont\Fazioli Grand Piano v1.3.SF2" 0 0 amp=100 pan=0
请保存文件,并将文件名称改为”TIMIDITY.CFG“
5.启动timw32g.exe程序,点击程序界面Config -> Preference菜单
在弹出的对话框中Player选项卡下的点击”Config File“按钮,在弹出的文件选择对话框中选择刚才编辑的”TIMIDITY.CFG“文件,点击确定。
接着对话框上方点击”Output“选项卡,在”output“标题下第一个组合框中有好几个选项,其中”Windows audio drivers“选项表示播放MIDI时将音频输出到声卡,这样就可以播放MIDI实际听一下合成的效果;如果选择了”RIFF Wave file“则表示,播放时将音频输出到WAVE文件,也就是将MIDI转化为WAVE。
完成需要的配置后点击OK,然后关闭软件重新打开(其实不重启软件,回到Player选下卡下点击Reload Config file也可以,但是如果此时音乐正在播放中,那么可能引发内存错误)
6.完成上面的步骤后,可以用Timidity++载入自己的MIDI文件然后播放之,听听效果如何把,亦或着按照上面的说明改一改软件的配置,输出Wave文件看看,输出的Wave存在于Timidity程序目录下,如果没有特别修改过的话,输出的WAVE文件文件名应当为”Output.wav“。

除了上面提到的Fazioli大钢琴音色库,楼主也可以去下载其他的音色库
Steinway C大钢琴音色库下载:
http://www.hum.aau.dk/~bovbjerg/piano4.html
配置文件写法:
bank 0
0 %font "<path>\Steinway Grand Piano 1.2.SF2" 0 0 amp=100 pan=0

实际的使用中文件名路径等可能有所不同,希望楼主能够举一反三
如果遇到什么自己不会配置的音色库可以回帖或者PM告诉猫,猫有空的话就来帮助编写一下配置文件。
注意,以上猫提供给楼主的音色库文件都只能支持大钢琴音色,其他乐器都无法播放
………………

好吧,好人做到底,传一个 ><
http://cat.w-sdc.org/keyfc/8MB_GM_LIB.sfArk
这是当年的创新声卡自带的8MB容量GM标准音色库,内含128个GM标准乐器音色和1套标准GM鼓组
配置文件的写法(偷懒的写法):
soundfont <path>\8MB_GM_LIB.sf2
以上的写法也可以载入音色库,但是缺少乐器映射和可调节性,纯粹是偷懒的写法,想来写完这篇文章居然已经是深夜4点,猫终于熬不住了,等啥时候比较闲猫来补完一个完整的配置文件吧

猫写得匆忙,如果有口胡和疏漏请好人们指出
喵~睡觉去了
最后编辑亡灵之猫 最后编辑于 2008-12-20 04:34:54
2

评分次数



    传播音乐梦想的种子,让音乐的美在人们心中破土成长
    拥有梦,拥有未来!
    TOP

    回复:midi軟件一問

    OTL,猫君的回答实在太好人太有爱了……我忍不住进来拜一下……

    话说我家的某电钢琴已经寂寞的放在一个角落很久了……
    TOP

    回复:midi軟件一問

    如果想用midi录制wav的话,如同猫猫所说,用音序器软件打开midi档后加载音源插件导出wav是最方便的了
    黑暗之神的约束:
    复仇之事,只属于汝,与吾无关
    身既事吾,吾亦将赐福与汝
    行事之罪,无论大小,皆记于汝身
    终末之时,破其混沌之世,并归一始
    TOP

    回复: midi軟件一問

    佩服... 五體投地... 貓實在太厲害了...

    試了一首純鋼琴的midi, 音色果然很大的分別...

    追問一下, 如果用這種方法錄製*.wav的話,
    那麼每次只可以錄一種樂器, (假設有很多樂器的話... 而google一下, 又真的很多種soundfont... )
    之後再混音嗎??

    呀還有, 那個melody machine好像改了網址, google一會後找到
    http://melodymachine.com/, 沒有www的

    不過真的很謝謝貓的幫助!!!!
    TOP

    回复:midi軟件一問

    并不是说一次只能合成一种乐器
    一般的MIDI标准中,最多允许16条音轨,MIDI文件基于这个标准,因此MIDI文件记录的音乐信息最大也就是16个音轨
    16个音轨意味着我们可以同时加载并播放16种不同的乐器,通过一些控制器的技巧也可以突破16种乐器的限制,但是无论如何,制作和播放一个midi文件的时候最多只允许同时有16种乐器同时演奏。

    在很多音源和音色库当中(GM派生的标准音源),第10音轨都用于作为节奏轨,此音轨的音符具体映射到一套打击乐鼓组,剩余的1~9和11~16音轨则是一般乐器轨道,可以加载各种不同的乐器。
    简单地说就是,通常的MIDI文件可以支持15个乐器和一套鼓同时演奏。

    前面猫提供给楼主的Soundfont音色库由于只有钢琴这一种音色,所以midi中包含其他乐器的时候,用这个音色库无法播放大钢琴之外的任何乐器。

    那个8MB的GM音色库倒是预置了GM标准定义的128种乐器和一套鼓组,楼主可以尝试用一下

    关于GM标准乐器的定义,楼主可以参阅以下文献(英文):
    http://www.midi.org/techspecs/gm1sound.php
    最后编辑亡灵之猫 最后编辑于 2008-12-21 01:29:20


    传播音乐梦想的种子,让音乐的美在人们心中破土成长
    拥有梦,拥有未来!
    TOP

    回复:midi軟件一問

    感觉猫咪大人现在越来越专业了,啊,真是让人羡慕呢
    TOP