Prepare Yourself For Renoise 2.6 Scripting

Prepare your muscles at the gym for the coming Renoise 2.6 Lua scripting possibilities!

Don’t push yourself too hard at the beginning though, just go for some warm-up exercises… ;)

If you want instant gratification, just toy around with Lua in this easy-to-use interactive webpage: http://www.lua.org/cgi-bin/demo

There you can read and test the provided code examples, or enter your own code in the textbox and click the “Run” button to run it.

Various resources for learning Lua: http://lua-users.org/wiki/LearningLua

As most stuff we want to manipulate is pure XML (songs, patterns, devices, clipboards, etc), you might want to check out: http://www.viremo.de/LuaXML/

B)

Thanks for the links!

yeah thanks
cant wait to find out what we will be able to do device-wise :dribble:

Not necessarily - XML is simply the chosen format for importing and exporting.
Instead, you will script Renoise’s features directly via Lua, provided that they exist in the API of course :wink:

Very cool to see the enthusiasm.

But let’s be realistic, this is several months away. The reason it’s not released is because it’s not ready.

Also, stuff like “LuaXML” won’t be very useful, as we won’t be integrating “insert your random choice of LUA extension” into the core.

Make sure you understand the distinction between LUA, and “some guy’s addition to it.” as it might be a waste of time to study library X, but Renoise uses library Y (or none because it’s an API call instead…)

Fair warning.

For example, a good “LUA workout” for XML would be this page:

http://lua-users.org/wiki/LuaXml

Particularly, the “Lua-only XML parsers” section. These are parsers written in LUA. The LuaXML link on the other hand is some binary extension that someone else wrote; it’s not really LUA.

Yes, it’s several months away, realistically speaking. But the way I see it, we have these months to prepare ourselves for the scripting possibilities. That means studying Lua, trying to create some code, etc just to get a frame of reference (as most of us don’t know anything about Lua or even scripting at all). It also means that we can start visualizing what kind of scripts we want to create ourselves; conceptual designs, so to speak.

The link to the LuaXML extension was meant as some starting point for manipulating Renoise XML during study. I didn’t expect Renoise to use LuaXML or any extension. Sorry for the possible confusion this might have caused here. But would it be safe to assume that we can access external xml in terms of read/write from disc?

Don’t forget to beta test 2.5 amid your Lua tutorials. :walkman:

This is the best link IMHO:

http://www.lua.org/pil/index.html

if you already have familiarity with C++ or PHP programming, you will only need a couple of day to get into LUA, and some more to get into the Renoise scripting API

Great! But no luck for me since I’m not familiar with C++ or PHP programming. :)

OK, so let me ask you Renoise team guys who already knows some stuff about the 2.6 scripting features: Is it a waste of time to learn Lua at this point? I.e. would it be better for us to wait until the Renoise team officially releases some information about what is to be expected in terms of what we can and cannot do with it?

Observe that I’m only interested in learning Lua because it will be the scripting language embedded in Renoise. Therefore, it would be very helpful and time-saving if you could just provide us, who want the best possible start when 2.6 is published, with some “preparation notes”. Doesn’t have to be right NOW, of course, but a little bit sooner than just a few days before the next 2.6 beta release.

One such piece of information that would be useful regards the bidirectional possibilities. E.g. feeding the 3rd party applications in the background with some file to process, and fetching the rendered/processed data back into the pattern editor – that sort of stuff is is crucial for my designs, as I rely mostly on huge banks of XML data chains that are stored on the harddrive.

If I can just easily accesss the vast arrays of external XML files (read/write), my Renoise experience will be like upgrading a sports car to a space ship. The time I can weave together songs will become 100+ times faster.

So, you bet I am enthusiastic about the 2.6 release! ;)

You’re not getting any access to the audio thread, so no new effect devices are possible with it.

Well, you’ll just need the basics like declaring variables, especially using tables, using iterators, using functions and passing parameters with them. Also you can totally forget about XML. You’ll get a set of functions (API) to directly access things inside of Renoise and modify it.

While you can use external resources like XML files on the harddisk you’ll have to write the file handling yourself or use some LUA library. For the internal API XML is not needed.

I’d say: Yes. Its also hard to learn something which you can’t use yet…

OK, fair enough. Thanks for the information!

All right, that’s nice to know! Then I’ll just postpone my studies for a while until more information about the scripting possibilities will be available from you guys.

so can somebody give me an idea of the kind of things that will be possible when this new scripting functionality becomes available?

I used to write music when I was tired of programming! (Which used to involve a fair amount of programming/coding).

So your saying my relaxing hobby will make me actually think again, instead of just mashing keys on my keyboard and hearing what comes out!? =)

I have absolutely no idea why a scriping language would be useful. I’m not doubting it, and I’m sure it’s even discussed in several pages in the 2.5 beta thread… but I just don’t understand really. Unless it’s things like opening files when another is done, things for live performance or something. But within a song itself doesn’t the interface provide what we need without needing to code something?

Well, it’s obvious that wouldn’t be done without reason so I’m sure I’ll find out why. I was hoping for some features in the latest release that would make playing looser timings and more organic music a bit easier to digest. (Count-in, sliders instead of hex on delay timings). Anyways, I guess everyone has their priority list. =)

I bet with scripting one can create groove per track through calculating delay values?

well, i think it would be enough to provide a basic api listing. or a special flag hidden and marked unsupported that allows loading lua scripts externally in a renoise 2.5 beta ;)

personally, I am willing to add some devices for supercollider allocation and control of synths; i just finished my thesis about my own sequencer that uses supercollider externally for audio-synthesis (of course, in realtime), so most of the code would be a matter of porting and filling the gaps (additional OSC message handling).

I hope the renoise api will facilitate to save own config/preferences data in project files.

scripting :ph34r:
i’d like to get started, but it’s just a daunting little universe.

Well, the main reason we’ve added it was because we needed (or lets say wanted) it internally. So even if no one here will find it useful, its no big deal after all.

Further, of course no one will force you to write scripts, but of course you can also use scripts that others have written - if you find them useful. If there are many useful scripts, we maybe do end up in something like this: https://addons.mozilla.org/en-US/firefox/ where you can look for extensions that others have been done for you.

Regarding what you can do with it and what not:

Right now its limited to non audio real time operations. You can access/manipulate the whole document (notes, instrument, track settings and so on), access sample data (generate, process samples) and can create GUIs for all this that just look like Renoises GUI: Creating a dialog to set up options or to create your own editor, whatever. Or your tools to Renoises context menus, add custom key Bindings, custom MIDI mappings and so on.

You can right now NOT create new DSPs, can not interact with Renoises audio player directly. Right now. This thing is not done yet, thus I can not promise what finally will be possible and what not. We simply don’t know yet.

And hold your breath. This is not going to be released that soon. We’ve got to finish Renoise 2.5 first, then concentrate on this again.

Patience and prayers to the heathen Gods of Hex have always worked so far… Although I don’t think my mortal imagination can comprehend the vast awesomeness if the Gods of Hex would bestow their powers to co-create the Hexiverse upon us… Taktik, just in case, I brought a blood offer to the Alter… I hope you like gutted pig!