Renoise Expressions

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

( :lol: 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? :rolleyes:

Mick, check out Kontakt 2’s Script Processor: