【杂谈】PMD音乐相关科普 & 播放器测评


前言
首先恭喜你发现了这篇冷门到极致的专栏。如果你对这句话中的“冷门”二字心有不甘也没关系,我就正致力于在此将我对这领域所知的分享给大家。
其次,如果你对东方Project旧作系列所采用的音乐感兴趣,亦或者你是直奔日本计算机架构PC-98的PMD音源而来的,那这篇文章或许能为你解答一些相关的问题。原本这只是单纯的播放器测评,但为了铺垫相关背景,不知怎的就冒出了这么多莫名其妙的东西出来,最后索性写成了一篇杂谈……
最后,撰写此文会涉及很多我也不太了解的领域,但我会尽量将我这四年的经验与各种资料结合起来,也希望这篇专栏能真正帮助到有需要的人。至于疏漏错误恐怕在所难免,欢迎大家提出。
本文长期更新,随时可能有内容上的补充(改动了不下二十次吧了,反正我不怕得罪审核)
本文最后编辑于2023/2/20。
Ⅰ 背景介绍
我想目前应该没有比东方Project的PC-98旧作系列更适合用来切入到PMD音乐的主题了——如果你正巧就对东方Project有一定程度的了解的话。毕竟我也不清楚有多少人曾经直接接触过PMD音乐,而且其他的PC-98游戏我也几乎没玩过……所以就请允许我开始自由发挥吧。
东方Project创始人ZUN在他的“东方幻想怀古曲”网页中解释了他在东方第二作至第五作中所使用的PMD为何物:
P. M. D的全称是Professional Music Driver,是由梶原正裕(M. Kajihara 或 KAJA)制作的FM音源驱动程序。
该程序可以播放*. m *. m2 等格式的文件,主要用于无论商业或同人的游戏音乐播放。
我也试着对东方project使用了一下。
容许我跳跃性地提一点:东方的第一作“东方灵异传”中使用的音乐虽然在规格上很像PMD(3FM+3SSG,我在T98-NEXT模拟器和实机上运行游戏本体的话还能播放YM2608B的鼓点采样),但东方灵异传所采用的音源驱动程序是MDRV98. COM,且文件格式为.MDT,并不属于PMD音乐。KAJA在他编写的PMDMML手册中也并未记载这个驱动,只是在PMD的更新历史中略有提到(见下图,MDRV很可能是PMD的前身?)。这一段还有待讨论补充,至于东方封魔录的MIDI文件那就真是扯远了。

T98-NEXT模拟器中,退出东方灵异传游戏后的界面。游戏中实际上使用的音源驱动程序是MDRV98. COM

和PMD很像的还有FMP,这是EPSON PC-286/386/486系列、NEC PC-8001系列上运行的FM音源驱动程序,由Guu氏于更早一些的时候制作。这个展开来讲就更麻烦了,恐怕得另起篇幅(我可能也没精力给它考古了)。

目前我所知道的是KAJA和骨折饮料就创作过一些FMP格式的音乐。什么你没听说过骨折饮料?玩过黄昏酒场这个游戏的话你可能会对他有点印象:
(黄昏酒场附带文档的节选:)
各位新老朋友大家好。我是骨折饮料。
这次负责制作了「黄昏酒场」的部分BGM,跟各位所听到的一样,
依旧是不识趣地用86音源制作。
大体上是FM×6+SSG×3+PCM×5这样的声部分配,和20世纪90年代初的街机基
板效果相似。毕竟现在的商业作品是绝对不可能采用这种音源构成的,但是同
人游戏的话就完全OK!正所谓自由自在。
曲子本身也加工成很纠结的曲调(那边那个!谁说我只会写纠结的曲子的(汗)),
所以这些BGM很轻松地让时光倒退了15年,充满了怀念的气息。请慢慢欣赏。
当初玩这游戏听到曲子里有方波的时候我还以为这是酒鬼作者用现代编曲软件有意为之的,结果这还真就是用这种复古的方式编出来的。也难怪黄昏酒场当中唯一由ZUN创作的BGM“酒鬼的雷姆利亚”在大概半年后也被ZUN进行了FM重制(个人觉得重制规格应该是旧作中的86K音源,后述),不过我个人觉得这个Arrange没有重制出原版那波澜壮阔的气势,也挺可惜:
(来自东方儚月抄的CD解说:)
说起东方儚月抄,其实就是一群酒豪们大肆胡闹的酒豪漫画。
因此为了这些酒豪们,
将这首酒豪们趁着酒性做的曲子,以FM音源重制了一遍。
不然酒豪们实在帅到有点过分,这样有点伤脑筋呢。
下面这个视频里播放的就是一个黄昏酒场BGM的FMP原文件,出自FMP Music Disk 9 ~15th Anniversary Edition~(真是一群怀旧的家伙呢):

