有瓣音频 – 分享编曲混音技术

有瓣音频 – 有伴你我


  • 首页

  • 归档

  • 搜索

在REAPER中实现自动绘制包络曲线

发表于 2024-03-31

需求

如果你嫌弃手动绘制包络太繁琐 那么Reaper也提供了自动化包络功能 尤其针对一些规律性比较明显的包络 能省下不少时间

步骤

  1. 选择插件中需要进行控制的参数

    image-20240331095802136

  2. 开启LFO模式

    image-20240331100015696

    这里我们可以设置参数变化方式以及控制的速度和幅度等等

  3. 最终效果

    2024-03-31 09-25-58.2024-03-31 09_28_55

  4. 如果需要记录该自动化 那么在控制之前 需要将automation mode设置为Write模式 记录完成后 再改回Read模式即可

  5. 如果觉得效果不满意需要对进行参数修改 除了FX中的Param入口之外 还可以点击包络轨道的正弦图标进入 这样更加方便

    image-20240331112528038

外部设备绘制包络曲线

如果需要通过外部硬件设备来写入自动化 那么可以参考下一篇文章《在REAPER中如何使用外部MIDI键盘来控制插件参数》

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

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

在AI环境下的音乐制作流程

发表于 2024-03-30

前言

本着打不过就加入的原则 我们可以考虑借助AI工具实现音乐制作效率化

第一步 灵感启发

假如你灵感枯竭 不妨使用AI写歌找找灵感 比如SunoAI

在众多机械的声音中找寻共鸣

虽然我个人不太喜欢用 担心被同化 但是毫无头绪的时候参考借鉴一番也未尝不可😃

除了强大的SunoAI之外 还有一些对中文不太友好的工具比如:Soundraw、Mubert 可以蹭一蹭免费额度玩一玩

第二步 以曲填词

填词是一项脑力活 精神状态不佳的时候 还不如AI写的词

没有头绪的时候 也不妨试试人工智能 比如 网易天音 腾讯觅词等等

如果你喜欢写英文歌词 可以试试Moises或者Waves公司出品的LyricStudio

image-20240331075829696

第三步 混音母带

借助AI混音母带分析工具优化自己的作品 是个不错的选择

比如 mixcheckstudio

image-20240329095545280

第四步 歌曲封面

使用AI一键生成封面图 不要太爽

什么? 你说这样没有感情

在众多的图片中选择了一张你觉得合适的图 你的选择就是你的感情

有时候 选择大于创作😼

第五步 MV制作

AI生成短视频 这个不用多说了 网上有很多利用AI生成的电影预告片 很震撼

推荐一个根据文字生成视频的网站 PixVerse

视频的制作无法一步到位 更需要个人的参与 将各种片段组合在一起并和歌曲进行搭配 这并不是一件容易的事

如果不熟悉的话 还不如使用摄像机拍摄来的快一些

当然了 它的优势在于动画和虚拟人物和场景

我在想 某些小说里震撼的画面 未来指定得靠AI来实现了 人类的脑洞哪有AI的大啊 哈哈😜

总结

在AI的大环境下 我们更多充当的是创意者 审美者 牵线者 整合者 指挥者 选择者 而不是执行者

下达命令 让AI去替我们干活

我不禁思考 当大部分的事情都能让硅基生命去做时 人类其实并不会失业 反而能实现真正意义上的共产大同社会

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

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

混音是音量的艺术

发表于 2024-03-29

前言

混音的底层原理其实就是音量 我们通过调整不同音轨的音量 使得乐器之间相互融合 形成一个富有听感的整体

三个维度

我们可以从时间 频率 音量三个维度去分析

  • 音量推子 : 调整的是 整个时间 所有频段 的音量
  • EQ : 调整的是 整个时间 某些个频段 的音量
  • 压缩器 : 以字或句为单位 循环规律性地调整 整个频段 的音量
  • 动态EQ/压缩器 : 以字或句为单位 循环规律性地调整 某个频段 的音量

所有我们使用的效果器都是用来调整音轨音量的工具 某些效果器的存在是为了能更加细致化地调整音量

混响和延迟

混响和延迟效果器 其实只是一个音色生成器 并不是音量调整工具

给人声发送混响和延迟 就相当于是生成了一段基于人声的混响和延迟音色 这些个音色和原本的声音进行叠加后能形成一定的空间感

因此我们可以将它们当做是一种和声或者乐器来看待 在宿主中添加混响和延迟 其实就和叠音色没什么太大区别了 既然是叠音色 那就完全根据个人喜好了 可叠一轨或者多轨

