历史

Tracker 的源头在 1987 年的 Amiga。德国程序员 Karsten Obarski 做了 Ultimate SoundTracker,第一次把音乐变成一张竖着滚动的表格——每一行是十六分音符,每一列是一个声道。这个界面后来几乎没变过,你现在看到的网格就是它。

文件格式跟着硬件迭代:Amiga 的 MOD(4 声道,Paula 芯片)→ PC 上 Scream Tracker 的 S3M → 1994 年 FastTracker 2 的 XM。XM 支持 32 声道、可调包络、每个音符带效果命令,是这条线的成熟形态——也是这个播放器导出时所写的格式。

让 tracker 出圈的是 demoscene。1993 年芬兰 Future Crew 的 Second Reality,音乐就是一个 S3M 模块,四个声道做出了管弦的厚度。那批人后来创立了 Remedy(《马克思·佩恩》)。

Keygen music 是这条线最后的民间形态。1999–2005 年间,破解组把几十 KB 的 tracker 模块塞进注册机,开机就循环播放。它和 demoscene 同源,但更粗糙、更快、更随意。这个播放器的界面原型就来自那个时代。

现在它跑在浏览器里,靠 Web Audio API 实时合成——不需要插件,不需要文件。

技术

声音是现算的,不是采样。四个声道的脉冲波由傅里叶级数实时生成波形表,占空比可调(6%–50%)——从方波的尖锐到接近三角的圆润,一路连续。

Bitcrusher 跑在 AudioWorklet 里(独立的音频线程,不卡界面):位深量化削掉振幅精度,降采样丢掉时间精度。两者叠出那种"劣质声卡"的颗粒感。

FX 列是 XM 的灵魂。每个格子能挂一条效果命令:0xy 琶音、1xx/2xx 滑音、Cxx 音量。播放器支持全局琶音叠加,行内自定义的优先。

随机生成的算法:先定和声(四小节一组功能化进行,和弦音由级数叠三度得出),再在拍点上落骨架音(只从和弦音里挑,保证协和),最后用经过音填充弱拍把骨架连成句子。节奏走 AABA 乐句结构,配合轮廓规则(拱形重心、跳进后反向、同向刹车)。四种 MOOD 决定音阶池、进行池和密度。

反馈延迟挂在 bitcrusher 之后,延迟时间同步 BPM 的附点八分(trance 那口光泽的来源)。这个位置是刻意的——放前面会让每层回声都被重新压位,越叠越脏。

TONE 预设切换的是"光泽度":Y2K 是 16bit / 无降采样 / 宽声场 / 大混响;GRIT 是 5bit / 5x 降采样 / 窄脉冲 / 近乎干声。同一首曲子切一下,差别立刻能听出来。

最后,EXPORT .XM 能导出真正的模块文件,用 OpenMPT 或 MilkyTracker 可以直接打开继续编辑。

---