First Device I'M Coding With Scripting

The first device I’m gonna code with the scripting engine when it comes is an LFO that’s driven entirely with 1 dimensional perlin noise. Perlin noise is a special type of fractally generated noise that’s used extensively in the graphics industry to produce programmatic textures of all sorts. It’s also used to create “humanized” movement in 3d models. A good example of perlin noise is the parameter-less “generate clouds” function in photoshop, which generates a patch of 2d perlin noise with fairly standard settings. I figure that a full perlin LFO with all the available parameters to the perlin function will allow for some amazing, very humanized automation.

What other kinda cool devices would you guys like to see?

I’d better wait for the release of scripting before “dreaming” of new features: it has not been stated that scripting will allow you to create new devices at all or something similar. If ever, this could also not happen immediately; id est: version 2.6 could only contain some of the API functions, in order to let the developers and the users focus on the ease of usage, the stability, the reliability and the security of the scripting engine before letting more complex entities to be coded.

Well someone pointed this out to me in #renoise just now, but I fail to see the real usefulness of scripting if we can’t do such things. If it’s so limited that we can’t create metadevices, then I fear that there wouldn’t be much other useful functionality. I’m already presuming right off the bat that we won’t be able to edit the sound buffer.

hey, the viceversa has also not been stated :)

I repeat: the introduction of scripting will be quite likely made in steps; Taktik has already spent much time in giving us a good, wide and easy set of tools in order to create some other tools which solve general problems.

The decision not to include scripting in version 2.5, although a significant part of 2.5 developing time has been used to create scripting, has been taken in order to separate the feedback by the scripting users from the feedback of the other features introduced into 2.5.

I cannot guarantee that creating new devices will be ever possible with Renoise scripting; it is also a matter of realtime capabilities of the scripting engine itself. All I can say from my experience with scripting in Renoise is that some realtime stuff could be possible, but there is a limit to what it can do (and then undo :))

Yay. Right now we don’t allow any real time interaction in the player, except for MIDI with scripting. This may change, maybe not. No one here will be able to guarantee this. All I can promise is we’ll give you some tools to !extend! Renoise, not to !change! Renoise.

Whatever we do, there will be limits. There have to be limits, or we’ll end up in one big chaotic mess. For example you can’t and should never change existing playback or internal FX behavior. If we would allow this, songs you’ve made with your scripts would only work with your scripts. That would be like creating your own Renoise which no one else has, no one else can play back except you.

All I wanted to announce with the scripting, is that we will “open” Renoise more than before, so that some programmer nerds here can extend Renoise in some way. I don’t even think we will ever have something like a library of useful tools that everyone can download. That it will be an official feature “normal, no developer” users will use.

That announcement was meant more generally: Opening Renoise for devs, nerds. Its not an answer to Max4Live for Renoise, it will not wake you up in the morning and make you coffee. Its not something that will allow you to do anything. It will have limits and it will only cover a subset of Renoise as a whole.

I’m sorry that I’ve announced this at all at the end. We have not done so previously for a good reason.

EDIT: forgot the most important part.

I know this sucks, its my fault and its now too late to take this announcement back, but please be a bit more patient until we have released the stuff. Until then it makes no sense to guess what you’ll be able to do or not, what you want to do with this or not.

As it should be ;)

i’d like to be able to use my monome inside renoise. i haven’t a clue how that will work though! something like stretta’s obo would also be shit cool…

Although you asy no real time interaction with the player I hope this doesn’t mean you wont be able to use scripting to edit pattern xml data while a song is playing, as that is something I have been hoping for to make something to add an element to live sets.

You want fans to be able to update your song live via RSS feed? :P

Scripting allows you to extend Renoise.

  • It’s not Max MSP/PD (This already exists, you want to use it? Learn it)
  • It’s not VST programming (This already exists, you want to use it? Learn it)
  • It’s not XML manipulation (This already exists, you want to use it? Learn it)

I’m a 35 year old man. Anything I ever wanted to do with computers I could have done by now. It wouldn’t have required Renoise scripting, just my time which maybe I have squandered over the years.

This idea that, somehow, scripting will magically open the door to programming is starting to get ridiculous around here.

Scripting is hard work. A Lua API is not a magical door to do whatever you want (See Warcraft Lua API for some sort of extremely hypothetical reference)

Please stop speculating and wait it out. Better yet, program something now without scripting :)


That would be cool but was thinking more a live beatslicer ;)

Select patterns and tracks, number of divisions, then you can copy and paste sections live just by selecting blocks and stuff. Similar to Smaher posted the other day or whatsit in VDJ. Should be too hard (maybe.) Just xml data and clipboards. Probably best to move the original patterns out the way, insert new ones, which are then live updated, so basic function macros would be in use too.

Of a track currently loaded in and playing in Renoise? If so please point me to where to learn how. Something makes me think you can only modify the saved files with external programming though.

I won’t really know what I want to make until I know the capabilities of the language. Might mess around with L systems a bit. If it allows for manual MIDI RX/TX then I might attempt to get my PadKONTROL working with Renoise.

Yes, I meant external.

Sorry, my examples are just to point out that a Lua API is not the only way to get stuff done.

I’m perfectly aware of what’s possible with a scripting engine. I’ve integrated the M$ scripting engine into applications before. Its possibilities are based entirely on how much of the application’s internal guts you want to expose, and how well fit to the scripting engine the application’s framework is in the first place.

That said, you should be well aware by now that I’m a programmer by trade Dac.

so it’s lua, then?

This both (MIDI Controller interaction and [Pattern]Data Mangling) is definitely something we’d like to focus on.

But again. Lets please continue discussing details, possibilities, as soon as we’ve made the scripting public.

Waiting for the facts is obviously better than speculating out of thin air. Creating scenarios in one’s head that aren’t even semi-anchored in reality is nothing but a daydream. We don’t want anybody (read: taktik) to get cold feet because of impossible demands and expectations, do we? ;)

As Conner said, learn max/msp now.

That doesn’t at all help me with Renoise

As long as I will be able to manipulate pattern-data more quickly than right now I’m happy ;) . BUT…as I’m a dreamer…

Note generation and manipulation like you can do in the Ac Toolbox would be uber-cool, doesn’t have to as elaborate ( ).

Is the ability to create your own note event or value generators a realistic prospect? ( some functions from the ac toolbox )

partially ripped from the pdf

I’d like to be able to define shapes, which would be curves, reflecting some motion over time. These could be converted to
produce a number of values within certain limits which could be generated for pattern command values / columns etc.

Stuff like applying masks onto a pattern/sequence selection.
On a graphical grid, a mask is represented by two lines. It is a field that changes over time. A mask can be converted to be in a certain range. Values can be chosen between those boundaries. So you’d choose a selection of note events in the pattern editor. Define/draw a mask consisting of 2 lines, and applying these on the selection could filter out the notes not within the mask for example. Or use a mask in combination with a generator to automatically create events within the set boundaries. You’ll define the tendency of an event to happen.

Defining stockpiles. A stockpile is a collection of values. To be able to use these stockpiles as input for other ‘generators’ could proof a powerful mangle tool. For example in combination with some kind of random-choice generator.

Find and replace with some kind of humanization etc etc.

We’ll see :)