---
layout: post.njk
source: https://yage.ai/share/midi-synthesis-history-20260608.html
speaker: yage.ai
title: 收到一个音符事件之后：数字音源的四十年
date: '2026-06-08'
summary: 文章梳理了音源合成技术过去四十年的演进路径，从FM合成、波表合成，到采样技术、物理建模，乃至最新的可微分数字信号处理（DDSP）与AI应用。作者探讨了在存储、算力、延迟与控制连续性等不同约束下，音源技术如何在模拟真实乐器与提供可控演奏体验之间寻求平衡。AI并未取代传统音源，而是作为一种新型求解器，优化了参数调优与交互方式。
area: tech-engineering
category: ai-ml
tags:
  - midi
  - sound-synthesis
  - physical-modeling
  - sampling
  - ddsp
people:
  - Yamaha
  - Roland
  - Korg
  - Ensoniq
  - Tascam
  - Native Instruments
  - Modartt
  - Google Magenta
companies_orgs:
  - MIDI Association
products_models:
  - DX7
  - DW-8000
  - ESQ-1
  - D-50
  - SC-55
  - GigaSampler
  - Kontakt
  - Ravenscroft 275
  - Pianoteq
  - SK-EX Rendering
media_books: []
draft: true
status: evergreen
---

你按下 MIDI 控制器上的中音 C
琴键，力度中等。这一瞬间，设备送出的信息只有三种数字：note on、音高
60、velocity
90。但从耳机里出来的东西远不止这三种数字。一声钢琴有弦槌击弦的瞬间脆响，有琴弦振动的主体，有余音在止音器落下前的收束，有踏板踏住时其他琴弦的轻微共振，有箱体和空间的混响。三种数字和这整片声音之间的鸿沟，就是音源要填的。

MIDI 做的事情是把演奏动作标准化成事件消息。它传的是 “C4 按下了，力度
90，用钢琴音色”，而不是已经录好的声音。MIDI Association 对 General MIDI
的说明也停在这一层：GM 规格定义的是兼容 MIDI
设备的最低配置和共享音色集，让同一份 MIDI
文件在不同设备上获得更一致的播放效果，但不保证音质。把事件变成声音的工作落在音源上。而音源回答那个问题的方式，过去四十年换了不止一次。

## 算出来

最早的答案是：直接算。

模拟合成器用电信号生成波形，但要让电路稳定地产生复杂到像真实乐器的谐波结构，很难。1983
年 Yamaha 推出的 DX7 用了一种叫 FM
合成的纯数字方法：让一个振荡器去调制另一个振荡器的频率，被调制的振荡器就会催生出一整套新的谐波。几个简单的正弦波，经过调制关系和包络控制，就能生成铃铛、铜管、电钢琴、拨弦贝斯的质感。参数少得惊人，但音色变化极丰富。

FM
的成功说明了一件事：复杂音色不一定来自复杂声源，也可以由简单的振荡器和调制关系推算出来。但这种从算式中生成的音色有一个特征：它太干净了。真实的乐器有弦噪、气声、琴槌机械响动、随机的微小偏差；FM
生成的声音像精密的钟表，每一击都近乎一致。而且控制 FM
参数来调出特定音色是一件很反直觉的事。演奏者想要的是一台
Steinway，调音师面对的却是波形、包络和调制指数。

随后几年，另一种思路也试图用少量数据换取逼真感：波表合成。它不是从零算波形，而是用一小段数字化波形作为原始材料，通过改变读取速度、方向、插值来变调变音色。Korg
的 DW-8000（1985）和 Ensoniq 的 ESQ-1（1986）都走了这条路。波表比纯 FM
更容易接近真实乐器的静态音色，但它们同样缺少乐器演奏时的行为感。你按一次
C4 和再按一次 C4，声音是一样的；踏板踩下去和抬起来，它没有记忆。

## 抓住最难合成的瞬间

1987 年，Roland D-50 走了一步很聪明的中间路线。

真实乐器最难合成的部分，通常集中在声音开始的瞬间。弦槌敲击琴弦的前几十毫秒，弓毛擦过提琴弦的瞬间摩擦，管乐器吐音时的气声爆发，都比持续音更难用公式稳定生成。一旦声音进入延音阶段，波形反而规律得多。Roland
的 LA
合成沿着这个判断往前走：用极短的采样片段捕捉 attack
瞬间，然后用数字合成做 sustain
部分。采样只存不到一秒，但那一秒正好存下了听众耳朵最敏感的信息。

这个做法很经济。完整录制一台钢琴的每个音、每个力度，在当时既贵又不实际。但只录
attack 瞬态，一张小小的 ROM
就能装下，合成部分接着算出延音和衰减。效果出奇地好。D-50 的音色比纯 FM
多了真实乐器的呼吸感，同时又保留了合成器的可控性和丰富度。它是一种组合策略：把最难算的部分交给录音，把规律的部分还给算式。

同一时期，ROMpler（ROM-based sampler）开始出现。厂商把一大套 PCM
波形固化在 ROM
里，不是全采样，但足够覆盖钢琴、贝斯、弦乐、管乐的常见音区。这个思路在
1991 年 Roland SC-55 把 General MIDI
做成可购买的多声部音源时被进一步放大。GM 规定 128
类乐器分类和鼓组映射，SC-55 让 MIDI
文件有了可预期的播放基准。代价是音色被钉在 GM
预设的水平上：可以听，但经不起对照真实乐器。

## 装下全部录音

到了 1990
年代末，一个问题已经悬了多年：如果存储和运算成本一直在降，为什么不直接录下真实乐器的每一个音符，然后播放回去？

这个问题的瓶颈不是想法，是内存和带宽。完整录制一台钢琴的 88
个键，每个键录上十几种不同力度，再加上踏板抬起和踩下的两种状态，算下来已经是几千个样本。每个样本如果只取一两秒然后
loop
剩下的部分，细节就丢了；如果全部录满，容量大到当时的硬件内存装不下。

1998 年 Tascam 的 GigaSampler
/ GigaStudio
改变了这个限制。它不从内存加载全部样本，而是直接从硬盘实时串流。一个库可以是几个
GB，系统只在需要时调取当前音符的一小段。采样从此不再受内存约束。Native
Instruments 后来把这条路走成了 Kontakt
平台：多力度层、多麦克风位置、release
采样（琴键释放时止音器接触琴弦的声音）、round
robin（多次击打同一音符时轮换不同采样以避免机械重复感）、内建脚本控制踏板行为。

采样音源在真实感上达到了此前无法企及的高度。你听到的每个 C4
都是一台真实 Steinway 的 C4 被录下来的，力度 90 的样本和力度 60
的样本是不同的录音。VI Labs 的 Ravenscroft
275 甚至标榜 “100% sample-based, no modeling or synthesis
used”，靠全采样加脚本做到了半踏、repedal（抬起踏板后又迅速踩下时音符继续延响）这些较复杂行为。

但采样不是没有代价。每一个样本录制的是某个时刻、某种状态下的声音。它不知道上一秒发生了什么。你第一次按下
C4 时琴弦从静止开始振动，但第二次按下
C4、前一击的琴弦还在微微振动时，样本不会知道。力度层通常只有四到八层，切换时出现可觉察的音色跳跃是常事。延音踏板踩住后样本进入
loop 循环，而短 loop
在长时间延音下会暴露重复的周期性起伏，听起来像机器在反复倒带。最大的局限可能在于：采样录下的是一台乐器某一刻的静态快照，不是一个持续响应演奏行为的过程。

## 重新计算乐器本身

2006 年，一家叫 Modartt 的小公司给出了一种彻底不同的答案。

Pianoteq
不录钢琴。它建了一台钢琴的物理模型：琴弦、音板、弦槌、琴体、空气耦合，每一项都用数学方程描述。你按下
C4
时，模型实时计算弦槌如何击中琴弦、琴弦如何振动、振动如何通过琴码传到音板、音板如何推动空气。每一次击键都是新算出来的，每一个音符的状态取决于当前和之前所有发生的事。

物理模型带来的变化比音色本身更深。采样音源里，velocity
是选哪一层样本的开关。你的力度落入层 A 则播录音 A，落入层 B 则播录音
B。物理模型里，velocity 是连续输入量。Pianoteq 声称支持超过 127
级都不同的动态响应，实际效果是你在渐强渐弱时听不到层切换的台阶，整个动态过渡是平滑的。踏板同样不再触发”踩下踏板播放带延音的样本”的二元逻辑：半踏是阻尼毡接触琴弦程度的连续计算，repedal
是上一击尾音和新的击弦事件在同一个物理状态里的自然重叠，sympathetic
resonance
是未被按下的琴弦在被按下琴弦的振动驱动下产生的被动响应。这些在采样世界里需要层层采样和脚本来模拟的行为，在物理模型里只是同一组方程在不同输入下的结果。

Kawai
的 SK-EX Rendering
代表另一种选择：采样做核心音色，但把共鸣部分交给物理模型。多声道 88
键采样提供名琴的录音指纹，共鸣算法则实时计算琴弦间、琴弦与制音器、琴体各部分的相互作用。这种混合路线承认了两种路径各自的长处：采样的录音指纹是物理建模至今很难完全追平的，而物理模型的状态连续性是采样很难做到的。

哪种更好，取决于使用场景和你对”像”的定义。采样擅长还原某一台特定钢琴在某个空间里的录音质感；建模擅长做一台会呼吸、会响应、会记住状态的乐器。同一个演奏者可能在录音室里用采样库做最终混音，但在练习和舞台上选物理建模，因为后者更跟手。

## 电钢琴是更苛刻的测试

普通音源只要发出声音就行。电钢琴要解决的问题更多。