最后附上一些链接——
骨折饮料的个人主页:http://ustlab.fmp.jp/
FMP Music Disk 系列的官方网址:http://fmp-archive.jpn.org/music-disk/vol9.html,以及其中收录的曲目等信息(非官方链接):https://vgmdb.net/album/17583
啊啊,总之这一节先写这么多吧,不然我自己都会绕晕的。
Ⅱ PMD音乐的结构
PMD是建立在PC-98上的音源驱动。在那个DOS系统和芯片音乐盛行的年代,能通过简单的MML(Music Macro Language,音乐宏语言)描述并编译出音乐,这对当时的音乐创作者来说还是很有吸引力的。考虑到PMD可供使用的通道不算少,可以实现的功能也还算丰富,如果创作者再花上一些心思来巧妙地安排、组织MML,那这些命令最终就能在PMD的帮助下奏响美妙的音乐。不同机型以及搭载的音源对应的PMD音乐规格也不同,我目前接触得比较多的只有第一、第二和最后一种,ZUN在第三作至第五作中提到的26K音源和86K音源就分别对应上表的第一种和第二种,使用的芯片则分别是YM2203C和YM2608B,后者在早期还出过比较罕见的无印版YM2608,不过早期的YM2608在没有初始化(或者说写入数据产生输出?因为复位开机的时候已经给了)的时候会有比较明显的底噪。(感谢Ethy1eneL对此的补充)

*缩略词备注:FM——frequency modulation,即调频通道;SSG——square-wave signal generator,即方波通道;PCM——pulse code modulation,即音频采样通道

要说最后一种(PMDPPZ)的话,我个人都倾向于把这种豪华的配置当作MIDI来看待了,但它肯定还是没法和当今的MIDI标准相比的——上面所述的通道规格中,每个通道都只能同时演奏一个音(YM2608的6个鼓点采样分别算6个通道),也就是每个通道的复音数1,如果要编写那些动辄就会用上很多和弦的音乐,通道数量就显得捉襟见肘了。对于这个问题,知乎上的这个回答或许可以给大家一些思路:https://www.zhihu.com/question/39174547/answer/209415716
这里再补充一个比较“官方”的FMP与PMD的介绍:http://c60.la.coocan.jp/fmpmd.html
另外还有很多技术性的问题,例如有关FM和FM3 Ex(第三个FM通道最多是可以分成4个独立演奏的通道的,所以会有3个FM3 Ex通道这一说法)通道的算法问题,SSG通道可采用的噪音模式以及PCM采样的格式问题,这里就不赘述了。看似是一个又一个的局限,可正是因为这些“鸡肋”使得PMD具有了很多有待发掘的魅力,毕竟撇开复古情怀和独特的音色不谈,能在这些有限的条件下原创或者Arrange出动听的音乐本身就已经不容易了,不然为什么在PMD问世后的20余年甚至至今,仍有国外大佬创作PMD格式的音乐?(例如Pedipanol和HertzDevil,后者的东方妖妖梦全曲目PMD Arrange可谓一大神作)
另外,私以为芯片音乐的精髓就是其音色,虽然使用各种DAW或模拟器也能制作出同样的效果,但那最多也只能算是还原吧,正如数码相机和胶片相机,后期软件和暗房放大一样。有条件的话以最本质的方式体验PMD音乐,甚至在实机上播放,也不乏为一种难得的体验吧。
Ⅲ Windows平台播放器测评
我只在这里写一些我使用过的软件,也欢迎大家在评论区推荐其他的播放器。
① FMPMD2000
(ZUN的“东方幻想怀古曲”网页:)
不能播放最近的高性能的音源、想品到古董级游戏的音乐的精华
但是,没有FM音源之类(或者用在98上会很麻烦),在DOS窗口中播放乐曲也很难受的人应该很多吧
为拥有以上烦恼的诸位介绍软件的fm音源(PMDWin,C60さん作)。
☆关于PMDWin
是C60さん制作的FM音源软件。与后述的节奏音源一并使用的话可以再现
几乎完美的86音源。
对超乎想象的完美而感动,十分感谢。

又称作PMDWin。这个由C60制作的播放器在兼容性上确实堪称完美——可播放FMP格式和PMD格式的文件,理论上所有格式的采样文件【包括ADPCM、PPS(即PSGPPS)和PPZ、PVI、PZI等】都能加载,音量参数和各通道的开关可以随意调节,高阶的播放设置,外置鼓点采样wav文件(这意味着你可以自行更换鼓点音色),同时自带录制wav功能、频谱显示以及相当实用的列表播放功能,甚至在Console界面上显示的字体格式都能兼容原来的特效(例如下划线、颜色、闪烁等,这些特效是在MML内部写好格式之后编译出来的,貌似有几十种)。在音质和兼容性上,至少我到现在都还没挑出过毛病,而且这个软件最近仍在更新,可以说作者是相当用心了。
至于特效字体,可以看看这个演示视频(跟使用MML编曲一样,在那个年代想要做出这种酷炫的效果其实挺不容易的)——

真要我给这个软件挑刺的话:软件界面的观赏性一般,以及在非日语系统下运行会出现乱码。虽然作者也发布了英语版,但无论哪个版本,在显示歌曲信息的窗口中仍然会有这个问题(Locale-Emulator转区软件了解一下)
软件链接:http://c60.la.coocan.jp/
② PMDPlayer
由国人lxfly2000制作的简易实用的PMD播放器。可以显示播放时的基本参数,也能很方便地控制各种播放条件(例如播放位置、屏蔽各个通道甚至播放速度)。这个播放器的音质是一大亮点,个人觉得听起来会稍醇厚一些。

这个软件也有一些缺点:无法加载PPS文件、FM3 Ex通道无法屏蔽,在加载了PCM文件的情况下有时会连PCM通道和鼓点通道也无法屏蔽、以及SSG鼓点的音量过大(3.1.8版本的SSG鼓点音量就恰到好处,但这个版本居然又不能播放PPC音色了……)。不过瑕不掩瑜,我在编写PMD音乐的时候,这个软件的便捷性算是帮了我大忙。
软件链接:https://github.com/lxfly2000/pmdplay。另外lxfly2000在上面还发布了可以将PMD音乐文件转成MIDI文件的pmdconv,以及将MIDI文件转换成mml文件的midimml,感兴趣的话可以试一试。
③ HOOT

很经典的一款芯片音乐播放器,东方旧作的所有音乐都可以播放!不过要播放文件的话得先自行编写xml文档,比较麻烦……如果只是想播放PMD格式的音乐我倒并不推荐(连播放进度都调不了啊)。
顺便澄清一下,有人说HOOT的音质不佳,但这应该和版本有很大关系,至少19年1月至今的版本我觉得都还可以。
软件链接:http://dmpsoft.s17.xrea.com/hoot/index.html
④ 98FMPlayer

观赏性非常强的PMD/FMP播放器,播放界面致敬了PC-98平台上的经典PMD播放器FMDSP。示波器、频谱、音量表、音色表、10种主题色以及一些高阶设置都算是这个播放器的亮点,音质方面倒是略显骨感。
很可惜,这样的软件在兼容性和实用性方面却差强人意,不但不支持PPS文件和部分PCM、PPZ文件,甚至还无法实现PMD音乐的淡出功能,播放器也无法调节播放进度。但就凭这观赏性我还是要推荐这款播放器,我也会在编写PMD音乐时用它来观察各种详细的文件参数。
软件链接:https://github.com/takamichih/fmplayer
⑤ MDPlayer

