MuScriptor 负责转谱、DAW 负责修音,中间用 MIDI 文件对接

文章导读
把 MuScriptor 当转录工序、DAW 当修音工序,中间的 MIDI 文件只是交接单,不是成品。判断一个问题该在哪一侧解决,可以先看它是不是整体性的:速度拍号错位、轨数过多、整体音高偏移、同一乐器被过度拆分成多条轨,这类问题通常回头调转录参数重跑一次更省事;只有音域越界、单音串音、个别时值和滑音这类逐音问题,才值得在 DAW 里手动改。顺序反过来,先手改再发现要重跑,前面的修改基本白做。
📋 目录
  1. A 转录前先记下工程的速度与拍号
  2. B 拿到 MIDI 后先做轨名与音色映射
  3. C 在 DAW 里按乐器分组,判断哪些是串音
  4. D 修音高与时值时保留一份原始 MIDI 副本
  5. E 把人工修改点标注回音频时间轴
A A

把 MuScriptor 当转录工序、DAW 当修音工序,中间的 MIDI 文件只是交接单,不是成品。判断一个问题该在哪一侧解决,可以先看它是不是整体性的:速度拍号错位、轨数过多、整体音高偏移、同一乐器被过度拆分成多条轨,这类问题通常回头调转录参数重跑一次更省事;只有音域越界、单音串音、个别时值和滑音这类逐音问题,才值得在 DAW 里手动改。顺序反过来,先手改再发现要重跑,前面的修改基本白做。

可行的分工是:转录前把速度、拍号、起始偏移和时间基准记成文本随工程走;MuScriptor 输出的 MIDI 先做轨名与音色映射,再逐轨试听判断串音;修音前留一份只读的原始 MIDI,用 A/B 对比确认改动;人工修改点按小节拍标注回音频时间轴。边界在于转录侧参数没摸清前不要大批量手改,否则重跑一次全部作废。

转录前先记下工程的速度与拍号

转录之前先给后续对齐留一个固定基准:工程速度(恒定还是带变速)、拍号、第一个小节线相对音频起点的时间偏移、音频采样率,以及导出 MIDI 使用的 PPQ。记在哪里比记什么更容易被忽略——建议放在与音频同目录的纯文本里随工程一起走,同时在 DAW 里落一个起始 marker,两处互相印证。

# tempo_map.txt,与音频同目录,随工程提交
file        = take03.wav
sample_rate = 44100
tempo       = 92 bpm,恒定
time_sig    = 4/4
bar1_offset = 0.412 s    # 第一个小节线距音频起点的偏移
ppq         = 480        # 转录输出 MIDI 的每四分音符脉冲数
notes       = 曲中有两处渐慢,未做 tempo map

导入 MIDI 时,多数 DAW 的导入对话框会问是否沿用文件自带的速度与拍号,这里建议选择不导入、改用当前工程的速度与拍号,再按 bar1_offset 把整段 MIDI 拖到对应 marker 上。验证方式很直接:加一个节拍器或点击音,与原始音频同时播放,听强拍是否对得上;对不上就回来微调偏移值,而不是去改音符。

拿到 MIDI 后先做轨名与音色映射

轨结构和音色没理清之前不要动音符。建议按这个顺序处理:先看 MIDI 内部的 track/channel 数量、每轨的音符数与音域范围;按音域加演奏法给轨道重命名,例如“主旋律-中高音区”“低音-长音”“打击-瞬态”;再给每轨分配音色或加载插件;最后建颜色和分组。到这一步才开始改音高与时值。

MuScriptor 负责转谱、DAW 负责修音,中间用 MIDI 文件对接

先映射再修音能减少返工的原因在于:重命名之后 mute/solo 组合是有语义的,反复试听时你知道自己在听哪一层;改某个音时也知道它会落到哪个乐器上。如果边改边猜,改到一半发现两轨其实是同一乐器被拆开,前面按轨做的时值调整就得重做一遍。

在 DAW 里按乐器分组,判断哪些是串音

模型常见的表现是把一个乐器的音分到多条轨,或者把混响尾巴、其他乐器的瞬态识别成独立声部。处理时先按乐器分组,把音域相近的候选轨放进同一个 solo 组逐轨听。判断依据可以固定成三条:音域是否越界,音高是否落到该乐器不可能演奏的区间;是否有别的乐器的攻击特征,比如击弦瞬态、拨弦的短衰减、管乐的换气与起音;和声密度是否异常,单音乐器轨里出现完整和弦通常就是分配错了。

MuScriptor 负责转谱、DAW 负责修音,中间用 MIDI 文件对接

处理方式建议先 mute 不删。整段听完确认这一轨确实是重复或串音,再把里面的有效音符剪切到正确轨道;确认属于纯串音的部分,先加 marker 标注时间区间再删除,并保留一条 muted 的归档轨用于对比。边界在于装饰音和快速经过音,它们经常被拆到另一条轨上,看着像串音,删掉会丢细节,删之前要看清上下文。

修音高与时值时保留一份原始 MIDI 副本

开始改音符之前先复制一份原始 MIDI,并把命名和存放位置固定下来,让“回退”变成一个不需要思考的动作。一个够用的约定是:原始文件放 raw 目录、设为只读,改动版本放 edit 目录、用递增版本号,文件名里带来源和工序,不只用日期。

midi/
  raw/  take03_muscriptor_raw.mid     # 只读,不再覆盖
  edit/ take03_edit_v01.mid           # 轨名与音色映射后
        take03_edit_v02.mid           # 串音清理后
        take03_edit_v03.mid           # 音高时值修完

A/B 对比要做两件事:同一段落用 solo 在 raw 版本与当前版本之间来回切换,确认改动是否真的解决了问题;再把当前版本与原始音频同时播放,听起音位置是否还贴得上。对比时保持音色和力度一致,否则听到的差异可能来自音色,而不是音符本身。

MuScriptor 负责转谱、DAW 负责修音,中间用 MIDI 文件对接

把人工修改点标注回音频时间轴

人工修改点如果不记录,下次遇到同类编制还得重新判断一遍。标注粒度建议到“时间区间 + 轨道 + 问题类型 + 处理动作”,写在 DAW 的 marker 里,或同步一份 CSV。时间用小节加拍更稳,改速度后按秒记录的标记会漂。

bar_beat,track,issue,action,note
12:3,lead,串音,剪切到 pad 轨,高音区与 pad 重叠
27:1,bass,时值过长,缩短到 1 拍,原为连音尾巴
45:2,vocal,滑音丢失,手工补两个过渡音,模型未识别
58:4,drums,多余轨,整轨删除,muted 归档保留

复用这份标注的方式是反着用:下次转录同类型编制之前先翻一遍,看问题类型是否集中在少数几类。如果串音和多余轨反复出现,说明该回头调转录侧的同时发声数、最小音符时值这类参数,而不是每次都靠手删;如果集中在滑音和细碎装饰音,那更接近模型能力边界,继续留在 DAW 里处理更现实。