11. MIDI 工具
MIDI 工具为处理 MIDI 内容提供了更多方式。 这些工具可以通过 Clip 视窗的变形和生成面板中使用,它们都支持音阶感知功能。 【Transform】工具针对已存在的 MIDI 音符进行变形,而【Generate】则是用于生成新的音符材料。
变形工具 会改变已存在音符的各种属性,包括 MPE 信息。 这需要选中一些音符来作为变形的材料。
MPE MIDI 工具作为一种变形工具,可以为音符添加表情信息,或变形已存在的表情信息。 你可以在 MIDI 音符编辑器的 MPE 视窗模式 中查看 MIDI 工具的效果。
生成工具 不需要音符输入,而是直接生成新的音符到 Clip 循环区域或时间选区中。 请注意,如果 Clip 或时间选区中已经存在 音符,那么生成的音符会替换现有的音符。
变形和生成工具分为原生 MIDI 工具和 Max for Live MIDI 工具。 原生 MIDI 工具属于 Live 程序的一部分,无法被编辑。 相比之下,Max for Live MIDI 工具则可以被编辑,你也可以 构建更多的 MIDI 工具 或 安装第三方 MIDI 工具,以此获得更多的变形和生成工具。 你创建或保存的 Max for Live MIDI 工具可以在 浏览器 中通过 MIDI Tools 过滤器组 或 MIDI Tool 标签 快速查找。
11.1 使用 MIDI 工具
要想使用 MIDI 工具变形或生成音符,首先打开变形或生成面板,在下拉菜单中选择所需的工具,然后在下方调整工具设置。 默认情况下,MIDI 工具会启用 Auto 按钮。 这意味着调整 MIDI 工具时,变形或生成会立即产生效果。

任何后续的 MIDI 工具参数变化都会影响 MIDI 编辑器中的音符。 如果你不希望变形或生成立即生效,那么可以关闭【Auto】按钮。 需要注意,关闭按钮会将音符恢复到初始状态。
如果关闭了 Auto 按钮,那么可以在调整完 MIDI 工具的参数后,再点击 Transform 或 Generate 按钮来应用效果。

你也可以使用快捷键 CtrlEnter (Win) / CmdEnter (Mac) 来应用当前 MIDI 工具的效果。
变形效果会影响时间选区、音符选区或 Clip 循环区域(其中没有音符或时间选区)。 使用变形工具时,已存在的音符会被替换为变形后的音符。
生成效果会影响时间选区或 Clip 循环区域(其中没有时间选区)。 如果 MIDI 音符编辑器中已经存在音符,那么应用生成效果后,生成的音符会和现有音符共存(如果生成区域和现有音符区域不重叠),或生成的音符会替代现有的音符(如果生成区域和现有音符区域重叠)。
MIDI 工具支持音阶感知功能,如果 Clip 启用了音阶功能,那么其 MIDI 工具的音高相关参数单位就会从半音变成音级。
变形和生成效果可以通过编辑菜单来撤销和重做。 请注意,撤销和重做只会影响效果应用结果,而不会影响 MIDI 工具的参数本身。 你可以使用重置按钮,将 MIDI 工具的参数恢复到默认值。 如果当前 MIDI 工具已经在默认状态,重置按钮会变灰。

重置按钮只会重置选中 MIDI 工具中的参数,但不会影响 MIDI 音符。
11.2 变形工具
以下会介绍 Live 包含的所有 MIDI 变形工具。
11.2.1 Arpeggiate
【Arpeggiate】变形工具会将音符分开成琶音音符,可选多种音型。 它与 Arpeggiator MIDI 效果器 的核心功能相同。

【Style】下拉菜单用于选择琶音音型,决定选中音符会变成的琶音组合。 Arpeggiate 变形工具和同名 MIDI 效果器拥有同样的 18 个琶音音型。
Distance 设置琶音之间的距离,会以半音(st)为单位调整,如果 Clip 启用了音阶功能,则以音级(sd)为单位调整。
【Steps】设置一个音型内琶音变化的步数。
【Rate】和【Gate】控制了音符在时间线上的分布方式:【Rate】设置音符的单位(会影响音符长度),【Gate】控制音符的相对长度。 如果【Gate】数值小于 100%,音符会被缩短,如果大于 100%,音符会被延长。

11.2.2 Chop
Chop 变形工具会将选中的 MIDI 音符分割成最多 64 份。 它还可以用来设计音符的分割样式;例如,将其中一些分割音符延长,或随机变化分割音符的开始或结束位置。

Parts 参数用于设置分割音符的数量,范围从 2 到 64。 Gaps 参数会向分割音符之间添加间隔,产生一个切割样式,此参数范围取决于 Parts 参数大小。 设置为正值时,每隔参数值会产生一个间隔。 设置为负值时,每个音符后会产生参数值数量的间隔。 例如,设置为 2 时,每两个音符会产生一个间隔。 设置为 -2 时,每个音符后会产生 2 个间隔。 请注意,切割样式最多为 16 份。 如果 Parts 为更高的值,切割样式会重复出现。
切割样式会显示在下方区域,你可以在此处手动点击来添加和移除间隔,来产生更多样式的切割节奏。 如果手动点击修改了样式,那么 Gaps 参数会变成一条横杠。 如果此时调整 Gaps 参数,手动点击更改的效果则会被 Gaps 参数效果覆盖。
强调按钮可以让某些音符或间隔延长,达到强调的效果。 强调的具体效果取决于 Stretch 值,它会将音符或间隔加长 2 到 8 倍。 如果一个音符或间隔被强调,那么对应的样式按钮会变灰。
使用 Variation 参数可以随机变化音符开始和结束位置。

11.2.3 Connect
【Connect】变形工具会在已存在音符之间的空白位置生成填补的音符。 填补音符的位置是随机的,可以使用 Connect 的参数控制细节。

【Spread】会基于已存在音符的音高,设置填补音符的随机音高范围,以半音或音级为单位设置。
【Density】控制填补音符的密度百分比。 在 100% 时,已存在音符之间的所有空白都会被填补。
【Rate】控制填补音符的音符长度,【Tie】则会将部分填补音符融合在一起。

11.2.4 Glissando
Glissando 是一个 MPE MIDI 变形工具,可以通过弯音曲线将每个音符音高连接在一起。 至少选中两个音符才能创建滑音。

Start 参数用于设置弯音开始的位置,其百分比参数代表音符长度的百分比。 Curve 参数用于调整弯音曲线的形状。 你可以拖动 Glissando 显示区域的黄色折点来调整弯音开始位置,上下拖动线段则可以调整形状。

请注意,此弯音曲线只能在 MPE 编辑器中查看。 如果当前打开的是 MIDI 音符编辑器,那么在应用 Glissando 变形工具后,无法看到音高曲线。
编辑 折叠的音符 时,可以打开下方的 Pitch Band 显示轨来查看弯音曲线。

11.2.5 LFO
LFO 会使用低频振荡器来变形三种 MPE 信息之一:弯音、滑动、压力。 低频振荡器的波形、速率、振幅都可以进行设置。

目标 MPE 参数下拉菜单可以选择想要变形的目标,可以选择 Pitch Bend 弯音、Slide 滑动、Pressure 压力。 LFO 波形会显示出来。
A 和 D 参数分别用于设置低频振荡器振幅包络的起始时间和衰减时间,它们的参数值为整体震荡的时间的百分比。 请注意,此处的包络起始和衰减会相互影响。 这意味着,如果起始设置为 100%,那么 Decay 会自动变成 0%。
Shape 参数会进一步调整选中的波形。 初始波形可选择:正弦波、方波、三角波、随机。 选择随机时,会出现一个骰子按钮,用于随机生成新的 LFO 波形。

Rate 设置振荡器的速率,以节拍为单位,范围从 1 到 1/128。 例如,Rate 设置为 1 代表一次完整的 LFO 震荡长度为 4 拍。 Rate 下方的参数用于偏移 LFO 的时间位置。 正值会推迟震荡的开始时间,负值会调整相位。
Amount 用于设置低频振荡器的振幅。 如果选择弯音作为调制对象,那么 Amount 参数的范围为 Clip 当前弯音范围的两倍。 例如,Clip 的弯音范围为 ±60 st,那么 Amount 参数可设置为 -120 st 到 120 st 之间。 如果选择滑动和压力作为调制对象,那么 Amount 参数范围为 -127 到 127。 Amount 下方的参数可以用于设置振幅的基础值。 如果选择弯音作为调制对象,那么基础值可以设置为当前 Clip 弯音范围内任意值。 例如,当前 Clip 弯音范围为 ±60 st,那么振幅基础值可设置为 -60 st 到 60 st 之间。 如果选择滑动和压力作为调制对象,那么振幅基础值范围为 -127 到 127。

MPE 弯音信息可显示在 MIDI 音符编辑器下方。 启用 Pitch Bend 表情轨,即可查看弯音信息,这非常适合在 音符折叠时 查看弯音信息。 滑动和压力信息分别显示在对应的 Slide 和 Pressure 表情轨中。
请注意,使用 LFO 变形工具后,只能在 MPE 编辑器中看到具体效果。 如果当前打开的是 MIDI 音符编辑器,那么在应用变形工具后,无法看到表情曲线。
11.2.6 Ornament
【Ornament】变形工具会向选中音符的开头添加装饰音或倚音。 向选中音符重复应用变形会继续添加装饰音或倚音。

首先选择要添加 Flam 倚音还是 Grace notes 装饰音。

使用【Flam】时,会在选中音符的开头增加一个倚音。
Flam 的【Position】控制倚音的位置;在正值时倚音会占用原始音符的一部分,在负值时倚音会添加到原始音符之前。 此参数的百分比是根据当前设置的网格宽度,因此倚音的长度是由当前网格宽度决定的,而不是由原始音符长度决定。 这意味着 100% / -100% 数值下,倚音的长度等于当前网格宽度,往 0% 调整倚音就会逐渐缩短。
Flam 的【Velocity】根据原始音符的力度,控制倚音的力度。

使用 Grace notes 时,会向选中音符的开头增加多个相同长度的音符。
Grace notes 的【Pitch】按钮基于原始音符音高,控制装饰音的音高。 选择 High 时,装饰音会位于原始音高的上方半音(如果启用了音阶,则是上方音级)。选择 Low 时,装饰音会位于原始音高的下方半音(或音级)。 如果选择【Same】,装饰音会和原始音高相同。
Grace notes 的【Position】控制装饰音的位置;在正值时装饰音会占用原始音符的一部分,在负值时装置音会添加到原始音符之前。 此参数的百分比是根据当前设置的网格宽度:在 100% / -100% 时,装饰音整体长一个网格宽度。
Grace notes 的【Vel.】根据原始音符的力度,控制装饰音的力度。
Grace notes 的 Chance 控制装饰音产生的几率,其百分比数值是基于原始音符的几率。
Grace Notes 的【Amount】控制添加装饰音的数量。 各个装饰音使用保持统一的长度。

11.2.7 Quantize
【Quantize】MIDI 工具会根据设置,移动或拉伸音符到网格。 此工具也就是量化功能,和 音频 clip 中的量化功能相同 。

可以根据当前网格,或任意网格单位进行量化(包括三连音)。 音符的开始和结尾位置都能量化,也可以同时量化。 对音符的结尾进行量化会拉伸音符,使其在所选的网格单位处结束。 通过调整【Amount】可以使量化的机械感不那么强烈,此参数的百分比决定了音符被量化时移动的程度。

量化功能除了可以通过 Clip 中的面板打开,还可以通过【编辑】菜单的【量化设置…】打开, 或使用快捷键 CtrlShiftU (Win) / CmdShiftU (Mac) 应用量化,不需要打开变形面板。
11.2.8 Recombine
Recombine MIDI 工具会重新组织选中音符的位置、音高、长度和力度,因此音符之间会互换属性参数。

使用属性选择器,可以选择重组哪个音符属性:Position 位置、Pitch 音高、Duration 长度、 Velocity 力度。

Recombine 有三种方式来重新组织音符属性:
- 【Shuffle】,随机排列属性。
- 【Mirror】,反向循环排列属性。
- 【Rotate】,按顺序循环排列属性。
Shuffle 和 Mirror 排列类型可以按下对应按钮开关,而 Rotate 需要设置不为 0 的值才有效。
Rotate 步数可以直接在显示区域中点击,也可以使用显示区域下方左右重组步数按钮调整。 可用的步数永远等于选中音符的数量减 1。 Rotate 正值会将参数顺时针重组,负值则逆时针重组。
在属性选择器中选择 Position 后,就可以启用 Grid 按钮。 启用 Grid 后,Recombine 会根据选中音符区域中的网格数量作为 Rotate 步数,而不是原先的音符数量。 具体的 Rotate 步数也取决于当前的网格设置。
排列方式可以搭配使用。 排列方式的生效顺序如下:Shuffle、Mirror、Rotate。 如果启用了 Shuffle,那么每次按下应用按钮都能生成新的重新排列效果。

11.2.9 Span
【Span】MIDI 工具使用三种技法类型变形选中音符的长度:Legato、Tenuto、Staccato。

还可以使用以下参数为音符添加变化:
- 【Offset】根据网格宽度调整音符结束位置。 在正值时,音符会被延长;在负值时,音符会被缩短。
- 【Variation】随机变化音符的长度。 只选中一个音符情况下,在正值时,音符会被缩短;在负值时,音符会被延长。 如果【Variation】不为 0%,那么重复按下【Transform】按钮会产生新的随机音符长度。
【Legato】会将音符结尾延长到下一个音符的开头。 选中的最后一个音符会延长到时间选区结束位置,如果没有时间选区,那么会延长到 loop 的结束位置。

【Tenuto】会保留原始音符长度,除非调整了【Offset】和【Variation】参数。
如果使用 Staccato 技法,那么音符长度取决于选中音符的间隔。 最小的开始位置间隔的一半,即为变形音符后的长度。 使用 Offset 和 Variation 参数能进一步调整音符长度。
11.2.10 Strum
【Strum】MIDI 工具会调整同一个和弦中的音符开始位置,使用【Low】、【High】、【Tension】设置形状。

Strum 的【Low】控制最低音符的偏移程度。 在正值时,音符的开始位置会后移,在负值时,音符的开始位置会前移。 最低音的开始位置偏移基于单个网格宽度,范围 100% / -100%。 其他音符会按比例均分,符合 Strum 显示区域中的形状。 如果 Tension 设置为 0.0%,那么音符之间的距离均等。
Strum 的【High】控制最高音符的偏移程度。 在正值时,音符的开始位置会后移,在负值时,音符的开始位置会前移。 最高音的开始位置偏移基于网格宽度,范围 100% / -100%。 其他音符会按比例分布,符合显示区域的形状。 如果 Tension 设置为 0.0%,那么音符之间的距离均等。
为了使变形产生效果,【Low】或【High】需要调整至不为 0.0%。 你可以直接在 Strum 的显示区域中调整这两个参数,或输入具体的数值。
【Tension】会使偏移不再均分到所有音符,而是曲线分布,使音符距离逐渐变大或变小。 在正值时,音符开始位置之间的距离会从大变小,呈指数趋势。 在负值时,音符距离会从小变大,呈指数趋势。

11.2.11 Time Warp
【Time Warp】是一个时间拉伸 MIDI 工具,会根据设置的曲线变形音符。 这可以创造速度变化,例如渐快和渐慢。

你可以在显示区域中调整断点曲线。 曲线的时间区域代表着选中的时间区域。 使用数字按钮可以开关各个断点。 断点除了可以直接拖动调整外,也可以使用【Time】和【Speed】参数调整。 显示的参数是当前选中的断点参数。
折点曲线下方的按钮可以进一步调整时间拉伸效果。 如果打开了【Quantize】,拉伸的音符会始终按照当前网格被量化。 如果打开了【Range】,变形的效果会始终保持在相同时间范围内。 如果打开了【Note End】,则曲线也会计算的音符结束位置,会影响到音符的长度。

