比如选中大堆数据进行前后移动N tick,用脚本非常慢,可能要运行几秒钟,而官方的类似动作非常非常快,一瞬间就做完了,但是官方那个只能以网格来移动,不是我需要的。我想明白这个中间的差距是没办法逾越的吗?
而且一个古老的吐槽又来了,在cakewalk中的cal 同样的动作运行速度很快!
撇开算法原因,内置比脚本快的主要原因是c++的执行效率远高于lua
我比较好奇具体脚本的内容,以及官方的哪个命令。不知道可否贴上来能让我们复现比较。
如果比较的是 sws 的命令,就更好了。sws 有开源,我有一些想法也是找到 sws 的源码来学着抄。
这个是一个音符数量众多的MIDI块,我需要把所有音符往右边移动10tick。比较一下:
脚本:
系统自带属性编辑:
cakewalk CAL程序:
示范工程和脚本也上传了。
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
能不能较好完成。
官方论坛最大的问题是不支持上传大文件,以后有时间写邮件提。