REAPER中常用快捷键以及个人定制热键参考

官方默认快捷键

  1. 打开/关闭调音台

    1
    Ctrl+M
  2. 打开/关闭媒体搜索窗口

    1
    Ctrl+Alt+X
  3. 对选中Item进行Group

    1
    G
  4. 插入标记

    1
    shift+M
  5. 分离音频块

    1
    S
  6. 分离时间选取内的音频块

    1
    Shift+S
  7. 打开/隐藏音量包络轨道

    1
    V
  8. 打开/隐藏声像包络轨道

    1
    P
  9. 打开当前工程所有快捷键列表, 以html页面形式呈现出来(help-->keybindings)

    1
    Shift+F1
  10. item水平放大

    1
    +
  11. item水平缩小

    1
    -
  12. 所有轨道纵向放至最大

    1
    ~
  13. 所有轨道纵向缩至最小

    1
    `
  14. 所有轨道步进放大

    1
    PageUp
  15. 所有轨道步进缩小

    1
    PageDown
  16. 音频块上下所有滚动查看

    1
    Alt+Up/Down/Left/Right
  17. 以半音为单位改变MIDI音符的音高

    1
    Ctrl+Up/Down
  18. 以八度为单位改变MIDI音符的音高

    1
    shift+数字键盘8/数字键盘2
  19. 将音频垂直移动到上一个/下一个轨道上

    1
    NumPad 8/NumPad 2
  20. 轨道静音切换

    1
    Alt+M
  21. 效果器A/B对比切换

    1
    Ctrl+B

我个人的自定义快捷键

以下快键键仅供参考:

  1. 锁定/解锁选中Item

    1
    Shift+Alt+L
  2. 循环范围包裹音频块

    1
    Alt+P
  3. 对选中的时间范围进行region插入

    1
    Shift+Alt+R
  4. 播放指针跳转到上/下一个Region

    1
    Alt+Q/W
  5. 打开选中item的本地路径

    1
    Alt+F1

    image-20230717135036638

  6. 放大/缩小选中的item

    1
    F1
  7. item水平放大/缩小

    1
    Ctrl+鼠标滚轮
  8. item水平移动

    1
    Shift+鼠标滚轮
  9. 轨道上下滚动查看

    1
    鼠标滚轮

    image-20230719112358346

  10. 快速创建Region

    1
    shift+R
  11. 垂直复制选中的item

    1
    alt+cmd+鼠标左键上下拖拽

    该快捷键可以在Preferences中的Mouse Modifiers选项中设置

    image-20251003185710952

  12. 打开最近点击的效果器参数parameter modulation/link窗口

    1
    Alt+Shift+W

    image-20251123113635400

    可以方便我们快速进行侧链设置:

    image-20251123113923631

个人自定义脚本

1. 智能和弦力度脚本

一键实现自然节奏动态, 比如柱式钢琴每个小节符合强弱变化关系, 同一个和弦内部音符时间的细微力度差异等

image-20260606155124486

可设置强化力度以及最大最小力度范围:

image-20260606155222569

脚本具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
-- 智能和弦力度脚本(最终版)
-- 一次完成所有设置,默认强度3,最大值77

-- 一次完成所有设置
local ret, user_inputs = reaper.GetUserInputs(
"和弦力度参数设置",
4, -- 4个输入:拍号、最大力度、最小力度、强度
"拍号 (1=4/4,2=3/4,3=2/4,4=6/8),最大力度 (默认77),最小力度 (默认65),人性化强度 0-10,extrawidth=300",
"1,77,65,3" -- 默认值:4/4拍,77/65,强度3
)

if not ret then return end

-- 解析输入
local inputs = {}
for val in user_inputs:gmatch("[^,]+") do
table.insert(inputs, val)
end

local meter_choice = tonumber(inputs[1]) or 1
local max_vel = tonumber(inputs[2]) or 77
local min_vel = tonumber(inputs[3]) or 65
local humanize_level = tonumber(inputs[4]) or 3

-- 验证输入
meter_choice = math.max(1, math.min(4, meter_choice))
max_vel = math.max(1, math.min(127, max_vel))
min_vel = math.max(1, math.min(127, min_vel))
if min_vel > max_vel then min_vel, max_vel = max_vel, min_vel end
humanize_level = math.max(0, math.min(10, humanize_level))

-- 拍号定义
local meter_presets = {
{"4/4 强-弱-次强-弱", {1, 2, 3, 2}},
{"3/4 强-弱-弱", {1, 2, 2}},
{"2/4 强-弱", {1, 2}},
{"6/8 强-弱-弱-弱-弱-弱", {1, 2, 2, 2, 2, 2}},
}

local selected = meter_presets[meter_choice]
local strength_pattern = selected[2]
local beats_per_bar = #strength_pattern
local ppq = 480
local tpm = ppq * beats_per_bar

-- 计算各拍子力度
local base_pattern = {}
local vel_range = max_vel - min_vel

for i = 1, beats_per_bar do
local strength = strength_pattern[i]
if strength == 1 then
base_pattern[i] = max_vel
elseif strength == 3 then
base_pattern[i] = min_vel + math.floor(vel_range * 0.6)
else
base_pattern[i] = min_vel
end
end

-- 🎯 强度说明表
local level_descriptions = {
[0] = "机械 - 完全无浮动,适合电子/节拍器",
[1] = "极轻微 - 几乎听不出,适合严格古典",
[2] = "轻微 - 适合规整伴奏",
[3] = "较轻微 - 适合标准编曲", -- 🎯 默认强度3
[4] = "自然轻度 - 适合大部分编曲",
[5] = "自然标准 - 适合流行/爵士编曲",
[6] = "较明显 - 有表现力的编曲",
[7] = "明显 - 适合摇滚/R&B",
[8] = "强起伏 - 适合现场感音乐",
[9] = "很强 - 适合即兴/实验",
[10] = "自由 - 完全自由表达"
}

-- 强度参数表
local rnd_table = {[0]=0,[1]=1,[2]=1,[3]=2,[4]=2,[5]=3,[6]=3,[7]=4,[8]=5,[9]=6,[10]=7}
local phrase_intensity_table = {[0]=0.00,[1]=0.005,[2]=0.01,[3]=0.02,[4]=0.03,[5]=0.05,[6]=0.07,[7]=0.10,[8]=0.14,[9]=0.18,[10]=0.22}
local emphasis_chance_table = {[0]=0,[1]=1,[2]=3,[3]=5,[4]=10,[5]=20,[6]=30,[7]=40,[8]=50,[9]=60,[10]=70}
local bar_variation_table = {[0]=0.00,[1]=0.002,[2]=0.005,[3]=0.01,[4]=0.02,[5]=0.03,[6]=0.05,[7]=0.08,[8]=0.12,[9]=0.16,[10]=0.20}

local rnd = rnd_table[humanize_level] or 0
local phrase_intensity = phrase_intensity_table[humanize_level] or 0
local emphasis_chance = emphasis_chance_table[humanize_level] or 0
local bar_variation = bar_variation_table[humanize_level] or 0

local ed = reaper.MIDIEditor_GetActive()
if not ed then
reaper.MB("请先打开MIDI编辑器", "提示", 0)
return
end

local tk = reaper.MIDIEditor_GetTake(ed)
if not tk then return end

reaper.Undo_BeginBlock()

if os.time then math.randomseed(os.time()) end

local cnt = reaper.MIDI_CountEvts(tk)
local notes_by_bar = {}
local n = 0

for i = 0, cnt - 1 do
local _, sel, _, st, en, ch, pt, vl = reaper.MIDI_GetNote(tk, i)
if sel then
local bar = math.floor(st / tpm)
local beat = math.floor((st % tpm) / ppq) % beats_per_bar + 1
if not notes_by_bar[bar] then notes_by_bar[bar] = {} end
table.insert(notes_by_bar[bar], {
idx = i,
st = st, en = en, ch = ch, pt = pt,
bar = bar, beat = beat
})
end
end

local bars = {}
for bar, notes in pairs(notes_by_bar) do table.insert(bars, bar) end
table.sort(bars)
local total_bars = #bars

if total_bars == 0 then
reaper.MB("未选中任何音符", "提示", 0)
return
end

for bar_index, bar in ipairs(bars) do
local notes = notes_by_bar[bar]
local phrase_factor = 1.0

if humanize_level >= 1 then
if bar_index <= 2 then
local start_base = 0.98 - humanize_level * 0.015
local start_intensity = start_base + (bar_index - 1) * 0.02
phrase_factor = math.max(0.92, start_intensity)
elseif bar_index <= total_bars - 2 then
local progress = (bar_index - 3) / (total_bars - 4)
local wave = phrase_intensity * math.sin(progress * math.pi * 2)
phrase_factor = 0.96 + wave
else
local remaining = total_bars - bar_index + 1
phrase_factor = 1.0 - (3 - remaining) * 0.04
if phrase_factor < 0.88 then phrase_factor = 0.88 end
end
end

if humanize_level >= 2 and math.random(1, 100) < 50 then
local variation = bar_variation * (math.random() * 2 - 1)
phrase_factor = phrase_factor * (1 + variation)
end

if humanize_level >= 3 and math.random(1, 100) < 30 then
local random_change = 0.97 + math.random() * 0.06
phrase_factor = phrase_factor * random_change
end

for _, note in ipairs(notes) do
local base_vel = base_pattern[note.beat] or min_vel
local phrased_vel = math.floor(base_vel * phrase_factor + 0.5)
phrased_vel = math.max(min_vel, math.min(max_vel, phrased_vel))

local beat_rnd = rnd
if note.beat == 1 then
beat_rnd = math.max(0, math.floor(beat_rnd * 0.7))
elseif phrased_vel <= min_vel + 5 then
beat_rnd = math.max(0, math.floor(beat_rnd * 0.3))
end

beat_rnd = math.floor(beat_rnd)
local fv = phrased_vel
if beat_rnd > 0 then fv = phrased_vel + math.random(-beat_rnd, beat_rnd) end
fv = math.max(1, math.min(127, fv))
fv = math.max(min_vel - 2, math.min(max_vel + 2, fv))

if humanize_level >= 1 and math.random(1, 100) < emphasis_chance and note.beat == 1 then
local emphasis_amount = math.max(1, math.floor(humanize_level * 0.3))
fv = math.min(max_vel + 5, fv + math.random(emphasis_amount, emphasis_amount + 1))
end

if humanize_level >= 7 and note.beat ~= 1 and math.random(1, 100) < 3 then
fv = math.max(min_vel - 3, math.floor(fv * 0.9))
end

reaper.MIDI_SetNote(tk, note.idx, true, false,
note.st, note.en, note.ch, note.pt, fv, false)
n = n + 1
end
end

reaper.Undo_EndBlock("和弦力度 (强"..max_vel.."-弱"..min_vel.."-强度"..humanize_level..")", -1)
reaper.UpdateArrange()

if n > 0 then
local strength_desc = level_descriptions[humanize_level] or "未知"

local msg = "🎵 和弦力度处理完成!\n\n"
msg = msg .. "拍号: " .. selected[1] .. "\n"
msg = msg .. "力度范围: " .. max_vel .. " - " .. min_vel .. "\n"
msg = msg .. "强度: " .. humanize_level .. "/10 - " .. strength_desc .. "\n"
msg = msg .. "小节数: " .. total_bars .. "\n"
msg = msg .. "处理音符: " .. n .. " 个\n\n"

msg = msg .. "🎹 力度分布:\n"
for i = 1, beats_per_bar do
local desc = (strength_pattern[i] == 1) and "强拍" or
(strength_pattern[i] == 3) and "次强拍" or "弱拍"
msg = msg .. "第" .. i .. "拍(" .. desc .. "): " .. base_pattern[i] .. "\n"
end

msg = msg .. "\n📊 详细参数:\n"
msg = msg .. "• 浮动范围: ±" .. rnd .. "\n"
msg = msg .. "• 强调拍几率: " .. emphasis_chance .. "%\n"
msg = msg .. "• 乐句起伏: " .. string.format("%.1f", phrase_intensity*100) .. "%\n"
msg = msg .. "• 小节变化: " .. string.format("%.1f", bar_variation*100) .. "%\n"

reaper.MB(msg, "完成", 0)
end

在Actions窗口的Main工作区创建脚本文件, 并填入上方代码保存脚本:

image-20260606155537157

image-20260606155734951

然后为其设置相应的快捷键节课快速触发使用了, 配合reaper宿主自带的Humanize Notes功能进行节奏随机偏移可实现更加人性化的处理, 通常 Timing设置1%轻微偏移即可

这里有一点值得注意的是, 该脚本和Humanize Notes都是针对当前活跃的item进行处理, 假设你的钢琴轨道由许多item组成, 无需事先Glue合并item, 只需要在钢琴卷帘窗中开启小眼睛👁以及解锁即可:

image-20260606181543335

如果item数量比较多, 可以按住鼠标左键拖拽开启或者关闭:

iShot_2026-06-06_18.23.34

开启后就可以使用Ctrl+A全选音符应用脚本了

个人配置

以下配置仅供参考

  1. 将水平缩放中心点由原来的播放指针位置改为鼠标箭头所在位置

    设置方法:

    前往Preferences > Editing Behavior

    找到 Horizontal Zoom Center, 并选择Mouse Cursor模式

    image-20230721113420983

  2. 对网格线进行设置

    默认的网格线密密麻麻, 看得有点头大, 需要对其进行修改

    1. 右键网格线显示开关图标, 弹出Grid设置窗口

    image-20230721115031753

    1. line spacing设置为1/32, 表示放大网格线后, 两线之间间隔最小为1/32, 同时将minimum pixels设置为46, 表示每隔46像素显示一条线

      image-20230721115143508

  3. 禁止过度缩小工程

    默认情况下可以无限缩小工程, 导致音频文件都看不到, 这里做一个限制, 防止缩小过度

    image-20230721120044550

  4. 解决修改Bpm后音频被拉伸的问题

    进入File > Project Settings…,在Timebase for items/envelopes/markers一栏将Beats改为 Time模式即可

    image-20230721123000535

  5. 降低自动交叉淡入淡出的时间

    当我们对音频进行裁剪时, Reaper默认会自动给音频添加淡入淡出, 这是个很不错的功能, 但是它的时间有点长, 容易导致剪辑后的声音一卡一卡的, 为了让声音更加流畅, 我将时间设置为1ms, 默认是10ms

    image-20230721140730806

  6. 同时修改同一轨道上的多个item的淡入淡出

    reaper默认在不同轨道可以实现对多个选中的item同时进行淡入淡出的操作, 但是在同一轨道上的多个item却不行, 这里需要进行一下设置

    设置方法:

    1. 进入到Preferences > Mouse Modifiers选择Media Item fade/autocrossfade | Left drag

    2. 鼠标双击 default action and select Move Fade, 然后勾选Relative edge edit

      image-20230721141513743

    3. 最后效果如下

      2023-07-21 14-17-20.2023-07-21 14_18_47

  7. 简化录音文件命名格式

    reaper中默认的录音文件名称比较长, 类似于这种03-GtrL190703_0840.wav, 我们需要对其进行简化, 让其看起来清晰明了

    设置如下:

    进入Preferences > Recording, 在 filename format, type一栏中填入$track- $recpass00 然后保存即可

    image-20230721144226601

    前后效果对比如下:

    image-20230721144452111

  8. 钢琴卷帘窗隐藏音符力度控制句柄

    当我们使用鼠标对midi音符进行拖拽的时候, 很容易不小心改动了音符力度, 为了避免误操作, 我们需要将音符力度控制句柄进行隐藏, 具体方法:

    View->Piano roll notes->取消勾选Show velocity handles on notes, 如下图:

    image-20230811190413066

    如果我们想修改某个音符的力度大小可以使用Alt+鼠标左键上下拖拽的方式来实现

  9. 修改钢琴卷帘窗缩放和滚动快捷键

    由于之前习惯了Cubase的缩放快捷键, 为了更好的过渡, 这里我对其进行修改, 具体方法如下:

    首先打开钢琴卷帘窗, 点击顶部菜单中的Actions选项, 进入到Actions窗口:

    image-20251002193745524

    然后根据zoom关键字搜索, 找到水平缩放View: Zoom horizontally (MIDI relative/mousewheel)和垂直缩放View: Zoom vertically (MIDI relative/mousewheel), 对其进行快捷键修改即可:

    image-20251002193422351

    同样的, 滚动快捷键, 搜索scroll关键字, 找到水平滚动View: Scroll horizontally (MIDI relative/mousewheel)和垂直滚动View: Scroll vertically (MIDI relative/mousewheel), 并做对应的修改:

    image-20251002194529081

  1. 修改音符拖拽复制和画笔切换快捷键

    • 音符拖拽复制快捷键修改成Alt+鼠标左键

      操作如下:

      打开Preferences窗口, 进入Mouse Modifiers选项, 选择MIDI noteLeft drag, 找到opt条目并双击, 在弹出的下拉菜单中选择copy note动作:

      image-20251002211742007

    • 画笔切换快捷键修改成Ctrl+鼠标左键

      操作如下:

      打开Preferences窗口, 进入Mouse Modifiers选项, 选择MIDI piano rollLeft drag, 找到cmd条目并双击, 在弹出的下拉菜单中选择insert note ignoring vetical drag动作:

      image-20251002205731127

      image-20251002210019852

      这一步还没完, 紧接着切换成Left click模式, 找到cmd条目并双击, 在弹出的下拉菜单中选择insert note动作:

      image-20251002211155393

      如此一来, 便实现了和Cubase一样的效果, 为了方便windows平台使用, 我对Ctrl也做了和cmd一样的设置

      简单解释一下相关的参数, 首先MIDI piano rollMIDI Editor的一部分, 而MIDI noteMIDI piano roll的一部分

      MIDI Editor父级–>MIDI piano roll子级–>MIDI note孙级

      当父级和子级动作有冲突时, 子级占有优先权

      我们在设置快捷键的时候, 需要明确该动作是作用在音符上还是钢琴卷帘窗上, 这样才能准确选择对应的Context, 从而避免出现改了半天没反应的情况

我个人的自定义Action

以下Action仅供参考:

  1. 参考音频切换播放toggle reference

    1
    2
    Toggle mute for master track
    Toggle solo for track 01

    image-20230717103843224

  2. 对已经选中的轨道进行分组create folder for selected tracks

    1
    2
    3
    4
    5
    6
    7
    8
    SWS/S&M: Cut selected tracks (with routing)
    SWS: Create and select first track
    SWS: Save current track selection
    SWS/S&M: Paste tracks (with routing) or items
    Xenakios/SWS: Select previous tracks, keeping current selection
    SWS: Make folder from selected tracks
    SWS: Restore saved track selection
    Xenakios/SWS: Rename selected tracks..

    image-20251014171647665

自定义主题

钢琴卷帘窗背景颜色修改

Reaper默认主题中的钢琴卷帘窗背景颜色太深了, 小节网格线根本看不清, 这里需要自定义调整一下

具体操作:

打开Actions窗口, 搜索tweak, 在搜索结果列表中找到Theme development: Show theme tweak/configuration window选项, 鼠标双击打开进入到主题编辑窗口:

image-20251002222106050

image-20251002222305036

搜索栏中输入midi关键字进行快速过滤, 我们只需要对以下部分的颜色进行修改:

  • MIDI editor grid line (start of measure)小节线颜色设置为: #000000
  • MIDI editor grid line (start of beat)节拍网格颜色设置为: #333333
  • MIDI editor grid line (between of beat)每拍内部节奏细分网格颜色设置为: #555555
  • MIDI editor background color (naturals)钢琴卷帘窗白键背景颜色设置为: #F5F5F5
  • MIDI editor background color (sharps/flats)钢琴卷帘窗黑键键背景颜色设置为: #E5E5E5
  • MIDI editor background color, selected pitch (naturals)钢琴卷帘窗白键选中时背景颜色设置为: #F5F5F5
  • MIDI editor background color, selected pitch (sharps/flats)钢琴卷帘窗黑键选中时背景颜色设置为: #E5E5E5
  • MIDI editor ruler backgroundMIDI编辑器下方音符属性区域背景颜色 设置为: #CCCCCC
  • MIDI editor background color, out of bounds (naturals)钢琴卷帘窗音符编辑区域之外的白键背景颜色 设置为: #CCCCCC
  • MIDI editor background color, out of bounds (sharps/flats)钢琴卷帘窗音符编辑区域之外的黑键背景颜色 设置为: #BBBBBB

注意: 钢琴卷帘窗白键选中时背景颜色需要和白键背景颜色保持一致, 黑键同理, 保证在绘制音符过程中不会出现颜色混杂的情况

调整之后的最终效果为:

image-20251002230407874

调整之前默认效果为:

image-20251002230331036

钢琴卷帘窗音符颜色修改

由于音符的颜色根据不同的力度大小作不同的显示, 因此需要一个渐变的颜色png文件, 比如下面这种:

image-20251003084404001

image-20251003084437925

上面的png文件有需要可以自行去reapertips官网下载, 这里仅举例介绍, 有条件的话尽量自己设计一套颜色, 因为他们给的这些实在是太丑, 还不如官方自带的好看

紧接着在Preferences窗口的MIDI Editor选项中对该png文件进行加载即可:

image-20251003084945122

加载完后效果如下:

image-20251003085116482

如果需要回到默认的颜色, 只需删除MIDI Editor中加载的路径地址即可

REAPER使用过程注意事项

  1. 执行操作时, 需要养成先选中Item的习惯, 如果没有选中某个Item, 默认是分离所有轨道中的音频
  2. 尽量少使用Glue功能, 平常无论你对音频如何复制剪辑都不会新增音频文件, 一旦你用Glue items功能对item进行的了合并操作, 那么在工程目录下会新增音频文件, 这对于我们项目管理和备份时非常不利的

本文为作者原创 转载时请注明出处 谢谢

有瓣音频 – 有伴你我,更多编曲混音技术尽在有瓣音频

0%