11.2.12 Velocity Shaper
Velocity Shaper 是一款 Max for Live 变形工具。

【Velocity Shaper】使用可编辑的包络来控制选中音符的力度。
显示区域中的包络代表着音符力度变化的效果。 点击显示区域可以增加断点,然后拖动来改变包络的形状。
显示区域右侧可以设置音符力度变形的最大值和最小值。
显示区域下方的 Loop 设置包络变形选中音符力度的次数。
Rotate 会相对于音符选区的开始位置设置包络的偏移, Division 决定了 Rotate 的偏移单位。 例如,【Rotate】设置为 1,【Division】设置为“Grid”,那么包络就会整体往右偏移一个当前网格单位。

11.3 生成工具
以下会介绍 Live 包含的所有 MIDI 生成工具。
11.3.1 Rhythm
【Rhythm】MIDI 工具会根据设置在时间选区内生成重复节奏型。

可以生成特定音高音符,或在使用鼓机架时生成特定鼓垫音符。 使用 Pitch 参数可以选择音高或鼓音色,或按住 Alt (Win) / Option (Mac) 再点击钢琴卷帘。
【Steps】控制一组节奏型的步数,最多 16 步。
【Pattern】设置节奏型,也就是音符分布的形态。 可用的节奏型数量取决于【Step】和【Density】的数值。
【Density】控制一组节奏型内的音符数量。 最大的数量取决于 Steps 参数。
【Step Duration】设置步长,会影响节奏型在时间选区内的重复次数。 例如在一小节中,【Step Duration】设置为 1/8,【Steps】设置为 8,那么节奏型刚好填满一小节。 如果【Step Duration】设置为 1/16,【Steps】设置为 8,那么节奏型只会占半小节,因此会重复一次来填满整小节。 需要注意,【Step Duration】会影响【Steps】的最大数值。
【Split】会让一步节奏有几率分成两半。
【Shift】会移动生成的节奏,以【Step Duration】为单位,正值向右移动,负值向左移动。
使用力度参数和 Freq 参数控制生成音符的力度和重音。 【Freq】控制重音出现的数量,参数数值代表着几个音符才会出现一个重音。 数值范围从 0 到【Density】设置的数值。 由于 Freq 代表每几个音符才会出现重音 — 所以设置为 1 时,每个音都是重音。 可以使用左右箭头按钮来调整重音的位置。
如需添加节奏,首先取消选择生成的音符,然后为不同的音高或鼓音色调整 Rhythm 参数。

11.3.2 Seed
【Seed】MIDI 工具会根据设置的音高、长度、力度随机生成音符。 其他参数用于控制生成音符的数量和同时发声的音符数量。

要设置生成音符的音高范围,拖动调整最低音和最高音参数,或拖动三角形手柄,或拖动音高范围线段。 如果两个三角形手柄重叠,它们会融合在一起,使得生成的音符只有一个音高。 如果想恢复成两个手柄,点击音高范围线段的其他位置,或调整最低音和最高音参数。 也可以按住 Alt (Win) / Option (Mac) 并点击钢琴卷帘,只选择一个音高或拖动选择音高范围。 如果 Clip 启用了音阶功能,那么 Pitch 数值区域会显示紫色;否则会和其他两个参数颜色一致。
Duration 和 Velocity 的操作方式和 Pitch 一样,分别用于设置生成音符的长度和力度。 Duration 最小长度为 1/128,最大长度为 1。 力度范围从 1 到 127。
使用【Voices】和【Density】可以控制音符的数量,【Voice】控制同时发声的最大音符数量,【Density】控制整体音符的密度,受当前网格宽度影响。

11.3.3 Shape
Shape MIDI 工具会在一定音高范围内生成一系列音符。 音符会按照显示区域中绘制的形状生成。

你可以在下拉菜单中选择图形预设,也可以自己绘制图形。 使用【Pitch】参数设置生成音符的音高范围。 按住 Alt (Win) / Option (Mac) 可以拖动选择时间范围。 如果 Clip 启用了音阶功能,那么形状会变成紫色。
【Rate】控制生成音符的最小长度。 音符长度也会被 Tie 影响,设置两个音符融合为一个的几率。
【Density】控制音符产生的密度,可只产生图形一部分的音符。
【Jitter】基于生成音符的音高,在一定范围内随机其音高。 数值为 0% 时,生成音符会按照图形的形状,增加数值会逐渐增加随机音高的范围。 随机生成的音高也会始终保持在【Pitch】设置的音高范围内。

11.3.4 Stacks
Stack MIDI 工具可以在设定音阶内生成和弦或和弦进行。 生成的和弦会填满时间选区,如果没有选区则填满 loop 区域。

上下拖动和弦图示可以更改和弦类型,或按住 Ctrl (Win) / Cmd (Mac) 加上下方向键调整和弦类型。 和弦图表是和弦中音符相对关系的简单表示;它们基于调性系统(Tonnetz system)。 将鼠标悬停在和弦图表上,会在状态栏中显示和弦的具体信息。
你可以为 Stacks 编写自定义和弦组。 和弦组文件需要按 JSON 格式编写,并保存为 .stacks 扩展名。 关于编写和弦组的更多信息请参考 这篇知识库文章。
要将自定义和弦组加载 Stacks 生成工具中,先将 .stacks 文件放置于一个文件夹中,然后将该文件夹添加到 浏览器的位置部分。 然后在浏览器中双击文件,即可替换 Stacks 默认的和弦组。
你可以在浏览器中使用 MIDI Tool 过滤器组的 Stacks 标签,或 MIDI Tool 标签。
要创建和弦进行,点击和弦图表右侧的加号按钮,然后为新和弦选择和弦类型。 使用减号按钮可以减少和弦数量。
使用 Root 参数来设置和弦的根音。 选中和弦图标后,按住 Alt (Win) / Option (Mac) 并点击钢琴卷帘可以选择根音,或使用上下方向键调整根音。 如果 Clip 启用了音阶功能,默认和弦根音会自动调整到该音阶。 你依旧可以更改和弦根音,但此时根音只能选择音阶的音。
【Inversion】可以调整和弦的转位,重新编排和弦。 正值会循环选择和弦转位,负值则会向下八度循环转位。 【Duration】长度和【Offset】偏移可以控制和弦的长度和位置。 两者都以原始和弦长度的八分之一为单位调整。
请注意,Stacks 里所有的参数特定于当前选中的和弦。 这意味着如果选择另一个和弦,这些参数都会实时更新,显示新和弦的参数。

11.3.5 Euclidean
Euclidean 是一款 Max for Live 生成工具。

【Euclidean】基于欧几里得节奏(Euclidean rhythms)生成四组音符。新的音符会生成在时间选区中,如果没有进行选择,则会生成在整个 loop 中。
【Pattern】选项卡会用图表显示生成音符预览。 图表的右侧可以开关各个音符组,并调整它们的 Rotation 偏移(相对于时间选区的开头)。 图表的中心有一个随机按钮,可以随机各个音符组的【Rotation】偏移量。
点击【Voices】来选择音符组选项卡。 和【Pattern】选项卡类似,可以开关各个音符组,如果使用乐器装置,则可以设置各个音符组的音高,如果使用鼓音色(例如鼓机架),那么可以调整鼓垫。 使用音符组开关按钮左侧的上下箭头按钮,可以整体移动生成音符的音高(或鼓垫)。 右侧的 Velocity 可以设置各个音符组的力度。
在 Pattern 和 Velocity 选项卡的下方,可以进一步调整生成的音符节奏:
Steps — 设置生成音符的步数。 如果设置的步数小于选区的长度,那么会重复生成填补时间选区。 Density — 设置步数中生成音符的数量。 如果生成的的音符数量不适合时间选区,那么会重复生成填补时间选区。 Division — 设置每一步的长度。
