欢迎访问视障者音乐制作交流基地(www.szzyyzz.com)!
我们的网站致力于为使用读屏软件的视障群体(以下简称“读屏族”)提供音乐制作方面的技术和信息。
如您是读屏族,我们希望能在这里为您提供您最需要的内容
如您是明眼朋友,可能会对论坛中的一些用语感到无比疑惑,那是因为这些都是基于读屏软件下的操作术语。
虽然这个论坛对于明眼人也许帮助不大,但我们却很希望能得到您的援助,您可以以远程协助的方式为读屏族解决音乐制作过程中所遇到的困难……

首页

 找回密码
 立即注册

QQ登录

只需一步,快速开始

7
查看: 10055|回复: 4
打印 上一主题 下一主题

[DAW:REAPER操作技巧] Reaper偏高级玩法之制作带有条件判断的操作

[复制链接]

23

主题

61

帖子

2844

积分

版主

Rank: 12Rank: 12Rank: 12

积分
2844
跳转到指定楼层
楼主
发表于 2022-4-23 15:31:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,浏览本站更多内容。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼主 小虎哥说:
今天我也来一次不要脸的标题——标题含“高级”两字。其实这也算不上特别高级,于是就叫它“偏高级”算了。
先说下,因我现在用的是默认的英语界面,以下我自己翻译的显示内容可能与中文语言包有少许出入,不过可保证意思相同。
一、几个小问题以及注意事项
在创建之前先让我们来了解几个问题以及看看有什么需要注意的。
1、何为带条件判断的操作?
一个操作里有多个功能,根据不同条件(或称场景)执行不同功能的,就是带条件判断的操作了。Reaper搭配OSARA后,其实很多操作都是这种形式,如按下Delete(删除键)时,会根据当前焦点位置删除对象、轨道、时间选择内容、标记或包络点,这个操作其实就是带有条件判断的操作,条件就是当前焦点所在类型。
PS:但我没找到关于判断所在焦点类型的操作在何处,意味着用这种方法无法实现类似这样判断焦点执行功能的操作,可能需要写脚本吧。嗯,不过其他场景(比如判断是否正在播放、是否正在录音)是没问题的。
2、何为Cycle操作编辑器?
Cycle操作编辑器,原名“Cycle Action editor”,由SWS(扩展Reaper操作的插件)提供,可创建带有条件判断、循环等内容的操作。没把“Cycle Action editor”译成“循环操作编辑器”的原因,1是因为中文语言包没这样翻译,2是该编辑器并非只能创建循环类操作。
不过Cycle操作编辑器界面不太友好,系统焦点不能顺利操作,需要借助读屏的浏览方式,甚至部分操作需借助OCR才可完成。本文基于NVDA操作Reaper而写,借助OCR的部分将使用落寞OCR软件进行操作。当然,为了照顾到使用其他读屏操作的读者,在涉及到读屏专有操作时,我会略提下其他读屏(如争渡读屏)的操作方式。
在往下阅读前,建议先熟悉当前读屏的自身浏览方式(如NVDA的对象导航、争渡读屏的元素导航屏幕导航等),并了解落寞OCR或读屏自带OCR的操作方式。以免看到后文的一些专有操作方式时因不熟而无法理解。
在制作操作过程中,可能需要在同进程的多个窗口间切换,如Cycle操作编辑器、操作窗口等。若使用的是NVDA读屏,可利用对象导航在这些窗口间切换,或使用“进程窗口切换”等插件以使更易切换;若使用其他读屏,可了解读屏相关热键,如争渡读屏可用Ctrl+小键盘点号键)。
想了解NVDA的进程窗口切换插件,可[color=var(--vscode-textLink-foreground)]点此跳转到NVDA中文站的进程窗口切换插件页面,不过说实话,默认的Ctrl+.(大键盘句点)的按键有点影响Reaper使用,所以我把它改成了与另一款插件相同的按键——NVDA+Win+Tab。
3、何为报告状态的操作项?
在Reaper操作窗口的列表中大部分时候有3列,表头分别为“快捷键”、“描述”与“状态”。若该操作对应状态列有“ON”或“OFF”(当然也可能是“开”或“关”),就说明当前操作是报告状态的操作,类似于编程语言中有“true”和“false”两个值的“bool”类型,“ON”相当于“true”。如按字母R执行的“走带: 录音”,表面上是“开始录音”与“停止录音”两个功能,实际上是切换录音状态,录音状态开则录音开始,关则停止。
与报告状态类操作相对的就是无状态类操作,该类型的操作在操作列表的状态列内为空。在6000多项操作中,无状态操作占多数,按Ctrl+J打开跳转时间窗口、按Alt+W打开峰值监视器等,这些都是无状态类操作。
PS:此处说的报告状态类操作并非Ctrl+Shift+J读出时间、Ctrl+Shift+P读出波纹编辑模式这样的操作,而是反映Reaper状态的操作,可以理解为Ctrl+Shift+J的报告对象是用户,而报告状态类操作的报告对象为Reaper本身(不太严谨)。
4、条件判断的形式有哪些?
在日常生活中,条件判断的时候有很多。“如果今天8:00有课,我就早起,要不然就晚起”这就是一个条件判断,条件是“8:00有课”。当8:00真的有课时,我就会早起;那8:00没课,我就不用那么早起身。
其实这已经涉及到了编程的领域,但个人认为将此运用于Reaper的自定义操作中无需过多强调编程中的概念与逻辑,按照日常生活的理解,从实际需求出发即可。因为SWS扩展的Cycle操作编辑器中,对于每种判断形式均有说明,使用中文语言包也有中文说明。
运用场景举例:当我在没录音时,这个操作的功能是“录音”,当我在录音过程中,这个操作是“暂停/继续录音”,说直白点就是一个按键负责在不同场景执行“录音”或“暂停/继续录音”的功能。那么我们设计这个操作的思路就是:如果此时未录音(即录音状态为“OFF”),则执行“录音”的功能,否则(即录音状态是“ON”)就执行“暂停/继续”的功能。
以下介绍几种常见的条件判断形式:
  • if: 如果,即条件成立时办事,条件不成立时躺平(即不执行任何功能)。
  • if-else: 如果否则,当条件成立时办A事,当条件不成立时办B事。

