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: