Sounds like a useful feature.
ECMA-ish is probably the way to go. It’s familiar and very readable. Maybe Kontakt 2’s scripting language? ![]()
bump
I’ve thought about this before too, come on devs!
Let’s see this in the next round of voting eh?
I imagine some new pattern commands would be needed for this, one being:
X00 - trigger script - script number
The script editor could have FF ‘slots’ in a library for the little programs, which could be triggered with the new pattern command.
So if you wanted to link mastervolume to an LFO momentarily:
SCRIPT1:
_root.MasterVolume = _track3.device4.LFOamplitude;
SCRIPT2:
_root.MasterVolume = 100%;
Then in the pattern editor you could turn this ‘effect’ on and off by triggering the programs:
X01
X02
What would also be nice:
WHILE loops.
It would be good to be able to have local variables inside each script, and then also access to the _ROOT variables of the whole track (mastervolume, tempo, etc). Each script ‘slot’ could also access the variables inside other running scripts, eg:
Inside SCRIPT1:
_root.MasterVolume = _root.script23.x;
I’m gibbering a bit here but you get the general idea, I want the scripting to be like Flash Actionscript basically…
Please, more discussion, this needs some serious thought as it would make Renoise the absolute mintest music program in teh world!
I think everything that’s sayable about this topic has been said. If the Renoise team decide it’s worth spending time on, i’m sure this discussion will be resuscitated.
Flash actionscript is a good comparison. I’m not sure if you’d need triggerable scripts though, we already kind of have that. The important thing is being able to automate a great number of changes by connecting attributes.
To keep the flash actionscript image in mind, here’s a renoise script as i’ve pictured it:
onTick{
if(song.position>=song.length/2){
master.volume = 40;
}
myFilter.resonance = myOtherFilter.cutoff = myDistortion.wetOut/2;
if(master.output>master.maxOutput){
myCompressor.ratio = master.maxOutput-master.output;
myCompressor.active = true;
}else{
myCompressor.active = false;
}
}
onEnterPattern{
myFilter.cutoff = song.position/song.length*100;
}
Very pipedream right now… I guess all the scripts would have to be compiled somehow after you’ve written them, so you’d have a “compile on save” function or a compile scripts button. This stuff would seriously slow down playback if it’d have to be interpreted at runtime.
How many developers are working on Renoise?
This sounds like a great idea, but a useful script language sounds like a complicated project on its own. Renoise needs more active developers for it all to be realistic.
Just out of interest, is there a VSTi that has its own scripting language? Or something which is tailored for script heads?
i remember, there was an unfinished java-vst somewhere. otherwise i saw
a formula controller in fruity loops (as u can use fruity as vst).
buzz has a pythonscript- machine called Pybuzz (by paniq).
and to your question:
check this
(
next time ill try it first, i think its currently unavailable, sry)
ohmy sunjammer is preaching my gospel! scripting in renoise would be oprah tits ![]()
Great idea! - maybe it’s not worth the time to develope in version 1, but could be a serious feature for a version 2 feature.
I’m still longing for recording and/or better midi command modulations (pitch etc.). Maybe expressions could help here, to make custom pattern commands? ![]()
Mick, check out Kontakt 2’s Script Processor:
