扒谱这件事放在《Deltarune》这个项目里,其实比想象中更有价值。《Deltarune》的配乐经常在短短几十秒内切换多个音乐动机,拍号、速度、织体和音色都会跟着剧情变化。以《Sunset of Seven Suns》为例,如果你想把这段音乐从音频还原成可演奏、可排版的乐谱,真正要解决的并不是“耳朵好不好”的问题,而是一套可重复的音频分析、分层扒谱、MIDI 整理和最终打谱的工作流。本文会围绕这条主线,讲清楚每一步为什么要这样做、用什么工具、验证什么结果,以及听不出来的时候该怎么排查。
这篇文章适合正在练习扒谱的作曲学习者、想分析游戏配乐的编曲玩家,以及在音频后期或音乐教学场景里需要把录音转成谱子的人。学完之后,你不仅能处理《Sunset of Seven Suns》这类带有合成器铺底、鼓组和旋律层的音乐,还能把同一套方法迁移到其他游戏原声、影视配乐或流行歌里。
1. 扒谱前先想清楚三个问题:听什么、记什么、给谁用
1.1 扒谱不是“听写音符”,而是“还原音乐决策”
很多人一上来就用耳朵硬听旋律,然后把音符一个个写进打谱软件。这种方式不是完全不行,但效率很低,尤其面对《Deltarune》这类编曲密度不低的配乐时,很容易出现“旋律记住了一句,低音和鼓却完全没听出来”的情况。
扒谱的本质,是把一段录音里包含的音乐决策还原出来。作曲家写了什么调式、用了什么和弦、低音怎么走、节奏型是什么、音色分层如何处理,这些都隐藏在声波里。你要做的不只是“听对音高”,还要判断“这个声音在整首曲子里承担什么角色”。所以在打开软件之前,先明确三个问题:
- 这段音乐由哪些声部组成。
- 每个声部在什么时候进入、什么时候退出。
- 最终谱子给谁看、给什么乐队或程序演奏。
“给谁用”决定了记谱的颗粒度。如果你只是做编曲分析,可以只记和弦和主要旋律;如果你要还原一个可以演出的版本,就必须把鼓、贝斯、和声、旋律、甚至特殊音色都单列出来。本文默认目标是后者:得到一个接近原曲结构、可用于 MIDI 播放或乐队演出的总谱草稿。
1.2 本文目标:用一份录音还原出可演奏、可导出的乐谱
在开始之前,建议先把最终产物想清楚。常见交付物有三类:
| 交付物类型 | 适合场景 | 记谱颗粒度 |
|---|---|---|
| 和弦谱 | 快速分析、翻唱、即兴参考 | 只要和弦标记和段落结构 |
| 缩编谱 | 钢琴、单乐器改编 | 压缩多个声部到两行谱 |
| 完整总谱 | 乐队排练、MIDI 工程、多乐器分轨 | 每个声部独立成行 |
以《Sunset of Seven Suns》为例子,我建议第一遍扒谱直接奔着“完整总谱”去做,哪怕最后只保留 MIDI 轨道,不导出正式 PDF,也要在工程里把声部分清楚。原因很简单:完整总谱的还原过程能强迫你听清低音、鼓、和声和旋律之间的关系,而不是只挑最好听的那条线。
1.3 需要准备的硬件和软件清单
这个工作流不一定需要专业录音棚设备,但有一套顺手的工具可以大幅提升效率。
| 用途 | 推荐工具 | 说明 |
|---|---|---|
| 音频播放与处理 | Audacity、Reaper | 免费或低成本,支持降速、循环、频谱分析 |
| 命令行音频处理 | ffmpeg | 批量切分、变速、变调时很好用 |
| MIDI 编辑/录入 | Reaper、FL Studio、Logic Pro | 用手头已有的 DAW 即可 |
| 记谱/排版 | MuseScore、Sibelius、Dorico | 把 MIDI 整理成五线谱 |
| 程序化检查 | Python + music21 | 批量检查音区、调式、和弦标记 |
| 参考设备 | 耳机、监听音箱、MIDI 键盘 | MIDI 键盘不是必须,但有它录入速度更快 |
注意一点:工具版本会影响命令和插件表现。下面的示例以常见版本为准,你落地前先确认自己的软件版本是否匹配。
建议:扒谱时不要只用手机外放,至少准备一副监听耳机。很多低音和声部在手机外放里会被完全压掉,但你听不到不代表音频里不存在。
2. 音频预处理:切分、降速、调音高,给耳朵创造“慢放条件”
2.1 获取并整理音频素材时的注意事项
扒谱首先需要一份质量尽量高的音频文件。注意这里只建议处理你自己合法拥有的音频,比如你已经购买的数字专辑、官方 OST 文件,或者游戏内录制的素材。不要为了扒谱去下载来源不明的音频包,也不要在公开文章里传播音频文件。
拿到音频后,第一步不是开始听,而是确认几个基本信息:
- 文件格式是无损还是有损。
- 采样率是多少。
- 有没有开头静音或片头音效。
- 整首曲子拍号和速度是否稳定。
如果音频来自游戏录制,通常会有菜单音效、对话音效混在里面。这种情况下,先剪掉无关部分再扒谱会轻松很多。
2.2 用 ffmpeg 切出目标段落
《Sunset of Seven Suns》这类曲子很可能不是从头到尾一个速度到底。配乐经常有引子、主题、过渡、再现等段落。我的建议是先通听一遍,记录大致的段落时间点,然后按段落切分音频。
如果你需要快速切出 01:30 到 02:45 的内容,可以用 ffmpeg:
ffmpeg -i sunset.flac -ss 00:01:30 -to 00:02:45 -c copy section.flac关键点解释:
-ss指定起始时间,放在-i后面时,seek 精度一般足够。-to指定结束时间。-c copy表示不重新编码,速度最快,但切分点可能不完全精确。- 如果后续要降速,建议不要用
-c copy,而是重新编码为无损格式,避免时间戳错位。
更稳妥的做法是先转成无损 WAV:
ffmpeg -i sunset.flac -ss 00:01:30 -to 00:02:45 -acodec pcm_s16le section.wav这样后面给 Audacity 或 DAW 做处理时,解码成本低,定位也更稳。
2.3 降速不变调与变调不变速
扒谱最常用的两个音频处理手段是“降速”和“变调”。
降速不变调的意义在于:把音乐放慢之后,鼓点、低音和快速经过音会更容易分辨。很多 DAW 自带这个功能,Audacity 里也有“效果”菜单下的“改变速度”和“改变音高”。
用 ffmpeg 也可以实现变速不变调,常见思路是结合asetrate和aresample:
ffmpeg -i section.wav -af "asetrate=44100*0.75,aresample=44100,atempo=1.0" slow.wav这里的逻辑是:
asetrate=44100*0.75把采样率解释改为原来的 75%,相当于音频变慢、音调降低。aresample=44100重新采样回标准采样率。atempo=1.0保证播放速度不再额外变化。
更直接的做法是把asetrate和atempo配合使用:
ffmpeg -i section.wav -af "asetrate=44100*0.75,aresample=44100,atempo=1.333" slow_pitch.wav其中1.333用来抵消播放变慢的影响。实际项目中速度比例要根据曲子的密度调整,0.5 到 0.8 之间的降速倍率用得比较多。
变调不变速用于另一种场景:如果你觉得整首曲子比标准音高低或高,可以先统一移调到方便你听辨的调,再开始扒。
ffmpeg -i section.wav -af "asetrate=44100*1.05,aresample=44100,atempo=0.952" shift_up.wav注意:反复降速和变调会损失音质和声像细节,所以处理时不要叠太多层,尽量只做一次预处理,然后循环播放。
2.4 处理完怎么确认音频可用
预处理完成后,不要急着开始扒。先做一次快速验证:
- 用播放器连续播放,确认没有明显的爆音和丢帧。
- 切换段落边界,确认没有重复或缺失的片段。
- 在频谱视图里看低频区域,确认低音没有被切掉。
- 用节拍器粗对一下速度,确认 BPM 和预设没有明显错误。
如果切出的段落开头有渐入、结尾有延音余韵,这是正常现象,不要为了“干净”过度裁剪,否则会把音符的起始和释放过程切坏。
提示:预处理的目标是“让耳朵更容易工作”,不是“把音频修得更干净”。保持原始听觉信息非常重要,尤其是混响尾音和乐器共振,它们能帮你判断和弦的延音方向和声场层次。
3. 分层扒谱:从底鼓到旋律,把一团声音拆成四条线
3.1 推荐的扒谱顺序:鼓组、贝斯、和声、旋律
扒谱顺序很重要。很多人习惯先扒旋律,因为旋律最好听、最容易听出来。但旋律往往建立在和声和低音之上,如果先记旋律再补和声,很容易出现“旋律是对的,但和弦配得特别别扭”的情况。
推荐顺序是:
- 鼓组或节拍层,先确定速度和小节框架。
- 贝斯或低音层,确定基础的音级走向。
- 和声层,确定和弦性质。
- 旋律层,确定完整旋律线。
- 最后回头检查织体层和特殊音色。
这背后的原因很简单:低音和鼓决定了音乐的“骨架”,和声决定了“色彩”,旋律则是在这个框架上流动的“线条”。先搭骨架,再填色彩,最后画线条,返工率最低。
3.2 打击乐怎么记最省力
打击乐是不区分音高的吗?不完全是。底鼓、军鼓、踩镲、通鼓都有不同的音色和频率范围。在《Deltarune》这类电子和管弦混合配乐中,打击乐往往还叠加了电子鼓、噪声层、甚至低频冲击音效。
第一遍听打击乐时,不要一上来就记十六分音符的细节。先抓住节奏骨架:
- 底鼓通常在正拍和后半拍。
- 军鼓或木管重音通常在小节第二拍和第四拍。
- 踩镲或振荡器短音确定细分节奏。
用“大字版节奏骨架”记录:
小节1: 底鼓 1 . 2 . 3 . 4 . 军鼓 . . 2 . . . 4 . 踩镲 1 + 2 + 3 + 4 +这种纯文本节奏图可以作为草稿,先不进入打谱软件。等骨架确定后,再逐步加细节,比如底鼓的切分音、军鼓的 ghost note、踩镲的开闭变化等。
如果你已经在 DAW 里监听,另一个高效做法是直接画 MIDI 音符,用耳机上的底鼓直觉判断位置。听不清楚时,把音频降速到 50% 或 60% 再画。
3.3 贝斯线和低音层的判断方法
低音是扒谱里最容易翻车的一层。原因有两个:普通扬声器低频响应不足,以及低音经常与底鼓叠加,难以分离。
判断低音时可以先做两个动作:
- 用 EQ 把高频滤掉,只听低频部分。
- 在频谱视图里观察 60Hz 到 300Hz 的共振峰变化。
Audacity 的频谱图可以帮你看到音高轨迹。低频音高在频谱图上会形成一条横向的亮带,虽然不如旋律层清晰,但足以判断音是上行还是下行、是大跳还是级进。
听低音时还有一个技巧:不要只记音名,先记“相对走向”。比如第一小节前面两个小时下行,第三个音跳上来四度,这些相对关系比绝对音高先定下来,后面用 MIDI 键盘试音时会快很多。
3.4 和声层与和弦性质判断
判断和声时,先用低音层确定和弦根音,再听三层信息:
- 三度音是大还是小,决定大三和弦还是小三和弦。
- 有没有七度音。
- 有没有挂留音或扩展音,比如 add9、sus4。
以《Sunset of Seven Suns》为例,这类配乐里的和声经常并不是干净的钢琴柱式和弦,而是通过合成器铺底、弦乐长音、甚至多个音色叠加实现的。这时候不要只靠听一个瞬间的声音,要多听同一和弦跨越的时长,并在不同段落里对比同一个和弦出现的次数。
如果你在 DAW 里编辑 MIDI,可以把测到的和弦音全部堆在一个 MIDI clip 里,然后用钢琴卷帘查看音程关系。这个方法比纯靠耳朵判断更直观。
3.5 旋律层与音色分层
最后扒旋律时,要注意主旋律经常不是单一乐器。在《Deltarune》风格配乐里,旋律可能由铜管、木管、合成主音、甚至人声采样交替承担。你需要按音色把“为什么这个声音很突出”记录下来。
实际操作时可以这样:
- 把完整循环切成 8 个小节的短段。
- 每段先只听高频,把主旋律音高记下。
- 再听一遍中频,判断是否有副旋律或对位线条。
- 最终用 MIDI 键盘或者打谱软件里的虚拟键盘试弹,验证音高。
到这里,你的工程里已经有鼓、贝斯、和声、旋律四层 MIDI 草稿。没有这个基础,直接写谱往往会丢失声部关系。
4. 节奏、调号、拍号怎么定,别一上来就写音符
4.1 先定拍号和小节线
扒谱最容易犯的错误是直接听旋律写音符,完全不管小节线在哪。没有小节线的谱子,读起来非常困难,而且和声分析无法进行。
正确的顺序是:
- 先找到重音周期,判断是 4 拍、3 拍还是 6/8 的复合拍。
- 用鼓组听底鼓位置,判断强拍和弱拍的分布。
- 确定拍号,比如 4/4、3/4、6/8。
- 再画小节线,把旋律和和声按小节组织。
不要因为乐曲里有切分就想改成复杂拍号。很多配乐在 4/4 里大量使用切分和重音移位,听起来像 7/8 或 5/8,但实际记谱仍然是 4/4,只是重音位置不同。先用节拍器对速度,切分音会自动暴露出来。
4.2 用节拍器卡速度
可以这样确认 BPM:
- 在 DAW 里新建工程,打开节拍器。
- 边听边调整 BPM,直到节拍器的每一拍都能对到鼓点或踩镲上。
- 如果某一拍总是对不上,可能不是 BPM 错,而是曲子有速度变化,或者你选的音频段落里混入了变速效果。
《Sunset of Seven Suns》这类配乐如果涉及渐快、渐慢或自由速度,需要按乐句分段记录 BPM。不要试图用全局一个速度覆盖所有段落。
4.3 用频谱图辅助定位音高
人耳对中频最敏感,对极低频和高频的判断容易偏差。频谱图可以作为“第二双耳朵”。
在 Audacity 中,选中音频,点击“分析”菜单下的“频谱图”,会出现一个二维图:横轴是时间,纵轴是频率,颜色越亮表示能量越强。音高越清晰的乐器,会在对应频率上形成连续亮带。
你可以这样读取:
- 找到亮带的中心频率。
- 用频率和音名的换算关系判断音高。44100Hz 采样率下,A4 是 440Hz,E4 约 329.63Hz,C4 约 261.63Hz。
- 如果亮带比较宽,说明该音包含丰富泛音,可以看最低的强共振峰判断基频。
这里给一个常见频率和音名对照表用于参考:
| 音名 | 频率(约) |
|---|---|
| C2 | 65.41 Hz |
| G2 | 98.00 Hz |
| C3 | 130.81 Hz |
| G3 | 196.00 Hz |
| C4 | 261.63 Hz |
| G4 | 392.00 Hz |
| C5 | 523.25 Hz |
注意:实际音高需要根据音频采样率、变调处理和频谱解析参数校准。这里列出的频率只作为通用参考,遇到不熟悉的音色,先用 MIDI 键盘验证再落谱。
4.4 建立“先粗后细”的修正机制
第一遍扒谱不需要每个音都正确。建议用三遍法:
- 第一遍:只记段落结构、拍号、BPM、和弦性质,可能只有和弦根音。
- 第二遍:补全低音和鼓的节奏细节。
- 第三遍:补全旋律音、和声排列、特殊音色。
每完成一遍,用 DAW 里已经画好的 MIDI 回放,与原始音频做 A/B 对比。如果某个地方听起来不对,不要急着改音符,先判断是音高错、时值错,还是声部对位错。
遇到越听越不确定时,可以回到“最小单位验证”:把音乐暂停在目标小节,单独循环播放那一拍,然后用 MIDI 键盘一个一个试相邻音高,找到最顺的那个音。
5. 用 MIDI 和 music21 把草稿整理成五线谱
5.1 为什么建议用 MIDI 做中间格式
直接手写五线谱很容易被排版干扰。你在纸上或打谱软件里画音符时,看到的是一堆符头、符干、连线和多声部对齐,而这些细节和“音高是否正确”是两件事。
MIDI 文件只记录音符的起止时间、音高、力度和轨道,不包含排版的视觉负担。它适合做中间格式:先在 DAW 或打谱软件里完成 MIDI 录入,再导入排版软件自动生成五线谱。这样可以把“记谱逻辑”和“排版规则”分开处理。
5.2 在 DAW 或打谱软件里完成 MIDI 录入
如果你用手铉 DAW,常见流程是:
- 新建工程,设置 BPM 和拍号。
- 把预处理后的音频拖进一个轨道作为参考。
- 新建多个 MIDI 轨道,分别命名为 Drums、Bass、Harmony、Lead。
- 在每个轨道上按循环段落画音符。
- 播放参考音频和 MIDI,反复对比。
如果你更习惯 MuseScore,可以在 MuseScore 里直接输入音符,但建议先把 MIDI 文件做成草稿再导入,这样排版时会少很多返工。
5.3 用 music21 做批量检查和调式修正
当 MIDI 草稿越来越长,靠肉眼检查每一个音符会很累。Python 的 music21 库可以帮你做批量分析。
安装 music21:
pip install music21然后可以写一个简单脚本,读取 MIDI,输出每个轨道的音符数量、音域范围和首尾音高:
from music21 import converter, note, chord score = converter.parse('sunset_transcription.mid') for part in score.parts: print('轨道:', part.partName) notes = [] for n in part.recurse().notes: if isinstance(n, note.Note): notes.append(n.pitch) elif isinstance(n, chord.Chord): notes.extend(n.pitches) if notes: print('音符数:', len(notes)) print('最低音:', min(notes)) print('最高音:', max(notes))这段代码不是要把扒谱自动化,而是帮你做“输入检查”。如果某个轨道的音域超出该乐器的合理范围,比如贝斯轨出现第五个八度的音,那大概率是笔录错了。
music21 还可以做调式分析:
from music21 import converter score = converter.parse('sunset_transcription.mid') analysis = score.analyze('key') print(analysis)输出结果会给出判断出的调性。注意自动分析只作参考,因为 MIDI 缺少实际演奏的力度和表情信息,最终调性确认还是要靠你自己听。
5.4 导出 MusicXML 交给 MuseScore 排版
MIDI 文件虽然方便,但缺少谱号、拍号、调号等排版信息。将 MIDI 转换成 MusicXML 后,MuseScore 可以按你的要求重新排版。
在 music21 里转换很直接:
from music21 import converter score = converter.parse('sunset_transcription.mid') score.write('musicxml', 'sunset_transcription.xml')然后在 MuseScore 里打开:
musescore sunset_transcription.xml打开之后你需要做几件事:
- 给每个轨道设置正确的乐器名和谱号。
- 检查拍号、调号是否与你在 DAW 里设置的一致。
- 删除错误的力度标记、控制器事件。
- 把切分音和跨小节连线整理成可读的形式。
MuseScore 的排版不比 Sibelius 差,但需要手动调整连线、连音号和分谱样式。建议先用“总谱”导出 PDF 查看整体效果,再对分谱做单独排版。
6. 常见坑与排查路径:听不出来不是耳朵问题
6.1 为什么总是听不出低音
现象:加了 EQ 和降速后,还是觉得贝斯和底鼓糊在一起。
可能原因:
- 你用的耳机低频响应不足。
- 音频源本身压制了低频。
- 你只盯着频谱图的亮带,忽略了实际听感。
检查方式:
- 换一副耳机或用音箱听,低频表现会不同。
- 在 DAW 里给参考轨挂一个低通滤波器,截止频率设在 200Hz 左右,单独听低频。
- 把降速范围降到 50%,逐拍循环。
解决方案:
- 低音先记相对走向,再找绝对音高。
- 与底鼓对齐的低音音符,如果底鼓在正拍,低音也大概率在正拍或后半拍,先按节奏框架补位。
6.2 为什么定完调号后每个音都看着不对劲
现象:在 MuseScore 里设定好调号后,很多音符突然带了升降号,读起来很别扭。
可能原因:
- 实际调性判断错误。
- 该段音乐使用临时变音记号非常频繁,不直接属于某个自然大调或小调。
- 你把 MIDI 原样导入,没有在转换时调整“音高拼写”。
检查方式:
- 在 music21 里运行调式分析,得到参考结果。
- 提取全曲出现次数最多的几个音,判断音阶。
- 查看贝斯线的音级,根音通常是和弦进行的基础。
解决方案:
- 不要把所有黑键都记成 #C 或 bD,要根据和声功能选择正确的等音拼写。
- 如果半音很多,可以在排谱时按小节局部调整临时记号。
6.3 为什么鼓点对不上节拍器
现象:你认定 BPM 是 120,但鼓点总是错半拍或者对不上,反复调整 BPM 也没用。
可能原因:
- 曲子是复合拍或切分很强,你耳朵把它归成了不正确的拍号。
- 该段存在渐快或渐慢。
- 你循环的音频片段左右声道有延迟,或者切分点不准。
检查方式:
- 只留鼓组做参考,关闭其他层。
- 从第 2 或第 3 拍开始对,不要只从开头对。
- 观察底鼓音的间隔,统计 16 拍内的间隔规律。
解决方案:
- 先做“两拍一组”的节奏骨架,不要一上来就数一拍一个小节。
- 如果确实有渐快,按乐句分隔 BPM,分段落扒。
6.4 越扒越乱怎么办:回到“最小单位验证”
现象:整首曲子扒到一半,发现旋律、伴奏、低音互相冲突,整体听感非常混乱。
这种情况通常不是因为你听力差,而是你在“信息过载”状态下硬继续。推荐用“最小单位验证”打断循环:
- 只取 4 小节作为最小验证单元。
- 在这个单元里,先关掉所有 MIDI,只听原始音频。
- 再关掉音频,只听 MIDI 回放。
- 反复 A/B,定位第一处明显不同的位置。
- 每次只修正一个参数,比如音高、时值、力度或声部归属。
修正完再回到整个段落听,而不是一边听一边改多个地方。
7. 学习场景与发布场景的最佳实践清单
7.1 学习环境怎么快速获得反馈
如果你是第一次做这种系统扒谱,建议不要上来就选很长、很复杂的原声。可以先选一段 30 秒到 1 分钟的片段,反复练习完整工作流。
在这个阶段,反馈比成品重要。你可以:
- 每完成一个小节,就用 MIDI 回放和原曲对比。
- 找一个朋友帮你听“哪里不对劲”,很多时候耳朵疲劳后自己听不出来。
- 把音频处理时用到的降速、变调参数记录下来,看看哪组参数对你最有效。
7.2 发布自己的扒谱稿要注意什么
当你决定把扒谱成果放到平台时,要额外注意几个问题:
- 标注曲名、出处和原曲作者,不要声称是原创作品。
- 如果平台有版权规则,先确认是否允许发布改编谱或扒谱稿。
- 不要附带原始音频文件的下载链接,只发乐谱或 MIDI 分析结果。
- 可以注明“本谱为学习交流用途,如有版权方要求将删除”。
这些不是形式条款,而是实际操作中必须遵守的边界。扒谱本身是学习和分析手段,但公开发布时需要尊重原曲版权和平台规则。
7.3 可复用清单
这里给出一个完整的扒谱清单,适合每次开工前过一遍:
- 音频来源是否合法,是否需要标注版权信息。
- 文件格式和采样率是否满足处理需求。
- 是否切分目标段落,是否做了必要的降速或变调预处理。
- 是否确认拍号、BPM 和小节线。
- 是否按“鼓、贝斯、和声、旋律”顺序分层扒谱。
- 每层 MIDI 草稿是否与原始音频做过 A/B 对比。
- 是否用 music21 或类似工具做过音域、调式检查。
- 是否导出 MusicXML 并完成排版、乐器名、谱号和力度整理。
- 是否在发布前完成版权自查和出处标注。
把这份清单贴在 DAW 工程旁边,或者存成一个checklist.md文件,每次扒谱前逐项打勾。长期坚持下来,你会发现自己扒谱的速度和准确度都在提升。
回到《Sunset of Seven Suns》这个具体案例。整首曲子的听感可能很丰富,但工作流不会变:先听骨架子,再听色彩,再听线条,最后用 MIDI 和排谱软件把结果落成可分享的谱面。最容易出问题的部分不是高难度和弦,而是没有提前确定拍号、BPM 和声部分层,导致后面所有音符都建立在错误框架上。建议你先用本文的方法扒一个 8 小节片段作为练手,跑通整个流程后,再处理完整曲目。把注意力放在每一次 A/B 对比和参数调整上,比盲目追求“一次扒对”更有价值。