本帖最后由 HyperTine 于 2024-11-21 21:20 编辑
雅马哈编曲键盘自动走带功能的简易实现
(转载请注明出处,感谢配合)
前言
自动走带功能是双排键领域的一个术语,指的是键盘根据事先设置好的时间节点,在用户演奏时自动执行注册记忆切换、变奏切换等操作,无需人工干预,以帮助用户更专注于演奏的内容本身。然而,这一便捷的功能迄今为止还未被下放到雅马哈单排键编曲键盘。在绝大部分雅马哈编曲键盘(不含PSR-S650等入门型号)上,用户只能通过注册序列功能将注册记忆切换操作分配给脚踏板执行,无法实现真正的自动走带;2022年新发布的ELA-1双排键编曲键盘新增了自动注册序列功能,可以按照用户设定的时间节点自动切换注册记忆,然而相比传统双排键仍然缺少自动切换变奏等功能。
在此背景下,本文探讨了在雅马哈Tyros/Genos编曲键盘上实现自动走带功能的一种可行方案。具体而言,我们通过一根五针MIDI线将编曲键盘的MIDI IN/OUT接口直接相连,利用琴上自带的Multi Pad/乐曲播放功能发送自动走带信号,并使用外部MIDI控制器功能将接收到的信号转换为自动化操作。此种方法可实现包含注册记忆切换、变奏切换在内的30余种功能的自动操作,远超传统双排键自动走带支持的功能;此外,本文方法支持的自动走带片段数量理论上无上限,突破了传统双排键每首曲目最多包含4段走带信息的限制。
此外,对于不支持外部MIDI控制器功能的编曲键盘(如PSR-SX700 / PSR-SX900系列)或不具备五针MIDI接口的编曲键盘(如PSR-SX600系列),我们提出了对应的替代方案,可通过一些额外的步骤实现全自动或半自动注册序列切换。
1 原理简介
虽然雅马哈单排键编曲键盘不具备原生的自动走带功能,但往往可以通过各类MIDI信号来远程触发键盘上包括注册记忆切换在内的各种功能。特别是对于Tyros/Genos系列键盘而言,使用其自带的外部MIDI控制器功能,可以根据MIDI输入端口传入的音符信号来触发不同的功能,十分便捷。由此容易想到,只要将这些外部传入的音符信号按照时间顺序排列成一段MIDI序列,并在演奏时播放,编曲键盘就可以在预设的时间节点自动触发各种功能。
然而顾名思义,外部MIDI控制器功能只作用于外部传入键盘的MIDI信号。如果我们想用琴上自带的Multi Pad或MIDI乐曲功能来播放自动走带序列,还需要想办法将这些“内部”信号转换为“外部”信号。好在Tyros/Genos键盘提供了多组MIDI输入输出接口,结合琴上MIDI模板的设定,我们可以将键盘上的走带信号通过MIDI连接线返送回键盘,由此实现“内部”到“外部”的转换。
下文我们将主要介绍一套适用于Tyros/Genos系列键盘的、对新手较为友好的自动走带实现方案。我们将Multi Pad 4用于存储和播放自动走带数据,并使用MIDI乐曲来实现自动速度变更,可覆盖传统双排键自动走带的全部功能,且使用起来更具灵活性。对于其他雅马哈编曲键盘用户,我们同样提供了一些自动走带相关的实现思路,可跳转到本文第5章进行阅读。
2 准备工作
要实现本文的自动走带方法,读者需要自行准备一条五针MIDI连接线,如下图所示。
图 1 五针MIDI连接线示意图
接下来我们需要使用这条线将键盘后端的MIDI IN/OUT接口直接相连。但在进行实际连接之前,为了避免返回的信号与原本的信号产生叠加,我们需要改动一些MIDI设置。
如果您是Genos2用户,可以直接使用时欢琴音预先制作好的MIDI设置模板(可在文末下载附件),而无需手动设置。如果您是Tyros/Genos1用户,请按照以下步骤进行设置:
1. 在主界面下,Tyros用户按下DIRECT ACCESS + FUNCTION按键,Genos用户在屏幕上点按“MENU/菜单”-MIDI,进入MIDI设置界面。
2. 点击上方的模板预置名称(一般默认为All Parts),在列出的预置模板中选择最后一项“MIDI OFF”来关闭本琴的所有发送和接收,此模板用于关闭自动走带功能,也可更换一个名字另存到User区域,如“SEQ OFF”。
3. 进入“Transmit/传输”选项,将“Multi Pad 4/多功能音垫4”设定成“Port1 Ch16/端口1 通道16” ,并确保只勾选“Note/音符”选项,关闭其余“CC/PC/PB/AT”选项,将MIDI模板另存。此模板用于开启自动走带功能,可以命名为“SEQ ON”。
图 2 设置Multi Pad 4的输出通道
图 3 设置Multi Pad 4的输出信号类型
完成MIDI设置后,使用MIDI连接线将键盘后端的A组MIDI OUT接口与B组MIDI IN接口相连(切记不要反过来将B组OUT连入A组的IN),准备工作即告完成。
3 自动走带的制作与使用
通过上述设置,我们已经可以将Multi Pad 4声部的音符信号通过MIDI连接线返送回键盘。接下来我们需要在外部MIDI控制器功能中将不同音高的音符信号分配到不同的走带功能,并将相应的自动走带音符输入到Multi Pad 4的数据中。此外,如果需要在自动走带信息中包含速度变更曲线,我们还需要准备对应的MIDI文件,作为乐曲在演奏时同时播放。
3.1 外部MIDI控制器设置
如果您是Genos2用户且加载了本文提供的预设模板,则可跳过这一小节。否则,请按照以下步骤进行设置:
1. 在主界面下,Tyros用户按下DIRECT ACCESS + FUNCTION按键,Genos用户在屏幕上点按MENU/菜单-MIDI,进入MIDI设置界面。
2. 先加载上一节中保存好的“开启自动走带”的MIDI设置,如“SEQ ON”。
3. 在“MFC10”(对于Tyros用户)或“External Controller/外部控制器”(对于Genos用户)选项卡下,您可以将不同音符分配到您需要的各种功能。
4. 将MIDI端口设置为“MIDI B”,MIDI通道设置为16。
5. 将MIDI模板覆盖保存并退出。
图 4 在外部MIDI控制器设置项中分配功能
3.2 自动走带信息输入
在键盘处于主界面时,按下“FUNCTION/功能”或“MENU/菜单”按键,选择进入“Multi Pad Creator/多功能音垫创建器”功能,您就可以自由编辑当前Multi Pad库中的四个乐句。其中,Multi Pad 4是我们需要输入走带信息的乐句。根据我们在上一步中指定的功能,在编辑器中根据小数/拍数录入对应功能所表示的音符即可。
图 5 在Multi Pad 4中录入自动走带信息
在输入功能所代表的音符时需注意以下几点事项:
1. 将一条数值为0的CC#7或CC#11事件插入到所有事件之前,即可将Multi Pad 4静音,防止走带音符混入实际演奏。
2. 拍数中最后四位数表示精确的拍点,每1920个拍点则等于一拍,例如想在第3小节第二拍的后半拍插入走带音符,则时间对应为003:2:960。
3. 切换注册记忆/切换OTS的信息要避免放在小节第一拍,因为切换注册也需要一定的时间过程,要尽量提前一些拍点放置,以免影响第一拍将要出现的音符。
4. 切换主奏、加花、间断等信息的时间设置也要尽量模拟人手按的时机,过于精确的设定有时听感反而不自然,具体可边听边修正。
5. 录入结束后,在“EDIT/编辑”选项卡中,我们还需要确保Multi Pad 4对应的“Repeat/重复”和“Chord Match/和弦匹配”选项处于关闭状态。
图 6 关闭Multi Pad 4的声音
图 7 关闭Multi Pad 4的重复与和弦匹配功能
最后,我们将当前Multi Pad库另存到新文件。
上述操作结束后,我们便获得了一个包含自动走带数据的Multi Pad库。其中,前三个Multi Pad键位仍然可用于存放正常的演奏乐句,第四个键位用于播放自动走带数据。将Multi Pad 4和自动伴奏的“同步开始”功能打开,存入注册记忆,即可在演奏时实现自动走带。如果演奏中途需要停下自动伴奏,或只有个别片段需要用到自动走带,我们可以创建多个Multi Pad库,从而调用多段不同的自动走带信息。相比之下,ELA-1的每组注册记忆仅支持绑定一组自动走带数据,而ELS每首曲目最多创建4个走带信息片段(即四个SEQ按键),由此可见本文方法的优越性。此外,Genos2的注册记忆可以保存并在演奏中途随时更改MIDI模板,这意味着我们可以在不需要自动走带信息的片段将上述MIDI模板中的“SEQ OFF”存入注册记忆,从而恢复完整的4个Multi Pad可用键位,在使用自动走带时再切换至“SEQ ON”模板即可,非常灵活。
图 8 在Genos2的注册记忆存储项中勾选MIDI设置
如果您是Genos2用户且加载了本文提供的预设模板,可以参考以下功能对照表:
音符 | 功能 | #C-1 | 注册序列- | D-1 | 注册序列+ | #D-1 | 前奏1 | E-1 | 前奏2 | F-1 | 前奏3 | #F-1 | 主奏A | G-1 | 主奏B | #G-1 | 主奏C | A-1 | 主奏D | #A-1 | Break/间断 | B-1 | 尾奏1 | C0 | 尾奏2 | #C0 | 尾奏3 | D0 | 同步停止 | #D0 | 同步开始 | E0 | 节奏开始/停止 | F0 | OTS 单触1 | #F0 | OTS 单触2 | G0 | OTS 单触3 | #G0 | OTS 单触4 | A0 | Pad 1 | #A0 | Pad 2 | B0 | Pad 3 | C1 | Pad 4 | #C1 | Pad 停止 |
表 1 自动走带音符与功能预设对照表
上表中的键位与功能设定在下图中MIDI设置的“外部控制器”选项中可自定义:
图 9 自定义功能与键位分配
3.3 速度变更曲线(可选)
由于Multi Pad不支持插入速度变更信息,如果您的演奏曲目有连贯速度变更的需求,则还需要配合MIDI数据来实现精准自动变速。可以使用琴上自带的乐曲录音机或者电脑端DAW软件制作一段或多段仅包含速度变更的MIDI数据,与自动伴奏和Multi Pad同步播放,从而实现速度的自动变更。下图为直接在琴内创建的每小节渐慢5BPM的MIDI数据。
图 10 使用乐曲分步录音功能来实现速度变更
4 可能遇到的冲突及解决方案
4.1 与V-Console的冲突
截至目前,我们只讨论了在单台键盘上或是外接一台电脑时实现自动走带和注册序列自动切换的情况。如果您的键盘同时连接到了V-Console等其他软件,则需要考虑一些可能产生的冲突。例如,当Tyros/Genos同时使用Multi Pad控制的自动走带和乐曲控制的速度变更,且开启自动伴奏时,V-Console的下键盘和弦检测会失效。产生该问题的原因是:V-Console默认使用乐曲通道9来传输下键盘和弦信号,而在雅马哈编曲键盘上,自动伴奏播放时默认会禁用乐曲通道9-16,从而导致无法接收到V-Console传来的和弦信号。解决该问题的方法是尽量避免同时使用V-Console、Multi Pad控制的自动走带、乐曲控制的速度变更和自动伴奏。作为代替,您可以将多段速度变更存储在不同的注册记忆中,并通过Multi Pad控制的自动走带来间接实现速度变更。
此外,由于V-Console已经规定了外部控制器来源必须是USB2的第8通道,擅自改动将会使V-Console中所有控制功能失效。为了确保自动走带与V-Console中控制器功能不冲突,还要将走带信息并入进USB2的第8通道与V-Console的控制信息同时发进主键盘。这里就需要一个额外的转发小程序(由MusicTyros开发)将Multi Pad 4的信息单独转发至USB2的第8通道,最后还可将小程序做成快捷按钮放进V-Console界面中来方便地打开或关闭自动走带。如后续有机会继续推出自组双排键系列教程,我们再详细阐述具体操作方法。
图 11 为V-Console加入自动走带开关
4.2 与Multi Pad音频链接的冲突
如果您想要在自动走带同步开始的时候使用音频链接,则需要注意,音频和普通的MIDI序列是无法存储到同一个Multi Pad库中的。这种情况下,我们可以将自动走带信息和音频分别关联到两个Multi Pad库中,并将两个Multi Pad库分别存储到两个注册记忆按键。为实现音频的自动触发,我们需要在自动走带信息的开头写入注册记忆切换和Multi Pad播放的信号。在演奏时,先触发自动走带,再利用自动走带信号触发需要播放的音频。但需要注意,音频不能关联到Multi Pad 4按键上,否则音频的播放会打断自动走带信号。
4.3 与移调的冲突
如果您的演奏使用到了键盘的移调功能,那么Multi Pad的音符也会根据移调而变化,导致整体对应的功能错乱。对此,我们建议先在移调关闭的情况下创建走带音符,全部音符写好后,将音符全选,再把音符往反方向整体移调相应的音高,这样在最后用琴开启移调功能演奏时,就可以确保Multi Pad的音符能够回到正常定义的键位。
举个例子:某首乐曲需要调用琴的移调功能整体+4,在创建Multi Pad走带信息时先把移调归零,写入走带音符。写完后全选音符,将音高整体向下调节-4。此时再开启全局移调+4时,Multi Pad自动走带的音符就又回到正常了。
5 雅马哈非旗舰编曲键盘的注册记忆自动切换实现
上文介绍的自动走带方案,主要是针对支持外部MIDI控制器功能的雅马哈编曲键盘型号。而截至目前,只有Tyros/Genos系列支持这一功能。对于其他型号,可以使用CC#0/CC#32/PC或SysEx信号来实现注册记忆自动切换。目前笔者已知的不同雅马哈编曲键盘所支持的注册记忆自动切换相关信号如下表所示:
| 接收注册记忆按键切换SysEx信号 | 发送注册记忆按键切换SysEx信号 | 接收和发送注册记忆库切换SysEx信号 | 通过CC#0/CC#32/PC信号选择注册记忆库和注册记忆按键 | 通过外部MIDI控制器功能实现自动走带 | Genos系列
| ✓ | ✓ | ✓ | ✓ | ✓ | PSR-SX系列
| ✓ | ✓ | ✓ | ✓ |
| CVP-800/900系列
| ✓ | ✓ | ✓ |
|
| PSR-S670
| ✓ |
|
|
|
|
表 2 不同雅马哈编曲键盘对于注册记忆自动切换相关信号的支持度
总体而言,各种切换方法实现起来由易到难的排序是:外部MIDI控制器切换 < CC#0/CC#32/PC切换 < SysEx切换。
Tyros/Genos全系键盘均支持外部MIDI控制器功能,这也是本文最推荐的自动走带方式,无需再考虑剩余的两种方案。
除了上表列出的型号外,Tyros2及以上旗舰型号、PSR-S775/S975也支持CC#0/CC#32/PC切换方法。对于希望实现注册记忆自动切换的PSR用户,可以考虑使用这种方法。该方法虽然仅支持注册记忆的切换,且对于注册记忆库的存放有一定要求,但实现起来仍然较为简单。具体操作步骤会在后文详述。
对于上述两种方法均不支持的型号,只要支持SysEx切换方法,仍然可以实现注册记忆自动切换,只是步骤更为繁琐,且并非所有型号都支持注册记忆库的切换。
如果上面没有提到您使用的键盘型号,您可以通过以下方法自行查证:
l 检查您的键盘是否支持通过CC#0/CC#32/PC信号切换注册记忆:您可以从雅马哈官网获取您的键盘型号对应的数据列表(Data List),查阅“MIDI CHANNEL MESSAGE (1)”一节的表格。如果CC#0、CC#32、PC三个信号对应的“MIDI Reception - Keyboard”一列使用括号标明了“Regist”字样,表明您的键盘支持这种方式,否则不支持。
图 12 支持通过CC#0/CC#32/PC信号切换注册记忆的情况
图 13 不支持通过CC#0/CC#32/PC信号切换注册记忆的情况
l 检查您的键盘是否支持通过SysEx信号切换注册记忆:由于雅马哈并未公布注册记忆控制相关的SysEx信号,您需要配合电脑端DAW软件或其他MIDI工具来监测键盘上切换注册记忆库和注册记忆按键时,软件内是否能接收到相应的SysEx信号,以及使用软件发送SysEx注册记忆切换信号时,键盘是否能做出对应的响应。根据笔者测试,已知的注册记忆控制相关SysEx信号如下表所示:
| 编码
| 接收与发送
| 举例
| 切换注册记忆库
| F0 43 73 01 52 26 03 00 00 00 + ASCII编码的注册记忆文件路径 + 00 F7
| 双向
| F0 43 73 01 52 26 03 00 00 00 55 73 65 72 3A 2F 5B 30 30 30 5D 2E 72 67 74 00 F7表示选择User:/[000].rgt文件
| 切换注册记忆按键
| F0 43 73 01 52 25 00 01 01 00 01 + 注册记忆按键编号(减一) + F7
| 仅发送
| 按下注册记忆8时,键盘会对外发送F0 43 73 01 52 25 00 01 01 00 01 07 F7
| 切换注册记忆按键
| F0 43 73 01 52 25 11 00 02 00 + 注册记忆按键编号(减一) + F7
| 仅接收
| 接收到F0 43 73 01 52 25 11 00 02 00 07 F7时,键盘会自动跳转到注册记忆8
|
表 3 注册记忆控制相关SysEx一览表
根据上述步骤可以获知一台键盘是否支持自动注册记忆切换,以及其支持的具体方法。下面将对两种不同的切换方法进行简要介绍。
5.1 通过CC#0/CC#32/PC信号实现注册记忆自动切换
这部分内容的实现思路参考了YouTube教程《How to create a Control Track for Midifiles On Board, for ALL Yamaha keyboards and CVP pianos》,您也可以直接观看原视频。需要指出视频中的一处错误,即CVP系列并不支持这种切换方式,也并非所有雅马哈编曲键盘都支持此方式。具体判断方法请参考前文。
下面我们将以仅具有一组MIDI输入输出接口的键盘为例进行讲解。
5.1.1 准备工作
该方案与上文所述的方案相似,同样需要一条MIDI连接线。连接步骤如下:
1. 进入MIDI设置界面。不同的型号操作步骤不同,对于非触屏型号,一般是按下“Direct Access/直接访问”+“Function/功能”或“Menu/菜单”组合键;对于触屏型号,一般是在主界面下点按“Menu/菜单”-MIDI。
2. 点击上方的模板预置名称(一般默认为All Parts),在列出的预置模板中选择最后一项“MIDI OFF”来关闭本琴的所有发送和接收,此模板用于关闭自动走带功能,也可更换一个名字另存到User区域,如“SEQ OFF”。
3. 进入“Transmit/传输”选项,将“Multi Pad 4/多功能音垫4”设定成“Port1 Ch16/端口1 通道16” ,并确保只勾选“CC和PC”选项,关闭其余“Note/音符”和“PB/AT”选项。
图 14 设置Multi Pad 4的输出通道
图 15 设置Multi Pad 4的输出信号类型
4. 进入“Receive/接收”选项,将“Port1 Ch16/端口1 通道16”设定成“Keyboard/键盘”,并确保只勾选“CC和PC”选项,关闭其余“Note/音符”和“PB/AT”选项。
图 16 设置端口1的接收通道(截图来自Genos2,仅供参考)
图 17 设置端口1的接收信号类型[size=13.3333px](截图来自Genos2,仅供参考)
5. 将MIDI模板另存一个名字(如“SEQ ON”)并退出。此模板用于打开自动走带。
6. 将所有需要自动调用的注册记忆库放置于同一目录下,确保文件排列顺序为您想要的调用顺序。可以在文件名中添加数字编号前缀。选定其中一个注册记忆库。
7. 将键盘后端的MIDI IN/OUT接口通过MIDI连接线直连。
5.1.2 自动走带信息输入
在键盘处于主界面时,按下“FUNCTION/功能”或“MENU/菜单”按键,选择进入“Multi Pad Creator/多功能音垫创建器”功能,在“EDIT/编辑”选项卡中写入切换注册记忆的信号。其中CC#0和CC#32用于选择具体的注册记忆库,PC用于选择注册记忆按键。换算关系如下:
CC#0的取值 × 128 + CC#32的取值 + 1 = 希望调用的注册记忆库序号, PC的取值 = 希望调用的注册记忆按键编号。
如下图所示,我们希望调用第33组注册记忆库第1个注册记忆按键,则CC#0 = 0,CC#32 = 32,PC = 1,随后每一小节切换一次注册记忆按键,切换序列为2-3-4-3-2。需注意CC#0、CC#32、PC之间需要有微小的时间间隔。
图 18 编写CC#0/CC#32/PC信号的方法
录入结束后,我们需要进行检查,确保Multi Pad 4对应的“Repeat/重复”选项处于关闭状态。最后,我们将当前Multi Pad库另存为到新文件。
上述操作结束后,我们便获得了一个包含自动切换注册记忆数据的Multi Pad库。其中,前三个Multi Pad键位仍然可用于存放正常的演奏乐句,第四个键位用于播放自动切换注册记忆数据。将Multi Pad 4和自动伴奏的“同步开始”功能打开,存入注册记忆,即可在演奏时实现自动切换注册记忆。
同样地,该方法可以搭配乐曲播放来实现自动速度变更,具体方法请见3.3节。
该方法可直接用于PSR-SX系列。对于PSR-SX600,由于没有五针MIDI接口和分步录制功能,建议搭配电脑端实现。
5.2 通过SysEx信号实现注册记忆自动切换
根据笔者测试,注册记忆控制相关SysEx信号无法从琴上播放的乐曲或Multi Pad中发出。因此,前文所述的使用MIDI连接线直连MIDI IN/OUT端口不适用于这种情况。作为代替,您可以将注册记忆控制的相关SysEx信号事先输入DAW软件,将电脑与键盘相连接,通过DAW控制键盘的自动走带。如果DAW支持,可以配合时钟同步来实现较为精准的走带。当然,对于有编程基础的读者来说,更建议自行编写走带程序,以便定制化实现自身需求。
这种走带方法对于CVP-800/900等系列是有效的。然而,对于仅支持接收注册记忆按键切换SysEx信号的键盘(如PSR-S670)而言,琴上的注册记忆库状态无法与电脑端相同步,因此在每组注册记忆切换完毕后,需要在琴上手动切换到下一组注册记忆,实现半自动注册序列切换。由于本节内容实现起来相对复杂,因此不再展开讨论,仅为感兴趣的读者提供研究思路。
6 小结
本文共介绍了3种在单排键编曲键盘上实现自动走带/注册记忆自动切换的方法与思路,使得单排键也有机会实现双排键强大的自动化功能,为演奏编配复杂的曲目提供了便利。按照本文的思路进行拓展,还可以在Multi Pad里写入和弦序列和贝司根音,从而为不具备和弦循环器的型号带来自动和弦与自动转位功能。将MIDI接口直连的用途还有很多,只要调整好MIDI设置,确保规避信号叠加等问题,各种玩法等待大家探索。
查看演示视频
适用于Genos2的自动走带模板(回复可见):
|