Contents

Renoise Scripting Reference and HOWTOs - Introduction

Welcome to the Renoise scripting Guide. In all the various "Documention" files, we will give you an overview on how to write tools for Renoise; how to debug them, what's possible to "script", what's not, and much more. Please read this introduction carefully to get an idea on how to get started, and to avoid common pitfalls and FAQs.

Scripting Development Tools in Renoise

By default Renoise has all scripting utilities hidden; to keep things as easy as possible for those who don't want to mess around with code. If you want to write scripts, then the first thing you have to do is enable the hidden development tools that are built into Renoise. This can be done by:

Enabling scripting will add a new main menu entry "Tools" (or add new entries there if it already exists).

In the "Tools" menu you will find:

What can be scripted, what can't? What's this scripting all about?

Right now (in this Renoise release), you can make use of scripts in the following places:

What's NOT possible with Renoise tools:

Renoise Lua API Overview

The XXX.API files in this documentation folder will list all available Lua functions and classes that can be accessed from scripts in Renoise. If you are familiar with Renoise, the names of the classes, functions and properties should be self explanitory.

Here is a small overview of what the API exposes:

Renoise.API
Renoise API version number and some global accessors like "song", "app" are here.

Renoise.Application.API
Access to the main Renoise application and window, main user interface.

Renoise.Song.API
Access to the song and all its components (instruments, samples, tracks...)

Renoise.Document.API
Generic "observer pattern" document creation and access, used by the song/app and to create persistent data (preferences, presets).

Renoise.ScriptingTool.API
Available to XRNX tools only: Interact with Renoise; create menus, keybindings.

Renoise.Socket.API
Inter-process and network communication functions and classes.

Renoise.OSC.API
Tools to generate and receive OSC messages, bundles over the network.

Renoise.Midi.API
"Raw" MIDI device interaction (send, receive MIDI messages from any devices.)

A note about the general API design:

Some notes about the documentation, and a couple of tips:

Creating Renoise Tools

MIDI Controller Scripting with Duplex

If you want to add support for your MIDI controller into Duplex, or help extend the Duplex framework, have a look at the Duplex XRNX tool.

In the XRNX bundle you'll find some information about the Duplex API and how to create new controller mappings.

The Duplex code can also be viewed online in the XRNX repository at: https://github.com/renoise/xrnx/tree/master/Tools/com.renoise.Duplex.xrnx

More information can be found in Duplex manual, available here: https://github.com/renoise/xrnx/blob/master/Tools/com.renoise.Duplex.xrnx/Docs/GettingStarted.md

Debugging Renoise Scripts

If tracing/debugging in the console with print, oprint and rprint isn't enough, you can try attaching a command-line based debugger to your scripts. Have a look at the Debugging document for more information and a small tutorial.

Enjoy extending, customizing and automating Renoise ;)