25.自成体系的js插件系统: JS是一种脚本语言,动态编译,允许用户修改和/或生成音频和MIDI,以及绘制自定义的基于矢量的用户界面和分析显示。JS效果以简单的文本文件形式存在(txt文档),这些文件加载到REAPER时,就成了全功能的插件。您可以尝试加载现有的JS效果,因为它们以源代码的形式存在,也可以编辑现有的js效果器,以满足需求。(简单的说,就是Reaper包含了一种写效果器的脚本语言,这种语言比较简单,用户可以根据自己的需要自行编写效果器,写几行代码,用.txt文档保存,导入到reaper就成了效果器!,另外,Js语言一定都不复杂,分析几个官方自带的基本就可以写了。)
例子:这是一个Delay(延迟)效果器的源代码:
// This effect Copyright (C) 2004 and later Cockos Incorporated
// License: GPL -
http://www.gnu.org/licenses/gpl.html
desc: simple delay
slider1:300<0,4000,20>delay (ms)
slider2:-5<-120,6,1>feedback (dB)
slider3:0<-120,6,1>mix in (dB)
slider4:-6<-120,6,1>output wet (dB)
slider5:0<-120,6,1>output dry (dB)
slider6:0<0,1,1{off,on}>resample on length change
@init
delaypos=0;
@slider
odelay=delaylen;
delaylen=min(slider1 * srate / 1000,500000);
odelay != delaylen ? (
slider6 && odelay > delaylen ? (
// resample down delay buffer, heh
rspos=0; rspos2=0;
drspos=odelay/delaylen;
loop(delaylen,
tpos = ((rspos)|0)*2;
rspos2[0]=tpos[0];
rspos2[1]=tpos[1];
rspos2+=2;
rspos+=drspos;
);
delaypos /= drspos;
delaypos|=0;
delaypos<0?delaypos=0;
) : (
slider6 && odelay < delaylen ? (
// resample up delay buffer, heh
drspos=odelay/delaylen;
rspos=odelay;
rspos2=delaylen*2;
loop(delaylen,
rspos-=drspos;
rspos2-=2;
tpos = ((rspos)|0)*2;
rspos2[0]=tpos[0];
rspos2[1]=tpos[1];
);
delaypos /= drspos;
delaypos|=0;
delaypos<0?delaypos=0;
) : (!slider6 && delaypos >= delaylen ? delaypos = 0);
);
freembuf(delaylen*2);
);
wetmix = 2 ^(slider2/6);
drymix = 2 ^(slider3/6);
wetmix2 = 2 ^(slider4/6);
drymix2 = 2 ^(slider5/6);
@sample
dpint = delaypos*2;
os1=dpint[0];
os2=dpint[1];
dpint[0]=min(max(spl0*drymix + os1*wetmix,-4),4);
dpint[1]=min(max(spl1*drymix + os2*wetmix,-4),4);
(delaypos+=1) >= delaylen ? delaypos=0;
spl0=spl0*drymix2 + os1*wetmix2;
spl1=spl1*drymix2 + os2*wetmix2;
界面是这个样子:
你自己不想写也可以,因为JS太简单了,文件就是TXT文档,体积又小,在网络上有成十万规模的JS效果器供你选用,没有你找不到的,只有你想不到的。
[
本帖最后由 天下一路人 于 12-11-4 21:37 编辑 ]
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x