用 reascript 点击插件窗口按钮

源自 QQ 群里 (ง •̀_•́)ง 提出的一个有意思的需求,自动添加 fx + 点击 fx 窗口。

  • 脚本使用 lua,依赖 js_reascript
  • 脚本只支持 Windows 操作系统

演示

:bulb:脚本默认播放秒数、点击位置、添加的具体插件都在脚本里定义,有具体注释。

自动点击插件

需求

人工步骤

  1. 添加 Ozone 9 Match EQ 插件
  2. 点击插件中 Capture 按钮(Start)
  3. 播放
  4. 再次点击插件中 Capture 按钮(Stop)
  5. 停止播放

类似需求在无 ARA 的插件,需要“录入”的情景也适用。

思路

  1. 限定选定轨道和单一 fx
    • 若无 fx 则添加
      • 添加 fx 后,打开浮动窗口,并操作
    • 若有 fx 则打开浮动窗口
      • 打开浮动窗口后,进行操作
      • 若浮动窗口已打开,则关闭窗口
  2. 点击按钮使用坐标(x 和 y)
  3. 播放和停止播放使用 defer(不重要)

遇到的坑

  • 使用 fx chains 预设
  • 使用 fx preset 预设

fx chains 和 fx preset 会覆盖 “Capture” 过的数据

  • 获取窗口按钮 HWND

第三方插件有的并不能获取,原厂插件都可以

  • Linux系统获取不了第三方插件的 HWND

js_reascript 并不能在 Linux 系统获取第三方插件按钮的 HWND,Rea 系列原厂插件可以。由于 macOS 跟 Linux 一样也是使用 swell,很可能也不能获取第三方插件按钮的 HWND。(未测试)


最大的坑是起初测试环境在 Linux,并不知道 js_reascript 不能获取非 REAPER 实现 GUI 的HWND(在Linux),在官方论坛求助后,得到 Edgemeal 帮助而得知。

脚本下载

gist 下载:REAPER 使用 reascript 添加 fx + 点击 fx 窗口示范 · GitHub

add fx & click.lua (4.2 KB)

1 个赞