以上只是最常见的两种形式而已,SWS的Cycle操作编辑器里绝不止这两种,剩下的后面再说。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

23

主题

61

帖子

2844

积分

版主

Rank: 12Rank: 12Rank: 12

积分
2844
沙发
 楼主| 发表于 2022-4-23 15:33:46 | 只看该作者
沙发 小虎哥说:
二、创建Cycle操作的过程1、Cycle操作编辑器的外观与操作方法
按下Alt键将焦点定于Reaper菜单栏,左右光标找到“扩展”菜单,上下光标寻至“Cycle操作编辑器”,回车将其打开。
Cycle操作编辑器大概长这样:
  • 最顶上有“过滤器”编辑框、“合并撤销点”复选框等项目,但比较少用且不太好操作所以不多介绍。
  • 接着是两个纵向列表一左一右占据窗口中间部分。左侧列表显示当前已有的操作,后文就将其称为“左侧列表”;右侧列表显示当前选中操作下的命令(包括操作和语句),后文就称为“右侧列表”。
  • 窗口底部有“应用”、“取消”等按钮,主要用于编辑完操作后的保存等,但也较难操作。

打开编辑器后焦点默认停在左侧列表中,上下光标可以浏览列表中的项目,不过很遗憾,Tab无法去往别的列表或按钮。要想浏览整个窗口,需要用到读屏的浏览方式。以下介绍几种:
  • NVDA对象导航:在列表那一层级时,共有3个对象,从前往后依次是左侧列表、右侧列表与过滤编辑框。两列表均可通过访问子对象的方式访问到列表中的项目,也可通过单击或将焦点移至当前对象的方式使列表拥有系统焦点。
  • 争渡元素导航:浏览到的内容与NVDA对象导航基本相同,通过小键盘4、6键可浏览到左侧列表、右侧列表与过滤编辑框,4、6键在列表上时通过1、3键浏览列表项目。
  • 争渡屏幕导航:该模式浏览到的东西最多,“合并撤销点”、“应用”等均可浏览到,通过小键盘8、2、4、6键进行浏览。

不同读屏的不同浏览方式,对于鼠标的跟随情况也不相同。NVDA对象浏览时鼠标不自动跟随,要操作时需先将鼠标移至当前对象位置后进行单击或右击操作;而争渡无论元素导航或屏幕导航,其默认设置为鼠标自动跟随,故无需执行鼠标跟随的步骤。
下面的步骤中,我将不再强调读屏浏览方式的差异,请自行按照使用的读屏与浏览方式选用合适的操作步骤。
2、创建一个Cycle操作
  • 通过上面所述在Reaper主界面的Alt菜单中找到并打开Cycle操作编辑器。
  • 在左侧列表中的某项上右击会弹出上下文菜单,上下光标找到类似“添加Cycle操作”的项目回车,此时焦点停在一编辑框上,在此输入操作名称,再次回车该操作即新建成功。
    PS:此处不能通过直接在列表项上按Application(大键盘右键)弹出的菜单进行新建操作,因为在Cycle编辑器中,无论何处按Application(大键盘右键)弹出的菜单都是设置表头显示的菜单,并非有添加、插入、删除等项的操作菜单。后面添加子项时仍需鼠标右击,不可按Application(大键盘右键)。

3、插入语句
语句是用于条件判断、循环等的标识符,是Cycle操作的灵魂。有了这些语句后,Reaper才知道我们的想法是什么。之前介绍过“if”与“if-else”两种,现在将对编辑器内可插入的语句逐一介绍。注意此处介绍的不易理解实属正常,可能因我表达能力有限而使其看起来复杂,不过不必担心,结合后面实战例子会好理解很多。
  • IF:条件状态为“ON”时。
  • IF NOT:与“IF”相反,当条件状态为“OFF”时。
  • IF AND:双条件语句,当两个条件均为“ON”时。
  • IF NAND:两条件中有一个为“OFF”时。
  • IF OR:两条件中有一个为“ON”时。
  • IF NOR:两条件均为“OFF”时。
  • IF XOR:两条件状态不同时。
  • IF XNOR:与“IF XOR”相反,即两条件状态相同时。
  • ELSE:否则,即当条件不成立时。
  • ENDIF:“IF”系列的结束点。
  • LOOP:按填写次数循环。
  • ENDLOOP:循环部分的结束点。
  • ConSOLE:后可跟ReaConsole命令,因不了解而不介绍。
  • LABEL:后可跟Label处理器命令,同上。

PS:Reaper在中文环境下可能这里的显示顺序会有所不同,英语环境下按照逻辑排序,中文环境下按照首字母排序。
好了,经过了以上的一大段理论介绍,估计大家都看晕了,都想Ctrl+W了哈哈!那么下面来点实际操作,如何插入这些语句。其实插入语句说起来很简单,在右侧列表右击某项,弹出的菜单内找到并展开“插入语句”菜单,里面就有以上介绍的所有语句,点击插入即可。
为了让大家看得更明白,下面详细说说操作方法与注意事项:
首先使焦点在右侧列表上,上下光标找到某个项目,执行鼠标跟随后鼠标右击弹出上下文菜单,上下光标找到“插入语句”子菜单右光标展开,继续通过上下光标选择需要插入的语句,回车即可插入。
若是刚创建这个Cycle操作,则右侧列表中有且仅有一个项目——右击此处添加命令,我们需右击此项才可添加操作或语句。若列表已有命令,插入时将插入在当前位置,也就是会插入在当前选中的命令之前。
若插入的是“LOOP”、“ConSOLE”等这些可跟文本的语句,焦点会停在一个编辑框,编辑框中已有语句文本和一个空格,我们直接在空格后输入文本,输入完后回车即插入完成。
若插入的是“IF”系列、“LOOP”系列这样有结束点的语句,编辑器会自动给我们在其下方插入“ENDIF”或“ENDLOOP”语句。此时要注意,若要插入条件命令或特定条件才触发的功能,需要插入到结束点上方,也就是上下光标找到结束语句鼠标跟随右击后插入。如果插入在结束点下,命令就不受条件限制了。
4、插入现有操作与右侧列表编辑
无论是条件还是要执行的功能都由操作组成,所以我们需要在语句之间或前后添加现有操作。
  • 打开操作窗口(默认快捷键F4)。
  • 用各种方式找到需要添加的操作(直接寻找、搜索关键词、用对应快捷键查找均可)。
  • 复制当前操作的ID,方法是在需添加的操作上按Application(大键盘右键),上下光标找到“复制所选操作命令的ID”,回车将其复制。
  • 回到Cycle操作编辑器中,若无需保留操作列表可Esc返回编辑器,若仍需开着操作窗口可通过切换同进程窗口的方式(各读屏略有不同)回到Cycle操作编辑器。
  • 在右侧列表中上下光标找到适当位置,鼠标跟随并右击,上下光标找到菜单中的第1项——“插入”并回车,此时出现编辑框,粘贴刚复制的操作ID,再次回车此项将加入右侧列表中。

