Rockbox MIDI 与模块播放 - 复古合成器和 Tracker 音乐
两种复古音频格式
MIDI
MIDI(Musical Instrument Digital Interface) 不是音频格式——它是演奏指令格式。文件里存的是「在什么时候弹哪个音符、用什么乐器、力度多大」这些指令,由播放器里的合成器实时合成出声。
优势:
- 文件极小(一首歌几百字节到几 KB)
- 可以实时改变乐器音色(换 SoundFont)
- 早期电子游戏、电子合成器音乐的主流格式
劣势:
- 需要硬件或软件合成器(不是所有 DAP 都有)
- 音色质量取决于合成器质量
模块音乐(MOD Tracker)
模块音乐(MOD、XM、S3M、IT、669 等)是 90 年代 Demoscene 文化的产物——程序员用 Tracker 软件(Impulse Tracker、FastTracker 等)创作的程序化音乐:
- 每个文件包含多轨音频样本 + 时间轴排列数据
- 可以用非常小的体积实现复杂的合成器效果
- Rockbox 内置 MikMod 引擎(Tracker 音乐标准播放器)
Rockbox 的支持情况
MIDI 播放器
Rockbox 内置 MIDI 播放器插件:
- 部分设备实时合成(有硬件 MIDI 合成器芯片的 DAP)
- 其他设备软件合成(用 Rockbox 的内置 SoundFont——通用 MIDI 音色库)
- 支持格式:
.mid、.midi、.kar(卡拉 OK 格式)
启动:Plugins → Applications → MIDI Player
MikMod 模块播放器
Rockbox 内置 MikMod 插件(基于 libmikmod 库):
- 支持所有主流模块格式:
.mod、.xm、.s3m、.it、.669、.med、.nst等 - 实时播放,部分复杂模块文件对 CPU 有一定压力
- 文件体积小(一首歌 100KB~2MB)
启动:Plugins → Applications → MikMod
Yamaha SMAF
Rockbox 还支持 Yamaha SMAF(.mmf 格式)——早期日本手机铃声的主流格式。这种支持不是通过插件,而是 Rockbox 内置解码器直接在文件浏览器里播放。
音频效果
MIDI 合成器
Rockbox 默认用一个内置的 General MIDI 标准音色库——128 种标准乐器 + 打击乐组。音质是 90 年代的合成器水平(方波/锯齿波基础合成),但胜在文件小、不需要额外资源。
想要更好的音色? 可以替换 SoundFont 文件(.sf2 或 .sfz)——放到 Rockbox 的 .rockbox/soundfonts/ 目录,设置里切换。高质量 SoundFont 体积可能 10~50MB。
MikMod 效果
模块音乐的音质完全取决于创作时用的样本质量——好的 MOD 文件可以接近 CD 音质,差的可能就是几 KB 的简单合成。Rockbox 忠实还原原文件,不会改变音质。
为什么要在 DAP 上听这些
这是一个小众但有意义的场景:
- 复古电子音乐爱好者:收藏了一堆 MOD/XM 作品,想在 DAP 上听
- 老游戏原声:很多 90 年代 PC 游戏的背景音乐是 MOD 格式(比如《Descent》《OutRun》《Comanche》),想在 DAP 上回顾
- 电子合成器音乐:MIDI 文件可以在 DAP 上实时改变 SoundFont,玩音色实验
- 文件极小:MIDI 文件 KB 级,几千首歌塞在一个 Flash 目录里都不占空间
硬件 vs 软件合成
硬件合成(少数 DAP)
少数 DAP(Archos 早期、部分 Sony Clie 等)有硬件 MIDI 合成器芯片——Rockbox 可以直接操作硬件,零 CPU 开销,音质也更好。
软件合成(大多数 DAP)
大多数 DAP 没有硬件 MIDI 芯片——Rockbox 用 CPU 做软件合成。这意味着:
- MIDI 播放会占 CPU 资源
- 大 MIDI 文件(复杂和弦、长时间)在老设备上可能掉帧
- 音质受 CPU 算力限制
复古掌机(RG35XX/TrimUI) CPU 性能强,软件合成完全没问题。
SMAF 的特殊情况
Yamaha SMAF (.mmf) 是 2000 年代初日本手机(DoCoMo i-mode 时代)的标准铃声格式。Rockbox 的支持意味着:
- 早期日本手机的铃声文件可以直接在 Rockbox DAP 上播放
- 格式虽然过时但有一定收藏意义