从这个角度去分析的话 当我们在混延迟和混响的时候 就更加有目标 而不是盲目地乱加效果

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

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

原创歌曲《远方》上线啦

发表于 2024-03-28

网易云试听

如果以下播放器无法播放 可以点击进入网易云网页 或者各大音乐平台搜索歌手 : 十二越

歌词

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
天长地久

词/曲 : 十二越
编曲/混音 : 十二越

心 在那个黄昏的小巷
我们如风儿般漂扬
老街道旁

曾几何时我们都一样
一样的为这
为那痴狂

如今我们也都还一样
一样的长大
一样挣扎
雁儿飞过南边风只刮
是谁在远方
谁在流浪

...

创作背景

23年写的歌

背井离乡 是否想家

故土 祖地 最开始的地方 最美好的记忆

编曲混音

每次都感觉自己在进步 但是结果依然不是太满意 存在很多瑕疵

再接再厉 争取越来越好💪

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

原创歌曲《我以为》上线啦

发表于 2024-03-28

网易云试听

如果以下播放器无法播放 可以点击进入网易云网页 或者各大音乐平台搜索歌手 : 十二越

歌词

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
我以为

词/曲 : 十二越
编曲/混音 : 十二越

曾经我以为
不过是残留的眼泪
曾经我以为
只是伤悲

而你温柔的余味
少了真心的体会
当初划过眼角的玫瑰
难道才珍贵

呜~ 呜~
谁是谁非
是你知进退
还是我不想回
...

等过想过不后悔
也曾哭过累过证是非
别再
流泪

创作背景

23年写的歌 曾经我以为 也只是我以为

歌词比较直白 换句话说就是比较俗 但是真情流露 管它呢😜

希望大家能喜欢 多多支持

编曲混音

其实以前我不太喜欢在编曲中加入电吉他

因为感觉有些low😂 可能是受到其他歌曲的影响 有些伤感情歌 吉他一上场整首歌听起来就俗了

不过现在身在局中 也很难分辩了 有时候就是需要来点失真吉他🎸 才能把情绪推起来 让歌曲听起来更苦

混音上存在一些不足之处:

  1. 副歌情绪没推上来 没有宣泄到位 当时忘了给副歌某些地方添加延迟混响以及和声
  2. 乐器前后摆位不太满意 我大部分歌 鼓组都比较明显 把情歌混成了嘻哈 并不是一件好事
  3. 乐器音色调整过度 比如钢琴🎹 原本的音色更好听 混音后的颗粒感太过明显 和歌曲的风格不是太大 其实我更希望音色听起来舒服温柔一些 这样听众才能进入状态

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

原创歌曲《天长地久》上线啦

发表于 2024-03-28

网易云试听

如果以下播放器无法播放 可以点击进入网易云网页 或者各大音乐平台搜索歌手 : 十二越

歌词

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
天长地久

词/曲 : 十二越
编曲/混音 : 十二越

我可以走
也可以留
看天上的星星它有几颗

我不想走
我只想一直陪在你左右
在你的心里头

你说的天长地久
有多久
想起当初的温柔
你要的天长地久
到最后
只留我独自守候

你尽夸下 这海口
刻在石头
你许诺 的时候
不曾低头

创作背景

21年写的歌 故事都在歌里 你说的天长地久呢?

如果你也有共鸣 那么 同是天涯沦落人啊 😃

编曲混音

每次都感觉自己在进步 但是结果依然不是太满意 存在很多瑕疵

再接再厉 争取越来越好💪

编曲部分: 在副歌衔接部分 感觉有点空 应该再添加一些音色填补一下

混音上: 副歌情绪的推动 还有所欠缺 延迟混响没加到位

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

关于吉他和贝斯的音域跨度

发表于 2023-10-10

音域跨度表

image-20231006101657405

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

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

关于kontakt音源更换盘符后工程提示找不到音源

发表于 2023-08-10

场景复现

我有两个移动硬盘 一个盘符名为NVME 另一个盘符名为FAT, 里面装了相同的kontakt音源, 某天NVME这个盘突然坏了 我只能使用另外一个FAT来替代 但是两个移动硬盘的盘符不一样, 这导致工程提示找不到音源

那有没有优雅的解决方案来避免一个一个手动修复呢

解决方案一

既然盘符不一致, 那我们只需将FAT这个盘名称改成NVME即可, 当然 有的系统可能不支持修改盘符名称, 那可以使用下面的第二种方案

