为何官方的动作如此的快速,而脚本却不行呢?

比如选中大堆数据进行前后移动N tick,用脚本非常慢,可能要运行几秒钟,而官方的类似动作非常非常快,一瞬间就做完了,但是官方那个只能以网格来移动,不是我需要的。我想明白这个中间的差距是没办法逾越的吗?
而且一个古老的吐槽又来了,在cakewalk中的cal 同样的动作运行速度很快!

撇开算法原因,内置比脚本快的主要原因是c++的执行效率远高于lua

我比较好奇具体脚本的内容,以及官方的哪个命令。不知道可否贴上来能让我们复现比较。

如果比较的是 sws 的命令,就更好了。sws 有开源,我有一些想法也是找到 sws 的源码来学着抄。

这个是一个音符数量众多的MIDI块,我需要把所有音符往右边移动10tick。比较一下:
脚本:
script
系统自带属性编辑:
reaper
cakewalk CAL程序:
cw

示范工程和脚本也上传了。
test.zip (6.9 KB)
slide Right 10 tick_Multi Track.lua (654 字节)

sws某些命令在处理大量数据时也会卡

这个是说明官方的底层的处理方式肯定不一样,他们不愿意放出来。而我们在脚本里面的这些函数,肯定都是绕了很大一个弯的。

不是太懂这个困扰。看 gif 图里面,官方的功能也是填写“+0.10”,跟用脚本里用 tick 的有什么区别吗?

我换了个方式,把选中数据右移10tick,官方的动作要快很多,用脚本花了几十秒才到位。在cakewalk下cal程序运行是非常快的。

是不是意思是,用这个能完美替代 api 了
图片

不是这个意思,只是做一个简单的对比,说明api的运行速度应该有很大的提升空间。

原来如此。感觉可以给官方提功能请求,不知道有没有人提过。

另外如果官方 GUI 功能能达到,不知道用 js api 能不能较好完成。

官方论坛最大的问题是不支持上传大文件,以后有时间写邮件提。