重复以上5个步骤,就可以把一个完整的Cycle操作制作出来,最后就是保存并且分配快捷键啦。
PS:其实是有“插入在操作窗口中选中的操作”这个功能的,但我这不知为何无效,故采取复制ID之法。
在制作过程中难免会遇到粘贴ID错误、插入位置错误等情况,Cycle操作编辑器的列表也是支持剪切、复制、粘贴、删除等操作的,并且快捷键与系统相同,即
  • Ctrl+X 剪切
  • Ctrl+C 复制
  • Ctrl+V 粘贴
  • Delete(删除键) 删除当前命令
  • F2 重写命令(需填ID)

PS:删除命令无确认对话框,在左侧列表中删除Cycle操作亦如此,所以在删除前请三思!
5、保存并为它分配快捷键
在右侧列表中检查已添加的命令,确认无误后即可进行下一步。
  • 点击“应用”按钮,若读屏浏览方式无法找到该按钮的,可采用OCR识别解决。
  • 若无错误提示,则说明保存成功,此时若没有继续制作Cycle操作的需求就可关闭编辑器窗口了。
  • 按F4打开操作窗口,寻找到刚刚制作的Cycle操作,按照普通分配快捷键的方式给它分配一个吧。
    PS:不过我们制作的Cycle操作可能与其他操作一样按拼音顺序排在了不知何处,所以大多时候需用搜索寻找刚制作的操作。

到此,洋洋洒洒写了那么多废话,制作Cycle操作的方法与步骤可算写完了,大家可以去实际制作过程中享用自己制作的高级操作了。
回复 支持 反对

使用道具 举报

23

主题

61

帖子

2844

积分

版主

Rank: 12Rank: 12Rank: 12

积分
2844
板凳
 楼主| 发表于 2022-4-23 15:35:01 | 只看该作者
板凳 小虎哥说:
三、实战举例与导入导出
看了以上文字,可能大多数会用Reaper的同学都一脸懵逼,你——是——在——说——天——书——吗?
不用担心,接下来我就举两个例子,这两个例子我想大多数同学都可能用得到,并附带蓝奏云下载链接,若实在不会制作可选择导入现成做好的分配快捷键后直接使用。
1、用R控制开始/停止录音、用空格控制暂停/继续录音
很多录小说的同学都会遇到需要暂停录制的时候,而默认暂停/继续录音的快捷键是Ctrl+空格。该热键两大弱点,首先是被输入法占用,其次是违背录音过程中案件越简洁越好的设计。有同学就说了“我在首选项里把‘录音停止时将编辑光标移至对象末尾’就可以实现暂停/继续的功能啊!”但不要忘了,这样每停止一次就会产生一个新对象,对于多轨录音加同时后期并非好事。有同学还说“给‘暂停/继续播放’分配一个单键快捷键即可。”但就有人用习惯了空格那又如何?如果您能习惯以上两种情况,那么直接改设置、改快捷键即可;如果有遗留习惯等原因,那么请往下看。
制作该操作的思路:既要实现空格键能执行“暂停/继续录音”的功能,但也不能让空格键现在的功能——“播放/停止”失去,故需判断录音状态。当处于录音状态时执行“暂停/继续录音”的功能,非录音状态时执行“播放/停止”的功能。以下是制作步骤:
  • 按照前文所述新建一个Cycle操作,名称可以叫“走带: 播放停止与暂停继续录音”。
  • 添加“IF”语句,再右击“ENDIF”添加“ELSE”语句,此时右侧列表中有“IF”、“ELSE”与“ENDIF”3项,形成“如果-否则”结构。
  • 打开操作窗口,找到类似“走带: 录音”的操作,右击复制其ID。回到Cycle编辑器窗口,右击“ELSE”选择插入,粘贴ID并回车,此时“IF”语句下将插入录音状态的条件。
  • 再次打开操作窗口,找到类似“走带: 播放/暂停”的操作,并右击复制其ID。回到编辑器窗口右击“ELSE”选择添加,粘贴ID并回车,在条件下方将插入“播放/暂停”操作。
    这里解释一下,在录音过程中“播放/暂停”就相当于“暂停/继续录音”。
  • 当条件成立时的功能已经制作好,那么现在需要填补条件不成立时的功能,即空格键原有的“播放/停止”功能。一样先在操作窗口内找到类似“走带: 播放/停止”,右击选择复制ID,回到Cycle操作编辑器,此时应该右击“ENDIF”语句选择插入,粘贴ID回车,就把“播放/停止”的功能放在“ELSE”与“ENDIF”间了。
  • 点击左下角“应用”按钮,接着打开操作窗口找到它分配空格键吧,设置完成后即可体验。注意这样设置后停止录音只能按R,空格在录音过程中仅作为暂停或继续录音。