第一关是延迟。从琴键按下到声音从耳机传出来，中间经过琴键扫描、传感器处理、音源计算、DAC
转换，每一步都在积累微秒。Sound On Sound
给出过一个从业者公认的经验数值：5
到 6 毫秒的延迟尚可接受，超过 10 毫秒对钢琴、击弦古钢琴、鼓这类 attack
清晰的乐器可能出问题。超过这个阈值，演奏者主观上会觉得”钢琴不跟手”。10
毫秒听上去很短，但在一台运行着
DAW、Kontakt、几个效果插件的电脑上，buffer 设得稍大就可能超过。

第二关是力度映射。琴键机构的力度传感器曲线和音源的 velocity
响应曲线不匹配时，弹轻了不出声，弹重了音量和音色突然冲出来。好的电钢琴和舞台琴提供可调
velocity curve，让演奏者把琴键动作和声音行为对齐。

第三关是复音数。你手里按着 4 个音，但音源实际同时在消耗的不止 4 个
voice。延音踏板踩住时所有按过的音都在持续；release
采样通常比持续音更短但也要占用复音槽；sympathetic resonance 需要额外
voice 去模拟未被按琴弦的被动振动。一台标称 256
复音的电钢琴，在有经验的钢琴家脚下可能刚好够用。

把这些合在一起看，“好钢琴音色”看的是整个链路的响应，而不是单个 C4
样本像不像：键床手感、传感器速度、音源生成的动态连续性、踏板的状态模型、DAC
和功放的底噪、扬声器的频响和摆放。任何一个环节处理粗糙，前面的细腻都会被抵消。这也是为什么高端舞台琴比入门电钢贵出几倍，不只是音色包大了几
GB。

## AI 改变了哪个环节

对 AI
读者来说，问题会自然转到深度学习：它进入以后，上面的故事变了多少？

答案比”全被替代”那种叙事更窄，也更有信息量。AI 没有推翻采样、FM
或物理建模的旧世界。它更像一个新来的求解器，开始学习旧技术里那些最难用手工调出来的部分。

Google Magenta 的 DDSP
给出了一个清晰样本。DDSP
的全称是可微分数字信号处理，它把振荡器、滤波器、混响这些经典 DSP
模块做成可微分的版本，然后让神经网络学习如何控制这些模块的参数。DDSP
论文里有一个关键数据：所有模型都只用不到 13
分钟的训练音频。能做到这一点，依靠的是 DSP
结构本身就编码了声音产生的物理常识，模型不需要从零学习”什么让声音听起来像声音”。它只学控制信号和合成参数之间的映射。

沿着这个思路看钢琴，2022 年 DAFx 会议上的一篇论文构建了第一个基于
DDSP 的多音可微分钢琴模型，以 MIDI
作为输入条件合成钢琴声。它的声音质量比当时的神经基准模型更好，而且参数量和训练数据都更少。但同一篇论文的听觉测试结果也写了：物理建模模型质量仍然更高。AI
在这里是缩小差距，不是超越。

可微分物理建模是另一个活跃的方向。ISMIR 的相关
workshop
把问题提得更宽：如果把物理模拟本身做成可微分的，就可以用自动微分来估计模型参数、优化控制映射、从录音反向推导乐器的物理特征。AI
的角色是参数估计工具和控制层，底下运行的还是一套物理引擎。

AI 还可以出现在音源之上的界面层。2024 年 Yamaha
展示了一台 AI
辅助钢琴，它做的事情是追踪演奏者的节奏和力度，实时补全和声与伴奏。AI
没有重新发明钢琴的发声方式，它只是让钢琴本身更善于理解演奏者在做什么。这个案例说明，AI
进入音乐系统时，经常先改变交互层，而不是直接替换音源层。

四十年走下来，FM 芯片、ROM 波形、多 GB 采样库、物理模型、可微分 DSP
全部还在运转。它们对应的是不同约束。GM
音源芯片在创客项目里把音频工程封装成几条 MIDI 指令，十几美元一块模块，对
Arduino
玩具和音乐编程课来说刚好够用。大采样库在录音室里提供最细的录音细节，代价是几十
GB
硬盘和一台够快的电脑。物理建模在舞台上提供连续的动态和踏板响应，代价是牺牲了某台具体名琴的音色指纹。Workstation
把多引擎捆在一起，给巡演乐手一个什么都有的中枢，代价是单拎出钢琴部分可能不如专用舞台琴。

音源合成的历史是一组约束之间的来回权衡：算力、内存、成本、延迟、控制连续性，以及”你想要的那台乐器到底是一段完美的录音，还是一个能跟你对话的活的东西”。四十年前有人决定用
FM 去算，三十年前有人决定去抢 attack
瞬态，二十年前有人决定把整台钢琴录下来，十五年前有人决定去重写物理方程。十年前到现在，有人开始让神经网络去学这些方程里的参数。声音的来源一直变，但核心问题没变：收到一个音符事件以后，你准备从哪里拿出那个声音来。