电脑音乐格式之争——MIDI与Tracker(下) 作者:蓬岸 Dr.Quest 编号:27591142 创建于:2017-06-29 15:52:37 修改于:2022-08-04 20:39:56 -------------------- 上集请看:电脑音乐格式之争--MIDI与Tracker(上) - 知乎专栏 (Link: http s://zhuanlan.zhihu.com/p/27523799) 然后我们来说说Tracker! 那么Tracker和MIDI的区别究竟是什么呢?其实他们之间有着一些根本的区别, 主要有: Tracker将乐器的数据与音符的数据存储在一起。一般来讲乐器的音色被嵌入在T racker软件所使用的“模块”(module)文件当中。不过有一些早期的Tracker是 将乐器音色存储在单独的文件中,并在主文件中引用他们,这样的话可以更容易 的让一张磁盘上的多首歌曲同时使用一组音色。 音符被以“图案”(pattern)的形式输入并组成一张存储音符的二维矩阵。一个“ 图案”通常是一小段音乐片段,这些图案被以一定的顺序输入,从而构成了乐曲 的顺序,在音乐中,一个图案可以被使用许多次。 图案中的每一列则是一个“通道”(channel),每个通道被直接映射到音频硬件 的一个复音,而每个通道都是单声道的,这符合音频硬件的一般特性。 而图案中水平的行则代表着时间线。时序通常与帧率同步(在不同的硬件系统上 ,这个频率可以是50、60或70赫兹),而乐曲的节奏也以每一行有多少帧来决定 。(Image: https://pic2.zhimg.com/v2-32318376b0154bff3d10b72ebfa54b39_b .jpg) 这听起来是不是受到了诸多的限制呢?没错,就是这样,这确实有些不合常理。 相比MIDI这种“高级”的音乐数据解决方案来说,Tracker可以提供非常高的灵活 度和精确性。如果你把MIDI看作是C语言,那么Tracker就像是汇编语言,再或者 说,你可以把MIDI想象成HTML,它描述了每个部件在页面上的位置,并大致的描 述了布局,但由于不同的浏览器、屏幕尺寸、安装的字体等因素,都会让一个页 面在不同的场合下略有不同。而Tracker就像是PostScript或者PDF一样“精确地” 描述了页面的外观。接下来让我们详细的了解下Tracker的这四大特征。 文件内的乐器数据 最初Tracker仅仅是用于特定硬件的音乐编辑器,大多数情况下被是C64和Amiga 电脑所采用。而Tracker软件也通常针对特定的硬件功能所开发,这样造成的一 个结果是,Tracker模块通常只能在特定的硬件(或他们的模拟器)上播放。不 过由于Tracker文件内同时包含了完整的音符和乐器数据,实际上Tracker文件完 整的定义音乐的演奏效果,而不是像MIDI文件和通用MIDI标准那样仅仅描述了乐 曲中使用某个乐器是“钢琴”或“吉他”这样笼统的信息。 (Image: https://pic4.zhimg.com/v2-734cae107c33cb3b51d09024544e5747_b.j pg) 最流行的Tracker音乐制作方法,是使用Amiga电脑及SoundTracker、NoiseTrack er和ProTracker等软件。在本文的上半部分,我曾经提到了Amiga电脑上革命性 的Paula声音芯片。由于这款芯片可以支持四个数字声音流串流,因此在Amiga电 脑上。播放模块音乐要在方式要比其他的电脑平台如PC或者Atari ST更加容易。 以“图案”输入音符 在前面我或多或少的已经提到了这一点,Tracker使用图案序列来制作音乐,我 想对于解释图案这个概念来说,一张好图胜千言: (Image: https://pic1.zhimg.com/v2-9be9bc2b5022c6e6a9c261f50dbed608_b.g if) 如果你熟悉鼓机软件的话,其实你已经在使用类似的方式进行创作了。一个“图 案”就是音乐中一个段短暂的切片,通常只包含几个小节,而一首完整的歌曲正 是由一系列图案所组成的“序列”构成的,在一首歌曲中重复使用相同的图案,可 以节省制作的时间和存储音乐数据所需的空间。 图案通常是以垂直方式排列的,多数软件会有64行来摆放音符。这些行代表着乐 曲的“节拍”,这取决于你设置了多快的播放速度(速度越快,单位时间内播放的 行数也就越多)以及乐曲的“密度”。举例来说,你可以在一个图案中摆放四个小 节,而如果以原来的两倍距离摆放音符,并将速度播放速度设置为原来的两倍, 那么它们听起来就会是一样的。虽然此时同样的64行只能放下两个小节,但也因 此获得了更高的“分辨率”,即在同样的播放时间里,可以容纳之前两倍数量的行 数。 “图案列”既“复音” 这可能是MIDI和Tracker之间最大的不同了:Tracker中的任何的复音都是明确定 义的,每个通道(Channel)都是单声道,并直接映射到硬件上的一个复音(voi ce),这种设计非常适合于复音数量非常有限(C64只有三复音,而Amiga只有四 复音)的声音芯片。而MIDI仅仅是简单的发送音符起止事件,再通过解释器将MI DI事件转换为硬件内部的信号,因此硬件需要决定如何分配复音,而当遇到音符 开启时没有更多复音可用的情况时,硬件就会自行结束正在演奏的某些音符。 对于Tracker来说,由于你已经明确地定义了每个音符所使用的通道和复音音色 ,也因此可以确定的知道哪些音符应该被启用而哪些应该被禁用,这样音乐的作 者就可以更加高效地利用有限的通道数量,另外音乐作者也可以将旋律和低音部 分交错(weave)在一个通道中,比如说Rob Hubbard的这个例子,从4分03秒开始: International Karate_腾讯视频 (Link: https://v.qq.com/x/page/x0520qnv6 z2.html) 在段落的开始,仅有的一个通道将鼓声和弦律交织在一起,接下来第 二个通道加入了低音和更多的打击乐。然后,第三个声道带入了主旋律和更多的 修饰。音乐家使用一颗仅有三个通道的芯片,演奏出超过三个声部的音乐效果。 而这正是通过针对硬件特性进行的人工优化,对每个音符进行巧妙的摆放而完成 的。 这里有另外的一个例子,来自芬兰著名Demo团队Future Crew的Purple Motion, 仅仅使用了两个通道就完成了这首歌曲。 Zak-zaka-zak-zak_腾讯视频 (Link: https://v.qq.com/x/page/h0519qxtr73.h tml) 下面的一段视频中他同样只使用了两个声音通道,通过合理的优化展现出 非常精彩的听觉效果。 Minimum Velocity_腾讯视频 (Link: https://v.qq.com/x/page/s0520a2c0mu.h tml) 上面的几个例子,恰到好处的展现了Tracker在开发者手中是何等强大的创 作工具。 图案中的水平“行”构成的时间轴 这一部分并不直接关系到音乐,却与创作的效率和优化息息相关。你可能记得我 在更早些时候曾经写过关于图形编程和“与光赛跑”般的极限优化相关的文章。自 然而然的,人们也会希望在游戏和Demo中加入音乐,并且希望音乐程序的加入不 会打断在屏幕上绘制像素的速度。因此开发者们希望能够发展出一种声画同步的 方法,这正是Tracker的时序通常于显示器刷新率相关的原因。 (Image: https://pic4.zhimg.com/v2-693969f039193d1725049668499ba5c3_b.p ng) 举例来说,Amiga电脑上的Tracker通常以50Hz(PAL制式)的频率运行,也就是 说,游戏和演示引擎可以简单的在绘制每一帧时呼叫一次声音程序,而速度指令 则可以控制播放每一行所使用的帧数,如果你设置速度为6,那么音乐程序就会 倒数6帧之后才会处理下一行。 你可以选择在某一帧的中间呼叫音乐程序,你可以在光栅扫描事件中保留一个时 槽,通常是垂直扫描间隔中的某个时间点来播放音乐。也因此我们知道这代表了 音乐程序在一帧中的其他时间不会做任何事情,因此你可以按照自己的喜好精确 的定义代码的周期。音乐以行为单位被明确的组合在一起和进行同步,让播放过 程对CPU的使用非常的高效而且可控。播放音乐所需要的时间可能仅仅与绘制几 条扫描线的时间相当。 (Image: https://pic4.zhimg.com/v2-6743333ff438ef841a309ece83aa94fb_b.p ng) 而对于普通的MIDI来说它们就没有这样的本领。MIDI有着非常精确的时序,几乎 每一首MIDI歌曲都不可避免的在一帧中处理多个MIDI事件。图形程序员乎没有可 能知道下一条MIDI事件发生的实际。这也是为什么游戏开发中经常对MIDI进行向 下量化(quantize)的原因。不过将所有的MIDI都量化为50或60赫兹的效果并不 理想,因此通常会使用更高的频率,通常是200~700赫兹之间。如果你不追求“与 光赛跑”的话,这是一种可以接受的妥协。 让我们再回来讨论下UltraSound声卡 上面这些Tracker音乐独有的特性和优点解释了为什么Tracker在Demoscene社区 如此流行的原因。也由此可以推断出为什么Demoscene也同样热爱UltraSound声 卡:这块声卡看起来就像是为播放基于采样的Tracker模块“量身定做”的一样。P roTracker软件仅仅依靠四通道和8-bit采样就已经可以制作出相当精彩的音乐, 虽然在PC上使用软件方式混音需要消耗不少CPU资源。 但UltraSound有着多达32个声音通道,支持16-bit采样精度,以及更加强大的: 高质量的硬件混音,这让它可以与Amiga电脑一样在播放音乐时基本不需要消耗C PU资源。UltraSound就像是一块“Tracker加速卡”。如果你听过上面那些使用C64 或Amiga电脑上原始的声音芯片所发出的2通道或3通道音乐,你就可以想见Ultra Sound声卡所具备的巨大潜力。 (Image: https://pic2.zhimg.com/v2-172cf9807afab6d62c0d8e01583078a5_b.j pg) UltraSound的主要问题在于缺少足够的游戏开发者为其进行适配,这确实有些奇 怪,在Amiga电脑上,多数的游戏音乐都使用了某种流行的Tracker进行创作,大 部分是ProTracker。曾经我们以为UltraSound也会是类似的情况。但由于种种原 因,许多开发人员仅仅将UltraSound作为MIDI设备使用,因此UltraSound在游戏 中的表现并不像在Demoscene中那样令人印象深刻。 因此,我们来听一下当时我最喜欢的两段Demo音乐,他们代表了UltraSound在De moscene社区中所展现出的最高水平。首先是传奇般的《第二现实(Second Real ity)》中优秀的配乐(可以说是这段Demo的亮点),它“仅仅”使用了8个通道: Second Reality by Future Crew_腾讯视频 (Link: https://v.qq.com/x/page/ y0520xcio5q.html) 然后则是Triton的《水晶之梦II(Crystal Dream II)》中 精彩的Tracker音乐,我猜测它可能同样“仅仅”使用了8个通道,至少我可以确定 它一定没有使用UltraSound提供的全部32个通道(你可以注意到设置菜单中显示 的声卡型号正是UltraSound) Crystal Dream 2 by Triton_腾讯视频 (Link: https://v.qq.com/x/page/g052 0vvygl7.html) 有趣的是,这两个Demo团队都开发了自己的Tracker软件。 Futu re Crew开发了Scream Tracker,而Triton则开发了FastTracker。这两款软件在 后来成为了PC平台和UltraSound声卡上最流行的Tracker软件。 (Image: https://pic4.zhimg.com/v2-8192860163507fb648737cacfa267767_b.p ng) 那么是谁笑到了最后呢?事实上是没有,UltraSound出现的有点太迟了。 至少 有三个重要的技术进展,或多或少的导致了UltraSound的淡出: CPU性能迅速增长,并强大到足以在后台实现32通道混音,16-bit采样精度和线 性插值等功能。这让任何具备16-bit DAC的声卡如 Sound Blaster 16或Pro Aud io Spectrum 16)都可以以和UltraSound几乎相同的音质播放Tracker音乐。 CD-ROM进入主流市场,许多游戏开始仅仅使用CD音轨作为音乐,任何声卡都无法 在这一领域展开竞争。 游戏从DOS平台迁移到Windows平台。在DOS下游戏可以直接访问音频硬件,而Win dows中音频硬件则被抽象出来,并必须通过API进行访问。但这种API并不特别适 合像UltraSound这类基于RAM的波表合成器,这让开发者们被拘束在通用MIDI的 世界中。而上面所讲到的第二点也至少在游戏领域宣告了MIDI使命的终结。游戏 配乐被事先“预制”在CD音轨或CD上的数字音频文件中,再串流到16-bit立体声DA C解码。在这一流程中MIDI同样没有它的一席之地。 (Image: https://pic2.zhimg.com/v2-c27ff07ea3eec745db47b2def4792779_b.j pg) 最早支持CD音轨的游戏主机TurboGrafx-CD可以说,在那之后通用MIDI同样也过 时了,它可能仍然是被市场所认可的标准之一,但我不认为人们会出于在电脑上 听音乐的需求而使用它,因为它从来没有表现得非常出色。 MIDI标准本身仍然被用作连接合成器和其他设备的基础,同时大多数的数字音频 工作站(DAW)软件都支持导入及导出标准MIDI文件。当然,这类软件通常具有 自己专用的内部格式,这些格式可能包括了对MIDI的扩展,或是数字音轨信息。 今天你在收音机里听到的许多歌曲中,都可能使用了某些MIDI技术进行创作。 而Tracker技术也同样被人们所使用,不仅仅是Demoscenes社区,也包括了“芯片 音乐”社区,从某种程度上讲,“芯片音乐”社区是从Demoscene社区中所分离出的 一部分。许多音乐家仍然会定期的发布Tracker歌曲,而许多爱好者也仍然喜欢 收听Tracker音乐。 Professional Tracker_腾讯视频 (Link: https://v.qq.com/x/page/l0519tlzl ut.html)