涉猎极广的一款音乐播放器!支持的文件格式有NRD、XGM、S98、MID、RCP、NSF、HES、SID、MGS、MDR、MDX、MND、MUC、MUB、M、M2、MZ、WAV、MP3、AIFF。这个软件甚至支持即时编译MML并立即播放编译出来的文件。
和HOOT类似,这种播放器的定位是广而不精。兼容性、播放列表功能以及各种高级设定是没的说,但如果要我评论这个播放器在PMD方面的表现,我是很在意它的SSG鼓点音色的……
软件链接:https://github.com/kuma4649/MDPlayer
⑥ FMDSP7

由Guu氏“复刻”FMDSP(后述)而成的一款模块化播放器。说是模块化,是因为这个软件可以加载多种库文件( .dll),从而支持多种音乐格式的播放,甚至就连上图的播放参数界面都被分成另一个软件了,也就是说播放器界面原本就只有最上方的一小行而已。
目前FMDSP7可支持FMP7( .OWI)、PMD( .M, .M2, .MZ)、MXDRV( .MDX)以及S98( .S98)格式的音乐。不过很奇怪,配置上与PMD更接近的FMP4(.OPI, .OVI和 .OZI)格式它反而不支持……按照Guu氏的说法,这个播放器还有升级或补充的空间,所以播放器界面上有的地方是空的。

右上角的蓝白箭头按钮调整界面大小)
播放器使用方面的话,我在这里只评价PMD的部分:首先由于采用了C60氏的PMDWin.dll(没错,这也是FMPMD2000运行时所需的库文件),理论上它的兼容性与音质和FMPMD2000完全相同;其次它的播放参数界面也更完备,在传承了FMDSP界面风格的基础上还增添了每个通道的瀑布谱(P.S. 这要换成示波器那岂不是更酷炫)。最贴心的应该是详尽且全面的播放器设置,每个库文件本身都有众多参数可供设置,基础的播放功能也都有。缺点的话则是曲目信息会以乱码显示(用Locale Emulator也未必能正常运行,我这边运行的话会出现找不到PPC文件的情况),另外对于YM2608内置鼓点的参数显示也不全面——软件只显示单独编译的YM2608鼓点,对于SSG鼓点附带的YM2608鼓点它是不显示的。
有趣的是,Guu氏在当时也有份参与FMDSP的制作——据FMDSP 0.79d版和0.85b版的说明文档记载,Guu氏对于FMDSP播放FMP音乐功能的实现有不小的帮助。也许FMDSP7的主页网址更能说明Guu氏对FMP“情有独钟”了吧。
软件链接:http://archive.fmp.jp/archives/30;另外附上一个(光是看网址就能猜到)信息覆盖更全面的网站:http://fmp.jp/
Ⅳ PC-98平台播放器及相关软件
如果你已经不满足于在Windows平台上“小打小闹”,不妨试试在模拟器甚至PC-98实机上直接感受其魅力。以下播放器需要在PC-98 DOS系统中运行,并且在运行前需要先常驻音源驱动。需要这些资源的话请翻评论区吧。
① VIEW-KEY

界面相当复古(笑)。VIEW-KEY对系统要求较低,各个参数也一目了然,自带文件选择功能和其他播放器当中较少见的播放列表功能,可显示文字特效,可加载PPS采样文件(对应的需要常驻音源驱动程序PPSDRV.COM和PDR.COM),不支持.MZ格式的音乐。
似乎没什么好介绍的,反正很好用。
② FMDSP

这是由HypS氏制作的一款经典播放器,光是界面看起来就很舒服了。它能播放FMP和PMD类型的音乐,一共10种主题色,自带文件选择器,对CPU(np2模拟器上是这样,但实机上运行似乎并非如此)和系统配置的要求也较高。
该播放器除了能加载PPS采样文件(需要常驻PPSDRV.COM和PDR.COM),还支持.MZ格式的音乐文件(对应的需要常驻PPZ8.COM并加载PPZ采样文件);在加载了PMD.COM的情况下,软件中的FM4~6通道实际上会显示3个FM3 Ex的参数。
同样没什么好介绍的,这个也很好用。
另外软件频谱只显示对应的note,请不要指望它能搞什么FFT
③ MSDP


