Exploiting The Paste Buffer In Renoise For Algorithmic/automatted Note

Hope this is the right place to put this…

While browsing these forums, I recently discovered that any note information copied into the pattern editor could be pasted into a regular text editor. If you’ve ever done this, you’ll notice that your clipboard data is stored as XML data. Values can also be changed and modified in the text editor, copied, and then pasted back into the pattern editor…

This lead me to spend a few evenings working up an XML generator in python that would generate XML data that could be copied and read by Renoise.

I work with a synthesis programming language called Csound, and they have a very elegant way of writing note events. A typical statement could look like this:

i1 0 1.5 61 .5

Where column 1 “i1” states the instrument number, column 2 denotes start time, column 3 denotes duration (a dotted quarter), column 4 denotes pitch (C#4 as a midi note number), and column 5 denotes amplitude.

This format makes it quite easy to make generative music in virtually any programming language that has the ability to read and write files. As an example, I decided to write a convertor that will read a file with these lines, and then convert them to a renoise-compatible xml file that can be C + P’d into Renoise.

You can get the program here:
https://docs.google.com/open?id=0B2Rwi5tghYksT2JteGFoeHpUUFk

To run the example, open up a terminal and run: ‘python score2pat.py 16 notetest.sco > copyme.txt’
This text file can then be opened up and copied. Or, if you are running OSX, you can send the file directly to the copy buffer using the command ‘pbcopy < copyme.txt’

It’s by no means a fantastic program, but I think it demonstrates the bootleg potential that lies in externally generating code that the Renoise paste buffer can read.

if you’re on windows you can redirect it automatically to the clipboard via:

python score2pat.py 16 notetest.sco | clip

and if the OSX ‘pbcopy’ works how I imagine it would work, you could use the same pipe trick to do it in one line:

python score2pat.py 16 notetest.sco | pbcopy

Awesome! Yeah, i had noticed that the clipboard/pastebuffer generated xml (like the save files) but the thought of doing something like this had just barely crossed my mind.