专栏/【杂谈】PC-98 PMD芯片音乐科普 & 播放器测评

【杂谈】PC-98 PMD芯片音乐科普 & 播放器测评

2021年08月15日 15:50--浏览 · --点赞 · --评论
粉丝:665文章:8

奇怪的组合增加了!配备了等离子扬声器的PC-98实机 EPSON PC-486 NAS。某种程度上这算是电音中的电音了……


前言

        首先恭喜你发现了这篇冷门到极致的专栏。如果你对这句话中的“冷门”二字心有不甘也没关系,我就正致力于在此将我对这领域所知的分享给大家。

        其次,如果你对东方Project旧作系列所采用的音乐感兴趣,亦或者你是直奔日本计算机架构PC-98的PMD音源而来的,那这篇文章或许能为你解答一些相关的问题。原本这只是单纯的播放器测评,但为了铺垫相关背景,不知怎的就冒出了这么多莫名其妙的东西出来,最后索性写成了一篇杂谈……

        另外,如果你对“芯片音乐”这回事有概念,甚至已经有了一定程度的了解,那么直入主题就十分方便了,否则强烈建议大家先看看萌娘百科对芯片音乐的科普(尤其是“调频合成技术时期”章节部分):https://zh.moegirl.org.cn/%E8%8A%AF%E7%89%87%E9%9F%B3%E4%B9%90

        最后,撰写此文会涉及很多我也不太了解的领域,但我已尽量避免写成流水账了(苦笑),也希望我这几年的经验与资料能真正帮助到有需要的人。纰漏在所难免,欢迎大家提出。

        本文长期更新,随时可能有内容上的补充(改动了不下三十次吧,反正我不怕得罪审核)。

        本文最后编辑于2024/7/25。



Ⅰ    背景介绍

        我想目前应该没有比东方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,即后面会提到的OPN;ZUN在当年的说明文档中提到过“灵异传实际采用的是相当于86规格的FM音源”),但东方灵异传所采用的音源驱动程序是MDRV98. COM,且文件格式为.MDT,并不属于PMD音乐。KAJA在他编写的PMDMML手册中也并未记载这个驱动,只是在PMD的更新历史中略有提到(见下图,MDRV和PMD应该是相互独立发展的),至于东方封魔录的MIDI文件那就真是扯远了。


T98-NEXT模拟器中,退出东方灵异传游戏后的界面。游戏中实际上使用的音源驱动程序是MDRV98. COM
节选自PMD48O_F文件中的UPDATE. DOC,这个文档就是PMD的发展史。目前PMD的最新版本是V4.8s,于2020年1月22日发布(这跨度也太大了吧!)

       和PMD很像的还有FMP,这是EPSON PC-286/386/486系列、NEC PC-8001系列上运行的FM音源驱动程序,由Guu氏于更早一些的时候制作。这个展开来讲就更麻烦了,恐怕得另起篇幅(我可能也没精力给它考古了)。这里倒是可以提一嘴:FMP和PMD的MML语法(后述)以及对应的音源规格非常相似,就连FM音色表的组成都是几乎通用的。

节选自PMD48O文件中的PPC2PVI.DOC。其中大概提到“虽然也有统一(FMP和PMD采样文件)格式的计划,但是现在(该文档最后修改于96年年底)86系的音源板成为主流,这个计划相当停滞”

        目前我所知道的是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

        一个比较“官方”的FMP与PMD的介绍:http://c60.la.coocan.jp/fmpmd.html

         啊啊,总之这一节先写这么多吧,不然我自己都会绕晕的。



Ⅱ    PMD音乐的结构

         PMD是建立在PC-98上的音源驱动。在那个DOS系统和芯片音乐盛行的年代,能通过简单的MML(Music Macro Language,音乐宏语言)描述并编译出音乐,这对当时的音乐创作者来说还是很有吸引力的。考虑到PMD可供使用的通道不算少,可以实现的功能也还算丰富,如果创作者再花上一些心思来巧妙地安排、组织MML,那这些命令最终就能在PMD的帮助下奏响美妙的音乐。

一块YM2608B芯片

不同机型以及搭载的音源对应的PMD音乐规格也不同,我目前接触得比较多的只有第一、第二和最后一种,ZUN在第三作至第五作中提到的26K音源和86K音源就分别对应上表的第一种和第二种,使用的芯片则分别是YM2203(C)(OPN,FM Operator Type-N)和YM2608(B)(OPNA,FM Operator Type-NA),后者在早期还出过比较罕见的无印版YM2608,不过早期的YM2608在没有初始化(或者说写入数据产生输出?因为复位开机的时候已经给了)的时候会有比较明显的底噪。(感谢Ethy1eneL对此的补充)

整理自PMD48O中的PMDMML. MAN,一个154KB的MML语法说明文档。考虑到这只是个纯文本文件,这个说明文档的分量还是不小的

*上表缩略词备注:

FM——frequency modulation,即调频通道;每个FM通道由4个运算器(Operator)组成;YM2203和YM2608的第三个FM通道的四个运算器能独自成为一个通道来演奏。

SSG——square-wave signal generator,即方波通道。

PCM【OPNA实际上用的是ADPCM】—— (adaptive differrenial) pulse code modulation,即(自适应差分)音频采样通道;这里也推荐一篇介绍ADPCM压缩数据量原理的文章:https://www.cnblogs.com/milton/p/16914797.html

最后,上表的鼓点采样指的是YM2608内置的6种鼓点PCM采样(国外有人发现这些采样来自雅马哈的DD-10,这是一款面向日本市场的鼓机,于1988年上市:https://vgmrips.net/forum/viewtopic.php?t=3013)

东方幻想乡的游戏文件,可以看到其中的3个音源驱动文件(其中CANBE. LZH还内含PMDPPZ. COM)

        要说最后一种(PMDPPZ)的话,我个人都倾向于把这种豪华的配置当作MIDI来看待了,但它肯定还是没法和当今的MIDI标准相比的——上面所述的通道规格中,每个通道都只能同时演奏一个音(YM2203/YM2608的6个鼓点采样分别算6个通道),也就是每个通道的复音数只有1,如果只采用FM和SSG通道编写那些动辄就会用上很多和弦的音乐,通道数量就显得捉襟见肘了。对于这个问题,知乎上的这个回答或许可以给大家一些思路:https://www.zhihu.com/question/39174547/answer/209415716

        另外还有很多在技术文档里才会涉及到的问题,这里就不赘述了。看似是一个又一个的局限,可正是因为这些“鸡肋”使得PMD具有了很多有待发掘的魅力,毕竟撇开复古情怀和独特的音色不谈,能在这些有限的条件下原创或者Arrange出动听的音乐本身就已经不容易了,不然为什么在PMD问世后的20余年甚至至今,仍有国外大佬创作PMD格式的音乐?(例如Pedipanol和HertzDevil,后者的东方妖妖梦全曲目PMD Arrange可谓一大神作)

       另外,私以为芯片音乐的精髓就是其音色,虽然使用各种DAW或模拟器也能制作出同样的效果,但那最多也只能算是还原吧,正如数码相机和胶片相机,后期软件和暗房放大一样。有条件的话以最本质的方式体验PMD音乐,甚至在实机上播放原文件,也不乏为一种难得的体验。

       如此,我们终于能开始本文的正文部分了——



Ⅲ    Windows平台播放器测评

      (我只在这里写一些我使用过的软件,也欢迎大家在评论区推荐其他的播放器)

①    FMPMD2000

(来自ZUN的“东方幻想怀古曲”网页:)

不能播放最近的高性能的音源、想品到古董级游戏的音乐的精华

但是,没有FM音源之类(或者用在98上会很麻烦),在DOS窗口中播放乐曲也很难受的人应该很多吧

为拥有以上烦恼的诸位介绍软件的fm音源(PMDWin,C60さん作)。

☆关于PMDWin

 是C60さん制作的FM音源软件。与后述的节奏音源一并使用的话可以再现

 几乎完美的86音源。

 对超乎想象的完美而感动,十分感谢。

        这个播放器由C60制作,“Win2000界面风格”的它在兼容性上确实堪称完美——可播放FMP格式和PMD格式的文件,理论上所有格式的采样文件【包括ADPCM、PPS(即PSGPPS)和PPZ、PVI、PZI等】都能加载,音量参数和各通道的开关可以随意调节,高阶的播放设置,外置鼓点采样wav文件(这意味着你可以自行更换OPN/OPNA的鼓点音色),同时自带录制wav功能、频谱显示以及相当实用的列表播放功能,甚至在Console界面上显示的字体格式都能兼容原来的特效(例如下划线、颜色、闪烁等,这些特效是在MML内部写好格式之后编译出来的,貌似有几十种)。在音质和兼容性上,至少我到现在都还没挑出过毛病,而且这个软件最近仍在更新,因此如果想要欣赏PMD4.8S版本的新增机能“SSG-EG音色”,这款播放器恐怕是不二之选了(注意需要使用版本较新的PMDWin.dll,推荐使用2020年之后发布的版本;参考资料:https://mml-guide.readthedocs.io/pmd/ssgeg/)。

        至于特效字体,可以看看这个演示视频(跟使用MML编曲一样,在那个年代想要做出这种酷炫的效果其实挺不容易的)——

        真要我给这个软件挑刺的话——FMPMD2000不支持某些新版FMP文件的PPZ功能,以及在非日语系统下运行会出现乱码。虽然作者也发布了英语版,但无论哪个版本,在显示歌曲信息的窗口中仍然会有这个问题(Locale-Emulator转区软件了解一下)。另外关于它的两个dll文件(Ver. 0.51的WinFMP和PMDWin)的版本更新有一点让我很不爽:不知为何,播放音乐的时候OPN和OPNA的鼓点音量变小了很多,反正我宁愿用音质方面有些bug的Ver. 0.36的dll……

        软件链接:http://c60.la.coocan.jp/


②    PMDPlayer

        由国人lxfly2000制作的简易实用的PMD播放器。可以显示播放时的基本参数,也能很方便地控制各种播放条件(例如播放位置、屏蔽各个通道甚至播放速度)。这个播放器的音质是一大亮点,个人觉得听起来会稍醇厚一些(其实是高频部分会稍微弱化,属于是自带EQ了),不过ADPCM和PPZPCM方面,音质似乎会有点嘈杂(新版本的会有改善)。

       在我最初写这篇专栏的时候,这个软件的最新版本是2.3.4。当时这个软件也有一些缺点:不支持SSG-EG音色、无法加载PPS文件、FM3 Ex通道无法屏蔽,在加载了PCM文件的情况下有时会连PCM通道和鼓点通道也无法屏蔽、以及SSG鼓点的音量过大。目前最新的3.1.11版本的SSG鼓点音量就恰到好处,并且已经可以支持SSG-EG音色了。在我编写PMD音乐的时候,这个软件的便捷性算是帮了大忙。

        软件链接:https://github.com/lxfly2000/pmdplay。另外lxfly2000在上面还发布了可以将PMD音乐文件转成MIDI文件的pmdconv,以及将MIDI文件转换成mml文件的midimml,感兴趣的话可以试一试。


③    HOOT

        很经典的一款芯片音乐播放器,东方旧作的所有音乐都可以播放!不过要播放文件的话得先自行编写xml文档,比较麻烦……如果只是想播放PMD格式的音乐我倒并不推荐(连播放进度都调不了啊,我现在也几乎不用它了)。

        顺便澄清一下,有人说HOOT的音质不佳,但这应该和版本有很大关系。

        软件链接:http://dmpsoft.s17.xrea.com/hoot/index.html


④    98FMPlayer

        观赏性非常强的PMD/FMP播放器,播放界面致敬了PC-98平台上的经典PMD播放器FMDSP。示波器、频谱、音量表、音色表、10种主题色以及一些高阶设置都算是这个播放器的亮点,音质方面倒是略显骨感,且相比FMPMD2000来说SSG音量会略微偏大(好在SSG音量是可以在设置里精细调节的)。

        很可惜,这样的软件在兼容性和实用性方面却差强人意,不但不支持SSG-EG音色、PPS文件和部分PCM、PPZ文件(然而有些需要PPZ文件的FMP文件它能播放,给FMPMD2000播放反而会出现通道不完整的情况),播放器也无法调节播放进度,而最致命的缺陷当属无法实现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氏的说法,这个播放器还有升级或补充的空间,所以播放器界面上有的地方是空的(然而软件更新方面目前似乎也没动静了)。

所以FMP7这种芯片音乐到底是什么神仙配置!?(可以点播放参数界面
右上角的蓝白箭头按钮调整界面大小)

        播放器使用方面的话,我在这里只评价PMD的部分:首先由于采用了C60氏的PMDWin.dll(没错,这也是FMPMD2000运行时所需的库文件),理论上它的兼容性与音质和FMPMD2000完全相同;其次它的播放参数界面也更完备,在传承了FMDSP界面风格的基础上还增添了每个通道的瀑布谱(P.S. 这要换成示波器那岂不是更酷炫)。最贴心的应该是详尽且全面的播放器设置,每个库文件本身都有众多参数可供设置,基础的播放功能也都有。缺点的话则是曲目信息会以乱码显示(Locale Emulator了解一下×2),另外对于YM2608内置鼓点的参数显示也不全面——软件只显示单独编译的YM2203/YM2608鼓点,对于SSG鼓点附带的这些鼓点,它是不显示的。

        有趣的是,Guu氏在当时也有份参与FMDSP的制作——据FMDSP 0.79d版和0.85b版的说明文档记载,Guu氏对于FMDSP播放FMP音乐功能的实现有不小的帮助。也许FMDSP7的主页网址更能说明Guu氏对FMP“情有独钟”了吧(由这些音乐家制作的9张FMP专辑也能说明这一点……凭什么不做PMD专辑啊)

        软件链接: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)。上图中的2.1F版本是不支持.MZ规格的音乐的,需要的话可以使用下面的2.3K版本。

2.3K版本的说明文档提到了这个版本的特点之一:PMDPPZ時の怒涛の21段鍵盤表示.(看着就爽)

        似乎没什么好介绍的,反正很好用。


②    FMDSP

        这是由HypS氏制作的一款经典播放器,光是界面看起来就很舒服了。它能播放FMP和PMD类型的音乐,一共10种主题色,自带文件选择器,对CPU和系统配置的要求也较高。

          在0.85b的较新版本中,该播放器能加载PPS采样文件(需要常驻PPSDRV.COM和PDR.COM),但PMD的PPZ8是不支持的;在加载了PMD.COM的情况下,软件中的FM4~6通道实际上会显示3个FM3 Ex的参数。

        同样没什么好介绍的,这个也很好用。

       另外软件频谱只是用来显示对应的note的,请不要指望它能搞什么FFT


③   MSDP

        第一次看到这个软件已经是在5年前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文件以及存储标题数据文件(?),这些功能需要自行改写配置文件才能实现。


④   PMDPS & PMDPV

        严格来讲PMDPS不算播放器,它更像是一个文件浏览器(看它的全称也应该能猜到了),在此基础上可以加载view-key和PMDPV。后者也不能称作是播放器,因为它的功能只是显示播放参数。细心的读者应该还能在图中找出PMDPV全称的拼写错误

        这两个软件都能显示文字特效(例如上图的紫色字体)。另外PMDPS居然可以显示卡拉OK歌词,这点我是真没想到过……

        卡拉OK功能的话可以看看我的这个视频(我从未见过有如此厚颜无耻之人):

视频加载失败


⑤    PMK

        另一种极致的文件浏览器和播放参数显示器,播放音乐时实际上会调用PMP. COM(后述)。

        说实话,在截下这两幅图时,我的脑海中就曾浮现出《1K ZX Chess》,不过这个文件浏览器的体积可要比VIEW-KEY和FMDSP还大。这个软件算是把DOS界面体现得淋漓尽致了,还动用了最下方一栏的F1-F10快捷键功能显示区域,同时也可以在其中看出一些PMDPV的影子。


⑥    怪绮谈Music Room

        不考虑操作复杂程度和版权问题的话,把这段内容放到这来也确实没啥毛病……也不知道ZUN当年是怎么做出这种键盘可视化效果的(不会又是从别的程序搬过来的吧,希望ZUN不会看到这里)

        需要注意的是这种方法对音乐文件的大小有要求(貌似是单个文件不能超过8 KB,应该是游戏运行前对音乐驱动设置了内存容量),否则在游戏中播放到这首歌的话会直接死机,单独播放的话程序也大概率会卡死,总之不推荐大家折腾这种方法。


⑦    PMP

        最直接的播放方法。平时应该用不到吧。

        不过把它写进这篇专栏的时候,似乎有一种全盘否定了前面所有播放器的感觉。抛开胡里花哨的UI和播放参数,以最朴实纯正的手段去欣赏音乐本身,那才是和音乐打交道的正确方式……这就是纯粹的力量吗(雾)



后记

        从我接触东方Project,到我了解东方的旧五作及其音乐,再到编写PMD音乐和入手PC-98实机,这10年过得真是太快了。

        不知道各位最初是从哪里接触到PC-98的呢——或者对于不少人来说,若不是去了一些THO展览,亲眼见到了那些用于展示东方旧作的笔记本,会不会都不知道有这样一种架构存在?在国内以这种方式切入,然后再深入了解PC-98当然没问题,但仅仅是东方旧作还不足以代表PC-98,把这二者划为等号更是无异于埋没了这段辉煌历史中的其他优秀作品,希望大家能认识到这一点。

        和很多东方Project同好一样,当初我也希望能通过编曲亲自体验ZUN乐的魅力与乐趣,但我逐渐意识到,即便入手了SD-90和其他正作中使用过的各种音源,无论是在乐理上还是精力上我都未必能驾驭的了它们。那不如直接从东方旧作的音乐开始入手吧,那不也是ZUN乐吗,当时的我如是想到。

        只是当时的我不会想到,这个选择让我认识到了这么多人与事。这个选择,我也会继续坚持的。

        最后,感谢THBWiki上的大量相关资料,以及在屏幕前读到这里的你。

投诉或建议