第一次看到这个软件已经是在3年前THBWiki上的PC-98科普页面了,但直到最近我才搞明白怎么运行它……主要是THBWiki上的版本(其实就是Vector网站上的0.15a版本)缺很多MDM文件,其中的MAKEMDM.COM又用不了(也可能只是我没找到怎么使用它的办法,至少我按照THBWiki上的方法来是没成功)。这意味着即便修改了其配置文件也最多只能加载PMD.MDM或FMP424.MDM,这款模块化设计的播放器的优势也就几乎无法体现出来了。
其实国外用这款播放器的PC-98爱好者大有人在,但分享软件的人又寥寥无几(有人用的甚至是0.15b的版本,但我也仅在某网站截图上见过一次)。最近我索性找到了它的MDM文件整合包,才终于有幸一睹软件的真容。
这个软件比FMDSP还要更晚问世,因此它的优势也基本传承了FMDSP:简明紧凑的界面,支持选曲+展示歌曲信息(可以滚动浏览!),键盘也能滚动显示。最重要的是它支持PMD、PMDB2、PMDPPZ(E)、FMP、MXDRV、MMD(东方封魔录狂喜),以及MPD、FSP、Play6等多种歌曲格式/驱动,不过后面三种我还闻所未闻。加载了不同驱动和对应MDM文件后,播放器界面也会相应更换。该软件还支持一些非常高阶的功能,例如自定义播放器界面颜色的调色板、选择性加载MDM文件以及存储标题数据文件(?),这些功能需要自行改写配置文件才能实现。
现在唯一的缺憾是我在模拟器上还没成功播放过MZ格式的文件(播放时PPZ8通道没声音),大概是PPZ相关的设置不太对吧……播放器界面的颜色我也懒得调了,所以就沿用了默认调色板。这个坑就当已经填完了吧(心累)。
④ PMDPS & PMDPV


严格来讲PMDPS不算播放器,它更像是一个文件选择器(事实上看它的全称也应该能猜到了),在此基础上可以加载view-key和PMDPV。后者应该也不能称作播放器,它更像是一个只显示播放参数的软件。细心的读者或许还能在图中找出PMDPV全称的拼写错误(
这两个软件都能显示文字特效(例如上图的紫色字体)。另外这个选择器可以显示卡拉OK歌词,这点我是真没想到过……
卡拉OK功能的话可以看看我的这个视频(我从未见过有如此厚颜无耻之人):

⑤ PMK


另一种极致的文件选择器,播放音乐时实际上会调用PMP. COM(后述)。
说实话,在截下这两幅图时,我的脑海中就曾浮现出《1K ZX Chess》,不过这个文件选择器的体积可要比VIEW-KEY和FMDSP还大。这个软件算是把DOS界面体现得淋漓尽致了,同时可以隐约看出一些PMDPV的影子。
⑥ 怪绮谈Music Room

不考虑操作复杂程度和版权问题的话,把这段内容放到这来也确实没啥毛病……也不知道ZUN当年是怎么做出这种播放可视化效果的(不会又是从别的程序搬过来的吧)
需要注意的是这种方法对音乐文件的大小有要求(貌似是单个文件不能超过8 KB),否则在游戏中播放到这首歌的话会直接死机(内存溢出?),单独播放的话程序也大概率会卡死,总之不推荐大家折腾这种方法。
⑦ PMP

最直截了当的播放方法。平时应该用不到吧。
不过把这个播放器写进这篇专栏的时候,似乎就有了一种一下子否定了前面所有播放器的感觉。抛开胡里花哨的UI和播放参数,以最朴实纯正的手段去欣赏音乐本身,那才是和音乐打交道的正确方式。这就是纯粹的力量吗(雾)
后记
从我接触东方Project,到我了解东方的旧五作及其音乐,再到编写PMD音乐和入手PC-98实机,这8年过得真是太快了。
和很多东方Project同好一样,当初我也希望能通过编曲亲自体验ZUN乐的魅力与乐趣,但我逐渐意识到,即便入手了SD-90和其他正作中使用过的各种音源,无论是在乐理上还是精力上我都未必能驾驭的了它们。那不如直接从东方旧作的音乐开始入手吧,那不也是ZUN乐吗,当时的我如是想到。
只是我当时没有想到,这个选择让我认识到了这么多的人与事。这个选择,我也会继续坚持的。
最后,感谢THBWiki上的大量相关资料,以及在屏幕前读到这里的你。