解决方案二

我们可以使用符号链接(Symbolic Link)来解决这个问题。

符号链接是一种特殊类型的文件,它可以将一个文件或文件夹链接到另一个位置。我们可以将一个移动硬盘的盘符链接到另一个移动硬盘的盘符,以使工程能够找到音源。

下面是在Windows和Mac上创建符号链接的步骤:

Windows:

  1. 打开命令提示符(CMD)或者PowerShell。

  2. 使用mklink命令来创建符号链接。假设你的第一个移动硬盘的盘符是D:,第二个移动硬盘的盘符是E:,音源的位置是D:\音源,则可以使用以下命令创建符号链接:

    1
    mklink /J "E:\音源" "D:\音源"

    这将在E盘创建一个名为音源的文件夹的符号链接,指向D盘的”音源”文件夹。

Mac:

  1. 打开终端。

  2. 使用ln -s命令来创建符号链接, 如下:

    1
    ln -s "/Volumes/FAT/Sound Source" "/Volumes/NVME/Sound Source"

    这相当于是给/Volumes/FAT/Sound Source取了个别名, 名为 /Volumes/NVME/Sound Source, 当工程中的音源搜索NVME/Sound Source盘时, 会自动指向到FAT/Sound Source

通过这个创建软链接的方式,工程将能够在第二个移动硬盘上找到音源,而无需手动修复每个工程文件。节省了我们大量的宝贵时间

如果我们想要删除软连接 可以使用rm命令, 如下:

1
rm "/Volumes/NVME/Sound Source"

题外话

关于kontakt音源, 有条件的话建议使用多个硬盘备份, 避免出现其中某个硬盘宕机导致工作中断的情况

我的那个移动硬盘是因为突然断电出现了故障 导致电脑无法识别, 看来硬盘的好坏从断电保护这一块能测试出一二来, 好的硬盘不至于如此脆弱

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

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

REAPER中take和item有什么区别

发表于 2023-07-17

前言

刚开始使用reaper时可能会不太清楚take和item的区别, 这里给大家做简单的介绍

Take

Take (音频片段)是指在一个音频轨道上录制或导入的音频片段。当你在Reaper中录制或导入音频时,每个音频片段都被称为一个 Take。它代表了单独的音频录音或文件。

  • 一个轨道可以包含多个 Takes,在同一时间点上相互叠加或连续播放。
  • 每个 Take 可以具有不同的长度、音量、效果处理等属性。
  • 在混音或编辑过程中,你可以切换和比较不同的 Takes,选择最好的版本或进行组合。

Item

Item 项目)是指 Reaper中的一个音频片段的可视表示,它将 Take(音频数据)与其它参数(如位置、长度、音量、效果等)结合起来。

  • 一个音频片段(Take)可以有一个或多个关联的Items,每个Item都显示了该音频片段的可视化内容和相关的控制参数。
  • 通过编辑 Item,你可以移动、调整大小、裁剪、应用效果、平衡音量等对音频进行精确控制。
  • 在项目中,你可以使用项(Item)进行整体的编辑、处理和排列。

总结

总之,Take是音频片段本身,而Item 是展示了 Take 的可视化表示,并允许你在项目中对其进行操作和调整。

通俗点说, Take就相当于是音频素材库,Item就相当于是一个微型音频工程, 它只是对Take进行了引用. 这也是为什么我们在Reaper中对某个item无论怎么剪辑和复制, 工程目录下都不会新增音频文件

Take和item的这种设计不仅大大减少了工程体积, 还使得音频处理变得更加的自由灵活

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

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

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

发表于 2023-07-16

官方默认快捷键

  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
  22. 插入速度标记

    1
    Shift+C

    image-20260805093440851

我个人的自定义快捷键

以下快键键仅供参考:

  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 note和Left drag, 找到opt条目并双击, 在弹出的下拉菜单中选择copy note动作:

      image-20251002211742007

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

      操作如下:

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

      image-20251002205731127

      image-20251002210019852

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

      image-20251002211155393

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

      简单解释一下相关的参数, 首先MIDI piano roll是MIDI Editor的一部分, 而MIDI note是MIDI 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进行的了合并操作, 那么在工程目录下会新增音频文件, 这对于我们项目管理和备份时非常不利的

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

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

1…456…23

有瓣音频

223 日志
36 标签
RSS
© 2026 有瓣音频
本站总访问量次
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4
0%