最近在整理《Deltarune》相关同人音乐素材,想把《Sunset of Seven Suns》这首曲子做成一份可以用来排练、改编制、做 MIDI 二创的谱子。扒谱这件事听起来门槛不高,真正动手时才发现它既考验耳朵,也考验工具链和记谱规范。本文就把这次扒谱过程完整整理出来,包含工具选型、变速变调处理、调性判断、旋律与和弦扒法、打谱导出,以及常见坑点和工程化管理建议。无论你是第一次尝试给游戏音乐扒谱,还是想在现有流程里找更稳的思路,这篇文章都可以作为一份可复用的操作手册。
1. 背景与核心概念
1.1 扒谱是什么,为什么需要扒谱
扒谱,简单说就是“听着音频把音符和节奏记下来”。它可以是纯靠耳朵听写,也可以借助软件辅助降速、变调、分频段分析。最终产物可以是一份五线谱、一份 MIDI 文件,也可以是带和弦标记的吉他谱或钢琴谱。
在很多游戏音乐二创、乐器翻奏、乐队排练场景里,官方往往只发布流媒体音频,并不提供分轨和 MIDI。这就导致想做翻奏、钢琴改编、音MAD 或者乐队谱时,没有一个可靠的“原始素材”。扒谱就是为了解决这个问题:把音频里的旋律、低音、和声、节奏一层一层拆开,再重新组织成可编辑、可排练的谱面。
《Deltarune》属于以旋律设计见长的游戏音乐,其第二章和番外章节里的不少曲子都有强烈的画面叙事感。《Sunset of Seven Suns》这类曲子在同人圈流传度很高,但网上能找到的谱面版本参差不齐,有的和弦标记不准确,有的把节奏简化得看不出原始律动。与其在网上碰运气,不如自己动手扒出一份符合自己需求、经过逐段回听验证的谱子,顺便也能提升对和声和配器的敏感度。
1.2 扒谱的核心流程
扒谱的完整流程可以拆成下面几条主线:
- 音频准备:获取高质量音频,转换格式,必要时做降速、变调、降噪、EQ 处理。
- 结构分析:听出段落边界,比如前奏、主歌、副歌、间奏、尾奏。
- 速度与拍号确定:数 BPM,判断是 4/4、3/4 还是复合拍,决定音符时值的记谱基准。
- 旋律扒取:先扒主旋律,再扒副旋律和内声部。
- 低音与和弦扒取:通过低音线条判断根音,再结合旋律判断大小调、七和弦、转位等。
- 记谱整理:在打谱软件或脚本工具里写成完整谱面。
- 校验回听:把谱子转成 MIDI 或音频,和原曲逐段对比,修正错误。
这个流程不像写代码,不能一次到位。扒谱大概率是一个“试错—修正—再试错—再修正”的循环,尤其是和声比较密的段落,可能需要反复调整调号、临时升降记号或和弦连接方式。
1.3 为什么选择《Sunset of Seven Suns》作为演示对象
选择这首曲子有两个原因。一是它的旋律线条很明显,主旋律容易被听到,适合新手建立扒谱信心;二是它的和声层次并不单调,低音行进和中间声部有值得细扒的空间,对进阶者来说也有练习价值。
更关键的是,《Deltarune》的音乐风格和传统流行摇滚有一定差异,游戏原声里经常出现非常规的和声进行、装饰音和节奏切分,这些元素如果在扒谱时被忽略,成品听起来就会“不像原曲”。所以拿它做例子,能很好地演示“如何不把谱子扒得太简化”。
需要特别说明:本节只讨论扒谱的技术方法和学习用途,原曲版权归原作者所有。本文生成的谱面用于个人学习、翻奏和交流,不能用于商业发行或二次售卖。
2. 环境准备与工具选型
扒谱不需要特别高的电脑配置,但一套顺手的工具链能省很多时间。下面的清单以免费/开源工具为主,如果你想用商业 DAW 或打谱软件,思路同样通用。
2.1 主要工具清单
| 用途 | 推荐工具 | 说明 |
|---|---|---|
| 音频播放与降速 | Audacity | 免费开源,支持时间伸缩和音高修正 |
| 音频精听 | Transcribe! | 老牌扒谱辅助软件,支持变速不变调、EQ、频谱显示,但需付费 |
| 数字音频工作站 | Reaper / Cakewalk | Reaper 有免费评估期,Cakewalk 已免费;适合分轨回听和轨道路由 |
| 打谱软件 | MuseScore 4 | 免费开源,支持五线谱、吉他谱、MIDI 导入导出 |
| 乐谱脚本 | LilyPond | 文本式记谱,适合版本管理和自动化生成 |
| 音高分析库 | Python + librosa / aubio | 可用于 BPM 检测、频谱分析和粗略音高估算 |
| MIDI 工具 | MIDIEditor / Mido | 用于检查 MIDI 事件和音符长度 |
版本方面不需要刻意追新。MuseScore 3 和 4 的操作逻辑略有不同,但核心的输入音符、调整时值、导出 PDF/MIDI 功能是一致的。本文示例以 MuseScore 4 和 LilyPond 2.24 为主,如果你用的版本不同,个别菜单路径可能有差异,但思路不变。
2.2 音频预处理工具
扒谱之前,最常用的两个操作是降速和变调。降速的时候有两种模式:
- 重采样:直接改变采样率,效果是“又慢又降调”,适合在音高不需要保留的时候使用。
- 时间伸缩:保持音高不变,只改变速度,这是扒谱最常用的模式。
Audacity 里的操作路径是“效果 -> 改变速度/改变音高/音高与速度”,如果你只想降速但保持音高,可以使用“效果 -> 改变速度”并把音高保持选项打开;在 Transcribe! 里则可以直接调速度百分比和音高偏移,使用起来更顺手。
2.3 文件目录规划
扒谱过程中会产生音频片段、工程文件、草稿谱、MIDI、PDF 等文件。建议按下面结构组织:
sunset-of-seven-suns-cover/ ├── audio/ │ ├── original.flac │ ├── slowed-80-percent.wav │ └── segment-b-verse-start.wav ├── proj/ │ ├── transcribe_draft.song │ └── reaper_session.rpp ├── score/ │ ├── score_draft.mscz │ ├── final.ly │ ├── final.pdf │ └── final.mid ├── notes/ │ ├── structure.md │ └── chord_sketch.md └── logs/ └── session_20250601.md这样做的原因是扒谱经常隔几天才继续,如果文件乱放,下一次打开时可能要花半小时找回上次扒到哪了。把听感笔记、段落标记、和弦草稿都放到notes目录里,可以形成一份可追溯的“扒谱日志”。
3. 扒谱核心原理拆解
工具准备好了,下一步是掌握扒谱涉及的核心判断方法。这部分看起来有点像乐理课,但不需要你有很强的乐理功底,重点是建立一套“怎么听、怎么判断、怎么验证”的思维流程。
3.1 定调:判断主音与调号
定调是扒谱的第一步。很多曲子听感上“偏明亮”或“偏忧郁”,其实对应的是大调或小调。判断方法可以这样:
- 找到曲子里出现频率最高的低音或结束音。大多数歌曲和游戏 BGM 会落在主音上结束,所以结尾最低的那个长音通常是主音。
- 用键盘或钢琴音源逐个试音,找出和这个低音一致的黑键或白键音名。
- 判断大小调:如果旋律倾向于围绕某个大调和弦展开,比如 C 大调的 C、F、G,那大概率是大调;如果低音进行和旋律重点偏向 A 小调的 A、D、E,则更可能是自然小调或和声小调。
《Sunset of Seven Suns》这类曲子如果直接听调号不确定,可以先用带频谱显示的工具看低音区峰值,再在乐器上校准。实际扒谱时,不需要一开始就死磕调号,先把主音确定下来,记谱时可以用临时升降号,最后统一判断调号。
3.2 测速:确定 BPM 和拍号
BPM 是每分钟拍数,扒谱时通常借助节拍器来测。操作方式:
- 在原曲播放时,跟着节奏打拍,在 DAW 或 Transcribe! 里手动输入秒数,让软件计算 BPM。
- 也可以先用手机秒表掐 30 秒,数出这 30 秒内有多少拍,再乘以 2。
- 如果曲子里有清晰的鼓点,看频谱上的瞬态位置,配合 DAW 的节拍器网格对齐。
拍号方面,4/4 拍最常见,但游戏音乐里也经常出现 6/8、7/8、5/4 等情况。判断拍号可以从“重音循环”听起:每几个强拍会循环一次,强拍之间的强弱关系是怎样的。比如 6/8 的律动通常是一小节两拍,每拍由三个八分音符组成,和 3/4 的“每拍三下”听感不同。
3.3 旋律扒取:用分层听感定位音符
扒旋律不要一边从头到尾完整听,一边盲目写。正确做法是把曲子按乐句切成小段,每遍只解决一小段。具体来说:
- 用播放器或 Transcribe! 设置 A-B 循环区域。
- 把速度降到 70% 或 50%,先听节奏型,把每个音的大致时值写出来。
- 再针对每一个音,用钢琴音源试音,找到匹配的音高。
- 记录临时升降号,暂时不用纠结调号。
旋律里的装饰音和滑音也需要注意。如果原曲里钢琴或吉他有明显滑奏,在谱面上可以用倚音(grace note)标记,也可以在文本笔记里记录“这里是一个上滑音”。对于 MIDI 导出用途,建议把这些装饰音做成短时值音符,而不是完全省略。
3.4 和弦判断:从低音和旋律倒推
和弦扒取是扒谱中最“劝退”的部分,但有一个很实用的思路:先扒低音,再扒和弦性质。
低音通常是贝斯或左手钢琴的最低音,它能告诉你当前和弦的根音。比如一段低音在 C 上,旋律音是 E 和 G,那么大概率是 C 大三和弦;如果旋律音是 Eb 和 G,则可能是 C 小三和弦。
在听到低音之后,再听中频区的内声部。如果音频声部很密,可以在软件里做分频段 EQ,把高频衰减、突出中低频,或者单声道化,减少混音中的立体声干扰。对于密集的和弦结构,可以反复用“播放—暂停”的方式逐帧试听,找到某一瞬间同时响起的音高。
在《Sunset of Seven Suns》的实例中,副歌部分的和弦变化速度不算太快,适合用来练习“听低音—试和弦—对照旋律”的三步法。
3.5 段落标记与反复结构
扒谱前建议先标记段落。常见的标记有:
- 前奏 Intro
- 主歌 Verse
- 预副歌 Pre-Chorus
- 副歌 Chorus
- 间奏 Interlude / Bridge
- 尾奏 Outro
把段落标清楚还有一个好处:很多段落是重复的,扒完第一遍主歌,后面同样的主歌可以直接复制,节省时间。但在复制时要注意区分“完全重复”和“变奏重复”,有些段落尾音会改,或者和声会变化,这些细节是扒谱质量的关键。
4. 完整实战:以《Sunset of Seven Suns》为例
这一节我们走一遍完整流程。具体参数以这次扒谱作为演示,不同音频版本可能略有差异,实际做的时候请按照你手头的音频情况来。
4.1 准备音频并降速
先把原曲导入 Audacity 或 Transcribe!。在 Audacity 里,推荐先做如下处理:
- 导入 FLAC 或 WAV,不使用二次压缩的 MP3 作为最终依据。
- 选中整段音频,点击“效果 -> 改变速度”,速度设定为 80%,保持音高不变。
- 用“效果 -> 滤波曲线”做一个低切,切掉 60Hz 以下的极低频,减少房间低频噪音干扰。
- 如果需要重点听低音,可以把速度降到 50%,并使用“效果 -> EQ”提升 100-200Hz 频段。
在 Transcribe! 里,步骤更简单:打开音频后,在 Transportation 面板设置速度百分比,例如 80%,软件会自动做时间伸缩,音高不变。Transcribe! 内置的频谱窗口对确认音高非常有帮助,尤其是低音区的音符,肉耳听不清的时候可以直接看频谱峰值位置。
4.2 确定速度和拍号
先完整听一遍原曲,边听边用节拍器打拍。假设试到 128 BPM 时,和曲子的强拍完全重合,那就可以初步确定速度是 128 BPM。需要注意如果曲子有中途变速,那就要分段标记。
拍号方面,这次示例的律动是四拍一个重音循环,拍内分为八分音符驱动的切分节奏,因此按 4/4 记录比较合适。把测得的 BPM 和拍号写进乐谱文件的头部信息。
4.3 分段扒主旋律
使用 A-B 循环,把前 8 小节设为循环区域。播放时重点听主旋律,不要分心去听伴奏。第一次只记录音高关系,比如旋律是“Do Re Mi So”,第二次再用乐器确认绝对音名。
下面是主旋律草稿的一部分,用 LilyPond 片段展示:
\version "2.24.0" melody = \relative c'' { \key c \major \time 4/4 \tempo 4 = 128 % 第1-2小节 g4 a b c | d2. b8 g | }这段只是示意,意思是先记录一个乐句的音符走向和节奏型。实际扒谱时,前几小节可能反复试很多次,不要着急。
4.4 扒低音与和弦
主旋律扒完,把注意力从高频移到低频。低音是理解整首曲子和声的钥匙。
以副歌部分为例,假设你听到低音是 C - G - A - F 这样的走向,那么可尝试的和弦可能是:
- C 大和弦
- G 大和弦
- A 小和弦
- F 大和弦
用钢琴音源在这几个和弦上方试弹,看看和旋律音是否协调。如果旋律音里有 B,那 G 和弦可能是 G 大七和弦或者 G7,具体要听原曲里是否有小七度的紧张感。
LilyPond 里可以用和弦模式来快速记录:
chords_verse = \chordmode { c1 g a:m f }这只是记录初步判断,后续还要通过回听验证。借助 MuseScore,可以直接把和弦符号写在谱表上方,比纯文本更直观。
4.5 用 MuseScore 打谱
如果前面用的是 LilyPond,可能觉得写谱门槛偏高。此时可以转入 MuseScore 做完整排版:
- 新建乐谱,选择乐器,比如钢琴 + 主旋律。
- 设置调号、拍号、速度。
- 在主旋律声部输入音符,在钢琴左手声部输入低音。
- 在谱表上方添加和弦符号,比如 C、G、Am、F。
- 播放 MIDI 回听,检查旋律和伴奏是否和谐。
MuseScore 里有一个非常实用的功能:可以把 MIDI 文件直接导入,并显示为音符。如果你有现成的 MIDI 草稿,可以先用这个功能快速导入,再修正节奏和音高。需要注意,MIDI 导入的音符可能会有大量重复或力度混乱,需要清理。
4.6 用 LilyPond 输出 PDF
MuseScore 可以直接导出 PDF,但如果希望乐谱纳入 Git 版本管理,或者想用文本 diff 看修改记录,LilyPond 更合适。
一个简单的 LilyPond 完整谱面示例:
\version "2.24.0" \header { title = "Sunset of Seven Suns (Transcription)" composer = "Original by Toby Fox" arranger = "Transcribed for study purposes" } global = { \key c \major \time 4/4 \tempo 4 = 128 } melody = \relative c'' { \global g4 a b c | d2. b8 g | a2 g4 e | d1 | } harmony = \chordmode { c1 g a:m f } \score { << \new ChordNames { \harmony } \new Staff { \melody } >> \layout { } \midi { } }编译命令:
lilypond final.ly如果成功,会在当前目录生成final.pdf和final.mid。用midi文件在播放器里听一遍,和原曲对照,比对着谱面看更直观。
4.7 校验与回听
这是最容易忽略的环节。谱面画得再漂亮,如果音符不对就没有价值。校验建议这样做:
- 把最终 MIDI 和原曲一起导入 DAW,左右声道分别播放,或重叠播放。
- 第一遍只核对主旋律是否与歌曲人声/主奏重合。
- 第二遍关掉旋律轨,只核对低音和和弦。
- 第三遍整体回放,标记所有“听着不对劲”的位置。
- 把偏差位置整理到
notes/structure.md里,集中修改。
一些偏差的典型表现:
- 音高差半音:通常是临时升降号或者调号判断错误。
- 节奏不对齐:可能是 8 分音符和 16 分音符时值写错。
- 和弦别扭:低音对了但和弦性质错了,或者和弦转位没考虑。
修订完再导出 PDF,才算一份可以交付的谱面。
5. 常见问题与排查思路
扒谱过程中会遇到各种问题,这里整理一份常见问题表,并给出排查顺序。
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 降速后音色模糊 | 时间伸缩算法不够好或压缩率过高 | 使用 Transcribe! 或 DAW 的高质量伸缩模式;降低降速幅度,分段听 |
| 调号判断错误,旋律大量临时升降号 | 没有抓到主音或主和弦 | 找到结束音和主和弦;用键盘逐个试音;参考低音进行 |
| BPM 对不上节拍网格 | 曲子有变速或律动是复合拍 | 分段测速;多试几次不同 BPM;检查拍号是否为 6/8、7/8 等 |
| 低音完全听不清 | 混音中贝斯被吉他或鼓淹没 | 用 EQ 提升 80-200Hz;用频谱显示定位低音峰值;单声道播放 |
| 和弦听起来“不对劲” | 和弦性质或转位识别错误 | 先确定根音,再判断三音和七音是否在原曲中出现;尝试不同转位 |
| MIDI 播放时力度忽大忽小 | 扒谱时音符力度未统一 | 在 DAW 或 MuseScore 中统一力度;或者保留力度差异作为音乐表现 |
| 大量重复段落手写太慢 | 没利用复制功能或没做段落标记 | 扒完首段后复制到后续段落;再针对变奏处单独修改 |
| PDF 导出后缺字体或乱码 | 系统缺少中文字体或 LilyPond 字体配置问题 | 安装中文字体;LilyPond 使用\include "lilypond-book-preamble.ly"或在\paper中设置字体 |
如果遇到“就是听不出来”的情况,不要一条路走到黑。可以把速度降到 40%,把 EQ 调得极端一点,或者换一副耳机。有时候不同的耳机对低频的还原完全不同,多试几个设备有助于发现问题。
6. 最佳实践与工程建议
扒谱既是音乐活动,也是一项可以工程化的内容生产活动。下面这些建议来自实际项目经验,能让整个流程更可靠、可维护。
6.1 做好版本管理
谱面和 MIDI 文件建议纳入 Git 管理。LilyPond 的文本谱天然适合 diff,MuseScore 的.mscz是压缩格式,不方便 diff,但也可以用mscore命令行导出文本中间格式来做版本对比。
建议在项目里写一个 README:
# Sunset of Seven Suns / 扒谱项目 - 原曲出处:Deltarune 相关 OST - 原曲作者:Toby Fox - 扒谱用途:个人学习与二次创作参考 - 完成日期:2025-06-01 - 调号:C 大调(以核对结果为准) - 速度:128 BPM - 文件说明: - audio/:原曲和降速片段 - score/final.ly:最终 LilyPond 源码 - score/final.pdf:最终 PDF 谱 - notes/chord_sketch.md:和弦判断草稿写作 README 不是形式主义,它能让你在两个月后还清楚这个项目的来龙去脉。
6.2 命名规范
- 音频文件用
曲名-段落-速度.wav这种格式,例如sunset-verse-80percent.wav。 - 乐谱文件用
曲名-状态.ly,例如sunset-draft.ly、sunset-v1.ly、sunset-final.ly。 - 避免使用“新建文档”“最终版1”“最终版最终版”这类命名。
6.3 扒谱日志
建议每次扒谱都记录会话日志。内容可以很简单:
## 2025-06-01 会话 - 扒了前奏和主歌旋律。 - 主歌和弦初步判断:C - G - Am - F。 - 副歌低音被鼓干扰,需要用 EQ 再听。 - 下次目标:确认副歌和弦,补全尾奏。日志的好处是,扒谱经常是断断续续完成的。有了日志,就不需要每次重新“热耳朵”,效率提升非常明显。
6.4 尊重版权,遵守边界
这一点要单独强调。扒谱本身是学习和改编的常见手段,但要注意:
- 不要将扒谱成果用于商业发行。
- 发布到公开平台时,标注原曲信息和扒谱用途。
- 遵守平台关于同人创作、翻奏、视频配乐的相关规则。
- 如果要用扒谱结果做视频发布,建议在简介里注明“扒谱练习,非官方谱面”。
6.5 自动化辅助听辨
Python 生态里有一些库可以做辅助分析。比如librosa可以用来检测 BPM 和节拍位置:
import librosa # 以常见环境为例,需要先安装 librosa 和 soundfile # pip install librosa soundfile audio_path = "audio/original.flac" y, sr = librosa.load(audio_path, sr=None) tempo, beat_frames = librosa.beat.beat_track(y=y, sr=sr) print(f"Estimated tempo: {tempo:.2f} BPM")这只是一个辅助工具,自动检测出来的 BPM 不一定完全准确,但可以给你一个初始值,再人工微调。librosa也可以绘制频谱图,帮你看低音区的能量分布,适合定位复杂段落的根音。
6.6 提高听辨能力的训练方法
扒谱水平最核心的瓶颈不是软件,而是耳朵。日常可以做一些针对性训练:
- 每周扒一首短曲子的主旋律,不写谱,只用哼唱或乐器弹出来。
- 练习音程听辨,比如先听 C 到 E 的大三度,再听 C 到 Eb 的小三度。
- 专门听低音行进:选一些 Bass 明显的歌,把旋律完全忽略,只听贝斯。
- 用钢琴或 MIDI 键盘跟着音频弹旋律,比只用鼠标点音符更高效。
听辨能力是逐步积累的,不需要一开始追求“一遍扒完”。更重要的是每次扒谱都留出时间做修正和复盘,而不是图快。
7. 总结与后续学习方向
这篇文章从扒谱的基本概念出发,完整演示了以《Sunset of Seven Suns》为例的扒谱流程,包括音频降速、BPM 测定、调性判断、主旋律扒取、和弦判断、MuseScore 打谱、LilyPond 导出以及最后的回听校验。同时也整理了常见问题和工程化建议,比如版本管理、命名规范、扒谱日志和版权边界。
如果想要继续深入,有几个方向可以参考:
- 学习更多乐理知识,尤其是七和弦、转位和弦和调式互换,这对于扒复杂和声很有帮助。
- 熟悉 DAW 的音频编辑功能,掌握分频段 EQ、瞬态检测和时间伸缩,会让扒谱精确度更高。
- 尝试给扒好的谱面做编曲,换一种乐器组合,观察和声和配器在改编中如何变化。
- 研究 MIDI 自动化脚本,例如使用 Python 的
mido库批量处理 MIDI 音符、力度和控制器信息,把扒谱结果转换成其他二创素材。
扒谱是一项值得长期打磨的技能。独立完成一首完整曲目之后,你对旋律、和声和节奏的敏感度都会上一个台阶。如果你打算从某一首曲子开始练习,不妨就用《Sunset of Seven Suns》试试,按上面的流程一步步来。遇到听不出来的段落就先标记出来,过几天回头再听,往往会发现之前忽略的细节。希望这篇教程能帮你少走一些弯路,也欢迎在实际操作中根据自己的工具和习惯调整流程。