有同学可能会说“我用习惯了某些录音机软件,它是一个键控制录音开始、暂停与继续,另一个键控制停止,通过该类操作是否可实现?”答案是:no problem(没问题)。
这样的操作制作好后,右侧列表应该显示的这些(注意顺序):
  • IF NOT
  • 走带: 录音
  • 走带: 录音
  • ELSE
  • 走带: 播放/暂停
  • ENDIF

制作好了点击“应用”按钮并在操作窗口中把它分配给字母R,以后按R就可开始、暂停与继续录音,按空格停止录音。
2、用斜杠在不同状态下实现新旧OSARA的不同功能
大家都知道目前OSARA在进行快捷键的优化,在2月的更新中将Reaper主界面的大键盘斜杠键由原来的“试图: 移动编辑光标至播放光标”改成了“擦带: 在编辑光标处循环分段擦带”,使得很多同学用不习惯了。于是将斜杠键改回了原来的功能,但失去了体验新功能的机会。我之前的方法是将“移动编辑光标至播放光标”的功能分配给了字母Z,以实现两者均有案件,但有了Cycle操作后,一个斜杠键,将兼顾新旧OSARA。
制作思路:“移动编辑光标至播放光标”,该功能我们几乎都在播放时使用;而“在当前位置循环擦带”,一般都在停止(或非播放)时使用。故可判断播放状态实现一键对应两功能。因上一个实战举例已详细描述制作步骤,故此处仅展示制作好后右侧列表中的命令顺序:
  • IF
  • 走带: 播放
  • 试图: 移动编辑光标至播放光标
  • ELSE
  • 擦带: 在编辑光标处循环分段擦带
  • ENDIF

同样,制作好后点击“应用”并到操作窗口内为它分配斜杠键,即可一键体验到新旧OSARA的差别。
3、导入导出
对Cycle操作的导入导出,自然要在Cycle操作编辑器内完成。
  • 导入:在编辑器内通过OCR或其他方式找到“导入/导出”,单机该处弹出菜单,上下光标找到类似“导入所有操作”并回车,此时打开浏览文件对话框,找到已做好的Cycle操作,回车即可导入。全部导入完成后,在左侧列表中显示ID的那一列全为“*”,需点击“应用”才可真正保存。
    PS:好像一次只能导入一个文件,不过一个文件内未必只含一个操作。
  • 导出:同样通过OCR或其他方式找到“导入/导出”并单机,上下光标找到类似“导出所选操作”或“导出所有操作”(按需选择)回车,即弹出保存文件对话框,为它取名并选择位置保存即可,导出的文件名格式为“ini”。

4、成品下载
这里给大家提供了上面说的几个我制作好的操作,但均未指定快捷键,导入后需手动到操作列表中分配按键,操作名称就是文件名。导入方法请参看前面相关内容。
[color=var(--vscode-textLink-foreground)]点此从蓝奏云下载
PS:因蓝奏云不支持上传“ini”格式的文件,所以我把3个文件压缩在一个zip文件里,解压后仍是一个操作一个ini文件。
结语
以上就是本次分享的所有内容了,一下刹不住车写了六七千字,希望大家能看懂。
Reaper的开发思路是将大部分设计权交给用户,热键自定义、菜单自定义、操作自定义等这些高度自定义的方式可以在用户的手里玩出各种花样,期待有更多好玩好用的操作诞生,也希望有更多实用的分享出炉。
The end!
回复 支持 反对

使用道具 举报

703

主题

2776

帖子

5万

积分

管理员

本站创始人

Rank: 14Rank: 14Rank: 14Rank: 14

积分
50245
地板
发表于 2022-4-24 12:39:15 | 只看该作者
地板 琴韵晓波说:
精彩!相当精彩!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

20

积分

音乐娃娃

Rank: 1

积分
20
5#
发表于 2022-6-30 11:41:12 | 只看该作者
5楼 futurewy说:
这玩意很好用!多谢多谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|视障者音乐制作交流基地(szzyyzz.com) ( 蜀ICP备15002464号免责声明:本站网友发表的言论属其个人观点,与本站立场无关!

GMT+8, 2024-4-20 17:25 , Processed in 0.068053 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表