Idea For A "Simple" Advanced Edit Scripting

We are using XML for the pattern clipboard content, so it would be dope to get external scripting capabilities integrated into the Advanced Edit as well. This would make it possible to write external note/effect-gen or manipulation tools for the pattern editor, directly controllable/callable from within the Renoise GUI.

Here is my proposal on how we could do this:
The Advanced Edit gets a new section -> “Pattern Scripts”:
There you will find a list of installed scripts. Only one of those can be selected/highlighted.
Under that list is a text field for command line params (see below) and a button “Process”. That’s it GUI wise.

Now how does it work?
The list shows the contents of a folder (“Renoise Scripts”), somewhere on your HD, configurable. The contents are executables or any kind of script files (python, perl, lua, whatever). As soon as you press the “Process” button, Renoise now writes down the clipboard content of the selected area in the Advanced Edit into a temporary file, then calls the selected script with the temp file as a parameter, waits until the script is done, reads the temp file again, and finally applies it to the document.

This way we could allow any kind of scripts as “processors”, even full blown apps with GUI and stuff, and do not need to publish any new APIs. If you need or want to configure the script parameters, this can be either done by providing an own GUI for this in your tool, or by using the command line parameters (as noted above in the GUI description).

The downside of this is, that the external tools will have to do the XML parsing for all the different formats of the pattern clipboard (selection, whole track, whole patterns, …) by themselves, but this could be solved by doing this once in the XRNS-Lib tools, so that anyone can reuse it.

Would that be useful? This would not be much work from my side and push the capabilities of the new Renoise XML formats, wouldn’t it?

:dribble: :dribble: :dribble:

FFFUUUUCCCCKKKKK!!! I just ejaculated over my monitor!!!1


the same for instrument envelopes would also be great!

Sounds like a very good idea, though i think, that instead of simply showing the contents of a folder, i think it’s better to register the scripts in some sort of list file or scan only a specific extension. Tools could consist of multiple files and they can be stored in one place that way, instead of having some kind of calling stub placed there and the rest of the files elsewhere. This would also allow default configuration data for the scripts stored in the file. Another idea might be to add a help button for the commandline parameters.

<script><br />
	<name>scriptname</name><br />
	<execute>script.exe</execute><br />
	<defaultparams>/e /blah</defaultparams><br />
	<help>script.html</help><br />

Either way, this is a great idea! B)

sounds cool!

However, a few more general options in the advanced edit would make this even better I think.

Lets say I wanna manipulate a note under/closest to cursor (also entire clips some time in the future).
So when I press a key then renoise automatically add the length of the note (note and it’s note off) to the clipboard.
That would be a major timesaver if you wanna add things like resize note, move note one tick up/down, or do other advanced edits on the note and its effects.
Same for notes in entire tracks/columns etc.

What I’m saying is more a general thing for the advanced edit. To be able to detect automatically whats under/closest to cursor and to treat the length of a note as single object. And to add hotkeys to action-presets in advanced edit.

Sounds like a good idea. So we would introduce a new file format (lets say XRPS - XRPS somehow sounds stupid, doesn’t it? ;) ) which would be an XML describing and locating the final destination script, right? Then Renoise would only show up those XRPS files in its list. This way one could also easily create “sub” scripts, which all call the same tool but with different default parameters.

Hell yea!


Exactly what i had in mind, personally i don’t care about the extension used. :)

(slams fists on desk!)

“The endorphins just dropped!!!”

i’m going to be smiling profusely, while have this heart attack…

Awsome plan!

This could be used for a whole bunch of cool stuff… quantizing, chord makers, random generator etc…

If this could be used while a song is playing or while recording, I can imagine even more awsome stuff. :dribble:

Some Beautiful Bridges are being built! :drummer:

man, this feels too much like a feature request, but here goes.

how hard would it be to add a function to the Pattern sequencer?
the function would be used to send in tandem selected patterns of the Pattern sequencer into the clipboard.

selection would be exactly the same in the pattern editor.

so this way, if we want to.
we could span these functions over a whole song,whole track or whole column within the song.
just by using an addition to the options of the pattern selection.
then in the future. the Pattern sequencer’s selection method could be improved to allow masking them.

“send to clipboard”

I must say the more I read about various scripting ideas, the more I get into all that stuff.

This idea is simply awesome. Adding a way to script LFO’s (like Fruity Loops formula controller) would also be pretty cool. More scripting, I say!


do it.

whispers Please! whispers

i’m into it

erm, whats this good for ? i mean what other type of stuff i can do in the pattern editor ? Sorry but i dont see any reason to do this. Please enlight me with a (good) example [not quantizing, chord makers, random generator] :]

I don’t know how this’d be implemented in Renoise, if it would allow you to hack into the soundengine or be a global control thing, but generally speaking with scripting you have more power to do stuff in a smaller amount of time. A higher level of control. Create generators that execute certain parameters within a given limit, that you otherwise would spend up programming for ages. Possibility to link up these (algorithmic music composition?) ideas with another abstraction layer in mind. Sounds vague :)

I dunno what music you’re interested in making, but for me the possibilities this’d probably open up for experimentation would be a welcome addition to an already awesome app. More concrete I’m mostly interested in note generation, and to be able to set up generators for this.

I’ve got a helpfile online from an algorithmic composition program that might give you more hints about note generators:

Although I’m not too much of a fan for combining scripting & music, this does sound like an exemplary feature that I would no doubt use. I don’t suppose that my suggestion for a more detailed/masked advanced edit have been considered have they?

Here’s the original thread:

I understand that scripting will give us this kind of flexibility and more, but for those who can/choose not to use it surely would benefite from this if it were a feature, and perhaps it would negate edits too?

Sorry but to run scripts on selected items in adavnced edit, yes,yes,yes!!!

(jizzes in pants)