Cakewalk Sonar 中的 CakeScript 是什么
文中「我们」均指 BandLab / Cakewalk。本页为中文翻译,非官方页面。
关于 CakeScript
BandLab 会员(BandLab Membership)
CakeScript 为有效的 BandLab 会员订阅用户专享。
CakeScript 是内置于 Cakewalk Sonar 的现代化 基于 Lua 的脚本接口。它取代了旧版的 Cakewalk 应用程序语言(CAL),提供了一个更安全、更强大且可扩展的脚本平台。
CakeScript 让你可以直接在 Cakewalk Sonar 中自动化重复性任务、操作工程,并创建自定义工作流程。无论你是编写简单的实用脚本,还是构建高级自动化流程,CakeScript 都为扩展 Sonar 的能力提供了现代化的基础。
注意(Note)
本文概述了 CakeScript 及它在 Cakewalk Sonar 中的工作方式,面向对 Lua 编程语言有基本了解的用户。
CakeScript 能做什么?
CakeScript 可以访问 Sonar 工程的许多部分,让脚本能够自动化常见的编辑与管理任务。
使用 CakeScript,你可以:
- 打开、保存和关闭工程
- 创建、修改、移动和删除轨道、文件夹和总线
- 添加、编辑和删除音频或 MIDI 片段
- 将媒体导入工程
- 添加、修改和移除发送
展开查看全部
- 在轨道和总线上添加、修改、重新排序或移除音频效果器
- 创建和编辑自动化包络
- 修改工程选区
- 更改应用程序和工程设置
- 运行 Sonar 内置命令
- 执行其他 CakeScript 脚本
- 在音乐时间与绝对时间之间进行转换
- 控制工程的当前时间(Now Time)
运行 CakeScript
CakeScript 文件使用 .lua 扩展名。
要运行 CakeScript:
- 打开 处理(Process)> 运行 CakeScript(Run CakeScript)。
- 浏览到所需的
.lua文件。 - 选中该脚本,然后点击 打开(Open)。
重要(Important)
在播放或录制进行期间,无法执行 CakeScript。
使用 CakeScript 面板
CakeScript 面板提供了一个界面,让你可以直接在 Cakewalk Sonar 中浏览、运行和调试 CakeScript 文件。
该面板包含以下几个部分:

选项卡标题
CakeScript 面板包含两个选项卡:
- 脚本(Script)
以文件树的形式显示 CakeScript 目录,让你可以浏览可用的脚本。
- 输出(Output)
显示脚本输出,包括来自 Lua
print命令的消息、跟踪信息以及任何脚本错误。
CakeScript 目录
脚本(Script)选项卡以文件树的形式显示已配置的 CakeScript 目录。
- 单击某个脚本即可选中它。
- 双击某个脚本,即可使用当前选定的运行模式(Run Mode)运行它。
当前脚本(Current Script)
显示当前所选 CakeScript 的名称。
运行模式(Run Mode)
CakeScript 支持三种执行模式:
- 正常(Normal)
从头到尾运行整个脚本。脚本产生的任何输出都会显示在 输出(Output)选项卡中。
- 跟踪(Trace)
在执行脚本的同时,把每条语句实时显示在 输出选项卡中。这对于跟踪脚本的执行过程很有用。
- 单步(Step)
一次执行脚本中的一条语句。输出选项卡会显示下一条将要执行的语句。
在单步(Step)模式下暂停时,你可以与 Cakewalk Sonar 界面交互,先验证结果再继续。请避免做出可能影响脚本预期状态的更改。
要继续执行,请点击 单步(Step)。要停止执行,请点击 停止(Stop)。
注意(Note)
脚本在 跟踪(Trace)和 单步模式下的运行速度明显慢于 正常(Normal)模式。
运行/停止按钮
当按钮显示 运行(Run)(▶)图标时,点击该按钮会按当前的运行模式启动所选 CakeScript。
当脚本在 单步模式下暂停时,该按钮会变为 停止(Stop)(■),让你可以取消脚本执行。
单步按钮
使用 单步模式时,点击 单步可执行脚本中的下一条语句。
撤销保护
CakeScript 的设计目标是安全地修改你的工程。
脚本成功完成后,脚本所做的全部更改会被保存为单个撤销步骤。这样你就可以用一条撤销(Undo)命令撤销整个操作。
如果脚本在运行过程中遇到错误,Cakewalk Sonar 会自动把工程恢复到之前的状态,并显示脚本失败的原因。
当前限制
CakeScript 仍在积极开发中。目前以下功能尚不可用,或仅获得部分支持:
- 片段泳道(Take Lanes)与自动化泳道(Automation Lanes)
- 速度轨(Tempo Track)与速度映射(Tempo Map)
- 拍号与调号变更(Meter and Key Changes)
- 标记(Markers)
- 编曲器(Arranger)
- FX 链(FX Chains)(仅部分支持)
更多功能将在未来的 Cakewalk Sonar 版本中推出。
了解更多
关于 CakeScript API、Lua 对象、类以及可用函数的完整文档,请参阅随 Cakewalk Sonar 提供的 CakeScript 参考指南(CakeScript Reference Guide)。
要打开参考指南:
- 启动 Cakewalk Sonar。
- 转到 帮助(Help)> CakeScript 参考指南。
如果你想寻找示例、有关于编写脚本的问题,或者想分享自己的脚本,请访问 Cakewalk 社区论坛的 CakeScript 版块:
https://discuss.cakewalk.com/forum/54-cakescript/
CakeScript 社区是向其他用户学习、发现社区创作的脚本、提问以及分享自己 CakeScript 项目的好地方。
本文为 Cakewalk Help Center 原文的非官方中文翻译。原文链接:https://help.cakewalk.com/hc/en-us/articles/60419354649369-What-is-CakeScript-in-Cakewalk-Sonar。本译文系独立制作,仅为方便阅读和信息参考之用,与 Cakewalk 无隶属、赞助或背书关系。