MIDI 工具

打开 .mid 文件即可查看其结构、在钢琴卷帘上观察音符,并用内置的即时合成器试听。可以移调、改变速度、静音音轨或换乐器,然后导出编辑后的 .mid。接上 MIDI 键盘(或用屏幕琴键)也能实时弹奏。一切都在本地运行 — 不上传任何数据。
未载入 MIDI 文件。
就绪。
钢琴卷帘
Web MIDI 在 Chrome/Edge 中可用。Safari 与 iOS 不支持 — 请改用下方的屏幕键盘。
用鼠标或电脑键盘弹奏屏幕键盘(A S D F G H J K L ; — 白键,W E T Y U O P — 黑键)。
什么是 MIDI?

MIDI(乐器数字接口,1983 年标准化)不是音频。它是一种线路协议和文件格式,用来传递演奏指令:哪个键按下、何时按下、力度多大、该由哪种乐器发声。MIDI 文件更接近自动钢琴的打孔纸卷,而不是录音 — 它存的是动作手势,任何收到这些指令的合成器都能据此发声。这一区别解释了本页所做的一切:查看、移调、变速和换乐器之所以可行,正是因为 .mid 文件里是可编辑的指令,而不是固定的波形。

五个事实,帮你理解本页其余内容:
• MIDI 文件不含任何音频 — 只有音符、时值和乐器编号
• 每个音符都是一个数字:60 = 中央 C(C4),69 = A4 = 440 Hz,一个八度 = 12 个半音 = 频率正好翻倍
• 力度(击键的轻重)范围是 0–127
• 文件的内部时钟以 tick 计,不是秒;速度以“每四分音符多少微秒”存储(120 BPM = 500,000)
• General MIDI 规定了 128 种标准乐器,所以同一个 .mid 文件在任何合成器上听起来都差不多
MIDI 是指令,不是音频

一个 .mid 文件是一串短事件。Note On 表示“通道 1,按键 64,力度 100”;之后对应的 Note Off 把它释放。控制变更事件控制踏板与旋钮;程序变更事件选择乐器。由于这些事件只说演奏什么而不说听起来如何,同一份文件经 1990 年代声卡芯片、本页的 WebAudio 合成器和专业采样音源播放,会呈现出三种差异极大的演绎 — 就像同一份乐谱用三台不同的钢琴演奏。若你需要固定、可移植的音频,那是 MIDI 转 WAV 渲染器的工作:它把某个合成器的演绎固化成波形。

音符、编号与钢琴卷帘

MIDI 用编号命名音符,并内置十二平均律:频率 = 440 × 2(n−69)/12。所以 69 号音符正好是 440 Hz,60 号是中央 C(261.63 Hz),任何 12 个半音的跳跃都会让频率翻倍(或减半)— 这正是把上面的移调滑杆推到 +12 或 −12 时所发生的。上方的钢琴卷帘就是把这些数字画成图:音高纵向排列(低音在下),时间横向展开,每个音符画成一根横条,长度即其时长,颜色深浅则来自力度。

Tick、PPQ,以及速度为何可自由改变

在标准 MIDI 文件内部,时间以文件的 PPQ(每四分音符的脉冲数 — 常见为 480,即一个四分音符持续 480 个 tick)为单位计为 tick。速度则单独存在一个事件里,单位是“每四分音符多少微秒”:120 BPM 是 500,000,60 BPM 是 1,000,000。由于音符位置以音乐单位而非秒来存储,改变速度只会重新缩放一切发生的时间,而不会挪动任何一个音符 — 上面的速度滑杆正是利用了这一点,导出按钮则会重写事件,让其它播放器也能重现你的编辑。

常见误解
  • MIDI 文件录下了音乐。不对。它录的是演奏指令。一首三分钟的流行歌只占几十 KB,因为没有存储任何波形 — 这也正是同一个文件在每台合成器上听起来都不一样的原因。
  • MIDI 天生音色廉价。不对。“廉价”的名声来自 1990 年代声卡芯片的简陋波形。同样的 MIDI 数据经专业 SoundFont 或管弦乐采样音源播放,与制作完成的成品曲并无区别 — 指令是完整的,差别在渲染器。
  • 力度就是音量。不止如此。在真实的钢琴上,击键越重,声音不仅更响而且更亮;优秀的合成器会模拟这一点,把力度同时映射到音色和音量上。MIDI 的 0–127 区间正是为合成器保留了演奏者的触键细节。

相关工具:MIDI 转 WAV 可把 MIDI 渲染成固定波形,音频频谱 可分析渲染结果,而当你需要在真实音频上获得同样的伸缩自由时,可用 音频变速 / 变调。