← 所有文章
READING PROGRESS
0%

技术笔记 · Aug 10, 2026 · ISSUE 0022

快速省力地做演出Program

Reaper脚本逻辑、如何解决自动化与曲目绑定的问题

前情提要

最近有一些制作演出Program的工作,工作内容比较机械、重复性高。每周需要把选定的曲目伴奏按照顺序从头到尾接好,到现场控台播放。

对这个Program还会有下面这些要求:

  1. 歌曲之间的间隔需要做细微控制
  2. 做好自动化曲线(比如Autotune的调跟着歌曲的调走)
  3. 能留一些余地给每首歌单独做处理(EQ压限等),或能兼容stems多轨道同步播放

每周都从头走一遍这个流程还挺麻烦的…所以这段时间琢磨了个办法,把这个高度机械化的工作变得轻松些。

关于DAW的选择

尝试了Ableton Live然后放弃

很多电子音乐人喜欢用Ableton Live的Session View做Program。我尝试了一段时间,发现用它调整曲目的顺序还算方便,用一些邪修办法(比如一些M4L插件的参数mapping)也能让Autotune的Key跟每首歌同步(这个事儿后面会说,是最恶心人的一个痛点要解决)。但Ableton不太能解决好上面的1和3两点。

0022_1

它的首要问题是歌曲之间的间隔调整起来不是很直觉、不能一眼看清;另外用Session View的话所有的歌只能放在一条轨道上,不能针对某首歌做特定处理。如果未来有更复杂的需求,例如想给某首歌放多轨stems,它支持得不太好。

归根结底Ableton的Session View是为电子音乐的Loop逻辑设计的,更多地服务于非线性的session或者jam场景,所以每个音频块是小节长度的整数倍才会比较舒服。

选择Reaper的原因

完完全全是因为它的ReaScript。它的脚本管理起来很舒服,单文件.lua脚本的维护实际上很方便,基本上工程内的每个地方都能用脚本控制所以不用担心实现不了什么功能。借助AI Coding后连代码都不用自己写了。只要搞清楚自己的需求就OK。

Reaper对视频的支持也很完善,相比之下其它的DAW在视频播放功能上都挺残疾的(Cubase可能相对好些🤔)。花点功夫自定义Reaper的快捷键、功能和布局后,使用起来也会比其它DAW方便不少,在现场放也不会有什么后顾之忧,很轻量清爽。

Reaper工程的搭建和脚本的动作逻辑

工程结构

为了未来的复用和脚本搭建,工程结构要永远保持一致。

工程被分为两个大的Groups:

0022_2

所有的伴奏都放在oche的一级子轨道下(如果是多轨stems,则要将他们编组,再将这个组本身作为oche的一级子轨道)。

自动化Automation的前期准备

以Autotune的Key为例。 如果用常规方法,假如工程中有6个mic轨道,则要画六遍自动化曲线。工作量会比较大而且容易出错。

我的解决方案是使用midi cc作为控制信号。每个伴奏轨都发送midi cc至每个mic轨道,用这些midi cc控制Autotune的对应参数。好处是我们可以在每首歌的伴奏轨道上画midi cc的自动化曲线了,且未来这些曲线都可以作为独立的整体进行处理,解决了在mic轨道上画复杂的曲线且不能复用这个问题。

这里要用到我的第一个脚本。它的作用是从oche下的所有一级子轨道send一个midi信号到所有的mic轨道中(不包含音频信号): https://cdn.ornot.work/blogpost/0022/inst_send_midi_to_vox.lua

执行完后会弹一个窗口说明发送成功了: 0022_3

为了能在歌曲伴奏轨道上画midi cc,需要做以下处理: 0022_4

  1. 在需要自动化的歌曲的伴奏轨道上插入一个ReaControlMIDI。
  2. 在Control Change勾选Enable,在下拉菜单中选择空白的MIDI CC序号(我这里用20+52/21+53,以此类推,这个自己设定即可。注意这个xx+xx的格式属于CC 14-bit)
  3. 在每个mic轨道下的Autotune中先触摸一下Key这个参数,再在右上角的Param菜单中找到Parameter modulation/MIDI link,点开后会出现截图左下角的这个窗口。
  4. 勾选Link from MIDI or FX parameter,把MIDI参数设置成上面选择好的即可。

上面的3/4两个步骤在每个mic轨道上只需要做一次,以后就永远不用再做了。1/2在每首歌的轨道上也只用做一次。

回到具体的每一首歌上,我们只需要画设置好的MIDI CC的自动化就可以了。如下图所示,伴奏轨道上的CC21+53控制的是所有mic轨上Autotune的Bypass on/off;CC20+52控制所有mic轨上Autotune的Key。为了让自动化曲线跟着歌曲移动,我们可以创建Automation Items,它和音频块有点类似。我们可以让Automation Items的长度/位置和歌曲匹配,并把曲线画在里面。以后这个item就可以作为一个整体和歌曲音频一起移动。

0022_5

排歌脚本

脚本: https://cdn.ornot.work/blogpost/0022/setlist_manager.lua

这个脚本因为涉及到UI,所以需要一些前置工作:

运行脚本后会弹出来这个窗口↓ 0022_8

它的作用是检查oche下的所有子一级轨道(伴奏或stems的Group),并全部显示在这里。勾选/未勾选表示未mute/已mute。每次拿到歌单后,在这里面勾选当期要唱的歌,并且按顺序排好,点击应用。 它会把勾选的歌曲首尾相接排好、把每首歌下的Automation Items和歌曲一起移动到相应位置、其余未被勾选的歌曲被mute并移动到工程最前,并在每首歌的位置打上cue点。region也被建立好了,直接导出region就可以给歌手排练用了~

使用脚本后工程会变成下图中这个样子。未来只需要不断往这个工程中加东西就好。每首歌只要画好自动化,以后都可以无限复用,不用再重复劳动了。

0022_9

几个小技巧

  1. 相邻歌曲之间的时间间隔,可以通过裁剪/延长伴奏的头尾来控制。如果实在有前后重叠的需求,可以把脚本中的时间间隔选项调整为负值(默认为0一般就OK)。总体来讲微调歌曲伴奏的头尾再重新应用一下脚本是最快的办法。
  2. 建议在oche下直接放几轨较长的空白音频,它可以作为喘气时间被放在歌单里一起编排。