Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Renoise

Welcome

... to the Renoise Lua Scripting Guide! This book is intended for developers who want to write their own scripts & tools for Renoise.

If you are only interested in downloading tools for Renoise and not in developing your own tools, please have a look at the Renoise Tools Page.

If you want to develop your own tools for Renoise, just keep reading.

Possibilities

Before you delve into writing your own scripts and tools, it worth considering what is even possible to do with them. In general, you can automate and manage different aspects Renoise, add or modify song data using algorithms or create interfaces to connect with other software or hardware. You can see some examples below about what you can access inside Renoise, for a complete reference, check out the API Definitions.

Process song data

  • Generate, modify or filter notes, patterns or phrases
  • Access volume, delays and panning values
  • Write effect commands and automation
  • Rearrange the pattern matrix and more

Manage tracks and instruments

  • Create and modify instruments or tracks
  • Add built-in DSP devices to tracks or FX chains and set their parameters
  • Generate modulation chains on instruments
  • Load samples and configure them
  • Manage slices and keyzones

Sample generation and mangling

  • Generate new samples and change existing ones
  • Chop samples and create slices and intruments based on custom rules
  • Implement offline audio effects

Custom graphical interfaces

  • Use built-in sliders, buttons, switches and more to compose a GUI
  • Listen to keyboard and mouse events to define custom behaviour
  • Use bitmaps to create unique buttons
  • Hook up the interface to the rest of your tool

Controller support

  • Write logic for bidirectional communication between Renoise and MIDI controllers
  • Implement custom functionality for MIDI control surfaces
  • Control Renoise via customized OSC messages
  • Exchange information with other software like VJ tools or web services

Interactions

There are a few ways tool creators can make the functionality they provide available for users, below is a brief summary of the most used methods.

Limitations

Finally, let's look at what is not possible via tools.

  • You cannot override the existing behaviour of Renoise. You can add functionality on top of what's already there, but you can't disable or change how the built-in features work.
    For example, you can create a completely custom GUI to compose patterns in a novel way but you cannot change how the built-in pattern editor works or looks like. Similarly, you can add a new shortcut that does something extra to the selected sample block or places new slices but you can't modify how the built-in autoslicing works.

  • You cannot write real-time DSP code like synths, effects or modulators (except for scripts inside the Formula device), which is not using the Renoise Tool API. If you want to design your own synths and effects you should look into plugin development (using DISTRHO, nih-plug etc.), you could also use existing plugins that allow you to build your own DSP patches (like plugdata or Cardinal). Of course you can generate and modify samples using your tool, but it will have to be implemented as offline rendering instead of real-time processing.

Setting up your development environment

To start developing Scripts in Renoise, use the following two menu entries inside the Tools menu on the top bar.

  • Scripting Terminal & Editor - This will open the debugging console used to test things and see your tool's output
  • Reload All Tools - This will force a reload of all installed and running tools. It can be useful when adding new tools by hand or when changing them.

note

In previous versions of Renoise it was necessary to launch the Renoise executable with the --scripting-dev argument to see the above mentioned menue entries.

Lua

Tools in Renoise are written using the Lua programming language. Lua is a dynamic language with a friendly syntax and good performance. While Renoise itself is written in C++, it has an API layer that exposes all sorts of aspects of the tracker so that tools can implement new functionality without the dangers of crashing Renoise itself or having to worry about low level programming challenges.

note

Teaching you programming is out of the scope of this guide but you can check out the book Programming in Lua to get a complete overview of the language. That said, you will probably be able to pick up a lot of things just by reading through this guide and checking out the examples. If you are the kind of person who learns best by doing stuff, getting straight into tinkering might be right up your alley.

Language Server

Luckily Lua has a language server called LuaLS which - when paired with the definitions for the Renoise API - can help you write code by providing useful hints about functions and variables, autocompletion and code diagnostics. You can even annotate your own code to keep things more explicit and well documented. While you can absolutely write Lua and create tools without any of this, we highly recommend setting it up.

If you are using VSCode you will have to do three things

  • Install the Lua extension by sumneko
  • Download the Renoise API definitions from Github
  • Configure VSCode so that LuaLS knows where to find the definition files. For this you will have to either put this into your workspace's settings in your project folder (as .vscode/settings.json), or the global User Settings JSON file. Make sure to fill the paths below according to where you've extracted the previously downloaded definitions.
{
    "Lua.workspace.library": [ "PATH/TO/RENOISE_DEFINITION_FOLDER" ],
    "Lua.runtime.plugin": "PATH/TO/RENOISE_DEFINITION_FOLDER/plugin.lua"
}

For configuring other editors, you can check out the official docs about installation

Anatomy of a tool

There are a few things that all tools must conform to for Renoise to successfully recognize and load them.

com.domain_of_developer.name_of_tool.xrnx
├── manifest.xml
├── main.lua
├── cover.png
├── thumbnail.png
├── LICENSE
└── README.md

A tool is a folder or a zip file with the extension .xrnx.

Required files:

  • main.lua contains the tool's program.
  • manifest.xml is an XML file which describes your tool.

Optional files:

  • cover.png 600x350 px is a large image, used on the tools page overview and on the pages of individual tools.
  • thumbnail.png 120x45 px is a small capsule image, used when tools are shown in a list on the tools website.
  • README.md is a markdown-formatted file that the website will render on the tool's page.
  • LICENSE is a raw text license file.

The paths to the cover, thumbnail, readme, and license files can be customized using the ...Path tags in the manifest. See below for more info.

note

You'll see that the names of tool folders (and Id field) follow reverse domain notation, but don't worry, you don't have to actually own a domain to create and share your tools. Just use whatever nickname you want, but make sure it's not already taken by other developers to avoid confusion.

If needed, you can split your tool into multiple files and use the "require" function to load them inside your main script, but to start with, you will be fine just using a single main script.

Some tools will also make use of other resources like bitmaps or audio samples; these should all be placed in the same folder (or any subfolders inside it).

Let's look at a basic tool to see what goes into these two files. You can find more elaborate examples by browsing the example tools.

Manifest

The manifest is a short XML file with the name manifest.xml. It contains a few tag pairs like <Tag>...</Tag> and some text between them. Renoise reads these and loads your tool based on the information it finds within.

Here is an entire manifest file from a HelloWorld tool:

<?xml version="1.0" encoding="UTF-8"?>
<RenoiseScriptingTool doc_version="0">
  <!-- REQUIRED -->
  <Id>com.yourDomain.HelloWorld</Id>
  <ApiVersion>6.2</ApiVersion>
  <Version>1.02</Version>
  <Author>Your Name [your@email.com]</Author>
  <Name>Hello World</Name>
  <!-- OPTIONAL -->
  <Category>Development, Workflow</Category>
  <Description>
    This tool is for printing &quot;Hello World!&quot; to the terminal when loaded.
  </Description>
  <Platform>Windows, Mac, Linux</Platform>
  <License>MIT</License>
  <LicensePath>LICENSE.md</LicensePath>
  <ThumbnailPath>images/thumbnail.png</ThumbnailPath>
  <CoverPath>images/cover.png</CoverPath>
  <DocumentationPath>docs/README.md</DocumentationPath>
  <Homepage>https://some.url/my-tool</Homepage>
  <Documentation>https://some.url/my-tool-docs</Documentation>
  <Discussion>https://some.url/my-tool</Discussion>
  <Repository>https://git.some.url/my-tool</Repository>
  <Donate>https://some.url/donate</Donate>
</RenoiseScriptingTool>

Let's go through what each of these tags means and what you should put inside them.

<?xml> is the header for the XML file; this will stay the same across all tools.
<RenoiseScriptingTool> tells Renoise that this XML describes a tool. Don't change this.
<!-- ... --> is a XML comment, which will be ignored by Renoise.

Required Properties

  • <Id> Should match the folder name of your tool exactly, without the .xrnx at the end.
  • <ApiVersion> The version of the Renoise API your tool is using. This should be 6.2 for the latest version.
  • <Version> The version of your tool. Whenever you release a new update, you should increase the version. Note that this is a number value and not a semantic version. So 1.02 is a valid version, while 1.0.2 is not.
  • <Author> Your name and contact information. Whenever your tool crashes, this information is going to be provided for the user alongside the crash message. You should provide a contact method where you can receive bug reports or questions.
  • <Name> The human-readable name of your tool. It can be anything you want, and you can change it anytime you feel like it.

Optional Properties

  • <Category> One or more categories for your tool, separated via ,, which will be used to categorize your tool on the official Tools page if you ever decide to submit it there. See below for a valid list of categories.
  • <Description> A short description of your tool which will be displayed inside the Tool Browser in Renoise and on the official Tools page.
  • <License> The type of license, e.g., MIT or AGPL.
  • <LicensePath> Relative path to the license file within the XRNX bundle.
  • <ThumbnailPath> Relative path to the thumbnail icon file for the Tools page.
  • <CoverPath> Relative path to the cover image file for the Tools page.
  • <DocumentationPath> Relative path to a plain text or markdown documentation file.
  • <Homepage> The URL of your tool's homepage.
  • <Discussion> The URL of your tool's discussion page, e.g., on the Renoise forums.
  • <Repository> The URL of your tool's source code repository.
  • <Donate> A URL to a website where donations can be made to support your tool.
  • <Documentation> A URL to a website where your tool's documentation can be viewed.

Tool Categories

Valid categories are: Analysis,Automation,Bridge,Coding,Control,Development,DSP,Editing,Export,Game,Generator,Hardware,Import,Instrument,Integration,Live,MIDI,Mixing,Modulation,Networking,OSC,Pattern,Phrase,Plugin,Recording,Rendering,Sample,Sequencer,Slicing,Tuning,Workflow

XML Text Encoding

When writing the XML file in a regular text editor, ensure that text content is encoded correctly. Otherwise, the XML file will be invalid.

  • " -> &quot;
  • ' -> &apos;
  • < -> &lt;
  • > -> &gt;
  • & -> &amp;

main.lua

Now that we have a manifest file, we can get to the exciting part of printing a message to the Renoise console. The contents of the main.lua file will just have a single line for now:

print("Hello world!")

Done! Now that you have written your first tool, you probably want to install and test it.

Installing tools

You can install any tool by dragging its folder (or a zip file with the .xrnx extension and the tool's contents) onto Renoise. You can also copy the folder manually into your Tools folder.

note

When creating a zip file you should only zip the contents of the folder, not the folder itself

After you've installed a tool, it will be activated automatically. When in doubt, click the Tools / Reload All Tools.

Debugging

Scripting Terminal

By default, all prints from all tools are redirected to the Renoise Scripting Terminal. So the easiest way to debug a tool is to add debug prints to your tool.

Since the prints are redirected only when the terminal is open, it doesn't hurt to keep them in distributed tools, but the prints do create some overhead, so remove them if that's relevant - before releasing your tool.

In addition to the standard Lua print, the Renoise APi offers two other print functions that can help with debugging:

  • oprint(some_object) prints all methods/properties of API objects (or your own class objects), e.g. oprint(renoise.song()).
  • rprint(some_table) prints tables recursively, which is handy for printing the layout of the renoise module/class, e.g. rprint(renoise)

Autoreloading Tools

When working with Renoise's Scripting Editor, saving a script will automatically reload the tool that belongs to the file. This way you can simply change your files and immediately see/test the changes. When changing any files that are part of the "Libraries" folder, all scripts will get reloaded.

When working with an external text editor, you can enable the following debug option somewhere in the tool's main.lua file:

_AUTO_RELOAD_DEBUG = function()
    -- do tests like showing a dialog, prompts whatever, or simply do nothing
end

As soon as you save your script outside of Renoise, and then focus Renoise again (alt-tab to Renoise, for example), your script will instantly get reloaded and the notifier is called.

If you don't need a notifier to be called each time the script reloads, you can also simply set _AUTO_RELOAD_DEBUG to true:

_AUTO_RELOAD_DEBUG = true

Remote Debugging

If printing isn't enough, there is also remote debugging support built into Renoise via Remdebug.

Remdebug is a command line based remote debugger for Lua that comes with Renoise.

Prerequisites

To use the debugger you will need:

  • Renoise's "remdebug" module, which can be found in "Scripts/Libraries/remdebug" (no installation required - included in Renoise)

  • Lua support on your system's command-line with the Lua "socket" module See http://w3.impa.br/~diego/software/luasocket/

Overview

The debugger will be controlled via a command-line Lua interpreter, outside of Renoise via the remdebug/controller.lua script. To start a local debug session from within Renoise you can use the function debug.start():

-- Opens a debugger controller in a new terminal/cmd window and
-- attaches the debugger to this script. Immediately breaks execution.
debug.start()

You can add this anywhere in any script that runs in Renoise. This will work in a tool's main.lua main() body, just like a local function that you include. It also works in the TestPad.lua script that is used in Renoise's Scripting Editor.

Step By Step Guide

Let's debug the following small test script, paste into RENOISE_PREFERENCES/Scripts/TestPad.lua:

debug.start()

local function sum(a, b)
    return a + b
end

local c = sum(1, 2)
print(c)

debug.stop()
  • Launch Renoise's scripting editor, open "TestPad.lua", and hit the "Execute" button to run the script.

    If Lua is correctly installed on your system, and remdebug was found, Renoise should be frozen now, with a terminal window opened showing something like:

> "Lua Remote Debugger"
> "Paused at file RENOISE_PREFERENCES_FOLDER/Scripts/TestPad.lua line 5"
>
> 1    debug.start()
> 2
> 3    local function sum(a, b)
> 4      return a + b
> 5*** end
> 6
> 7    local c = sum(1, 2)
> 8    print(c)
> 9
> 10   debug.stop()
>
>>
  • To step through the code, you can use the "s" and "n" commands in the terminal. Let's do so by entering "s" (Return) until we've reached line 8. Anything you type into the debugger, which is not a debugger command, will get evaluated in your running script as an expression. So let's try this by entering: c=99

  • Then step over the line by entering "n" (Return) to evaluate the "print(c)" on line 9 in the script. You should see a "99" dumped out. To watch the value again, enter for example a print(c). You should again see a "99" dumped out.

You can also set break and watchpoints in the debugger. Type 'help' in the terminal to get more info about this. Those who are familiar with gdb on the command-line may be able to quickly get up to speed when using the most common shortcuts (c,b,q, and so on...).

Please note that although "debug.stop()" is not necessary (you can simply quit the controller at any time to exit), its recommended and will be more comfortable when running a session over and over again.

Remote and Lua Editor debugging

Renoise's remdebug is fully compatible with the original remdebug controller from the kepler project. This means you can, in theory, also use debugger GUIs that use the original remdebug, like Lua Eclipse or SciTE for Lua.

However, this is often a PITA to setup and configure, and might not be worth the trouble. Try at your own risk...

The debugger can also be used to remote debug scripts, scripts running on other computers. To do so, use remdebug.engine.start/stop instead of "debug". debug.start/stop is just a shortcut to remdebug.session.start/stop.

"remdebug.engine.start" will only attach the debugger to your script and break execution. You then have to run the debugger controller manually on another computer. To do so, launch the remdebug.controller.lua file manually in a terminal:

  • First we start the debugger controller. To do so, open a command-line on your system and invoke the remdebug/controller.lua script. You should see something like:
lua RENOISE_RESOURCE_FOLDER/Scripts/Libraries/remdebug/controller.lua
"Lua Remote Debugger"
"Run the program you wish to debug with 'remdebug.engine.start()' now"
  • Now you can connect to this controller by running a script with remdebug.engine.start(), configured to find the controller on another machine (or the same one.)
require "remdebug.engine"
-- default config is "localhost" on port 8171
remdebug.engine.configure { host = "some_host", port = 1234 }
remdebug.engine.start()

Distribution

Eventually you might want to share your work with others, in this case you will have to use the zipped format.

  • First, we recommend sharing your tool on the Tools section of the forum to get some feedback and early testing done. If you create a topic there, you can also use it to notify users about updates or discuss potential improvements.
  • Later on, you might want to submit your tool to the official Tool library so that users can find it easier and have automatic updates.

Community channels

If you have further questions or just want to discuss tools with fellow devs you can reach out over the following channels

Now that you can write, package and test your tool, you are ready to explore the depths of the API and start implementing your ideas.

Guides to the Renoise API

Welcome to the guides for the Renoise Scripting API.

In this section, you can learn about different aspects of the API through practical examples and explanations. These guides assume you have already read the chapters in our introduction and are familiar with how to package and install tools.

Classes

The Lua language does not have a built-in class construct. However, the Renoise Lua API provides simple object-oriented programming support via a global class() function. All Renoise API objects use such classes, and you can use them in your tools as well.

See the luabind documentation for more technical information, and the examples below for how to use them.

Examples

-- abstract class
class 'Animal'

  function Animal:__init(name)
    self.name = name
    self.can_fly = nil
  end  

  function Animal:__tostring()
    assert(self.can_fly ~= nil, "I don't know if I can fly or not")
    
    return ("I am a %s (%s) and I %s"):format(self.name, type(self), 
      (self.can_fly and "can fly" or "cannot fly"))
  end


-- derived classes

-- MAMMAL
class 'Mammal' (Animal)

  function Mammal:__init(str)
    Animal.__init(self, str)
    self.can_fly = false
  end

-- BIRD
class 'Bird' (Animal)

  function Bird:__init(str)
    Animal.__init(self, str)
    self.can_fly = true
  end

-- FISH
class 'Fish' (Animal)

  function Fish:__init(str)
    Animal.__init(self, str)
    self.can_fly = false
  end


-- run

local farm = {}

table.insert(farm, Mammal("cow"))
table.insert(farm, Bird("sparrow"))
table.insert(farm, Fish("bass"))

print(("type(Mammal('cow')) -> %s"):format(type(Mammal("cow"))))
print(("type(Mammal) -> %s"):format(type(Mammal)))

for _,animal in ipairs(farm) do
  print(animal)
end

Something to keep in mind:

  • A constructor, function MyClass:__init(args), must be defined for each class, or the class cannot be used to instantiate objects.
  • Class definitions are always global, so even locally defined classes will be registered globally.

Class operators

You can overload most operators in Lua for your classes. You do this by simply declaring a member function with the same name as an operator's corresponding metamethod in Lua.

The operators you can overload are:

  • __add (addition)
  • __sub (subtraction)
  • __mul (multiplication)
  • __div (division)
  • __pow (exponentiation)
  • __lt (less than)
  • __le (less than or equal to)
  • __eq (equality)
  • __call (function call)
  • __unm (unary minus)
  • __tostring (serialization)
  • __len (length operator #)

Note: __tostring isn't really an operator, but it's the metamethod that is called by the standard library's tostring() function.

Observables

The Renoise API makes extensive use of the Observer pattern. In short, many values are wrapped in "Observable" objects. You can register "notifier" functions on these objects, which will be called whenever the underlying value changes. This is a powerful way to react to changes in the application state without constantly polling and comparing values.

When browsing the API documentation, you will find many properties with an _observable suffix. Let's see how to use this feature by attaching a notifier that runs when the user loads a new song.

local function on_new_document()
  renoise.app():show_message("Loaded a new song!")
end

-- Get the tool's new_document observable and add our function as a notifier.
renoise.tool().app_new_document_observable:add_notifier(on_new_document)

A common pattern is to attach notifiers to song-specific properties inside the app_new_document_observable notifier. This ensures that your notifiers are re-attached whenever a new song is loaded. To listen for changes on a specific value, you typically add _observable to the property name and add a notifier to it.

Let's extend the previous snippet to also fire a message whenever the name of the song changes.

local function on_song_name_changed()
  local song_name = renoise.song().name
  renoise.app():show_message("New name was set!\nName: " .. song_name)
end

local function on_new_document()
  renoise.app():show_message("Loaded a new song!")
  -- When a new song is loaded, attach a notifier to its name_observable
  renoise.song().name_observable:add_notifier(on_song_name_changed)
end

renoise.tool().app_new_document_observable:add_notifier(on_new_document)

Now, try changing the song title in the "Song Settings" tab to see your message pop up.

With this technique, you can listen to all sorts of events, which is very useful when you want your tool to react to user actions like selecting a new instrument, track, or sample.

There are different Observables for each primitive type, such as ObservableBoolean, ObservableNumber, or ObservableString, as well as list types like ObservableBooleanList. You can explore the entire Observables API to see them all.

Renoise Application

The renoise.app() function is the entry point for interacting with the Renoise application itself. It returns a renoise.Application object, which provides access to global application states, functions for user interaction like dialogs, and control over the main window.

Controlling the Application Window

The renoise.ApplicationWindow object, accessed via renoise.app().window, allows you to query and control the state of the main Renoise UI.

local window = renoise.app().window

-- Toggle fullscreen mode
window.fullscreen = not window.fullscreen

-- Check if the disk browser is visible
if window.disk_browser_is_visible then
  print("Disk browser is currently open.")
end

-- Switch the middle frame to the Mixer view
window.active_middle_frame = 
  renoise.ApplicationWindow.MIDDLE_FRAME_MIXER

You can also attach notifiers to many window properties to react to UI changes made by the user.

local window = renoise.app().window

-- Be notified when the disk browser visibility changes
function disk_browser_visibility_changed()
  if window.disk_browser_is_visible then
    renoise.app():show_status("Disk browser was opened.")
  else
    renoise.app():show_status("Disk browser was closed.")
  end
end

window.disk_browser_is_visible_observable:add_notifier(
  disk_browser_visibility_changed
)

Song and File Handling

The application object provides functions to load, and save songs, instrument and other kinds of components. Note that these operations are not always instantaneous, as Renoise may need to prompt the user to save changes.

To reliably execute code after a new song is created or loaded, you should use notifiers.

local app = renoise.app()

-- This will show a file dialog to the user. The song is not loaded immediately.
app:load_song("/path/to/some/song_file") 

-- To run code after a new song is ready, use a notifier.
-- This is typically done in your tool's initialization code.
function handle_new_document()
  print("A new song was created or loaded. The new song name is: " ..
    renoise.song().name)
end

-- The 'new_document_observable' is fired after a new song is
--- successfully created or loaded.
renoise.tool().app_new_document_observable:add_notifier(handle_new_document)

-- To save a song to a specific file:
app:save_song_as("/path/to/MyNewSong.xrns")

Showing Dialogs and Messages

A common task for tools is to communicate with the user. The application object provides several functions to show different kinds of dialogs and messages.

Simple Messages

For simple notifications, you can use show_message, show_error, show_warning, or show_status.

local app = renoise.app()

-- Show a message in the status bar
app:show_status("This is a status message.")

-- Show a modal info dialog
app:show_message("This is an informational message.")

-- Show a modal warning dialog
app:show_warning("This is a warning message.")

-- Show a modal error dialog
app:show_error("This is an error message.")

User Prompts

To ask the user for a choice, you can use show_prompt. It displays a dialog with custom buttons and returns the label of the button that was pressed.

local app = renoise.app()

local pressed_button = app:show_prompt(
  "Confirm Action", 
  "Do you want to proceed?", 
  { "Yes", "No", "Cancel" }
)

if pressed_button == "Yes" then
  app:show_message("You chose to proceed.")
elseif pressed_button == "No" then
  app:show_message("You chose not to proceed.")
else
  app:show_message("You canceled the operation.")
end

Custom Dialogs

For more complex user interfaces, you can create custom non-modal dialogs (tool windows) with show_custom_dialog. This requires using the renoise.ViewBuilder API to construct the UI.

-- A simple custom dialog example
local vb = renoise.ViewBuilder()

local my_dialog = nil
local my_dialog_content = vb:column {
  margin = renoise.ViewBuilder.DEFAULT_DIALOG_MARGIN,
  spacing = renoise.ViewBuilder.DEFAULT_DIALOG_SPACING,
  views = {
    vb:text {
      text = "This is a custom dialog."
    },
    vb:button {
      text = "Close Me",
      notifier = function()
        -- my_dialog is defined when calling show_custom_dialog
        my_dialog:close()
      end
    }
  }
}

my_dialog = renoise.app():show_custom_dialog(
  "My Tool Window", my_dialog_content
)

File and Path Prompts

Your tool might need to read from or write to files. The API provides functions to open native file browser dialogs.

local app = renoise.app()

-- Prompt the user to select a directory
local dir_path = app:prompt_for_path("Select a Project Folder")
if dir_path and #dir_path > 0 then
  app:show_message("You selected the directory: " .. dir_path)
end

-- Prompt the user to select a file to open
local file_to_read = app:prompt_for_filename_to_read(
  { "txt", "lua" }, 
  "Open a Text File"
)
if file_to_read and #file_to_read > 0 then
  app:show_message("You selected the file: " .. file_to_read)
end

-- Prompt the user for a filename to save
local file_to_write = app:prompt_for_filename_to_write(
  "xml", 
  "Save Configuration"
)
if file_to_write and #file_to_write > 0 then
  app:show_message("File will be saved to: " .. file_to_write)
end

Renoise Song

The renoise.song() function is the main entry point for scripting in Renoise. It returns a renoise.Song object that represents the entire project currently loaded in the application.

Here is a simplified tree view of the song object model:

renoise.song()
├── transport              (BPM, LPB, playback control)
├── tracks[]               (List of all tracks in the song)
│   ├── devices[]
│   │   └── parameters[]
│   └── ...
├── instruments[]          (List of all instruments)
│   ├── samples[]
│   │   └── sample_buffer
│   └── ...
├── patterns[]             (The pool of all available patterns)
│   └── tracks[]
│       ├── lines[]
│       │   ├── note_columns[]
│       │   └── ...
│       └── automation[]
├── sequencer              (The pattern sequence matrix)
│   └── pattern_sequence[]
└── selected_track         (And other `selected_...` properties)

Let's look at some important components in more detail.

Transport

The renoise.Transport object controls global song properties related to timing and playback.

local song = renoise.song()
local transport = song.transport

-- Read properties
print("Current BPM: " .. transport.bpm)
print("Current LinesPerBeat: " .. transport.lpb)

-- Change properties
transport.bpm = 140

-- Start playback
if not transport.playing then
  transport:start(renoise.Transport.PLAYMODE_RESTART_PATTERN)
end

Tracks

The renoise.song().tracks property is a list of all tracks in the song, including sequencer tracks, group tracks, send tracks, the master track. Each renoise.Track has its own device chain and other properties.

local song = renoise.song()

-- Iterate over all tracks
for _, track in ipairs(song.tracks) do
  -- Check the track type
  if track.type == renoise.Track.TRACK_TYPE_SEQUENCER then
    print("Sequencer Track: " .. track.name)
    -- Access the track's device chain
    local devices = track.devices
    print("  - Devices: " .. #devices)
  end
end

-- Access a specific track by its index (1-based)
local first_track = song.tracks[1]
first_track.name = "New Name" -- Set the track's name

Track Devices and Parameters

Once you have a device chain, you can iterate over its devices renoise.AudioDevice and parameters renoise.DeviceParameter. The first device in a track's chain is always the "Mixer" device, which contains the track's built-in parameters like volume and panning.

local selected_track = renoise.song().selected_track
local mixer_device = selected_track.devices[1]

print("Parameters for '" .. mixer_device.display_name .. "':")

for _, param in ipairs(mixer_device.parameters) do
  print(string.format("  - %s: %s", param.name, param.value_string))
end

Modifying Parameter Values

You can read and write a parameter's value using its .value (a number from 0.0 to 1.0) or .value_string (a formatted string like "1.000 dB") properties.

Also, the Mixer device properties can also be accessed directly from the track object.

local selected_track = renoise.song().selected_track

-- Access a parameter by its property name on the track object
local pre_volume = selected_track.prefx_volume
print("Pre-Mixer Volume is: " .. pre_volume.value_string)

-- Set the value using a string
pre_volume.value_string = "1.0 dB"
-- Note: When reading the value back, the string may be formatted differently
assert(pre_volume.value_string == "1.000 dB")

-- Set the value using a normalized number
local pre_width = selected_track.prefx_width
pre_width.value = 1.0 -- 100% wide
assert(pre_width.value == 1.0)

Adding, Removing, and Swapping Devices

You can dynamically manage the devices in a chain. To add a device, you need its identifier path, which you can query via track.available_devices.

local track = renoise.song().selected_track

print("Available devices:")
-- `rprint` is a Renoise extension which also pretty prints tables 
rprint(track.available_devices)

-- Get a random device path (excluding plugins to avoid popups)
local device_path
repeat
  device_path = track.available_devices[
    math.random(1, #track.available_devices)]
until device_path:find("Native/")

-- Insert the device at the end of the chain
local device_count = #track.devices
local new_device = track:insert_device_at(
  device_path, device_count + 1)
assert(#track.devices == device_count + 1)
print("Added device: " .. new_device.display_name)

-- Insert another one
track:insert_device_at(device_path, #track.devices + 1)

-- Swap the last two devices
track:swap_devices_at(#track.devices, #track.devices - 1)
print("Swapped the last two devices.")

-- Remove the last device
track:delete_device_at(#track.devices)
print("Removed the last added device.")

PatternTrack Lines

A renoise.PatternTrack holds pattern lines and automations for a single track in a single pattern.

The following example writes a C-4 note in the first pattern's track.

local song = renoise.song()

-- Get the first pattern in the song
local pattern = song.patterns[1]

-- Get the first pattern track within that pattern
local pattern_track = pattern.tracks[1]

-- Access a specific line (1-based)
local line = pattern_track:line(1)

-- Access the first note column in that line
local note_column = line.note_columns[1]
if note_column then
  -- Set a C-4 note
  note_column.note_string = "C-4"
end

For efficiently iterating over pattern data, it's recommended to use the renoise.PatternIterator.

This example changes all C-4 notes to E-4 within the current selection in the pattern editor.

local song = renoise.song()
local pattern_iter = song.pattern_iterator
local pattern_index = song.selected_pattern_index

for pos,line in pattern_iter:lines_in_pattern(pattern_index) do
  for _,note_column in ipairs(line.note_columns) do 
    if (note_column.is_selected and 
        note_column.note_string == "C-4") then
      note_column.note_string = "E-4"
    end
  end
end

PatternTrack Automation

A renoise.PatternTrackAutomation automates track device parameters.

This example accesses the automation for the parameter currently selected in the "Automation" tab in Renoise.

local song = renoise.song()
local selected_parameter = song.selected_automation_parameter
local selected_pattern_track = song.selected_pattern_track

-- Is a parameter selected?
if selected_parameter then
  local automation = selected_pattern_track:find_automation(
    selected_parameter)

  -- Check if automation for the selected parameter already exists
  if not automation then
    -- If not, create it for the current pattern/track
    automation = selected_pattern_track:create_automation(
      selected_parameter)
  end

  ---- Do something with the automation ----
  
  -- Iterate over all existing automation points
  for _,point in ipairs(automation.points) do
    print(("track automation: time=%s, value=%s"):format( 
      point.time, point.value))
  end
  
  -- Clear all points
  automation.points = {} 

  -- Insert a single new point at line 2
  automation:add_point_at(2, 0.5) 
  -- Change its value if it already exists
  automation:add_point_at(2, 0.8) 
  -- Remove it again (a point must exist at this time)
  automation:remove_point_at(2) 
  
  -- Batch creation/insertion of points
  local new_points = {}
  for i=1, #selected_pattern_track.lines do
    table.insert(new_points, {
      time = i, 
      value = i / automation.length
    })
  end
  
  -- Assign them (note: new_points must be sorted by time)
  automation.points = new_points 

  -- Change the automation's interpolation mode
  automation.playmode =
    renoise.PatternTrackAutomation.PLAYMODE_POINTS
end

Instruments

The renoise.song().instruments property contains a list of all instruments. An renoise.Instrument may contain phrases, midi in/out properties, plugin devices, samples, sample modulation, and sample DSP FX chains.

local song = renoise.song()

-- Get the selected instrument
local instrument = song.selected_instrument
if instrument then
  print("Selected instrument: " .. instrument.name)
  
  -- Access its samples
  if #instrument.samples > 0 then
    print("  - It has " .. #instrument.samples .. " samples.")
    local first_sample = instrument.samples[1]
    print("    - First sample name: " .. first_sample.name)
  end
end

Samples

The renoise.SampleBuffer object provides low-level access to the audio data of a sample.

This example inverts the phase of the selected sample data.

local sample = renoise.song().selected_sample
if not sample then 
  print("No sample selected") 
  return
end

local sample_buffer = sample.sample_buffer
if not sample_buffer.has_sample_data then 
  print("No sample buffer present")
  return
end

-- Before modifying sample data, let Renoise prepare for undo/redo actions
sample_buffer:prepare_sample_data_changes()

-- Modify sample data in the selection (defaults to the whole sample)
for channel = 1, sample_buffer.number_of_channels do
  for frame = sample_buffer.selection_start, sample_buffer.selection_end do
    local value = sample_buffer:sample_data(channel, frame)
    value = -value -- Invert the sample value
    sample_buffer:set_sample_data(channel, frame, value)
  end
end

-- Let Renoise know the changes are done. This updates UI overviews,
-- applies bit-depth quantization, and finalizes the undo/redo data.
sample_buffer:finalize_sample_data_changes()

This example creates a new sample from scratch and generates a simple sine wave.

local selected_sample = renoise.song().selected_sample
if not selected_sample then return end

local sample_buffer = selected_sample.sample_buffer

-- Define properties for the new sample data
local sample_rate = 44100
local num_channels = 1
local bit_depth = 32
local num_frames = sample_rate / 2 -- half a second

-- Create new or overwrite existing sample data
local allocation_succeeded = sample_buffer:create_sample_data(
  sample_rate, bit_depth, num_channels, num_frames)

-- Check for allocation failures
if not allocation_succeeded then
  renoise.app():show_error("Out of memory. Failed to allocate sample data.")
  return
end

-- Let Renoise know we are about to change the sample buffer
sample_buffer:prepare_sample_data_changes()
  
-- Fill the sample data with a sine wave
for frame = 1, num_frames do
  -- We only have one channel, so we use 1
  local sample_value = math.sin((frame / num_frames) * math.pi * 2)
  sample_buffer:set_sample_data(1, frame, sample_value)
end

-- Finalize the changes
sample_buffer:finalize_sample_data_changes()

-- Set up a ping-pong loop for our new sample
selected_sample.loop_mode = renoise.Sample.LOOP_MODE_PING_PONG
selected_sample.loop_start = 1
selected_sample.loop_end = num_frames

Sequencer

The renoise.PatternSequencer manages the arrangement of patterns in the song.

The pattern_sequence property is a list of pattern indices that defines the playback order.

local song = renoise.song()
local sequencer = song.sequencer

print("Song sequence:")
for position, pattern_index in ipairs(sequencer.pattern_sequence) do
  print(string.format("  Position %d: Pattern %d", position, pattern_index))
end

-- Set a new sequence
sequencer.pattern_sequence = { 1, 1 }

-- Change the sequence: make the second slot play pattern 2
sequencer:set_pattern(2, 2)

-- Add a new slot at the end of the sequence, playing pattern 3
sequencer:insert_sequence_at(#sequencer.pattern_sequence + 1, 3)

Selected Elements

The song object also provides convenient properties to directly access elements that are currently selected in the Renoise user interface. This is very useful for creating tools that operate on the user's current context.

local song = renoise.song()

-- Get the currently selected track object
local selected_track = song.selected_track
print("Selected track: " .. selected_track.name)

-- Get the index of the selected pattern
local selected_pattern_index = song.selected_pattern_index
print("Selected pattern index: " .. selected_pattern_index)

-- Get the selected device in a track's device chain
local selected_device = song.selected_track_device
if selected_device then
  print("Selected device: " .. selected_device.display_name)
end

Renoise Tool

The renoise.tool() function is the entry point for interacting with your tool's own context. It returns a renoise.ScriptingTool object, which allows you to integrate your tool with Renoise by adding menu entries, keybindings, and MIDI mappings. It also provides ways to handle application-wide events, manage timers, define preferences, and much more.

You can add new menu entries into any existing context menu or the main application menu in Renoise.

To do so, use the tool's renoise.tool():add_menu_entry function.

Example

renoise.tool():add_menu_entry {
  name = "Main Menu:Tools:My Tool:Show Message...",
  invoke = function()
    renoise.app():show_prompt(
      "Congrats!",
      "You've pressed the 'Show Message...' menu entry from the tools menu, " ..
      "which was defined by a scripting tool.",
      {"OK?"}
    )
  end
}

Available Menus

You can place your entries in any context menu or window menu in Renoise. To do so, specify the target menu category in the name property.

For a complete list of available menu locations, see the API documentation for ToolMenuEntry.

Separating Entries

To divide entries into groups with a separating line, prepend one or more dashes to the name, like so:

name = "--- Main Menu:Tools:My Tool Group Starts Here"

Entry Sub-Groups

To group entries into a sub-menu, use a common path for them in the name property:

"Main Menu:Tools:My Tool Group:First Entry"
"Main Menu:Tools:My Tool Group:Second Entry"
"Main Menu:Tools:My Tool Group:Third Entry"

Keybindings

Tools can add custom key bindings to Renoise's existing set of key commands. These new bindings can be activated and mapped by the user just like any other key binding in Renoise.

Keybindings can be global (applied everywhere in the GUI) or local to a specific part of the GUI, like the Pattern Editor.

note

There is no way to define default keyboard shortcuts for your entries. Users must manually bind them in the keyboard preferences pane. As soon as they do, the bindings are saved just like any other key binding in Renoise.

To add a key binding, use the tool's renoise.tool():add_keybinding function.

Example

renoise.tool():add_keybinding {
  name = "Global:Tools:Example Script Shortcut",
  invoke = function(repeated)
    -- we ignore soft repeated keys here
    if (not repeated) then
      renoise.app():show_prompt(
        "Congrats!",
        "You've pressed a magic keyboard combo " ..
        "which was defined by a scripting tool.",
        {"OK"}
      )
    end
  end
}

Scopes

The scope, topic, and name of the key binding are defined in the name property, using the format: $scope:$topic_name:$binding_name.

  • scope: This is where the shortcut will be applied, corresponding to the categories in the keyboard assignment preference pane. Your key binding will only fire when its scope is focused, unless it's the Global scope. Using an unavailable scope will not cause an error, but it will render the binding useless—it will be listed and mappable, but never invoked.

  • topic_name: This is used for grouping entries in the key assignment pane. Use "Tools" if you can't come up with something more specific.

  • binding_name: This is the display name of the binding.

For a list of available scopes, see the API documentation for ToolKeybindingEntry.

Separating entries

To divide entries into groups with a separating line, prepend one or more dashes to the name, like so:

name = "--- Main Menu:Tools:My Tool Group Starts Here"

Custom GUIs

You can create custom dialogs and tool windows for your tools using the renoise.ViewBuilder and renoise.Application.

There are two main ways to show a custom view:

-- Shows a modal dialog with a title, custom content, and custom button labels.
-- It blocks interaction with the main window until closed.
renoise.app():show_custom_prompt(
  title, content_view, {button_labels} [, key_handler_func, key_handler_options])
  -> [pressed_button_index]

See the API docs for renoise.app():show_custom_prompt for more info.

-- Shows a non-modal dialog (a floating tool window) with custom content.
renoise.app():show_custom_dialog(
  title, content_view [, key_handler_func, key_handler_options])
  -> [dialog_object]

See the API docs for renoise.app():show_custom_dialog for more info.

The optional key_handler_func allows you to capture keyboard events in the dialog. See the API docs for KeyHandler for details.

Creating Views with ViewBuilder

Widgets are created with the renoise.ViewBuilder class.

Hello World

-- We start by instantiating a view builder object.
local vb = renoise.ViewBuilder()

-- We will use a "column" view to stack other views vertically.
-- A column can:
-- 1. Show a background style.
-- 2. Stack child views vertically (vb:column) or horizontally (vb:row).
-- 3. Align child views using margins and spacing.

local dialog_title = "Hello World"
local dialog_buttons = { "OK" }

-- Fetch some constants to make the dialog look like Renoise's native views.
local DEFAULT_MARGIN = renoise.ViewBuilder.DEFAULT_CONTROL_MARGIN

-- Start with a 'column' view to stack other views vertically.
local dialog_content = vb:column {
  -- Set a margin around our main content.
  margin = DEFAULT_MARGIN,
  views = {
    -- Create another column to group our text with a different background.
    vb:column {
      -- A background style that is usually used for "groups".
      style = "group",
      -- Add some margin inside the group to make it look nice.
      margin = DEFAULT_MARGIN,
      views = {
        -- Finally, add the text to the inner column.
        vb:text {
          text = "from the Renoise Scripting API\n" ..
                 "in a vb:column with a background."
        },
      }
    }
  }
}

-- Show the custom content in a prompt.
renoise.app():show_custom_prompt(
  dialog_title, dialog_content, dialog_buttons)

Dynamic Content

GUIs are usually dynamic. To interact with widgets after they are created, you need a way to reference them. Here's how this works with the ViewBuilder API.

local vb = renoise.ViewBuilder()

-- You can build views step-by-step instead of nesting them all at once.
-- This can be clearer for complex layouts.

-- This step-by-step approach:
local my_column_view = vb:column{}
my_column_view.margin = renoise.ViewBuilder.DEFAULT_DIALOG_MARGIN
my_column_view.style = "group"

local my_text_view = vb:text{}
my_text_view.text = "My text"
my_column_view:add_child(my_text_view)

-- ...is equivalent to this nested approach:
local my_column_view_nested = vb:column {
  margin = renoise.ViewBuilder.DEFAULT_DIALOG_MARGIN,
  style = "group",
  views = {
    vb:text {
      text = "My text"
    }
  }
}

-- The nested notation has a problem: you can't easily get references to your
-- views later (e.g., to hide them or change their text). This is what view
-- builder "id"s are for.

-- Let's build a simple view that dynamically reacts to a button press.

local DEFAULT_DIALOG_MARGIN = renoise.ViewBuilder.DEFAULT_DIALOG_MARGIN
local DEFAULT_CONTROL_SPACING = renoise.ViewBuilder.DEFAULT_CONTROL_SPACING

local dialog_title = "ViewBuilder IDs"
local dialog_buttons = {"OK"}

local dialog_content = vb:column {
  margin = DEFAULT_DIALOG_MARGIN,
  spacing = DEFAULT_CONTROL_SPACING,
  views = {
    vb:text {
      id = "my_text", -- We give the view a unique id here.
      text = "Do what you see"
    },
    vb:button {
      text = "Hit Me!",
      tooltip = "Hit this button to change the text above.",
      notifier = function()
        -- Here we resolve the id to get a reference to the text view.
        local my_text_view = vb.views.my_text
        my_text_view.text = "Button was hit."
      end
    }
  }
}

-- We are doing two things here:
-- 1. We create a vb:text view and give it a unique `id`. This id can be
--    used at any time to access this view via `vb.views.my_text`.
-- 2. We add a `vb:button` control with a `notifier` function. The notifier
--    is called as soon as the button is pressed.

-- Please note that ids are unique per ViewBuilder object. You can create
-- multiple ViewBuilder instances (e.g., one for each component) to manage
-- different sets of ids.

renoise.app():show_custom_prompt(
  dialog_title, dialog_content, dialog_buttons)

More Examples

See the com.renoise.ExampleToolGui.xrnx tool for more examples. This tool can be read as its own little guide and provides many more in-depth examples.

The example tools can be downloaded as part of the XRNX Starter Pack from the official repository's releases page.

MIDI Mappings

You can extend Renoise's default MIDI mapping set or add custom MIDI mappings for your tool using renoise.tool():add_midi_mapping.

A tool's MIDI mapping can be used just like regular mappings: by manually binding it in the MIDI mapping dialog, or by assigning it to a custom GUI control via the midi_mapping property.

renoise.tool():add_midi_mapping {
  name = "My Tool:Control Something",
  invoke = function(message)
    -- message is a renoise.ScriptingTool.MidiMessage
    if message.is_trigger then
      renoise.app():show_status("MIDI trigger received!")
    end
    if message.is_abs_value then
      local value = message.int_value
      renoise.app():show_status("MIDI value received: " .. value)
    end
  end
}

The name property follows the format $topic_name:$optional_sub_topic_name:$mapping_name to organize mappings in the list. The invoke function receives a MidiMessage object that describes the incoming MIDI data.

File Import Hooks

You can add support for new filetypes in Renoise using renoise.tool():add_file_import_hook. Registered file types will appear in Renoise's disk browser and can be loaded via drag-and-drop.

renoise.tool():add_file_import_hook {
  category = "sample",
  extensions = {"txt"},
  invoke = function(file_name)
    -- This is a dummy example. A real implementation would
    -- parse the file and create sample data.
    local file = io.open(file_name, "r")
    if not file then return false end
    local content = file:read("*a")
    file:close()
    
    local sample = renoise.song().selected_sample
    if not sample then return false end
    
    -- For simplicity, we just show the content in a dialog
    -- instead of creating a sample from it.
    renoise.app():show_message(
      "Imported TXT as Sample",
      "File content:\n" .. content
    )
    
    -- Return true on success, false on failure.
    return true
  end
}

Your hook must specify a category (e.g., "sample", "instrument"), a list of file extensions, and an invoke function that performs the import logic.

Timers

Tools can register functions that are called periodically using renoise.tool():add_timer. This is useful for background tasks or animations in custom GUIs.

local tick_count = 0
local function my_timer_func()
  tick_count = tick_count + 1
  renoise.app():show_status("Timer tick: " .. tick_count)
  if tick_count >= 10 then
    -- To create a one-shot timer, remove it when it's no longer needed.
    renoise.tool():remove_timer(my_timer_func)
    renoise.app():show_status("Timer removed.")
  end
end

-- Call my_timer_func every 1000ms (1 second).
renoise.tool():add_timer(my_timer_func, 1000)

Timers are paused when modal dialogs are open. The interval is not guaranteed to be exact, but it's usually accurate to within a few milliseconds.

Application Notifiers

The tool object provides several ..._observable properties that allow you to react to application-level events, such as loading a new song or the tool being shut down. This is the primary way to manage your tool's lifecycle.

local function on_new_song()
  local song_name = renoise.song() and renoise.song().name or "Untitled"
  renoise.app():show_status("New song loaded: " .. song_name)
end

-- Called every time a new song is created or loaded.
renoise.tool().app_new_document_observable:add_notifier(on_new_song)

local function on_tool_shutdown()
  -- This is a good place to clean up resources.
  print("My tool is unloading.")
end

-- Called right before the tool is unloaded.
renoise.tool().tool_will_unload_observable:add_notifier(on_tool_shutdown)

Some important notifiers include:

  • tool_finished_loading_observable: Fired when the tool has been successfully loaded.
  • tool_will_unload_observable: Fired just before the tool is disabled or reloaded.
  • app_new_document_observable: Fired after a new song has been loaded.
  • app_release_document_observable: Fired before the current song is closed.
  • app_will_save_document_observable Fired just before the song is saved.
  • app_idle_observable: Fired periodically, useful for low-priority background tasks.

Preferences

Tools can have preferences that are saved and loaded by Renoise. To use them, we first need to create a renoise.Document object which holds the options that we want to store.

Fields in a Renoise Document are defined as Observable types. This is especially handy for settings dialogs, as UI widgets can be directly bound to these observable properties. The UI will automatically update the document, and vice-versa.

Let's see an example of setting up an options object for a tool. Our goal is to have a few settings managed by a Document and a dialog to change them. The tool will be able to randomize the song's BPM and track count.

We will also define a menu entry to open our tool's settings dialog. See the sections on Menu Entries and Custom GUIs for more details.

-- Create a new renoise.Document by supplying a table of default values.
-- Each field will be wrapped in an Observable type (e.g., ObservableBoolean).
-- * a boolean for whether the tool should randomize the BPM
-- * a boolean for randomizing tracks
-- * an integer for the maximum number of tracks
local options = renoise.Document.create("RandomizerToolPreferences") {
  randomize_bpm = true,
  randomize_tracks = false,
  max_tracks = 16
}

-- Once we have our options, we assign the document to our tool's preferences.
renoise.tool().preferences = options

-- Define a randomizer function.
-- When called, it will set a random BPM and add or remove tracks.
local function randomize_song()
  local song = renoise.song()
  -- Use .value to access the underlying value of an Observable
  if options.randomize_bpm.value then
    -- Set BPM to a value between 60 and 180
    song.transport.bpm = 60 + math.random() * 120
  end
  
  if options.randomize_tracks.value then
    -- Figure out how many tracks we want based on the max_tracks option
    local target_count = 1 + math.floor(math.random() * options.max_tracks.value)
    local current_count = song.sequencer_track_count

    if current_count < target_count then
      -- Insert new tracks if there aren't enough
      for i = 1, target_count - current_count do
        song:insert_track_at(current_count)
      end
    else
      -- Remove tracks if there are too many
      for i = 1, current_count - target_count do
        song:delete_track_at(song.sequencer_track_count)
      end
    end
  end
end

-- Define a function to show a custom dialog for our options.
function show_options()
  local vb = renoise.ViewBuilder()

  local dialog_content = vb:column {
    margin = renoise.ViewBuilder.DEFAULT_DIALOG_MARGIN,
    views = {
      -- Add randomize BPM option
      vb:row {
        views = {
          -- Bind our observable value directly to this checkbox
          vb:checkbox {
            bind = options.randomize_bpm
          },
          vb:text {
            text = "Randomize BPM"
          }
        }
      },
      -- Add randomize tracks option
      vb:row {
        views = {
          -- Same for the randomize_tracks boolean
          vb:checkbox {
            bind = options.randomize_tracks
          },
          vb:text {
            text = "Randomize Tracks"
          },
        }
      },
      -- Add max tracks row
      vb:row {
        views = {
          -- For max_tracks, create a valuebox and bind it.
          -- Restrict it to a range of [1..16].
          vb:valuebox {
            min = 1,
            max = 16,
            bind = options.max_tracks
          },
          vb:text {
            text = "Tracks Max"
          }
        }
      },
      -- Add some space
      vb:space{ 
        height = renoise.ViewBuilder.DEFAULT_DIALOG_SPACING
      }, 
      -- Add a button that will execute the randomization
      vb:button {
        text = "Randomize Now",
        notifier = randomize_song
      }
    }
  }
  
  renoise.app():show_custom_dialog(
    "Randomizer Options", dialog_content
  )
end

-- Finally, add a menu entry to open our options dialog.
renoise.tool():add_menu_entry {
  name = "Main Menu:Tools:Randomizer Options...",
  invoke = show_options
}

As you can see, all we had to do was assign our observables to the bind property of the UI controls. Renoise handles the synchronization between the UI and the document automatically.

preferences.xml

When you assign a document to renoise.tool().preferences, Renoise automatically saves its state to a preferences.xml file inside your tool's folder. As long as you use simple data types, you don't have to worry about serialization.

Try restarting Renoise to see that the values you've set in your dialog persist between sessions.

Complex Documents

For more complex applications, or if you prefer an object-oriented approach, you can create a class that inherits from renoise.Document.DocumentNode and register properties in its constructor.

You could rewrite the document creation from the example above like this:

---@class RandomizerToolPreferences : renoise.Document.DocumentNode
---@field randomize_bpm renoise.Document.ObservableBoolean
---@field randomize_tracks renoise.Document.ObservableBoolean
---@field max_tracks renoise.Document.ObservableNumber
class "RandomizerToolPreferences" (renoise.Document.DocumentNode)

function RandomizerToolPreferences:__init()
  renoise.Document.DocumentNode.__init(self)
  -- Register observable properties which will make up our Document
  self:add_property("randomize_bpm", true)
  self:add_property("randomize_tracks", false)
  self:add_property("max_tracks", 16)
end

---@type RandomizerToolPreferences
local options = RandomizerToolPreferences()

renoise.tool().preferences = options

This approach allows you to build more structured and complex preference documents. See the complete Document API for more details on what you can store and how to manage it.

note

This time we also included type annotations (like ---@class RandomizerToolPreferences). These can help you with development when using a Lua language server like LuaLS, but they are not required for the script to run.

File IO & Bits

The Renoise API uses Lua's standard io library to read or write external files.

To access the raw bits and bytes of some data, for example, to read or write binary file streams, you can use the bit library. It's built into the Renoise API, so there's no need to require it.

See the LuaJIT bit library documentation for more info and examples.

-- Reading integer numbers or raw bytes from a file

local function read_word(file)
  local bytes = file:read(2)
  if (not bytes or #bytes < 2) then 
    return nil 
  else
    -- little-endian
    return bit.bor(bytes:byte(1),
      bit.lshift(bytes:byte(2), 8))
  end
end

local function read_dword(file)
  local bytes = file:read(4)
  if (not bytes or #bytes < 4) then 
    return nil 
  else
    -- little-endian
    return bit.bor(bytes:byte(1),
      bit.lshift(bytes:byte(2), 8),
      bit.lshift(bytes:byte(3), 16),
      bit.lshift(bytes:byte(4), 24))  
  end   
end

-- and so on (adapt as needed to deal with endianness!) ...

local file, err = io.open("some_binary_file.bin", "rb")
if not file then
  print("Could not open file: " .. tostring(err))
  return
end

local bytes = file:read(512)

if (not bytes or #bytes < 512) then 
  print("unexpected end of file")
else
  for i = 1, #bytes do
    print(bytes:byte(i))
  end
end
    
print(read_word(file) or "unexpected end of file")
print(read_dword(file) or "unexpected end of file")

file:close()

Sockets

The Renoise API allows you to create network sockets. This can be used to communicate with other devices and applications via UDP and TCP, for example, to send or receive OSC messages.

See the renoise.Socket API for more details.

note

There is no built-in support for encrypted connections. Therefore, using protocols like HTTPS is not directly possible with the socket API in Renoise.

HTTP GET Client

This example creates a TCP socket, connects to a web server, and sends a simple HTTP GET request.

-- Connection will give up after 2 seconds
local connection_timeout = 2000

local client, socket_error = renoise.Socket.create_client(
  "www.renoise.com", 80, renoise.Socket.PROTOCOL_TCP, connection_timeout)
   
if socket_error then 
  renoise.app():show_warning(socket_error)
  return
end

-- Request the root document
local succeeded, socket_error = 
  client:send("GET / HTTP/1.0\r\nHost: www.renoise.com\r\n\r\n")

if (socket_error) then 
  renoise.app():show_warning(socket_error)
  return
end

-- Loop until we get no more data from the server.
-- Note: A robust implementation should parse the HTTP header
-- and use the "Content-Length" to determine when to stop.
local receive_succeeded = false
local receive_content = ""

while (true) do
  -- Timeout for receiving data is 500ms
  local receive_timeout = 500
  
  local message, socket_error = 
    client:receive("*line", receive_timeout)
    
  if (message) then 
    receive_content = receive_content .. message .. "\n"
  else
    if (socket_error == "timeout" or 
        socket_error == "disconnected") 
    then
      -- Could retry on timeout, but we'll just stop in this example.
      receive_succeeded = true
      break
    else
      renoise.app():show_warning(
        "'socket receive' failed with the error: " .. socket_error)
      break
    end
  end
end
  
-- Close the connection if it was not already closed by the server
if (client and client.is_open) then
  client:close()
end

-- Show what we've got
if (receive_succeeded and #receive_content > 0) then
  renoise.app():show_prompt(
    "HTTP GET Response", 
    receive_content, 
    {"OK"}
  )
else
  renoise.app():show_prompt(
    "HTTP GET Response", 
    "Socket receive timeout or no content.", 
    {"OK"}
  ) 
end

Echo UDP Server (using a table as notifier)

local server, socket_error = renoise.Socket.create_server(
  "localhost", 1025, renoise.Socket.PROTOCOL_UDP)
   
if socket_error then 
  renoise.app():show_warning(
     "Failed to start the echo server: " .. socket_error)
else
  server:run {
    ---@param socket_error string
    socket_error = function(socket_error)
      renoise.app():show_warning(socket_error)
    end,
    
    ---@param socket renoise.Socket.SocketClient
    socket_accepted = function(socket)
      print(("client %s:%d connected"):format(
        socket.peer_address, socket.peer_port))
    end,
  
    ---@param socket renoise.Socket.SocketClient
    ---@param message string
    socket_message = function(socket, message)
      print(("client %s:%d sent '%s'"):format(
        socket.peer_address, socket.peer_port,  message))
      -- Simply send the message back      
      socket:send(message)
    end    
  }
end
-- This server will run and echo messages as long as the script is active.

Echo TCP Server (using a class as notifier)

This example allows any address to connect by not specifying an address in create_server.

class "EchoServer"
  function EchoServer:__init(port)
    -- Create a server socket
    local server, socket_error = renoise.Socket.create_server(
      "localhost", port, renoise.Socket.PROTOCOL_TCP)
     
    if socket_error then 
      renoise.app():show_warning(
        "Failed to start the echo server: " .. socket_error)
    else
      -- Start running
      self.server = server
      self.server:run(self)
    end
  end

  ---@param socket_error string
  function EchoServer:socket_error(socket_error)
    renoise.app():show_warning(socket_error)
  end
  
  ---@param socket renoise.Socket.SocketClient
  function EchoServer:socket_accepted(socket)
    print(("client %s:%d connected"):format(
      socket.peer_address, socket.peer_port))
  end

  ---@param message string
  ---@param socket renoise.Socket.SocketClient
  function EchoServer:socket_message(socket, message)
    print(("client %s:%d sent '%s'"):format(
      socket.peer_address, socket.peer_port,  message))
    -- Simply send the message back      
    socket:send(message)
  end
  
-- Create and run the echo server on port 1025
local echo_server = EchoServer(1025)

-- The server will run as long as the script is active or the
-- echo_server object is garbage collected.

MIDI

The Renoise API allows you to access raw MIDI input and output devices from within your tool. You can use this to add features like bi-directional MIDI controller support.

See the renoise.Midi API for more details.

MIDI Input Listener (Function Callback)

-- NOTE: The MIDI device will be closed when this local variable gets garbage
-- collected. Make it global or assign it to a table that is held globally
-- to keep it active.
local midi_device = nil

local inputs = renoise.Midi.available_input_devices()
if not table.is_empty(inputs) then
  -- Use the first available device in this example
  local device_name = inputs[1]
  
  local function midi_callback(message)
    assert(#message == 3)
    assert(message[1] >= 0 and message[1] <= 0xff)
    assert(message[2] >= 0 and message[2] <= 0xff)    
    assert(message[3] >= 0 and message[3] <= 0xff)
    
    print(("%s: got MIDI %X %X %X"):format(device_name, 
      message[1], message[2], message[3]))
  end

  -- The sysex callback is an optional second argument.
  midi_device = renoise.Midi.create_input_device(
    device_name, midi_callback)
  
  -- To stop listening, call: midi_device:close()
end

MIDI Input and SysEx Listener (Class Callbacks)

class "MidiDumper"
  function MidiDumper:__init(device_name)
    self.device_name = device_name
    self.device = nil
  end
  
  function MidiDumper:start()
    self.device = renoise.Midi.create_input_device(
      self.device_name, 
      { self, self.midi_callback }, 
      { self, self.sysex_callback }
    )
  end
  
  function MidiDumper:stop()
    if self.device then 
      self.device:close()
      self.device = nil
    end
  end
  
  function MidiDumper:midi_callback(message)
    print(("%s: MidiDumper got MIDI %X %X %X"):format(
      self.device_name, message[1], message[2], message[3]))
  end

  function MidiDumper:sysex_callback(message)
    print(("%s: MidiDumper got SYSEX with %d bytes"):format(
      self.device_name, #message))
  end
  
-- NOTE: The MIDI device will be closed when this dumper object gets garbage
-- collected. Make it global or assign it to a table that is held globally
-- to keep it active.
local midi_dumper = nil
  
local inputs = renoise.Midi.available_input_devices()

if not table.is_empty(inputs) then
  -- Use the first available device in this example
  local device_name = inputs[1]

  midi_dumper = MidiDumper(device_name)
  -- This will dump MIDI messages until midi_dumper:stop() is called
  -- or the MidiDumper object is garbage collected.
  midi_dumper:start()  
end

MIDI Output

local outputs = renoise.Midi.available_output_devices()
if not table.is_empty(outputs) then
  local device_name = outputs[1]
  local midi_device = renoise.Midi.create_output_device(device_name)
  
  -- Note On
  midi_device:send({ 0x90, 0x10, 0x7F })
  -- SysEx (MMC Start)
  midi_device:send({ 0xF0, 0x7F, 0x00, 0x06, 0x02, 0xF7 })
 
  -- We no longer need the device in this example, so close it.
  midi_device:close()  
end

OSC

The Renoise API allows you to create sockets and provides tools to send and receive Open Sound Control (OSC) data. This enables you to connect your tools to other OSC servers and clients, offering an alternative to MIDI for controlling and interacting with devices like a monome.

See the renoise.Osc and renoise.Socket APIs for more details.

note

Using TCP instead of UDP as the socket protocol would likely require manual SLIP encoding/decoding of OSC message data. This is not handled automatically, so the examples below will only work with UDP servers/clients.

OSC Server (Receiving OSC)

This example creates a UDP server that listens for OSC messages on port 8008.

-- Create some shortcuts
local OscMessage = renoise.Osc.Message
local OscBundle = renoise.Osc.Bundle

-- Open a socket connection to listen for messages
local server, socket_error = renoise.Socket.create_server(
  "localhost", 8008, renoise.Socket.PROTOCOL_UDP)
   
if (socket_error) then 
  renoise.app():show_warning(("Failed to start the " .. 
    "OSC server. Error: '%s'"):format(socket_error))
  return
end

server:run {
  socket_message = function(socket, data)
    -- Decode the binary data to an OSC message or bundle
    local message_or_bundle, osc_error = renoise.Osc.from_binary_data(data)
    
    -- Show what we've got
    if (message_or_bundle) then
      if (type(message_or_bundle) == "Message") then
        print(("Got OSC message: '%s'"):format(tostring(message_or_bundle)))

      elseif (type(message_or_bundle) == "Bundle") then
        print(("Got OSC bundle: '%s'"):format(tostring(message_or_bundle)))
      end
      
      -- Send a reply back to the client
      local reply_message = OscMessage("/renoise/reply", {
        { tag = "s", value = "Thank you for the message!" }
      })
      socket:send(reply_message:to_binary_data())
      
    else
      print(("Got invalid OSC data, or data which is not " .. 
        "OSC data at all. Error: '%s'"):format(osc_error))
    end
  end    
}

-- To shut down the server at any time, call:
-- server:close()

OSC Client (Sending OSC)

This example creates a UDP client to send OSC messages to a server on port 8008.

-- Create some shortcuts
local OscMessage = renoise.Osc.Message
local OscBundle = renoise.Osc.Bundle

-- Create a client to send messages to the server
local client, socket_error = renoise.Socket.create_client(
  "localhost", 8008, renoise.Socket.PROTOCOL_UDP)
   
if (socket_error) then 
  renoise.app():show_warning(("Failed to start the " .. 
    "OSC client. Error: '%s'"):format(socket_error))
  return
end

-- Construct and send a simple message
client:send(
  OscMessage("/transport/start"):to_binary_data()
)

-- Construct and send a message with arguments
client:send(
  OscMessage("/transport/bpm", { 
    { tag = "f", value = 127.5 } 
  }):to_binary_data()
)

-- Construct and send a bundle of messages
local message1 = OscMessage("/some/message")
local message2 = OscMessage("/another/one", { 
  { tag = "b", value = "with some blob data" },
  { tag = "s", value = "and a string" } 
})

client:send(
  OscBundle(os.clock(), { message1, message2 }):to_binary_data()
)

-- Close the client when done
client:close()

SQLite Databases

The Renoise API allows you to create or load SQLite databases. This can be used to either efficiently deal with large data blobs within your tools or to read existing database files from other applications.

See renoise.SQLite for more info.

A quick example on how to open and read from an existing database file:

-- create a new database (rwc = read/write/create)
local db, status, error = renoise.SQLite.open("./some_test.db", "rwc")
-- NB: use renoise.SQLite.open() to create a in-memory db instead
print("Create:", db.is_open, db.error_code, db.error_message)

local sql = [[
  CREATE TABLE numbers(num1,num2,str);
  INSERT INTO numbers VALUES(1,11,"ABC");
  INSERT INTO numbers VALUES(2,22,"DEF");
  INSERT INTO numbers VALUES(3,33,"UVW");
  INSERT INTO numbers VALUES(4,44,"XYZ");
]]

print("Exec:", db:execute(sql))
print("Changes:", db.changes, db.total_changes, db.error_message)

-- read from an existing db using a prepared statement
local db, status, error = renoise.SQLite.open("./test.db", "ro") -- read-only
print("Open:", db.is_open, db.error_code, db.error_message)

local stm = db:prepare("SELECT * from numbers")
print("Read:", stm.columns, stm.unames)

for k in stm:rows() do
 rprint(k) 
end

Renoise Lua API Overview

The 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.

A note about the general API design:

  • Whatever you do with the API, you should never be able to fatally crash Renoise. If you manage to do this, then please file a bug report in our forums so we can fix it. All errors, as stupid they might be, should always result in a clean error message from Lua.

  • The Renoise Lua API also allows global File IO and external program execution (via os.execute()) which can obviously be hazardous. Please be careful with these, as you would with programming in general...

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

  • All classes, functions in the API, are nested in the namespace (Lua table) renoise. E.g: to get the application object, you will have to type renoise.app()

  • The API is object-oriented, and thus split into classes. The references will first note the class name (e.g. renoise.Application), then list its Constants, Properties, Functions and Operators. All properties and functions are always listed with their full path to make it clear where they belong and how to access them.

  • Nearly all functions are actually methods, so you have to invoke them via the colon operator : E.g. renoise.app():show_status("Status Message") If you're new to Lua, this takes a while to get used to. Don't worry, it'll make sense sooner or later. ;)

  • Properties are syntactic sugar for get/set functions. song().comments will invoke a function which returns comments. But not all properties have setters, and thus can only be used as read-only getters. Those are marked as **READ-ONLY**.

  • All exposed objects are read-only (you can not add new fields, properties). In contrast, the classes are not. This means you can extend the API classes with your own helper functions, if needed, but can not add new properties to objects. Objects, like for example the result of song(), are read-only to make it easier to catch typos. song().transport.bmp = 80 will fire an error, because there is no such property 'bmp.' You probably meant song().transport.bpm = 80 here. If you need to store data somewhere, do it in your own tables, objects instead of using the Renoise API objects.

  • some_property, _observable means, that there is also an observer object available for the property. An observable object allows you to attach notifiers (global functions or methods) that will be called as soon as a value has changed. Please see Renoise.Document.API for more info about observables and related classes.

A small example using bpm:

renoise.song().transport.bpm_observable:add_notifier(function()
  print("bpm changed")
end)

-- will print "bpm changed", but only if the bpm was not 120 before
renoise.song().transport.bpm = 120

The above notifier is called when anything changes the bpm, including your script, other scripts, or anything else in Renoise (you've automated the BPM in the song, entered a new BPM value in Renoise's GUI, whatever...)

Lists like renoise.song().tracks[] can also have notifiers. But these will only fire when the list layout has changed: an element was added, removed or elements in the list changed their order. They will not fire when the list values changed. Attach notifiers to the list elements to get such notifications.

  • Can't remember what the name of function XYZ was? In the scripting terminal you can list all methods/properties of API objects (or your own class objects) via the global function oprint(some_object) - e.g. oprint(renoise.song()). To dump the renoise module/class layout, use rprint(renoise).

renoise

Holds all renoise related API functions and classes.

Constants

API_VERSION : number

Currently 6.2. Any changes in the API which are not backwards compatible, will increase the internal API's major version number (e.g. from 1.4 -> 2.0). All other backwards compatible changes, like new functionality, new functions and classes which do not break existing scripts, will increase only the minor version number (e.g. 1.0 -> 1.1).

RENOISE_VERSION : string

Renoise Version "Major.Minor.Revision[AlphaBetaRcVersion][Demo]"


Functions

ViewBuilder()

->renoise.ViewBuilder

Construct a new viewbuilder instance you can use to create views.

app()

->renoise.Application

Global access to the Renoise Application.

song()

->renoise.Song?

Global access to the Renoise Song.

NB: The song instance changes when a new song is loaded or created in Renoise, so tools can not memorize the song instance globally once, but must instead react on the application's new_document_observable observable.

tool()

->renoise.ScriptingTool

Global access to the Renoise Scripting Tool (your XRNX tool).

This is only valid when getting called from a tool and not when e.g. using the scripting terminal and editor in Renoise.

renoise.Application

The Renoise application.


Properties

log_filename : string

READ-ONLY Access to the application's full log filename and path. Will already be opened for writing, but you nevertheless should be able to read from it.

current_song : renoise.Song

READ-ONLY Get the apps main document, the song. The global "renoise.song()" function is, in fact, a shortcut to this property.

recently_loaded_song_files : string[]

READ-ONLY List of recently loaded song files.

recently_saved_song_files : string[]

READ-ONLY List of recently saved song files.

installed_tools : table<string, string>

READ-ONLY Returns information about all currently installed tools.

installed_tools_observable : renoise.Document.Observable

Fired when the list of installed tools changed.

audio_plugin_effects_observable : renoise.Document.Observable

Fired when the list of available audio plugin effects changed, for example when scanning for new plugins in the preferences. Use the component's available_plugins or available_devices properties to access currently available devices which are supported by the component such as the track device chains.

audio_plugin_instruments_observable : renoise.Document.Observable

Fired when the list of available audio plugin instruments changed, for example when scanning for new plugins in the preferences.

key_modifier_states : table<string, string>

Deprecated. READ-ONLY Use key_modifier_flags instead

key_modifier_flags : ModifierFlags

READ-ONLY Access keyboard modifier states.

window : renoise.ApplicationWindow

READ-ONLY Access to the application's window.

theme : renoise.ApplicationTheme

READ-ONLY Access to the application's color theme.

theme_observable : renoise.Document.Observable

Fired, when any theme color changed. e.g. when a new theme got loaded or when theme colors got edited in the theme preferences.

active_clipboard_index : 1 | 2 | 3 | 4

Range: (1 - 4) Get or set globally used clipboard "slots" in the application.


Functions

show_message(self, message : string)

Shows an info message dialog to the user.

show_error(self, message : string)

Shows an error dialog to the user.

show_warning(self, message : string)

Shows a warning dialog to the user.

show_status(self, message : string)

Shows a message in Renoise's status bar to the user.

show_prompt(self, title : string, message : string, button_labels : string[]?)

->label : string

Opens a modal dialog with a title, text and custom button labels. Returns the pressed button label or an empty string when canceled.

show_custom_prompt(self, title : string, content_view : renoise.Views.View, button_labels : string[], key_handler : KeyHandler?, key_handler_options : KeyHandlerOptions?, focus_handler : FocusHandler?)

->label : string

Opens a modal dialog with a title, custom content and custom button labels. See: renoise.ViewBuilder for more info about custom views.

show_custom_dialog(self, title : DialogTitle, content_view : renoise.Views.View, key_handler : KeyHandler?, key_handler_options : KeyHandlerOptions?, focus_handler : FocusHandler?)

->renoise.Dialog

Shows a non modal dialog (a floating tool window) with custom content. When no key_handler is provided, the Escape key is used to close the dialog. See: renoise.ViewBuilder for more info about custom views.

show_menu(self, dialog : renoise.Dialog, menu_entries : DialogMenuEntry[], below_view : renoise.Views.View?)

Shows a custom context menu on top of the given dialog.

When specifying a view, the menu will be shown below the given view instance. The view instance must be part of the dialog that shows the menu and must be visible. By default the menu will be shown at the current mouse cursor position.

prompt_for_path(self, title : DialogTitle)

->path : string

Opens a modal dialog to query an existing directory from the user.

prompt_for_filename_to_read(self, file_extensions : string[], title : DialogTitle)

->path : string

Opens a modal dialog to query a filename and path to read from a file.

prompt_for_multiple_filenames_to_read(self, file_extensions : string[], title : DialogTitle)

->paths : string[]

Same as 'prompt_for_filename_to_read' but allows the user to select more than one file.

prompt_for_filename_to_write(self, file_extension : string, title : DialogTitle)

->path : string

Open a modal dialog to get a filename and path for writing. When an existing file is selected, the dialog will ask whether or not to overwrite it, so you don't have to take care of this on your own.

open_url(self, url : string)

Opens the default internet browser with the given URL. The URL can also be a file that browsers can open (like xml, html files...).

open_path(self, file_path : string)

Opens the default file browser (explorer, finder...) with the given path.

install_tool(self, file_path : string)

Install order update a tool. Any errors are shown to the user during installation. Installing an already existing tool will upgrade the tool without confirmation. Upgraded tools will automatically be re-enabled, if necessary.

uninstall_tool(self, file_path : string)

Uninstall an existing tool. Any errors are shown to the user during uninstallation.

new_song(self)

Create a new song document (will ask the user to save changes if needed). The song is not created immediately, but soon after the call was made and the user did not aborted the operation. In order to continue execution with the new song, attach a notifier to 'renoise.app().new_document_observable' See: renoise.ScriptingTool for more info.

new_song_no_template(self)

Create a new song document, avoiding template XRNS songs (when present) to be loaded. The song is not created immediately, but soon after the call was made and the user did not aborted the operation. In order to continue execution with the new song, attach a notifier to 'renoise.app().new_document_observable' See: renoise.ScriptingTool for more info.

load_song(self, filename : string)

Load a new song document from the given filename (will ask to save changes if needed, any errors are shown to the user). Just like new_song(), the song is not loaded immediately, but soon after the call was made. See 'renoise.app():new_song()' for details.

load_track_device_chain(self, filename : string)

->success : boolean

Load a track device chains into the currently selected track. Any errors during the export are shown to the user.

load_track_device_preset(self, filename : string)

->success : boolean

Load a track device devices into the currently selected track. When no device is selected a new device will be created. Any errors during the export are shown to the user.

load_instrument(self, filename : string)

->success : boolean

Load an instrument into the currently selected instrument. Any errors during the export are shown to the user.

load_instrument_multi_sample(self, filename : string)

->success : boolean

Load an instrument multi sample into the currently selected instrument. Any errors during the export are shown to the user.

load_instrument_device_chain(self, filename : string)

->success : boolean

Load an instrument device chain into the currently selected instrument's device chain. When no device chain is selected, a new one will be created. Any errors during the export are shown to the user.

load_instrument_device_preset(self, filename : string)

->success : boolean

Load an instrument device into the currently selected instrument's device chain's device. When no device is selected, a new one will be created. Any errors during the export are shown to the user.

load_instrument_modulation_set(self, filename : string)

->success : boolean

Load an instrument modulation chain into the currently selected instrument's modulation chain. When no device is selected, a new one will be created. Any errors during the export are shown to the user.

load_instrument_phrase(self, filename : string)

->success : boolean

Load an instrument phrase into the currently selected instrument's phrases. When no phrase is selected, a new one will be created. Any errors during the export are shown to the user.

load_instrument_sample(self, filename : string)

->success : boolean

Load an instrument sample into the currently selected instrument's sample lists. When no sample is selected, a new one will be created. Any errors during the export are shown to the user.

load_theme(self, filename : string)

->success : boolean

Load a new theme file and apply it. Any errors during the export are shown to the user.

save_song(self)

Quicksave or save the current song under a new name. Any errors during the export are shown to the user.

save_song_as(self, filename : string)

Save the current song under a new name. Any errors during the export are shown to the user.

save_track_device_chain(self, filename : string)

->success : boolean

Save a currently selected track device chain to a file with the given name. When no device chain is selected an error is raised. returns success.

save_instrument(self, filename : string)

->success : boolean

Save a currently selected instrument to a file with the given name. When no instruemnt is selected an error is raised. returns success.

save_instrument_multi_sample(self, filename : string)

->success : boolean

Save a currently selected instrument multi sample file to a file with the given name. When no instrument is selected an error is raised. returns success.

save_instrument_device_chain(self, filename : string)

->success : boolean

Save a currently selected instrument's device chain to a file with the given name. When no chain is selected an error is raised. returns success.

save_instrument_modulation_set(self, filename : string)

->success : boolean

Save a currently selected instrument's modulation set to a file with the given name. When no modulation is selected an error is raised. returns success.

save_instrument_phrase(self, filename : string)

->success : boolean

Save a currently selected instrument's phrase to a file with the given name. When no phrase is selected an error is raised. returns success.

save_instrument_sample(self, filename : string)

->success : boolean

Save a currently selected instrument's sample to a file with the given name. When no sample is selected an error is raised. returns success.

save_theme(self, filename : string)

->success : boolean

Save a current theme to a file with the given name. returns success.


Structs

DialogMenuEntry

Defines a custom menu entry, shown in custom dialog windows.

Separating entries: To divide entries into groups prepend one or more dashes to the name:

---First Group Item
Regular item

To create sub menus, define entries with a common path, using a colon as separator:

Main Menu Item
Sub Menu:Sub Menu Item 1
Sub Menu:Sub Menu Item 2

To insert a script menu entry into an existing context menu, see ToolMenuEntry.


Properties

name : string

Name and optional path of the menu entry

invoke : fun()

A function that is called as soon as the entry is clicked

active : boolean?

Default: true. When false, the action will not be invoked and will be "greyed out".

selected : boolean?

Default: false. When true, the entry will be marked as "this is a selected option"

KeyEvent


Properties

name : string

name of the key, like 'esc' or 'a'

modifiers : ModifierStates

Deprecated. Use modifier_flags instead READ-ONLY the held down modifiers as a string

modifier_flags : ModifierFlags

READ-ONLY the held down modifiers as flags

character : string?

possible character representation of the key

note : integer?

virtual keyboard piano key value (starting from 0)

state : "pressed" | "released"

only present if send_key_release was set to true

repeated : boolean?

only present if send_key_repeat was set to true


Aliases

ModifierFlags

{ alt : boolean, control : boolean, meta : boolean, shift : boolean }

The currently pressed/release key's modifiers as platform independent flags. On macOS "control" is their "Command" key and the "meta" keyboard is the "Control" key. On Windows the "meta" key is the "Windows" key and on Linux the "Super" key.

ModifierStates

string

Deprecated. Use ModifierFlags instead.

The modifier keys will be provided as a string. Possible keys are dependent on the platform

  • Windows : "shift", "alt", "control", "winkey"
  • Linux : "shift", "alt", "control", "meta"
  • Mac : "shift", "option", "control", "command". If multiple modifiers are held down, the string will be formatted as " + " Their order will correspond to the following precedence shift + alt/option + control + winkey/meta/command If no modifier is pressed, this will be an empty string.

KeyHandlerOptions


Properties

send_key_repeat : boolean?

Default: true

send_key_release : boolean?

Default: false


Aliases

DialogTitle

string

The title that shows up at the title-bar of the dialog.

FocusHandler

(dialogs : renoise.Dialog, focused : boolean) -> KeyEvent?

Optional focus change notifier for a custom dialog. Will be called when the dialog gains of loses key focus. You maybe want to initialize your dloag's (modifier) keyboard states here.

KeyHandler

(dialog : renoise.Dialog, key_event : KeyEvent) -> KeyEvent?

Optional keyhandler to process key events on a custom dialog. When returning the passed key from the key-handler function, the key will be passed back to Renoise's key event chain, in order to allow processing global Renoise key-bindings from your dialog. This will not work for modal dialogs. This also only applies to global shortcuts in Renoise, because your dialog will steal the focus from all other Renoise views such as the Pattern Editor, etc.

ModifierFlags

{ alt : boolean, control : boolean, meta : boolean, shift : boolean }

The currently pressed/release key's modifiers as platform independent flags. On macOS "control" is their "Command" key and the "meta" keyboard is the "Control" key. On Windows the "meta" key is the "Windows" key and on Linux the "Super" key.

ModifierStates

string

Deprecated. Use ModifierFlags instead.

The modifier keys will be provided as a string. Possible keys are dependent on the platform

  • Windows : "shift", "alt", "control", "winkey"
  • Linux : "shift", "alt", "control", "meta"
  • Mac : "shift", "option", "control", "command". If multiple modifiers are held down, the string will be formatted as " + " Their order will correspond to the following precedence shift + alt/option + control + winkey/meta/command If no modifier is pressed, this will be an empty string.

renoise.ApplicationTheme

Application's theme colors and other general color theme properties.

Note: All properties and functions of the app theme are read-only, so the theme can't be modified here. Use the app's renoise.Application:load_theme function to load and apply new themes instead.

Accessing colors and theme properties can be useful in custom viewbuilder widgets.


Properties

colors : { [ThemeColor]: RGBColor }

READ-ONLY Get all theme colors in a flat list of RGBColors. Color table keys are string identifiers as used in the theme XML file, but in lower case.

Note that if you only need to access a single color from the theme, use renoise.app().theme.color(color_name) instead.

To get notified of color changes, use renoise.app().theme_observable

knob_shade : number

READ-ONLY Get theme's knob shade setting. Range: (1 - 2)

knob_shade_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

body_shade : number

READ-ONLY Get theme's body shade setting. Range: (1 - 2)

body_shade_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

contrast : number

READ-ONLY Get theme's contrast setting. Range: (-0.5 - 0.5)

contrast_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

texture_set : string

READ-ONLY Get theme's texture set name

texture_set_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.


Functions

color(self, color_name : ThemeColor)

->RGBColor

Get a single color from the theme using a color identifier as used in the theme XML file - but in lower case.

e.g. to access the button background color from the theme, use renoise.app().theme.color("button_back")

To get notified of color changes, use renoise.app().theme_observable

-- The application theme's colors
color_name:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

Aliases

RGBColor

{ 1 : integer, 2 : integer, 3 : integer }

A table of 3 bytes (ranging from 0 to 255) representing the red, green and blue channels of a color. {0xFF, 0xFF, 0xFF} is white {165, 73, 35} is the red from the Renoise logo

ThemeColor

"alternate_main_back" | "alternate_main_font" | "automation_grid" | "automation_line_edge" | "automation_line_fill" | "automation_marker_diamond" | "automation_marker_pair" | "automation_marker_play" | "automation_marker_single" | "automation_point" | "body_back" | "body_font" | "button_back" | "button_font" | "button_highlight_font" | "default_color_01" | "default_color_02" | "default_color_03" | "default_color_04" | "default_color_05" | "default_color_06" | "default_color_07" | "default_color_08" | "default_color_09" | "default_color_10" | "default_color_11" | "default_color_12" | "default_color_13" | "default_color_14" | "default_color_15" | "default_color_16" | "folder" | "main_back" | "main_font" | "midi_mapping_back" | "midi_mapping_font" | "pattern_centerbar_back" | "pattern_centerbar_back_standby" | "pattern_centerbar_font" | "pattern_centerbar_font_standby" | "pattern_default_back" | "pattern_default_font" | "pattern_default_font_delay" | "pattern_default_font_dspfx" | "pattern_default_font_global" | "pattern_default_font_other" | "pattern_default_font_panning" | "pattern_default_font_pitch" | "pattern_default_font_unused" | "pattern_default_font_volume" | "pattern_highlighted_back" | "pattern_highlighted_font" | "pattern_highlighted_font_delay" | "pattern_highlighted_font_dspfx" | "pattern_highlighted_font_global" | "pattern_highlighted_font_other" | "pattern_highlighted_font_panning" | "pattern_highlighted_font_pitch" | "pattern_highlighted_font_unused" | "pattern_highlighted_font_volume" | "pattern_mute_state" | "pattern_playposition_back" | "pattern_playposition_font" | "pattern_selection" | "pattern_standby_selection" | "scrollbar" | "selected_button_back" | "selected_button_font" | "selection_back" | "selection_font" | "slider" | "standby_selection_back" | "standby_selection_font" | "strong_body_font" | "tooltip_back" | "tooltip_font" | "valuebox_back" | "valuebox_font" | "valuebox_font_icons" | "vumeter_back_clipped" | "vumeter_back_normal" | "vumeter_meter" | "vumeter_meter_high" | "vumeter_meter_low" | "vumeter_meter_middle" | "vumeter_peak"

-- The application theme's colors
ThemeColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

renoise.ApplicationWindow

Application window and general UI properties of the Renoise app.

Constants

UpperFrame

{
    UPPER_FRAME_TRACK_SCOPES: integer = 1,
    UPPER_FRAME_MASTER_SPECTRUM: integer = 2,
}

MiddleFrame

{
    MIDDLE_FRAME_PATTERN_EDITOR: integer = 1,
    MIDDLE_FRAME_MIXER: integer = 2,
    MIDDLE_FRAME_INSTRUMENT_PHRASE_EDITOR: integer = 3,
    MIDDLE_FRAME_INSTRUMENT_SAMPLE_KEYZONES: integer = 4,
    MIDDLE_FRAME_INSTRUMENT_SAMPLE_EDITOR: integer = 5,
    MIDDLE_FRAME_INSTRUMENT_SAMPLE_MODULATION: integer = 6,
    MIDDLE_FRAME_INSTRUMENT_SAMPLE_EFFECTS: integer = 7,
    MIDDLE_FRAME_INSTRUMENT_PLUGIN_EDITOR: integer = 8,
    MIDDLE_FRAME_INSTRUMENT_MIDI_EDITOR: integer = 9,
}

LowerFrame

{
    LOWER_FRAME_TRACK_DSPS: integer = 1,
    LOWER_FRAME_TRACK_AUTOMATION: integer = 2,
}

DiskBrowserCategory

{
    DISK_BROWSER_CATEGORY_SONGS: integer = 1,
    DISK_BROWSER_CATEGORY_INSTRUMENTS: integer = 2,
    DISK_BROWSER_CATEGORY_SAMPLES: integer = 3,
    DISK_BROWSER_CATEGORY_OTHER: integer = 4,
}

InstrumentBoxSlotSize

{
    INSTRUMENT_BOX_SLOT_SIZE_SMALL: integer = 1,
    INSTRUMENT_BOX_SLOT_SIZE_MEDIUM: integer = 2,
    INSTRUMENT_BOX_SLOT_SIZE_LARGE: integer = 3,
}

MixerFader

{
    MIXER_FADER_TYPE_24DB: integer = 1,
    MIXER_FADER_TYPE_48DB: integer = 2,
    MIXER_FADER_TYPE_96DB: integer = 3,
    MIXER_FADER_TYPE_LINEAR: integer = 4,
}

Properties

fullscreen : boolean

Get/set if the application is running fullscreen.

is_maximized : boolean

READ-ONLY. Window status flag.

is_minimized : boolean

READ-ONLY. Window status flag.

lock_keyboard_focus : boolean

When true, the middle frame views (like the pattern editor) will stay focused unless alt or middle mouse is clicked.

sample_record_dialog_is_visible : boolean

Dialog for recording new samples, floating above the main window.

disk_browser_is_visible : boolean

Diskbrowser Panel.

disk_browser_is_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

disk_browser_category : renoise.ApplicationWindow.DiskBrowserCategory

disk_browser_category_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

instrument_box_is_visible : boolean

InstrumentBox

instrument_box_is_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

instrument_box_slot_size : renoise.ApplicationWindow.InstrumentBoxSlotSize

InstrumentBox slot size

instrument_box_slot_size_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

instrument_editor_is_detached : boolean

Instrument Editor detaching.

instrument_editor_is_detached_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

instrument_properties_is_visible : boolean

InstrumentProperties (below InstrumentBox)

instrument_properties_is_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

instrument_properties_show_volume_transpose : boolean

instrument_properties_show_trigger_options : boolean

instrument_properties_show_scale_options : boolean

instrument_properties_show_plugin : boolean

instrument_properties_show_plugin_program : boolean

instrument_properties_show_midi : boolean

instrument_properties_show_midi_program : boolean

instrument_properties_show_macros : boolean

instrument_properties_show_phrases : boolean

sample_properties_is_visible : boolean

SampleProperties (below SampleNavigator)

sample_properties_is_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

mixer_view_is_detached : boolean

Mixer View detaching.

mixer_view_is_detached_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

upper_frame_is_visible : boolean

Frame with the scopes/master spectrum...

upper_frame_is_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

active_upper_frame : renoise.ApplicationWindow.UpperFrame

active_upper_frame_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

active_middle_frame : renoise.ApplicationWindow.MiddleFrame

Frame with the pattern editor, mixer...

active_middle_frame_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

lower_frame_is_visible : boolean

Frame with the DSP chain view, automation, etc.

lower_frame_is_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

active_lower_frame : renoise.ApplicationWindow.LowerFrame

active_lower_frame_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

right_frame_is_visible : boolean

Frame with Disk Browser and Instrument Box.

right_frame_is_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

pattern_matrix_is_visible : boolean

Pattern matrix, visible in pattern editor and mixer only...

pattern_matrix_is_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

pattern_advanced_edit_is_visible : boolean

Pattern advanced edit, visible in pattern editor only...

pattern_advanced_edit_is_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

mixer_view_post_fx : boolean

Mixer views Pre/Post volume setting.

mixer_view_post_fx_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

mixer_fader_type : renoise.ApplicationWindow.MixerFader

Mixer fader type setting.

mixer_fader_type_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.


Functions

maximize(self)

Expand the window over the entire screen, without hiding menu bars, docks and so on.

minimize(self)

Minimize the window to the dock or taskbar, depending on the OS.

restore(self)

"un-maximize" or "un-minimize" the window, or just bring it to front.

select_preset(self, preset_index : integer)

Select/activate one of the global view presets, to memorize/restore the user interface layout.

renoise.AudioDevice

Audio DSP device in tracks or sample device chains.


Properties

name : string

READ-ONLY

short_name : string

READ-ONLY

display_name : string

Configurable device display name. When empty name is displayed.

display_name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active : boolean

!active = bypassed

is_active_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_maximized : boolean

Maximize state in DSP chain.

is_maximized_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

active_preset : integer

0 when none is active or available

active_preset_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

active_preset_data : string

raw serialized data in XML format of the active preset

presets : string[]

READ-ONLY preset names

is_active_parameter : renoise.DeviceParameter

READ-ONLY

parameters : renoise.DeviceParameter[]

READ-ONLY

external_editor_available : boolean

READ-ONLY Returns whether or not the device provides its own custom GUI (only available for some plugin devices)

external_editor_visible : boolean

true to show the editor, false to close it

device_path : string

READ-ONLY Returns a string that uniquely identifies the device, from available_devices. The string can be passed into: renoise.song().tracks[]:insert_device_at()


Functions

preset(self, index : integer)

->preset_name : string

Access to a single preset name by index. Use properties 'presets' to iterate over all presets and to query the presets count. comment

parameter(self, index : integer)

->renoise.DeviceParameter

Access to a single parameter by index. Use properties 'parameters' to iterate over all parameters and to query the parameter count.

renoise.DeviceParameter

A single parameter within an audio DSP effect (renoise.AudioDevice)

Constants

Polarity

{
    POLARITY_UNIPOLAR: integer = 1,
    POLARITY_BIPOLAR: integer = 2,
}

Properties

name : string

READ-ONLY

name_observable : renoise.Document.ObservableString

polarity : renoise.DeviceParameter.Polarity

READ-ONLY

value_min : number

READ-ONLY

value_max : number

READ-ONLY

value_quantum : number

READ-ONLY

value_default : number

READ-ONLY

time_quantum : number

READ-ONLY

is_automatable : boolean

READ-ONLY

is_automated : boolean

READ-ONLY Is automated. Not valid for parameters of instrument devices.

is_automated_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_midi_mapped : boolean

READ-ONLY Parameter has a custom MIDI mapping in the current song.

is_midi_mapped_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

show_in_mixer : boolean

Show in mixer. Not valid for parameters of instrument devices.

show_in_mixer_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

value : number

value in Range: (value_min - value_max)

value_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

value_string : string

value_string_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.


Functions

record_value(self, value : number)

Set a new value and write automation when the MIDI mapping "record to automation" option is set. Only works for parameters of track devices, not for instrument devices.

renoise.Dialog

A custom dialog created via the scripting API. Dialogs can be created via renoise.app():show_custom_dialog.

See create custom views on top of the renoise.ViewBuilder docs on how to create views for the dialog.


Properties

visible : boolean

READ-ONLY Check if a dialog is alive and visible.

focused : boolean

READ-ONLY Check if a dialog is visible and is the key window.


Functions

show(self)

Bring an already visible dialog to front and make it the key window.

close(self)

Close a visible dialog.

renoise.Document

renoise.Document classes are wrappers for Renoise's internal document classes.

Please note: the Lua wrappers are not really "the Lua way" of solving and expressing things. e.g: there's no support for mixed types in lists, tuples at the moment.

Documents can be serialized from/to XML, just like Renoise's internal document and are observable.

An empty document (node) object can be created via renoise.Document.create("MyDoc"){}

Such document objects can then be extended with the document's add_property function. Existing properties can also be removed again with the remove_property function.

examples:

-- Creates an empty document, using "MyDoc" as the model name (a type name)
local my_document = renoise.Document.create("MyDoc"){ }
-- adds a number to the document with the initial value 1
my_document:add_property("value1", 1)
-- adds a string
my_document:add_property("value2", "bla")
-- create another document and adds it
local node = renoise.Document.create("MySubDoc"){ }
node:add_property("another_value", 1)
-- add another already existing node
my_document:add_property("nested_node", node)
-- removes a previously added node
my_document:remove_property(node)
-- access properties
local value1 = my_document.value1
value1 = my_document:property("value1")

As an alternative to renoise.Document.create, you can also inherit from renoise.Document.DocumentNode in order to create your own document classes. This is especially recommended when dealing with more complex docs, because you can also use additional methods to deal with your properties, the data.

examples:

class "MyDocument" (renoise.Document.DocumentNode)
  function MyDocument:__init()
    -- important! call super first
    renoise.Document.DocumentNode.__init(self)
    -- add properties to construct the document model
    self:add_property("age", 1)
    self:add_property("name", renoise.Document.ObservableString("value"))
    -- other doc renoise.Document.DocumentNode object
    self:add_property("sub_node", MySubNode())
    -- list of renoise.Document.DocumentNode objects
    self:add_property("doc_list", renoise.Document.DocumentList())
    -- or the create() way:
    self:add_properties {
      something = "else"
    }
  end

Instantiating such custom document objects can then be done by simply calling the constructor:

my_document = MyDocument()
-- do something with my_document, load/save, add/remove more properties

Functions

create(model_name : string)

->(properties : ObservableProperties) -> renoise.Document.DocumentNode

Create an empty DocumentNode or a DocumentNode that is modeled after the passed key value table. "model_name" will be used to identify the documents type when loading/saving. It also allows you to instantiate new document objects (see renoise.Document.instantiate).

examples:

my_document = renoise.Document.create("MyDoc") {
  age = 1,
  name = "bla", -- implicitly specify a property type
  is_valid = renoise.Document.ObservableBoolean(false), -- or explicitly
  age_list = {1, 2, 3},
  another_list = renoise.Document.ObservableNumberList(),
  sub_node = {
    sub_value1 = 2,
    sub_value2 = "bla2"
  }
}

This will create a document node which is !modeled! after the the passed table. The table is not used internally by the document after construction, and will only be referenced to construct new instances. Also note that you need to assign values for all passed table properties in order to automatically determine it's type, or specify the types explicitly -> renoise.Document.ObservableXXX().

The passed name ("MyDoc" in the example above) is used to identify the document when loading/saving it (loading a XML file which was saved with a different model will fail) and to generally specify the "type".

Additionally, once "create" is called, you can use the specified model name to create new instances.

examples:

-- create a new instance of "MyDoc"
my_other_document = renoise.Document.instantiate("MyDoc")

instantiate(model_name : string)

->renoise.Document.DocumentNode

Create a new instance of the given document model. Given model_name must have been registered with renoise.Document.create before.


Aliases

DocumentMember

renoise.Document.DocumentList | renoise.Document.DocumentNode | renoise.Document.Observable | renoise.Document.ObservableList

Track changes to document properties or general states by attaching listener functions to it.

ListElementAdded

{ index : integer, type : "insert" }

ListElementChange

ListElementAdded | ListElementRemoved | ListElementsSwapped

ListElementRemoved

{ index : integer, type : "removed" }

ListElementsSwapped

{ index1 : integer, index2 : integer, type : "swapped" }

ListNotifierFunction

(change : ListElementChange)

ListNotifierMemberContext

table | userdata

NotifierFunction

fun()

NotifierMemberContext

table | userdata

ObservableProperties

table<string, ObservableTypes | renoise.Document.DocumentList | renoise.Document.DocumentNode>

ObservableTypes

boolean | string | number | boolean[] | number[] | string[]

renoise.Document.DocumentList

A document list is a document sub component which may contain other document nodes in an observable list.

example:

-- our goal here is to have a document that contains a list of documents
-- which can loaded as preferences for our tool
--
-- define a class model for our complex type for document items in the list
-- so that Renoise knows how to load it later our entries will have
renoise.Document.create("Entry") {
  name = renoise.Document.ObservableString(),
  path = renoise.Document.ObservableString(),
}

-- create new entry instances with the given data
function create_entry(name, path)
  local entry = renoise.Document.instantiate("Entry")
  entry.name.value = name
  entry.path.value = path
  return entry
end

-- define a class model for our preferences which is using a list of entries
renoise.Document.create("MyPreferences") {
  list = renoise.Document.DocumentList()
}

-- assign a fresh instance of our main document as preferences
local preferences = renoise.Document.instantiate("MyPreferences")
renoise.tool().preferences = preferences

-- insert elements into the list using :insert(index, element)
-- we call our helper to create an instance of Entry
preferences.list:insert(1, create_entry("some name", "some/path"))

-- access entries by using :property(index)
print(preferences.list:property(1).name)

-- get the size of the list (you can use :size() as well)
print(#preferences.list)

-- loop over the list to print all entries
for i = 1, #preferences.list do
  local entry = preferences.list:property(i)
  print(i)
  print(entry.name)
  print(entry.path)
end

-- try reloading your tool to see the list get bigger

Functions

size(self)

->integer

Returns the number of entries of the list.

property(self, index : integer)

->renoise.Document.DocumentNode?

List item access by index. returns nil for non existing items.

find(self, start_pos : integer, value : renoise.Document.DocumentNode)

->integer?

Find a value in the list by comparing the list values with the passed value. The first successful match is returned. When no match is found, nil is returned.

insert(self, pos : integer, value : renoise.Document.DocumentNode)

->renoise.Document.DocumentNode

Insert a new item to the end of the list when no position is specified, or at the specified position. Returns the newly created and inserted Observable.

remove(self, pos : integer)

Removes an item (or the last one if no index is specified) from the list.

swap(self, pos1 : integer, pos2 : integer)

Swaps the positions of two items without adding/removing the items.

With a series of swaps you can move the item from/to any position.

has_notifier(self, notifier : ListNotifierFunction)

Checks if the given function, method was already registered as notifier.

add_notifier(self, notifier : ListNotifierFunction)

Register a function or method as a notifier, which will be called as soon as the document lists layout changed. The passed notifier can either be a function or a table with a function and some context (an "object") -> method.

remove_notifier(self, notifier : ListNotifierFunction | ListNotifierMemberContext)

Unregister a previously registered list notifier. When only passing an object, all notifier functions that match the given object will be removed. This will not fire errors when no methods for the given object are attached. Trying to unregister a function or method which wasn't registered, will resolve into an error.


Aliases

ListElementAdded

{ index : integer, type : "insert" }

ListElementChange

ListElementAdded | ListElementRemoved | ListElementsSwapped

ListElementRemoved

{ index : integer, type : "removed" }

ListElementsSwapped

{ index1 : integer, index2 : integer, type : "swapped" }

ListNotifierFunction

(change : ListElementChange)

ListNotifierMemberContext

table | userdata

renoise.Document.DocumentNode

A document node is a sub component in a document which contains other documents or observables.


Functions

__init(self)

Base constructor, only necessary to be called in your custom class constructor, when inheriting from renoise.Document.DocumentNode.

has_property(self, property_name : string)

->boolean

Check if the given property exists.

property(self, property_name : string)

->DocumentMember?

Access a property by name. Returns the property, or nil when there is no such property.

add_property(self, name : string, value : renoise.Document.DocumentNode)

->renoise.Document.DocumentNode

Add a new property. Name must be unique: overwriting already existing properties with the same name is not allowed and will fire an error. If you want to replace a property, remove it first, then add it again.

add_properties(self, properties : ObservableProperties)

Add a batch of properties in one go, similar to renoise.Document.create.

remove_property(self, value : DocumentMember)

Remove a previously added property. Property must exist.

In order to remove a value by it's key, use my_document:remove_property(my_document["some_member"])

save_as(self, file_name : string)

->success : boolean, error : string?

Save the whole document tree to an XML file. Overwrites all contents of the file when it already exists.

load_from(self, file_name : string)

->success : boolean, error : string?

Load the document tree from an XML file. This will NOT create new properties, except for list items, but will only assign existing property values in the document node with existing property values from the XML. This means: nodes that only exist in the XML will silently be ignored. Nodes that only exist in the document, will not be altered in any way. The loaded document's type must match the document type that saved the XML data. A document's type is specified in the renoise.Document.create() function as "model_name". For classes which inherit from renoise.Document.DocumentNode it's the class name.

to_string(self)

->string

Serialize the whole document tree to a XML string.

from_string(self, string : string)

->success : boolean, error : string?

Parse document tree from the given string data. See renoise.Document.DocumentNode:load_from for details about how properties are parsed and errors are handled.


Aliases

DocumentMember

renoise.Document.DocumentList | renoise.Document.DocumentNode | renoise.Document.Observable | renoise.Document.ObservableList

Track changes to document properties or general states by attaching listener functions to it.

ListElementAdded

{ index : integer, type : "insert" }

ListElementChange

ListElementAdded | ListElementRemoved | ListElementsSwapped

ListElementRemoved

{ index : integer, type : "removed" }

ListElementsSwapped

{ index1 : integer, index2 : integer, type : "swapped" }

ListNotifierFunction

(change : ListElementChange)

ListNotifierMemberContext

table | userdata

NotifierFunction

fun()

NotifierMemberContext

table | userdata

ObservableProperties

table<string, ObservableTypes | renoise.Document.DocumentList | renoise.Document.DocumentNode>

ObservableTypes

boolean | string | number | boolean[] | number[] | string[]

renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.


Functions

has_notifier(self, notifier : NotifierFunction)

->boolean

Checks if the given function, method was already registered as notifier.

add_notifier(self, notifier : NotifierFunction)

Register a function or method as a notifier, which will be called as soon as the observable's value changed. The passed notifier can either be a function or a table with a function and some context (an "object") -> method.

examples:

renoise.song().transport.bpm_observable:add_notifier(function()
  print("BPM changed")
end)

local my_context = { bpm_changes = 0, something_else = "bla" }
renoise.song().transport.bpm_observable:add_notifier({
  my_context,
  function(context)
    context.bpm_changes = context.bpm_changes + 1;
    print(("#BPM changes: %s"):format(context.bpm_changes));
  end
})

remove_notifier(self, notifier : NotifierFunction | NotifierMemberContext)

Unregister a previously registered notifier. When only passing an object, all notifier functions that match the given object will be removed. This will not fire errors when no methods for the given object are attached. Trying to unregister a function or method which wasn't registered, will resolve into an error.


Aliases

NotifierFunction

fun()

NotifierMemberContext

table | userdata

renoise.Document.ObservableBang

Observable without a value which sends out notifications when "banging" it.


Functions

has_notifier(self, notifier : NotifierFunction)

->boolean

Checks if the given function, method was already registered as notifier.

add_notifier(self, notifier : NotifierFunction)

Register a function or method as a notifier, which will be called as soon as the observable's value changed. The passed notifier can either be a function or a table with a function and some context (an "object") -> method.

examples:

renoise.song().transport.bpm_observable:add_notifier(function()
  print("BPM changed")
end)

local my_context = { bpm_changes = 0, something_else = "bla" }
renoise.song().transport.bpm_observable:add_notifier({
  my_context,
  function(context)
    context.bpm_changes = context.bpm_changes + 1;
    print(("#BPM changes: %s"):format(context.bpm_changes));
  end
})

remove_notifier(self, notifier : NotifierFunction | NotifierMemberContext)

Unregister a previously registered notifier. When only passing an object, all notifier functions that match the given object will be removed. This will not fire errors when no methods for the given object are attached. Trying to unregister a function or method which wasn't registered, will resolve into an error.

bang(self)

fire a notification, calling all registered notifiers.


Aliases

NotifierFunction

fun()

NotifierMemberContext

table | userdata

renoise.Document.ObservableBoolean


Properties

value : boolean

Read/write access to the value of an observable.


Functions

has_notifier(self, notifier : NotifierFunction)

->boolean

Checks if the given function, method was already registered as notifier.

add_notifier(self, notifier : NotifierFunction)

Register a function or method as a notifier, which will be called as soon as the observable's value changed. The passed notifier can either be a function or a table with a function and some context (an "object") -> method.

examples:

renoise.song().transport.bpm_observable:add_notifier(function()
  print("BPM changed")
end)

local my_context = { bpm_changes = 0, something_else = "bla" }
renoise.song().transport.bpm_observable:add_notifier({
  my_context,
  function(context)
    context.bpm_changes = context.bpm_changes + 1;
    print(("#BPM changes: %s"):format(context.bpm_changes));
  end
})

remove_notifier(self, notifier : NotifierFunction | NotifierMemberContext)

Unregister a previously registered notifier. When only passing an object, all notifier functions that match the given object will be removed. This will not fire errors when no methods for the given object are attached. Trying to unregister a function or method which wasn't registered, will resolve into an error.

to_string(self)

->string

Serialize an object to a string.

from_string(self, string : any)

->string

Assign the object's value from a string - when possible. Errors are silently ignored.


Aliases

NotifierFunction

fun()

NotifierMemberContext

table | userdata

renoise.Document.ObservableBooleanList

A observable list of boolean values.


Functions

to_string(self)

->string

Serialize an object to a string.

from_string(self, string : any)

->string

Assign the object's value from a string - when possible. Errors are silently ignored.

size(self)

->integer

Returns the number of entries of the list.

has_notifier(self, notifier : ListNotifierFunction)

Checks if the given function, method was already registered as notifier.

add_notifier(self, notifier : ListNotifierFunction)

Register a function or method as a notifier, which will be called as soon as the observable lists layout changed. The passed notifier can either be a function or a table with a function and some context (an "object") -> method.

remove_notifier(self, notifier : ListNotifierFunction | ListNotifierMemberContext)

Unregister a previously registered list notifier. When only passing an object, all notifier functions that match the given object will be removed. This will not fire errors when no methods for the given object are attached. Trying to unregister a function or method which wasn't registered, will resolve into an error.

property(self, index : integer)

->renoise.Document.ObservableBoolean?

List item access by index. returns nil for non existing items.

find(self, start_pos : integer, value : boolean)

->integer?

Find a value in the list by comparing the list values with the passed value. The first successful match is returned. When no match is found, nil is returned.

insert(self, pos : integer, value : boolean)

->renoise.Document.ObservableBoolean

Insert a new item to the end of the list when no position is specified, or at the specified position. Returns the newly created and inserted Observable.

remove(self, pos : integer)

Removes an item (or the last one if no index is specified) from the list.

swap(self, pos1 : integer, pos2 : integer)

Swaps the positions of two items without adding/removing the items.

With a series of swaps you can move the item from/to any position.


Aliases

ListElementAdded

{ index : integer, type : "insert" }

ListElementChange

ListElementAdded | ListElementRemoved | ListElementsSwapped

ListElementRemoved

{ index : integer, type : "removed" }

ListElementsSwapped

{ index1 : integer, index2 : integer, type : "swapped" }

ListNotifierFunction

(change : ListElementChange)

ListNotifierMemberContext

table | userdata

renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).


Functions

size(self)

->integer

Returns the number of entries of the list.

has_notifier(self, notifier : ListNotifierFunction)

Checks if the given function, method was already registered as notifier.

add_notifier(self, notifier : ListNotifierFunction)

Register a function or method as a notifier, which will be called as soon as the observable lists layout changed. The passed notifier can either be a function or a table with a function and some context (an "object") -> method.

remove_notifier(self, notifier : ListNotifierFunction | ListNotifierMemberContext)

Unregister a previously registered list notifier. When only passing an object, all notifier functions that match the given object will be removed. This will not fire errors when no methods for the given object are attached. Trying to unregister a function or method which wasn't registered, will resolve into an error.


Aliases

ListElementAdded

{ index : integer, type : "insert" }

ListElementChange

ListElementAdded | ListElementRemoved | ListElementsSwapped

ListElementRemoved

{ index : integer, type : "removed" }

ListElementsSwapped

{ index1 : integer, index2 : integer, type : "swapped" }

ListNotifierFunction

(change : ListElementChange)

ListNotifierMemberContext

table | userdata

renoise.Document.ObservableNumber


Properties

value : number

Read/write access to the value of an Observable.


Functions

has_notifier(self, notifier : NotifierFunction)

->boolean

Checks if the given function, method was already registered as notifier.

add_notifier(self, notifier : NotifierFunction)

Register a function or method as a notifier, which will be called as soon as the observable's value changed. The passed notifier can either be a function or a table with a function and some context (an "object") -> method.

examples:

renoise.song().transport.bpm_observable:add_notifier(function()
  print("BPM changed")
end)

local my_context = { bpm_changes = 0, something_else = "bla" }
renoise.song().transport.bpm_observable:add_notifier({
  my_context,
  function(context)
    context.bpm_changes = context.bpm_changes + 1;
    print(("#BPM changes: %s"):format(context.bpm_changes));
  end
})

remove_notifier(self, notifier : NotifierFunction | NotifierMemberContext)

Unregister a previously registered notifier. When only passing an object, all notifier functions that match the given object will be removed. This will not fire errors when no methods for the given object are attached. Trying to unregister a function or method which wasn't registered, will resolve into an error.

to_string(self)

->string

Serialize an object to a string.

from_string(self, string : any)

->string

Assign the object's value from a string - when possible. Errors are silently ignored.


Aliases

NotifierFunction

fun()

NotifierMemberContext

table | userdata

renoise.Document.ObservableNumberList

A observable list of number values.


Functions

to_string(self)

->string

Serialize an object to a string.

from_string(self, string : any)

->string

Assign the object's value from a string - when possible. Errors are silently ignored.

size(self)

->integer

Returns the number of entries of the list.

has_notifier(self, notifier : ListNotifierFunction)

Checks if the given function, method was already registered as notifier.

add_notifier(self, notifier : ListNotifierFunction)

Register a function or method as a notifier, which will be called as soon as the observable lists layout changed. The passed notifier can either be a function or a table with a function and some context (an "object") -> method.

remove_notifier(self, notifier : ListNotifierFunction | ListNotifierMemberContext)

Unregister a previously registered list notifier. When only passing an object, all notifier functions that match the given object will be removed. This will not fire errors when no methods for the given object are attached. Trying to unregister a function or method which wasn't registered, will resolve into an error.

property(self, index : integer)

->renoise.Document.ObservableNumber?

List item access by index. returns nil for non existing items.

find(self, start_pos : integer, value : number)

->integer?

Find a value in the list by comparing the list values with the passed value. The first successful match is returned. When no match is found, nil is returned.

insert(self, pos : integer, value : number)

->renoise.Document.ObservableNumber

Insert a new item to the end of the list when no position is specified, or at the specified position. Returns the newly created and inserted Observable.

remove(self, pos : integer)

Removes an item (or the last one if no index is specified) from the list.

swap(self, pos1 : integer, pos2 : integer)

Swaps the positions of two items without adding/removing the items. With a series of swaps you can move the item from/to any position.


Aliases

ListElementAdded

{ index : integer, type : "insert" }

ListElementChange

ListElementAdded | ListElementRemoved | ListElementsSwapped

ListElementRemoved

{ index : integer, type : "removed" }

ListElementsSwapped

{ index1 : integer, index2 : integer, type : "swapped" }

ListNotifierFunction

(change : ListElementChange)

ListNotifierMemberContext

table | userdata

renoise.Document.ObservableString


Properties

value : string

Read/write access to the value of an Observable.


Functions

has_notifier(self, notifier : NotifierFunction)

->boolean

Checks if the given function, method was already registered as notifier.

add_notifier(self, notifier : NotifierFunction)

Register a function or method as a notifier, which will be called as soon as the observable's value changed. The passed notifier can either be a function or a table with a function and some context (an "object") -> method.

examples:

renoise.song().transport.bpm_observable:add_notifier(function()
  print("BPM changed")
end)

local my_context = { bpm_changes = 0, something_else = "bla" }
renoise.song().transport.bpm_observable:add_notifier({
  my_context,
  function(context)
    context.bpm_changes = context.bpm_changes + 1;
    print(("#BPM changes: %s"):format(context.bpm_changes));
  end
})

remove_notifier(self, notifier : NotifierFunction | NotifierMemberContext)

Unregister a previously registered notifier. When only passing an object, all notifier functions that match the given object will be removed. This will not fire errors when no methods for the given object are attached. Trying to unregister a function or method which wasn't registered, will resolve into an error.

to_string(self)

->string

Serialize an object to a string.

from_string(self, string : any)

->string

Assign the object's value from a string - when possible. Errors are silently ignored.


Aliases

NotifierFunction

fun()

NotifierMemberContext

table | userdata

renoise.Document.ObservableStringList

A observable list of string values.


Functions

to_string(self)

->string

Serialize an object to a string.

from_string(self, string : any)

->string

Assign the object's value from a string - when possible. Errors are silently ignored.

size(self)

->integer

Returns the number of entries of the list.

has_notifier(self, notifier : ListNotifierFunction)

Checks if the given function, method was already registered as notifier.

add_notifier(self, notifier : ListNotifierFunction)

Register a function or method as a notifier, which will be called as soon as the observable lists layout changed. The passed notifier can either be a function or a table with a function and some context (an "object") -> method.

remove_notifier(self, notifier : ListNotifierFunction | ListNotifierMemberContext)

Unregister a previously registered list notifier. When only passing an object, all notifier functions that match the given object will be removed. This will not fire errors when no methods for the given object are attached. Trying to unregister a function or method which wasn't registered, will resolve into an error.

property(self, index : integer)

->renoise.Document.ObservableString?

List item access by index. returns nil for non existing items.

find(self, start_pos : integer, value : number)

->integer?

Find a value in the list by comparing the list values with the passed value. The first successful match is returned. When no match is found, nil is returned.

insert(self, pos : integer, value : number)

->renoise.Document.ObservableString

Insert a new item to the end of the list when no position is specified, or at the specified position. Returns the newly created and inserted Observable.

remove(self, pos : integer)

Removes an item (or the last one if no index is specified) from the list.

swap(self, pos1 : integer, pos2 : integer)

Swaps the positions of two items without adding/removing the items. With a series of swaps you can move the item from/to any position.


Aliases

ListElementAdded

{ index : integer, type : "insert" }

ListElementChange

ListElementAdded | ListElementRemoved | ListElementsSwapped

ListElementRemoved

{ index : integer, type : "removed" }

ListElementsSwapped

{ index1 : integer, index2 : integer, type : "swapped" }

ListNotifierFunction

(change : ListElementChange)

ListNotifierMemberContext

table | userdata

renoise.Document.Serializable


Functions

to_string(self)

->string

Serialize an object to a string.

from_string(self, string : any)

->string

Assign the object's value from a string - when possible. Errors are silently ignored.

renoise.EffectColumn

A single effect column in a pattern line.

Access effect column properties either by values (numbers) or by strings. The string representation uses exactly the same notation as you see them in Renoise's pattern or phrase editor.


Properties

is_empty : boolean

READ-ONLY True, when all effect column properties are empty.

is_selected : boolean

READ-ONLY True, when this column is selected in the pattern or phrase editor.

number_value : integer

0-65535 in the form 0x0000xxyy where xx=effect char 1 and yy=effect char 2

number_string : string

Range: ('00' - 'ZZ')

amount_value : integer

Range: (0 - 255)

amount_string : string

Range: ('00' - 'FF')


Functions

clear(self)

Clear the effect column.

copy_from(self, other : renoise.EffectColumn)

Copy the column's content from another column.

renoise.GroupTrack

Group track component of a Renoise song.


Properties

type : renoise.Track.TrackType

READ-ONLY

name : string

Name, as visible in track headers

name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

color : RGBColor

A table of 3 bytes (ranging from 0 to 255) representing the red, green and blue channels of a color. {0xFF, 0xFF, 0xFF} is white {165, 73, 35} is the red from the Renoise logo

color_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

color_blend : integer

Range: (0 - 100) Color blend in percent

color_blend_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

mute_state : renoise.Track.MuteState

Mute and solo states. Not available for the master track.

mute_state_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

solo_state : boolean

solo_state_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

prefx_volume : renoise.DeviceParameter

READ-ONLY

prefx_panning : renoise.DeviceParameter

READ-ONLY

prefx_width : renoise.DeviceParameter

READ-ONLY

postfx_volume : renoise.DeviceParameter

READ-ONLY

postfx_panning : renoise.DeviceParameter

READ-ONLY

collapsed : boolean

Collapsed/expanded visual appearance.

collapsed_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

group_parent : renoise.GroupTrack

READ-ONLY

available_output_routings : string[]

READ-ONLY

output_routing : string

One of available_output_routings

output_routing_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

output_delay : number

Range: (-100.0-100.0) in ms

output_delay_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

max_effect_columns : integer

READ-ONLY 8 OR 0 depending on the track type

min_effect_columns : integer

READ-ONLY 1 OR 0 depending on the track type

max_note_columns : integer

READ-ONLY 12 OR 0 depending on the track type

min_note_columns : integer

READ-ONLY 1 OR 0 depending on the track type

visible_effect_columns : integer

1-8 OR 0-8, depending on the track type

visible_effect_columns_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

visible_note_columns : integer

0 OR 1-12, depending on the track type

visible_note_columns_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

volume_column_visible : boolean

volume_column_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

panning_column_visible : boolean

panning_column_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

delay_column_visible : boolean

delay_column_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

sample_effects_column_visible : boolean

sample_effects_column_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

available_devices : string[]

READ-ONLY FX devices this track can handle.

available_device_infos : AudioDeviceInfo[]

READ-ONLY Array of tables containing information about the devices.

devices : renoise.AudioDevice[]

READ-ONLY List of audio DSP FX.

devices_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).

members : renoise.Track[]

READ-ONLY All member tracks of this group, including subgroups and their tracks.

group_collapsed : boolean

Collapsed/expanded visual appearance of whole group.


Functions

insert_device_at(self, device_path : string, device_index : integer)

->renoise.AudioDevice

Insert a new device at the given position. device_path must be one of renoise.Track.available_devices.

delete_device_at(self, device_index : any)

Delete an existing device in a track. The mixer device at index 1 can not be deleted from any track.

swap_devices_at(self, device_index1 : integer, device_index2 : integer)

Swap the positions of two devices in the device chain. The mixer device at index 1 can not be swapped or moved.

device(self, device_index : integer)

->renoise.AudioDevice

Access to a single device by index. Use property devices to iterate over all devices and to query the device count.

mute(self)

Uses default mute state from the prefs. Not for the master track.

unmute(self)

solo(self)

column_is_muted(self, column_index : integer)

->boolean

Note column mutes. Only valid within (1-track.max_note_columns)

column_is_muted_observable(self, column_index : integer)

->renoise.Document.Observable

set_column_is_muted(self, column_index : integer, muted : boolean)

column_name(self, column_index : integer)

->string

Note column names. Only valid within (1-track.max_note_columns)

column_name_observable(self, column_index : integer)

->renoise.Document.Observable

set_column_name(self, column_index : integer, name : string)

swap_note_columns_at(self, column_index1 : integer, column_index2 : integer)

Swap the positions of two note or effect columns within a track.

swap_effect_columns_at(self, column_index1 : integer, column_index2 : integer)


Structs

AudioDeviceInfo

Audio device info


Properties

path : string

The device's path used by renoise.Track:insert_device_at

name : string

The device's name

short_name : string

The device's name as displayed in shortened lists

favorite_name : string

The device's name as displayed in favorites

is_favorite : boolean

true if the device is a favorite

is_bridged : boolean

true if the device is a bridged plugin


Aliases

RGBColor

{ 1 : integer, 2 : integer, 3 : integer }

A table of 3 bytes (ranging from 0 to 255) representing the red, green and blue channels of a color. {0xFF, 0xFF, 0xFF} is white {165, 73, 35} is the red from the Renoise logo

renoise.Instrument

Constants

Tab

{
    TAB_SAMPLES: integer = 1,
    TAB_PLUGIN: integer = 2,
    TAB_EXT_MIDI: integer = 3,
}

PhrasePlaybackMode

{
    PHRASES_OFF: integer = 1,
    PHRASES_PLAY_SELECTIVE: integer = 2,
    PHRASES_PLAY_KEYMAP: integer = 3,
}

Layer

{
    LAYER_NOTE_DISABLED: integer = 0,
    LAYER_NOTE_ON: integer = 1,
    LAYER_NOTE_OFF: integer = 2,
}

OverlapMode

{
    OVERLAP_MODE_ALL: integer = 0,
    OVERLAP_MODE_CYCLED: integer = 1,
    OVERLAP_MODE_RANDOM: integer = 2,
}

NUMBER_OF_MACROS : integer

MAX_NUMBER_OF_PHRASES : integer


Properties

active_tab : renoise.Instrument.Tab

Currently active tab in the instrument GUI (samples, plugin or MIDI).

active_tab_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

name : string

Instrument's name.

name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

comments : string[]

Instrument's comment list. See renoise.song().comments for more info on how to get notified on changes and how to change it.

comments_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

comments_assignment_observable : renoise.Document.Observable

Notifier which is called as soon as any paragraph in the comments change.

show_comments_after_loading : boolean

Set this to true to show the comments dialog after loading a song

show_comments_after_loading_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

macros_visible : boolean

Macro parameter pane visibility in the GUI.

macros_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

macros : renoise.InstrumentMacro[]

READ-ONLY Macro parameters. Array with size Instrument.NUMBER_OF_MACROS.

pitchbend_macro : renoise.InstrumentMacro

Access the MIDI pitch-bend macro

modulation_wheel_macro : renoise.InstrumentMacro

Access the MIDI modulation-wheel macro

channel_pressure_macro : renoise.InstrumentMacro

Access the MIDI channel pressure macro

volume : number

Range: (0 - math.db2lin(6))

volume_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

transpose : integer

Range: (-120 - 120). Global relative pitch in semi tones. Applied to all samples, MIDI and plugins in the instrument.

transpose_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

trigger_options : renoise.InstrumentTriggerOptions

Global trigger options (quantization and scaling options).

sample_mapping_overlap_mode : renoise.Instrument.OverlapMode

Sample mapping's overlap trigger mode.

sample_mapping_overlap_mode_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

phrase_editor_visible : boolean

Phrase editor pane visibility in the GUI.

phrase_editor_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

phrase_playback_mode : renoise.Instrument.PhrasePlaybackMode

Phrase playback.

phrase_playback_mode_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

phrase_program : integer

Phrase playback program: 0 = Off, 1-126 = specific phrase, 127 = keymap.

phrase_program_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

phrases : renoise.InstrumentPhrase[]

READ-ONLY Phrases.

phrases_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).

phrase_mappings : renoise.InstrumentPhraseMapping[]

READ-ONLY Phrase mappings.

phrase_mappings_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).

samples : renoise.Sample[]

READ-ONLY Samples slots.

samples_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).

sample_mappings : renoise.SampleMapping[]

READ-ONLY Sample mappings (key/velocity to sample slot mappings). sample_mappings[LAYER_NOTE_ON/OFF][]. Sample mappings also can be accessed via ---@field samples[].sample_mapping

sample_mappings_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).

sample_modulation_sets : renoise.SampleModulationSet[]

READ-ONLY Sample modulation sets.

sample_modulation_sets_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).

sample_device_chains : renoise.SampleDeviceChain[]

READ-ONLY Sample device chains.

sample_device_chains_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).

midi_input_properties : renoise.InstrumentMidiInputProperties

READ-ONLY MIDI input properties.

midi_output_properties : renoise.InstrumentMidiOutputProperties

READ-ONLY MIDI output properties.

plugin_properties : renoise.InstrumentPluginProperties

READ-ONLY Plugin properties.


Functions

clear(self)

Reset, clear all settings and all samples.

copy_from(self, instrument : renoise.Instrument)

Copy all settings from the other instrument, including all samples.

macro(self, index : integer)

->instrument_macro : renoise.InstrumentMacro

Range: (1 - renoise.Instrument.NUMBER_OF_MACROS) Access a single macro by index. See also property macros.

insert_phrase_at(self, index : integer)

->new_phrase : renoise.InstrumentPhrase

Insert a new phrase behind the given phrase index (1 for the first one).

delete_phrase_at(self, index : integer)

Delete a new phrase at the given phrase index.

phrase(self, index : integer)

->renoise.InstrumentPhrase

Access a single phrase by index. Use properties 'phrases' to iterate over all phrases and to query the phrase count.

can_insert_phrase_mapping_at(self, index : integer)

->boolean

Returns true if a new phrase mapping can be inserted at the given phrase mapping index (see See renoise.song().instruments[].phrase_mappings). Passed phrase must exist and must not have a mapping yet. Phrase note mappings may not overlap and are sorted by note, so there can be max 119 phrases per instrument when each phrase is mapped to a single key only. To make up room for new phrases, access phrases by index, adjust their note_range, then call 'insert_phrase_mapping_at' again.

insert_phrase_mapping_at(self, index : integer, phrase : renoise.InstrumentPhrase)

->new_mapping : renoise.InstrumentPhraseMapping

Insert a new phrase mapping behind the given phrase mapping index. The new phrase mapping will by default use the entire free (note) range between the previous and next phrase (if any). To adjust the note range of the new phrase change its 'new_phrase_mapping.note_range' property.

delete_phrase_mapping_at(self, index : integer)

Delete a new phrase mapping at the given phrase mapping index.

phrase_mapping(self, index : integer)

->renoise.InstrumentPhraseMapping

Access to a phrase note mapping by index. Use property 'phrase_mappings' to iterate over all phrase mappings and to query the phrase (mapping) count.

insert_sample_at(self, index : integer)

->new_sample : renoise.Sample

Insert a new empty sample. returns the new renoise.Sample object. Every newly inserted sample has a default mapping, which covers the entire key and velocity range, or it gets added as drum kit mapping when the instrument used a drum-kit mapping before the sample got added.

delete_sample_at(self, index : integer)

Delete an existing sample.

swap_samples_at(self, index1 : integer, index2 : integer)

Swap positions of two samples.

sample(self, index : integer)

->renoise.Sample

Access to a single sample by index. Use properties 'samples' to iterate over all samples and to query the sample count.

sample_mapping(self, layer : renoise.Instrument.Layer, index : integer)

->renoise.SampleMapping

Access to a sample mapping by index. Use property 'sample_mappings' to iterate over all sample mappings and to query the sample (mapping) count.

insert_sample_modulation_set_at(self, index : integer)

->new_sample_modulation_set : renoise.SampleModulationSet

Insert a new modulation set at the given index

delete_sample_modulation_set_at(self, index : integer)

Delete an existing modulation set at the given index.

swap_sample_modulation_sets_at(self, index1 : any, index2 : any)

Swap positions of two modulation sets.

sample_modulation_set(self, index : integer)

->renoise.SampleModulationSet

Access to a single sample modulation set by index. Use property 'sample_modulation_sets' to iterate over all sets and to query the set count.

insert_sample_device_chain_at(self, index : integer)

->new_sample_device_chain : renoise.SampleDeviceChain

Insert a new sample device chain at the given index.

delete_sample_device_chain_at(self, index : integer)

Delete an existing sample device chain at the given index.

swap_sample_device_chains_at(self, index1 : integer, index2 : integer)

Swap positions of two sample device chains.

sample_device_chain(self, index : integer)

->renoise.SampleDeviceChain

Access to a single device chain by index. Use property 'sample_device_chains' to iterate over all chains and to query the chain count.

renoise.InstrumentDevice

Deprecated. Use renoise.InstrumentPluginDevice instead.


Properties

name : string

READ-ONLY Device name.

short_name : string

READ-ONLY

presets : string[]

READ-ONLY

active_preset : integer

Preset handling. 0 when when none is active (or available)

active_preset_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

active_preset_data : string

raw XML data of the active preset

parameters : renoise.DeviceParameter[]

READ-ONLY

external_editor_available : boolean

READ-ONLY Returns whether or not the plugin provides its own custom GUI.

external_editor_visible : boolean

When the plugin has no custom GUI, Renoise will create a dummy editor for it which lists the plugin parameters. set to true to show the editor, false to close it

device_path : string

READ-ONLY Returns a string that uniquely identifies the plugin The string can be passed into: renoise.InstrumentPluginProperties:load_plugin()


Functions

preset(self, index : integer)

->string

Access to a single preset name by index. Use properties 'presets' to iterate over all presets and to query the presets count.

parameter(self, index : integer)

->renoise.DeviceParameter

Access to a single parameter by index. Use properties 'parameters' to iterate over all parameters and to query the parameter count.

renoise.InstrumentMacro


Properties

name : string

Macro name as visible in the GUI when mappings are presents.

name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

value : number

Range: (0 - 1)

value_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

value_string : string

Range: (0 - 100)

value_string_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

mappings : renoise.InstrumentMacroMapping[]

READ-ONLY Macro mappings, target parameters

mappings_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).


Functions

mapping(self, index : integer)

->renoise.InstrumentMacroMapping

Access to a single attached parameter mapping by index. Use property 'mappings' to query mapping count.

renoise.InstrumentMacroMapping

Constants

Scaling

{
    SCALING_LOG_FAST: integer = 1,
    SCALING_LOG_SLOW: integer = 2,
    SCALING_LINEAR: integer = 3,
    SCALING_EXP_SLOW: integer = 4,
    SCALING_EXP_FAST: integer = 5,
}

Properties

parameter : renoise.DeviceParameter

READ-ONLY Linked parameter. Can be a sample FX- or modulation parameter. Never nil.

parameter_min : number

Range: (0 - 1)

parameter_min_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

parameter_max : number

Range: (0 - 1)

parameter_max_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

parameter_scaling : renoise.InstrumentMacroMapping.Scaling

Scaling which gets applied within the min/max range to set the dest value.

parameter_scaling_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

renoise.InstrumentMidiInputProperties


Properties

device_name : string

When setting new devices, device names must be one of renoise.Midi.available_input_devices. Devices are automatically opened when needed. To close a device, set its name to "", e.g. an empty string.

device_name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

channel : integer

Range: (1 - 16) 0 = Omni

channel_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

note_range : integer[]

Table of two numbers in range (0-119) where C-4 is 48

note_range_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

assigned_track : integer

Range: (1 - song.sequencer_track_count) 0 = Current track

assigned_track_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

renoise.InstrumentMidiOutputProperties

Constants

Type

{
    TYPE_EXTERNAL: integer = 1,
    TYPE_LINE_IN_RET: integer = 2,
    TYPE_INTERNAL: integer = 3,
}

Properties

instrument_type : renoise.InstrumentMidiOutputProperties.Type

Note: ReWire device always start with "ReWire: " in the device_name and will always ignore the instrument_type and channel properties. MIDI channels are not configurable for ReWire MIDI, and instrument_type will always be "TYPE_INTERNAL" for ReWire devices.

instrument_type_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

device_name : string

When setting new devices, device names must be one of: renoise.Midi.available_output_devices. Devices are automatically opened when needed. To close a device, set its name to "", e.g. an empty string.

device_name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

channel : integer

Range: (1 - 16)

channel_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

transpose : integer

Range: (-120 - 120)

transpose_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

program : integer

Range: (1 - 128) 0 = OFF

program_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

bank : integer

Range: (1 - 65536) 0 = OFF

bank_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

delay : integer

Range: (0 - 100)

delay_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

duration : integer

Range: (1 - 8000) 8000 = INF

duration_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

renoise.InstrumentPhrase

General remarks: Phrases do use renoise.PatternLine objects just like the pattern tracks do. When the instrument column is enabled and used, not instruments, but samples are addressed/triggered in phrases.

Constants

KeyTrackingMode

{
    KEY_TRACKING_NONE: integer = 1,
    KEY_TRACKING_TRANSPOSE: integer = 2,
    KEY_TRACKING_OFFSET: integer = 3,
}

PlaybackMode

{
    PLAY_PATTERN: integer = 1,
    PLAY_SCRIPT: integer = 2,
}

MAX_NUMBER_OF_LINES : integer

Maximum number of lines that can be present in a phrase.

MIN_NUMBER_OF_NOTE_COLUMNS : integer

Min/Maximum number of note columns that can be present in a phrase.

MAX_NUMBER_OF_NOTE_COLUMNS : integer

MIN_NUMBER_OF_EFFECT_COLUMNS : integer

Min/Maximum number of effect columns that can be present in a phrase.

MAX_NUMBER_OF_EFFECT_COLUMNS : integer


Properties

name : string

Name of the phrase as visible in the phrase editor and piano mappings.

name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

mapping : renoise.InstrumentPhraseMapping

(Key)Mapping properties of the phrase or nil when no mapping is present.

playback_mode : renoise.InstrumentPhrase.PlaybackMode

playback mode

playback_mode_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

script : renoise.InstrumentPhraseScript

READ-ONLY Phrase script properties. Only used when playback_mode is set to renoise.InstrumentPhrase.PLAY_SCRIPT

is_empty : boolean

READ-ONLY Quickly check if a phrase has some non empty pattern lines.

is_empty_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

number_of_lines : integer

Default: 16, Range: (1 - renoise.InstrumentPhrase.MAX_NUMBER_OF_LINES) Number of lines the phrase currently has.

number_of_lines_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

lines : renoise.PatternLine[]

READ-ONLY Get all lines in a range [1, number_of_lines_in_pattern]

visible_note_columns : integer

Range: (MIN_NUMBER_OF_NOTE_COLUMNS - MAX_NUMBER_OF_NOTE_COLUMNS) How many note columns are visible in the phrase.

visible_note_columns_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

visible_effect_columns : integer

Range: (MIN_NUMBER_OF_EFFECT_COLUMNS - MAX_NUMBER_OF_EFFECT_COLUMNS) How many effect columns are visible in the phrase.

visible_effect_columns_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

key_tracking : renoise.InstrumentPhrase.KeyTrackingMode

Phrase's key-tracking mode.

key_tracking_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

base_note : integer

Range: (0 - 119) where C-4 is 48 Phrase's base-note. Only relevant when key_tracking is set to transpose.

base_note_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

looping : boolean

Loop mode. The phrase plays as one-shot when disabled.

looping_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

loop_start : integer

Range: (1 - number_of_lines) Loop start. Playback will start from the beginning before entering loop

loop_start_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

loop_end : integer

Range: (loop_start - number_of_lines) Loop end. Needs to be > loop_start and <= number_of_lines

loop_end_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

autoseek : boolean

Phrase autoseek settings

autoseek_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

lpb : integer

Range: (1 - 256) Phrase local lines per beat setting. New phrases get initialized with the song's current LPB setting. TPL can not be configured in phrases.

lpb_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

shuffle : number

Range: (0 - 1) Shuffle groove amount for a phrase. 0.0 = no shuffle (off), 1.0 = full shuffle

shuffle_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

instrument_column_visible : boolean

Column visibility.

instrument_column_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

volume_column_visible : boolean

volume_column_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

panning_column_visible : boolean

panning_column_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

delay_column_visible : boolean

delay_column_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

sample_effects_column_visible : boolean

sample_effects_column_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.


Functions

clear(self)

Deletes all lines.

copy_from(self, phrase : renoise.InstrumentPhrase)

Copy contents from another phrase.

line(self, index : integer)

->renoise.PatternLine

Range: (1 - renoise.InstrumentPhrase.MAX_NUMBER_OF_LINES) Access to a single line by index. Line must be in Range: (1 - MAX_NUMBER_OF_LINES). This is a !lot! more efficient than calling the property: lines[index] to randomly access lines.

lines_in_range(self, index_from : integer, index_to : integer)

->renoise.PatternLine[]

Get a specific line range

has_line_notifier(self, func : PhraseLineChangeCallbackWithContext, obj : table | userdata)

->boolean

Check/add/remove notifier functions or methods, which are called by Renoise as soon as any of the phrases's lines have changed. See: renoise.Pattern.has_line_notifier for more details.

add_line_notifier(self, func : PhraseLineChangeCallbackWithContext, obj : table | userdata)

remove_line_notifier(self, func : PhraseLineChangeCallbackWithContext, obj : table | userdata)

has_line_edited_notifier(self, func : PhraseLineChangeCallbackWithContext, obj : table | userdata)

->boolean

Same as line_notifier above, but the notifier only fires when the user added, changed or deleted a line with the computer keyboard. See: renoise.Pattern.has_line_editoed_notifier for more details.

add_line_edited_notifier(self, func : PhraseLineChangeCallbackWithContext, obj : table | userdata)

remove_line_edited_notifier(self, func : PhraseLineChangeCallbackWithContext, obj : table | userdata)

column_is_muted(self, column : integer)

->boolean

Note column mute states.

column_is_muted_observable(self, column : integer)

->renoise.Document.Observable

set_column_is_muted(self, column : integer, muted : boolean)

column_name(self, column : integer)

->string

Note column names.

column_name_observable(self, column : integer)

->renoise.Document.Observable

set_column_name(self, column : integer, name : string)

swap_note_columns_at(self, index1 : integer, index2 : integer)

Swap the positions of two note columns within a phrase.

swap_effect_columns_at(self, index1 : integer, index2 : integer)

Swap the positions of two effect columns within a phrase.


Structs

PhraseLinePosition

Line iterator position.


Properties

line : integer


Aliases

PhraseLineChangeCallbackWithContext

(obj : table | userdata, pos : PhraseLinePosition)

renoise.InstrumentPhraseMapping

Constants

KeyTrackingMode

{
    KEY_TRACKING_NONE: integer = 1,
    KEY_TRACKING_TRANSPOSE: integer = 2,
    KEY_TRACKING_OFFSET: integer = 3,
}

Properties

phrase : renoise.InstrumentPhrase

Linked phrase.

key_tracking : renoise.InstrumentPhraseMapping.KeyTrackingMode

Phrase's key-tracking mode.

key_tracking_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

base_note : integer

Range: (0 - 119) where C-4 is 48

base_note_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

note_range : integer[]

Range: (0 - 119) where C-4 is 48

note_range_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

looping : boolean

Loop mode. The phrase plays as one-shot when disabled.

looping_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

loop_start : integer

loop_start_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

loop_end : integer

loop_end_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

renoise.InstrumentPhraseScript


Properties

editor_visible : boolean

When false, a preview of the script is shown instead of a text editor.

editor_visible_observable : renoise.Document.Observable

fired, when the editor visibility changed.

parameters : renoise.DeviceParameter[]

READ-ONLY List of script input parameters, if any.

parameters_observable : renoise.Document.ObservableList

fired, when the input parameter set changed.

paragraphs : string[]

Script content. When changing paragraphs, changes are visible in the script editor, but are not applied for playback until they get committed. See also @function commit and @field committed_observable.

paragraphs_observable : renoise.Document.DocumentList

Notifier which is called when a paragraph got added or removed.

paragraphs_assignment_observable : renoise.Document.Observable

Notifier which is called when existing paragraph content changed.

compile_error : string

READ-ONLY When not empty, the script failed to compile. This error text is also visible to the user in the script preview.

compile_error_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

runtime_error : string

READ-ONLY When not empty, script compiled successfully, but caused an error while running. This error text is also visible to the user in the script editor.

runtime_error_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

pending_changes : integer

READ-ONLY Number of changes since the last commit() or auto-commit call, that have been applied to the parapgraphs. Note: auto-commit only is applied for scripts which are currently edited.

pending_changes_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

committed_observable : renoise.Document.Observable

Fired when script paragraph changes got committed: Either by an explicit commit call or via auto-commit in the editor when the script currently is edited. Script compile errors will be set or cleared after the observable fires as the commit & compilation happens asynchroniously in the player engine.


Functions

parameter(self, index : integer)

->renoise.DeviceParameter

Access to a single input parameter by index. Use properties 'parameters' to iterate over all parameters and to query the parameter count.

commit(self)

Commit paragraph changes for playback.

render_to_pattern(self, options : RenderScriptOptions, rendering_done_callback : (string : any?, integer : any, integer : any))

Render script content with the given options to the phrase pattern. Only committed content will be rendered, so make sure to commit changes first. Parameter rendering_done_callback carries along rendering results:

    1. optional error as string that happened while rendering. nil when succeeded.
    1. number of successfully rendered raw events (not pattern lines) or 0.
    1. number of skipped raw events, in case the pattern can't fit all events, or 0.

render_to_clipboard(self, options : RenderScriptOptions, rendering_done_callback : (string : any?, integer : any, integer : any))

Same as render_to_pattern, but rendering into a temporary phrase object in the clipboard, which can then be pasted by the user somewhere.


Structs

RenderScriptOptions

Options for the render functions. All undefined properties will fall back to the user preferences values from the script preview


Properties

lpb : number?

Lines per beat of the target phrase.

max_events : number?

Maximum events (not pattern lines) that will be rendered

renoise.InstrumentPluginDevice


Properties

name : string

READ-ONLY Device name.

short_name : string

READ-ONLY

presets : string[]

READ-ONLY

active_preset : integer

Preset handling. 0 when when none is active (or available)

active_preset_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

active_preset_data : string

raw XML data of the active preset

parameters : renoise.DeviceParameter[]

READ-ONLY

external_editor_available : boolean

READ-ONLY Returns whether or not the plugin provides its own custom GUI.

external_editor_visible : boolean

When the plugin has no custom GUI, Renoise will create a dummy editor for it which lists the plugin parameters. set to true to show the editor, false to close it

device_path : string

READ-ONLY Returns a string that uniquely identifies the plugin The string can be passed into: renoise.InstrumentPluginProperties:load_plugin()


Functions

preset(self, index : integer)

->string

Access to a single preset name by index. Use properties 'presets' to iterate over all presets and to query the presets count.

parameter(self, index : integer)

->renoise.DeviceParameter

Access to a single parameter by index. Use properties 'parameters' to iterate over all parameters and to query the parameter count.

renoise.InstrumentPluginProperties


Properties

available_plugins : string[]

READ-ONLY List of all currently available plugins. This is a list of unique plugin names which also contains the plugin's type (VST/AU/DSSI/...), not including the vendor names as visible in Renoise's GUI. So its an identifier, and not the name as visible in the GUI. When no plugin is loaded, the identifier is an empty string.

available_plugin_infos : PluginInfo[]

READ-ONLY Returns a list of tables containing more information about the plugins.

plugin_loaded : boolean

READ-ONLY Returns true when a plugin is present; loaded successfully.

plugin_device : renoise.AudioDevice | renoise.InstrumentPluginDevice

Valid object for successfully loaded plugins, otherwise nil. Alias plugin instruments of FX will return the resolved device, will link to the device the alias points to. The observable is fired when the device changes: when a plugin gets loaded or unloaded or a plugin alias is assigned or unassigned.

plugin_device_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

alias_instrument_index : integer

0 when no alias instrument is set

alias_instrument_index_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

alias_fx_track_index : integer

READ-ONLY 0 when no alias FX is set

alias_fx_track_index_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

alias_fx_device_index : integer

READ-ONLY 0 when no alias FX is set

alias_fx_device_index_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

midi_output_routing_index : integer

0 when no routing is set

midi_output_routing_index_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

channel : integer

Range: (1 - 16)

channel_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

transpose : integer

Range: (-120 - 120)

transpose_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

volume : number

Range: (0.0 - 4.0) linear gain

volume_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

auto_suspend : boolean

Valid for loaded and unloaded plugins.

auto_suspend_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.


Functions

load_plugin(self, plugin_path : string)

->success : boolean

Load an existing, new, non aliased plugin. Pass an empty string to unload an already assigned plugin. plugin_path must be one of the available plugins See: renoise.InstrumentPluginProperties.available_plugins


Structs

PluginInfo


Properties

path : string

The plugin's path used by load_plugin()

name : string

The plugin's name

short_name : string

The plugin's name as displayed in shortened lists

favorite_name : string

The plugin's name as displayed in favorites

is_favorite : string

true if the plugin is a favorite

is_bridged : string

true if the plugin is a bridged plugin

renoise.InstrumentTriggerOptions

Constants

QuantizeMode

{
    QUANTIZE_NONE: integer = 1,
    QUANTIZE_LINE: integer = 2,
    QUANTIZE_BEAT: integer = 3,
    QUANTIZE_BAR: integer = 4,
}

Properties

available_scale_modes : string[]

READ-ONLY List of all available scale modes.

scale_mode : string

one of 'available_scales']

scale_mode_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

scale_key : integer

Scale-key to use when transposing (1=C, 2=C#, 3=D, ...)

scale_key_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

mts_esp_tuning : boolean

When true, act as MTS ESP client. Disables custom tunings.

mts_esp_tuning_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

tuning : number[]

Array of custom pitch values relative to 1/1, used as custom tuning values for instrument sample playback. The root key is assumed to be middle C (48 in Renoise), The scale will be repeated, so only one octave of values should be defined. An octave may contain more or less than 12 notes.

When set mts_esp_tuning is disabled. Set an empty table to disable custom tuning using default 12-TET tuning instead.

Use property tuning_name to give your custom tuning a name.

examples:

-- Andreas Werckmeister's temperament III (the most famous one, 1681)
local well_tempered_tuning = {
  256/243, 1.117403, 32/27, 1.252827, 4/3, 1024/729,
  1.494927, 128/81, 1.670436, 16/9, 1.879241, 2/1
}
instrument.tuning = well_tempered_tuning

tuning_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

tuning_name : string

Name, as displayed in the UI for a custom tuning or a tuning loaded from a file.

tuning_name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

quantize : renoise.InstrumentTriggerOptions.QuantizeMode

Trigger quantization mode.

quantize_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

monophonic : boolean

Mono/Poly mode.

monophonic_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

monophonic_glide : integer

Glide amount when monophonic. 0 == off, 255 = instant

monophonic_glide_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.


Functions

load_tuning(self, filename : string)

->success : boolean

Load and apply a scala tuning file as custom tuning. Disables mts_esp_tuning. Any errors during the export are shown to the user.

renoise.Midi

Raw MIDI IO support for scripts in Renoise; the ability to send and receive MIDI data.


Functions

available_input_devices()

->string[]

Return a list of strings with currently available MIDI input devices. This list can change when devices are hot-plugged. See renoise.Midi.devices_changed_observable

available_output_devices()

->string[]

Return a list of strings with currently available MIDI output devices. This list can change when devices are hot-plugged. See renoise.Midi.devices_changed_observable

devices_changed_observable()

->renoise.Document.Observable

Fire notifications as soon as new devices become active or a previously added device gets removed/unplugged. This will only happen on Linux and OSX with real devices. On Windows this may happen when using ReWire slaves. ReWire adds virtual MIDI devices to Renoise. Already opened references to devices which are no longer available will do nothing: you can use them as before and they will not fire any errors. The messages will simply go into the void...

create_input_device(device_name : string, callback : MidiMessageFunction | MidiMessageMethod1 | MidiMessageMethod2?, sysex_callback : MidiMessageFunction | MidiMessageMethod1 | MidiMessageMethod2?)

->renoise.Midi.MidiInputDevice

Listen to incoming MIDI data: opens access to a MIDI input device by specifying a device name. Name must be one of renoise.Midi.available_input_devices().

One or both callbacks should be valid, and should either point to a function with one parameter function (message: number[]) end, or a table with an object and class {context, function(context, message: number[]) end} -> a method.

All MIDI messages except active sensing will be forwarded to the callbacks. When Renoise is already listening to this device, your callback and Renoise (or even other scripts) will handle the message.

Messages are received until the device reference is manually closed (see renoise.Midi.MidiDevice:close()) or until the MidiInputDevice object gets garbage collected.

create_output_device(device_name : string)

->renoise.Midi.MidiOutputDevice

Open access to a MIDI device by specifying the device name. Name must be one of renoise.Midi.available_input_devices(). All other device names will fire an error.

The real device driver gets automatically closed when the MidiOutputDevice object gets garbage collected or when the device is explicitly closed via midi_device:close() and nothing else references it.


Aliases

MidiMessage

integer[]

MidiMessageFunction

(message : MidiMessage)

MidiMessageMemberContext

table | userdata

MidiMessageMemberFunction

(self : MidiMessageMemberContext, message : MidiMessage)

MidiMessageMethod1

{ 1 : MidiMessageMemberContext, 2 : MidiMessageMemberFunction }

MidiMessageMethod2

{ 1 : MidiMessageMemberFunction, 2 : MidiMessageMemberContext }

renoise.Midi.MidiDevice

Baseclass of renoise.Midi.MidiIn/OutDevice with common properties for MIDI input and output devices.


Properties

is_open : boolean

Returns true while the device is open (ready to send or receive messages). Your device refs will never be auto-closed, "is_open" will only be false if you explicitly call "midi_device:close()" to release a device.

name : string

The name of a device. This is the name you create a device with via renoise.Midi.create_input_device or renoise.Midi.create_output_device.


Functions

close(self)

Close a running MIDI device. When no other client is using a device, Renoise will also shut off the device driver so that, for example, Windows OS other applications can use the device again. This is automatically done when scripts are closed or your device objects are garbage collected.

renoise.Midi.MidiInputDevice

Midi device interface for receiving MIDI messages. Instances are created via renoise.Midi.create_input_device


Properties

is_open : boolean

Returns true while the device is open (ready to send or receive messages). Your device refs will never be auto-closed, "is_open" will only be false if you explicitly call "midi_device:close()" to release a device.

name : string

The name of a device. This is the name you create a device with via renoise.Midi.create_input_device or renoise.Midi.create_output_device.


Functions

close(self)

Close a running MIDI device. When no other client is using a device, Renoise will also shut off the device driver so that, for example, Windows OS other applications can use the device again. This is automatically done when scripts are closed or your device objects are garbage collected.

renoise.Midi.MidiOutputDevice

Midi device interface for sending MIDI messages. Instances are created via renoise.Midi.create_output_device


Properties

is_open : boolean

Returns true while the device is open (ready to send or receive messages). Your device refs will never be auto-closed, "is_open" will only be false if you explicitly call "midi_device:close()" to release a device.

name : string

The name of a device. This is the name you create a device with via renoise.Midi.create_input_device or renoise.Midi.create_output_device.


Functions

close(self)

Close a running MIDI device. When no other client is using a device, Renoise will also shut off the device driver so that, for example, Windows OS other applications can use the device again. This is automatically done when scripts are closed or your device objects are garbage collected.

send(self, message : integer[])

Send raw 1-3 byte MIDI messages or sysex messages. Message is expected to be an array of numbers. It must not be empty and can only contain numbers >= 0 and <= 0xFF (bytes). Sysex messages must be sent in one block, and must start with 0xF0, and end with 0xF7.

renoise.NoteColumn

A single note column in a pattern line.

General remarks: instrument columns are available for lines in phrases but are ignored. See renoise.InstrumentPhrase for detail.

Access note column properties either by values (numbers) or by strings. The string representation uses exactly the same notation as you see them in Renoise's pattern or phrase editor.


Properties

is_empty : boolean

READ-ONLY True, when all note column properties are empty.

is_selected : boolean

READ-ONLY True, when this column is selected in the pattern or phrase editors current pattern.

note_value : integer

Range: (0-119) or 120=Off or 121=Empty

note_string : string

Range: ('C-0'-'G-9') or 'OFF' or '---'

instrument_value : integer

Range: (0-254), 255==Empty

instrument_string : string

Range: ('00'-'FE') or '..'

volume_value : integer

Range: (0-127) or 255==Empty when column value is <= 0x80 or is 0xFF, i.e. to specify a volume value.

Range: (0-65535) in the form 0x0000xxyy where xx=effect char 1 and yy=effect char 2, when column value is > 0x80, i.e. to specify an effect.

volume_string : string

Range('00'-'ZF') or '..'

panning_value : integer

Range: (0-127) or 255==Empty when column value is <= 0x80 or is 0xFF, i.e. to specify a pan value.

Range: (0-65535) in the form 0x0000xxyy where xx=effect char 1 and yy=effect char 2, when column value is > 0x80, i.e. to specify an effect.

panning_string : string

Range: ('00'-'ZF') or '..'

delay_value : integer

Range: (0-255)

delay_string : string

Range: ('00'-'FF') or '..'

effect_number_value : integer

Range: (0-65535) in the form 0x0000xxyy where xx=effect char 1 and yy=effect char 2

effect_number_string : string

Range: ('00'-'ZZ')

effect_amount_value : integer

Range: (0-255)

effect_amount_string : string

Range: ('00' - 'FF')


Functions

clear(self)

Clear the note column.

copy_from(self, other : renoise.NoteColumn)

Copy the column's content from another column.

renoise.Osc

OSC (Open Sound Control) support for Lua scripts in Renoise.


Functions

from_binary_data(binary_data : string)

->renoise.Osc.Bundle | renoise.Osc.Message?, string?

De-packetizing raw (socket) data to OSC messages or bundles: Converts the binary data to an OSC message or bundle. If the data does not look like an OSC message, or the message contains errors, nil is returned as first argument and the second return value will contain the error. If de-packetizing was successful, either a renoise.Osc.Bundle or Message object is returned. Bundles may contain multiple messages or nested bundles.

Message(pattern : string, arguments : OscValue[]?)

->renoise.Osc.Message

Create a new OSC message with the given pattern and optional arguments.

Bundle(time : integer, arguments : renoise.Osc.Message | renoise.Osc.Message[])

->renoise.Osc.Bundle

Create a new bundle by specifying a time-tag and one or more messages. If you do not know what to do with the time-tag, use os.clock(), which simply means "now". Messages must be renoise.Osc.Message objects. Nested bundles (bundles in bundles) are right now not supported.


Structs

OscValue

tag is a standard OSC type tag. value is the arguments value expressed by a Lua type. The value must be convertible to the specified tag, which means, you cannot for example specify an "i" (integer) as type and then pass a string as the value. Use a number value instead. Not all tags require a value, like the T,F boolean tags. Then a value field should not be specified. For more info, see: http://opensoundcontrol.org/spec-1_0


Properties

tag : OscTag

value : boolean | string | number


Aliases

OscTag

"F" | "I" | "N" | "S" | "T" | "b" | "c" | "d" | "f" | "h" | "i" | "m" | "r" | "s" | "t"

OscTag:
    | "i" -- int32
    | "f" -- float32
    | "s" -- OSC-string
    | "b" -- OSC-blob (raw string)
    | "h" -- 64 bit big-endian two's complement integer
    | "t" -- OSC-timetag
    | "d" -- 64 bit ("double") IEEE 754 floating point number
    | "S" -- Alternate type represented as an OSC-string
    | "c" -- An ascii character, sent as 32 bits
    | "r" -- 32 bit RGBA color
    | "m" -- 4 byte MIDI message. Bytes from MSB to LSB are: port id, status byte, data1, data2
    | "T" -- True. No value needs to be specified.
    | "F" -- False. No value needs to be specified.
    | "N" -- Nil. No value needs to be specified.
    | "I" -- Infinitum. No value needs to be specified.

Aliases

OscTag

"F" | "I" | "N" | "S" | "T" | "b" | "c" | "d" | "f" | "h" | "i" | "m" | "r" | "s" | "t"

OscTag:
    | "i" -- int32
    | "f" -- float32
    | "s" -- OSC-string
    | "b" -- OSC-blob (raw string)
    | "h" -- 64 bit big-endian two's complement integer
    | "t" -- OSC-timetag
    | "d" -- 64 bit ("double") IEEE 754 floating point number
    | "S" -- Alternate type represented as an OSC-string
    | "c" -- An ascii character, sent as 32 bits
    | "r" -- 32 bit RGBA color
    | "m" -- 4 byte MIDI message. Bytes from MSB to LSB are: port id, status byte, data1, data2
    | "T" -- True. No value needs to be specified.
    | "F" -- False. No value needs to be specified.
    | "N" -- Nil. No value needs to be specified.
    | "I" -- Infinitum. No value needs to be specified.

renoise.Osc.Bundle


Properties

timetag : number

READ-ONLY Time value of the bundle.

elements : renoise.Osc.Bundle | renoise.Osc.Message[]

READ-ONLY Access to the bundle elements (table of messages or bundles)

binary_data : string

READ-ONLY Raw binary representation of the bundle, as needed when e.g. sending the message over the network through sockets.

renoise.Osc.Message


Properties

pattern : string

READ-ONLY The message pattern (e.g. "/renoise/transport/start")

arguments : OscValue[]

READ-ONLY Table of {tag="X", value=SomeValue} that represents the message arguments. See renoise.Osc.Message.create for more info.

binary_data : string

READ-ONLY Raw binary representation of the message, as needed when e.g. sending the message over the network through sockets.


Structs

OscValue

tag is a standard OSC type tag. value is the arguments value expressed by a Lua type. The value must be convertible to the specified tag, which means, you cannot for example specify an "i" (integer) as type and then pass a string as the value. Use a number value instead. Not all tags require a value, like the T,F boolean tags. Then a value field should not be specified. For more info, see: http://opensoundcontrol.org/spec-1_0


Properties

tag : OscTag

value : boolean | string | number


Aliases

OscTag

"F" | "I" | "N" | "S" | "T" | "b" | "c" | "d" | "f" | "h" | "i" | "m" | "r" | "s" | "t"

OscTag:
    | "i" -- int32
    | "f" -- float32
    | "s" -- OSC-string
    | "b" -- OSC-blob (raw string)
    | "h" -- 64 bit big-endian two's complement integer
    | "t" -- OSC-timetag
    | "d" -- 64 bit ("double") IEEE 754 floating point number
    | "S" -- Alternate type represented as an OSC-string
    | "c" -- An ascii character, sent as 32 bits
    | "r" -- 32 bit RGBA color
    | "m" -- 4 byte MIDI message. Bytes from MSB to LSB are: port id, status byte, data1, data2
    | "T" -- True. No value needs to be specified.
    | "F" -- False. No value needs to be specified.
    | "N" -- Nil. No value needs to be specified.
    | "I" -- Infinitum. No value needs to be specified.

Aliases

OscTag

"F" | "I" | "N" | "S" | "T" | "b" | "c" | "d" | "f" | "h" | "i" | "m" | "r" | "s" | "t"

OscTag:
    | "i" -- int32
    | "f" -- float32
    | "s" -- OSC-string
    | "b" -- OSC-blob (raw string)
    | "h" -- 64 bit big-endian two's complement integer
    | "t" -- OSC-timetag
    | "d" -- 64 bit ("double") IEEE 754 floating point number
    | "S" -- Alternate type represented as an OSC-string
    | "c" -- An ascii character, sent as 32 bits
    | "r" -- 32 bit RGBA color
    | "m" -- 4 byte MIDI message. Bytes from MSB to LSB are: port id, status byte, data1, data2
    | "T" -- True. No value needs to be specified.
    | "F" -- False. No value needs to be specified.
    | "N" -- Nil. No value needs to be specified.
    | "I" -- Infinitum. No value needs to be specified.

renoise.Pattern

Constants

MAX_NUMBER_OF_LINES : integer

Maximum number of lines that can be present in a pattern.


Properties

is_empty : boolean

Quickly check if any track in a pattern has some non empty pattern lines. This does not look at track automation.

name : string

Name of the pattern, as visible in the pattern sequencer.

name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

number_of_lines : integer

Number of lines the pattern currently has. 64 by default. Max is renoise.Pattern.MAX_NUMBER_OF_LINES, min is 1.

number_of_lines_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

tracks : renoise.PatternTrack[]

READ-ONLY Access to the pattern tracks. Each pattern has #renoise.song().tracks amount of tracks.


Functions

clear(self)

Deletes all lines & automation.

copy_from(self, other : renoise.Pattern)

Copy contents from other patterns, including automation, when possible.

track(self, index : integer)

->renoise.PatternTrack

Access to a single pattern track by index. Use properties 'tracks' to iterate over all tracks and to query the track count.

has_line_notifier(self, func : PatternLineChangeCallbackWithContext, obj : table | userdata)

->boolean

Check/add/remove notifier functions or methods, which are called by Renoise as soon as any of the pattern's lines have changed. The notifiers are called as soon as a new line is added, an existing line is cleared, or existing lines are somehow changed (notes, effects, anything)

A single argument is passed to the notifier function: "pos", a table with the fields "pattern", "track" and "line", which defines where the change has happened.

examples:

function my_pattern_line_notifier(pos)
  -- check pos.pattern, pos.track, pos.line (all are indices)
end

Please be gentle with these notifiers, don't do too much stuff in there. Ideally just set a flag like "pattern_dirty" which then gets picked up by an app_idle notifier: The danger here is that line change notifiers can be called hundreds of times when, for example, simply clearing a pattern.

If you are only interested in changes that are made to the currently edited pattern, dynamically attach and detach to the selected pattern's line notifiers by listening to "renoise.song().selected_pattern_observable".

add_line_notifier(self, func : PatternLineChangeCallbackWithContext, obj : table | userdata)

remove_line_notifier(self, func : PatternLineChangeCallbackWithContext, obj : table | userdata)

has_line_edited_notifier(self, func : PatternLineChangeCallbackWithContext, obj : table | userdata)

->boolean

Same as line_notifier, but the notifier only fires when the user added, changed or deleted a line with the computer or MIDI keyboard.

add_line_edited_notifier(self, func : PatternLineChangeCallbackWithContext, obj : table | userdata)

remove_line_edited_notifier(self, func : PatternLineChangeCallbackWithContext, obj : table | userdata)


Structs

PatternLinePosition

Line iterator position.


Properties

pattern : integer

track : integer

line : integer


Aliases

PatternLineChangeCallbackWithContext

(obj : table | userdata, pos : PatternLinePosition)

renoise.PatternIterator

Lua pairs/ipairs alike iterator functions to walk through all lines or columns in the entire song, track or a single pattern.

General remarks: Iterators can only be use in "for" loops like you would use "pairs" in Lua.

examples:

for pos,line in renoise.song().pattern_iterator:lines_in_song() do [...] end

The returned pos is a table with "pattern", "track", "line" fields, and an additional "column" field for the note/effect columns.

The visible_only flag controls if all content should be traversed, or only the currently used patterns, columns, and so on. Patterns are traversed in the order they are referenced in the pattern sequence, but each pattern is accessed only once.


Functions

lines_in_song(self, visible_only : boolean?)

->(context : unknown) -> PatternLinePosition, renoise.PatternLine, line : renoise.PatternLine, pos : PatternLinePosition

Iterate over all pattern lines in the song.

note_columns_in_song(self, visible_only : boolean?)

->(context : unknown) -> PatternColumnPosition, renoise.NoteColumn, column : renoise.NoteColumn, pos : PatternColumnPosition

Iterate over all note columns in the song.

effect_columns_in_song(self, visible_only : boolean?)

->(context : unknown) -> PatternColumnPosition, renoise.EffectColumn, column : renoise.EffectColumn, pos : PatternColumnPosition

Iterate over all effect columns in the song.

lines_in_pattern(self, pattern_index : integer)

->(context : unknown) -> PatternLinePosition, renoise.PatternLine, line : renoise.PatternLine, pos : PatternLinePosition

Iterate over all lines in the given pattern only.

note_columns_in_pattern(self, pattern_index : integer, visible_only : boolean?)

->(context : unknown) -> PatternColumnPosition, renoise.NoteColumn, column : renoise.NoteColumn, pos : PatternColumnPosition

Iterate over all note columns in the specified pattern.

effect_columns_in_pattern(self, pattern_index : integer, visible_only : boolean?)

->(context : unknown) -> PatternColumnPosition, renoise.EffectColumn, column : renoise.EffectColumn, pos : PatternColumnPosition

Iterate over all note columns in the specified pattern.

lines_in_track(self, track_index : integer, visible_only : boolean?)

->(context : unknown) -> PatternLinePosition, renoise.PatternLine, line : renoise.PatternLine, pos : PatternLinePosition

Iterate over all lines in the given track only.

note_columns_in_track(self, track_index : integer, visible_only : boolean?)

->(context : unknown) -> PatternColumnPosition, renoise.NoteColumn, column : renoise.NoteColumn, pos : PatternColumnPosition

Iterate over all note/effect columns in the specified track.

effect_columns_in_track(self, track_index : integer, visible_only : boolean?)

->(context : unknown) -> PatternColumnPosition, renoise.EffectColumn, column : renoise.EffectColumn, pos : PatternColumnPosition

lines_in_pattern_track(self, pattern_index : integer, track_index : integer)

->(context : unknown) -> PatternLinePosition, renoise.PatternLine, line : renoise.PatternLine, pos : PatternLinePosition

Iterate over all lines in the given pattern, track only.

note_columns_in_pattern_track(self, pattern_index : integer, track_index : integer, visible_only : boolean?)

->(context : unknown) -> PatternColumnPosition, renoise.NoteColumn, column : renoise.NoteColumn, pos : PatternColumnPosition

Iterate over all note/effect columns in the specified pattern track.

effect_columns_in_pattern_track(self, pattern_index : integer, track_index : integer, visible_only : boolean?)

->(context : unknown) -> PatternColumnPosition, renoise.EffectColumn, column : renoise.EffectColumn, pos : PatternColumnPosition


Structs

PatternColumnPosition

Note/Effect column iterator position.


Properties

pattern : integer

track : integer

line : integer

column : integer

PatternLinePosition

Line iterator position.


Properties

pattern : integer

track : integer

line : integer

renoise.PatternLine

Constants

EMPTY_NOTE : integer

NOTE_OFF : integer

EMPTY_INSTRUMENT : integer

EMPTY_VOLUME : integer

EMPTY_PANNING : integer

EMPTY_DELAY : integer

EMPTY_EFFECT_NUMBER : integer

EMPTY_EFFECT_AMOUNT : integer


Properties

is_empty : boolean

READ-ONLY

note_columns : renoise.NoteColumn[]

READ-ONLY

effect_columns : renoise.EffectColumn[]

READ-ONLY


Functions

clear(self)

Clear all note and effect columns.

copy_from(self, other : renoise.PatternLine)

Copy contents from other_line, trashing column content.

note_column(self, index : integer)

->renoise.NoteColumn

Access to a single note column by index. Use properties 'note_columns' to iterate over all note columns and to query the note_column count. This is a !lot! more efficient than calling the property: note_columns[index] to randomly access columns. When iterating over all columns, use pairs(note_columns).

effect_column(self, index : integer)

->renoise.EffectColumn

Access to a single effect column by index. Use properties 'effect_columns' to iterate over all effect columns and to query the effect_column count. This is a !lot! more efficient than calling the property: effect_columns[index] to randomly access columns. When iterating over all columns, use pairs(effect_columns).

renoise.PatternSequencer

Pattern sequencer component of the Renoise song.


Properties

keep_sequence_sorted : boolean

When true, the sequence will be auto sorted.

keep_sequence_sorted_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selection_range : integer[]

Access to the selected slots in the sequencer. When no selection is present {0, 0} is returned, else Range: (1 - #sequencer.pattern_sequence)

selection_range_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

pattern_sequence : integer[]

Pattern order list: Notifiers will only be fired when sequence positions are added, removed or their order changed. To get notified of pattern assignment changes use the property pattern_assignments_observable. Use set_pattern to change a single pattern in the sequence.

pattern_sequence_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).

pattern_assignments_observable : renoise.Document.Observable

Attach notifiers that will be called as soon as any pattern assignment at any sequence position changes.

pattern_slot_mutes_observable : renoise.Document.Observable

Attach notifiers that will be fired as soon as any slot muting property in any track/sequence slot changes.


Functions

insert_sequence_at(self, sequence_index : integer, pattern_index : integer)

Insert the specified pattern at the given position in the sequence.

insert_new_pattern_at(self, sequence_index : integer)

->new_pattern_index : integer

Insert an empty, unreferenced pattern at the given position.

delete_sequence_at(self, sequence_index : any)

Delete an existing position in the sequence. Renoise needs at least one sequence in the song for playback. Completely removing all sequence positions is not allowed.

pattern(self, sequence_index : integer)

->pattern_index : integer

Access to a single sequence by index (the pattern number). Use property pattern_sequence to iterate over the whole sequence and to query the sequence count.

set_pattern(self, sequence_index : integer, pattern_index : integer)

Change a single assigned pattern for the given sequence index. Use pattern_sequence to iterate or change the whole sequence and to query the sequence count.

clone_range(self, from_sequence_index : integer, to_sequence_index : integer)

Clone a sequence range, appending it right after to_sequence_index. Slot muting is copied as well.

make_range_unique(self, from_sequence_index : integer, to_sequence_index : integer)

Make patterns in the given sequence pos range unique, if needed.

sort(self)

Sort patterns in the sequence in ascending order, keeping the old pattern data in place. This will only change the visual order of patterns, but not change the song's structure.

sequence_is_start_of_section(self, sequence_index : integer)

->boolean, boolean

Access to pattern sequence sections. When the is_start_of_section flag is set for a sequence pos, a section ranges from this pos to the next pos which starts a section, or till the end of the song when there are no others.

set_sequence_is_start_of_section(self, sequence_index : integer, is_section : boolean)

sequence_is_start_of_section_observable(self, sequence_index : integer)

->renoise.Document.Observable

sequence_section_name(self, sequence_index : integer)

->string

Access to a pattern sequence section's name. Section names are only visible for a sequence pos which starts the section (see sequence_is_start_of_section).

set_sequence_section_name(self, sequence_index : integer, name : string)

sequence_section_name_observable(self, sequence_index : integer)

->renoise.Document.Observable

sequence_is_part_of_section(self, sequence_index : integer)

->boolean

Returns true if the given sequence pos is part of a section, else false.

sequence_is_end_of_section(self, sequence_index : integer)

->boolean

Returns true if the given sequence pos is the end of a section, else false

sequence_sections_changed_observable(self)

->renoise.Document.Observable

Observable, which is fired, whenever the section layout in the sequence changed in any way, i.e. new sections got added, existing ones got deleted

track_sequence_slot_is_muted(self, track_index : integer, sequence_index : integer)

->boolean

Access to sequencer slot mute states. Mute slots are memorized in the sequencer and not in the patterns.

set_track_sequence_slot_is_muted(self, track_index : integer, sequence_index : integer, muted : any)

track_sequence_slot_is_selected(self, track_index : integer, sequence_index : integer)

->boolean

Access to sequencer slot selection states.

set_track_sequence_slot_is_selected(self, track_index : integer, sequence_index : integer, selected : any)

renoise.PatternTrack


Properties

is_alias : boolean

READ-ONLY

alias_pattern_index : integer

index or 0 when no alias is present

alias_pattern_index_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

color : RGBColor?

slot color of the pattern in the matrix, nil when no slot color is set

color_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_empty : boolean

Returns true when all the track lines are empty. Does not look at automation.

is_empty_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

lines : renoise.PatternLine[]

READ-ONLY Get all lines in range [1, number_of_lines_in_pattern]. Use renoise.Pattern:add/remove_line_notifier for change notifications.

automation : renoise.PatternTrackAutomation[]

Automation.

automation_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).


Functions

clear(self)

Deletes all lines & automation.

copy_from(self, other : renoise.PatternTrack)

Copy contents from other pattern tracks, including automation when possible.

line(self, index : integer)

->renoise.PatternLine

Access to a single line by index. Line must be in Range: (1 - MAX_NUMBER_OF_LINES). This is a !lot! more efficient than calling the property: lines[index] to randomly access lines.

lines_in_range(self, index_from : integer, index_to : integer)

->renoise.PatternLine[]

Get a specific line range. Index must be Range: (1 - Pattern.MAX_NUMBER_OF_LINES)

find_automation(self, parameter : renoise.DeviceParameter)

->renoise.PatternTrackAutomation?

Returns the automation for the given device parameter or nil when there is none.

create_automation(self, parameter : renoise.DeviceParameter)

->renoise.PatternTrackAutomation

Creates a new automation for the given device parameter. Fires an error when an automation for the given parameter already exists. Returns the newly created automation. Passed parameter must be automatable, which can be tested with 'parameter.is_automatable'.

delete_automation(self, parameter : renoise.DeviceParameter)

Remove an existing automation the given device parameter. Automation must exist.


Aliases

RGBColor

{ 1 : integer, 2 : integer, 3 : integer }

A table of 3 bytes (ranging from 0 to 255) representing the red, green and blue channels of a color. {0xFF, 0xFF, 0xFF} is white {165, 73, 35} is the red from the Renoise logo

renoise.PatternTrackAutomation

Graphical automation of a device parameter within a pattern track.

General remarks: Automation "time" is specified in lines + optional 1/256 line fraction for the sub line grid. The sub line grid has 256 units per line. All times are internally quantized to this sub line grid. For example a time of 1.5 means: line 1 with a note column delay of 128

Constants

Playmode

{
    PLAYMODE_POINTS: integer = 1,
    PLAYMODE_LINES: integer = 2,
    PLAYMODE_CURVES: integer = 3,
}

Properties

dest_device : renoise.AudioDevice

Destination device. Can in some rare circumstances be nil, i.e. when a device or track is about to be deleted.

dest_parameter : renoise.DeviceParameter

Destination device's parameter. Can in some rare circumstances be nil, i.e. when a device or track is about to be deleted.

playmode : renoise.PatternTrackAutomation.Playmode

play-mode (interpolation mode).

playmode_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

length : integer

Range: (1 - NUM_LINES_IN_PATTERN)

selection_start : integer

Range: (1 - automation.length + 1)

selection_start_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selection_end : integer

Range: (1 - automation.length + 1)

selection_end_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selection_range : integer[]

Get or set selection range. when setting an empty table, the existing selection, if any, will be cleared. array of two numbers [] OR Range: (1 - automation.length + 1)

selection_range_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

points : EnvelopePoint[]

Get all points of the automation. When setting a new list of points, items may be unsorted by time, but there may not be multiple points for the same time. Returns a copy of the list, so changing points[1].value will not do anything. Instead, change them via points = { modified_points }.

points_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).


Functions

clear(self)

Removes all points from the automation. Will not delete the automation from tracks[]:automation, instead the resulting automation will not do anything at all.

clear_range(self, from_time : integer, to_time : integer)

Remove all existing points in the given [from, to) time range from the automation.

copy_from(self, other : renoise.PatternTrackAutomation)

Copy all points and playback settings from another track automation.

has_point_at(self, time : integer)

->boolean

Test if a point exists at the given time

add_point_at(self, time : integer, value : number, scaling : number?)

Insert a new point, or change an existing one, if a point in time already exists.

remove_point_at(self, time : integer)

Removes a point at the given time. Point must exist.


Structs

EnvelopePoint

Single point within a pattern track automation envelope.


Properties

time : integer

Automation point's time in pattern lines in Range: (1 - NUM_LINES_IN_PATTERN).

value : number

Automation point value in Range: (0 - 1.0)

scaling : number

Automation point scaling. Used in 'lines' playback mode only - 0.0 is linear.

renoise.Sample

Constants

InterpolationMode

{
    INTERPOLATE_NONE: integer = 1,
    INTERPOLATE_LINEAR: integer = 2,
    INTERPOLATE_CUBIC: integer = 3,
    INTERPOLATE_SINC: integer = 4,
}

LoopMode

{
    LOOP_MODE_OFF: integer = 1,
    LOOP_MODE_FORWARD: integer = 2,
    LOOP_MODE_REVERSE: integer = 3,
    LOOP_MODE_PING_PONG: integer = 4,
}

BeatSyncMode

{
    BEAT_SYNC_REPITCH: integer = 1,
    BEAT_SYNC_PERCUSSION: integer = 2,
    BEAT_SYNC_TEXTURE: integer = 3,
}

NewNoteActionMode

{
    NEW_NOTE_ACTION_NOTE_CUT: integer = 1,
    NEW_NOTE_ACTION_NOTE_OFF: integer = 2,
    NEW_NOTE_ACTION_SUSTAIN: integer = 3,
}

Properties

is_slice_alias : boolean

READ-ONLY True, when the sample slot is an alias to a sliced master sample. Such sample slots are read-only and automatically managed with the master samples slice list.

slice_markers : integer[]

Read/write access to the slice marker list of a sample. When new markers are set or existing ones unset, existing 0S effects or notes to existing slices will NOT be remapped (unlike its done with the insert/remove/move_slice_marker functions). See function insert_slice_marker for info about marker limitations and preconditions.

slice_markers_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).

name : string

Name.

name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

panning : number

Range: (0.0 - 1.0)

panning_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

volume : number

Range: (0.0 - 4.0)

volume_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

transpose : integer

Range: (-120 - 120)

transpose_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

fine_tune : integer

Range: (-127 - 127)

fine_tune_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

beat_sync_enabled : boolean

Beat sync.

beat_sync_enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

beat_sync_lines : integer

Range: (1 - 512)

beat_sync_lines_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

beat_sync_mode : renoise.Sample.BeatSyncMode

beat_sync_mode_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

interpolation_mode : renoise.Sample.InterpolationMode

Interpolation, new note action, oneshot, mute_group, autoseek, autofade.

interpolation_mode_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

oversample_enabled : boolean

oversample_enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

new_note_action : renoise.Sample.NewNoteActionMode

new_note_action_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

oneshot : boolean

oneshot_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

mute_group : integer

Range: (0 - 15) where 0 means no group

mute_group_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

autoseek : boolean

autoseek_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

autofade : boolean

autofade_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

loop_mode : renoise.Sample.LoopMode

Loops.

loop_mode_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

loop_release : boolean

loop_release_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

loop_start : integer

Range: (1 - num_sample_frames)

loop_start_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

loop_end : integer

Range: (1 - num_sample_frames)

loop_end_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

modulation_set_index : integer

The linked modulation set. 0 when disable, else a valid index for the renoise.Instrument.sample_modulation_sets table

modulation_set_index_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

device_chain_index : integer

The linked instrument device chain. 0 when disable, else a valid index for the renoise.Instrument.sample_device_chain table

device_chain_index_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

sample_buffer : renoise.SampleBuffer

READ-ONLY

sample_buffer_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

sample_mapping : renoise.SampleMapping

READ-ONLY Keyboard Note/velocity mapping


Functions

clear(self)

Reset, clear all sample settings and sample data.

copy_from(self, sample : renoise.Sample)

Copy all settings, including sample data from another sample.

insert_slice_marker(self, marker_sample_pos : integer)

Insert a new slice marker at the given sample position. Only samples in the first sample slot may use slices. Creating slices will automatically create sample aliases in the following slots: read-only sample slots that play the sample slice and are mapped to notes. Sliced sample lists can not be modified manually then. To update such aliases, modify the slice marker list instead. Existing 0S effects or notes will be updated to ensure that the old slices are played back just as before.

delete_slice_marker(self, marker_sample_pos : integer)

Delete an existing slice marker. marker_sample_pos must point to an existing marker. See also property 'samples[].slice_markers'. Existing 0S effects or notes will be updated to ensure that the old slices are played back just as before.

move_slice_marker(self, old_marker_pos : integer, new_marker_pos : integer)

Change the sample position of an existing slice marker. see also property 'samples[].slice_markers'. When moving a marker behind or before an existing other marker, existing 0S effects or notes will automatically be updated to ensure that the old slices are played back just as before.

renoise.SampleAhdrsModulationDevice


Properties

name : string

READ-ONLY Fixed name of the device.

short_name : string

READ-ONLY

display_name : string

Configurable device display name.

display_name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

enabled : boolean

Deprecated. Use is_active instead.

enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active : boolean

not active = bypassed

is_active_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_maximized : boolean

Maximize state in modulation chain.

is_maximized_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

target : renoise.SampleModulationDevice.TargetType

READ-ONLY Where the modulation gets applied (Volume, Pan, Pitch, Cutoff, Resonance).

operator : renoise.SampleModulationDevice.OperatorType

Modulation operator: how the device applies.

operator_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

bipolar : boolean

Modulation polarity: when bipolar, the device applies it's values in a -1 to 1 range, when unipolar in a 0 to 1 range.

bipolar_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

tempo_sync_switching_allowed : boolean

READ-ONLY When true, the device has one of more time parameters, which can be switched to operate in synced or unsynced mode. see also field tempo_synced.

tempo_synced : boolean

When true and the device supports sync switching the device operates in wall-clock (ms) instead of beat times. see also property 'tempo_sync_switching_allowed'

tempo_synced_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active_parameter : renoise.DeviceParameter

READ-ONLY Generic access to all parameters of this device.

parameters : renoise.DeviceParameter[]

READ-ONLY

attack : renoise.DeviceParameter

with range (0-1)

hold : renoise.DeviceParameter

with range (0-1)

duration : renoise.DeviceParameter

with range (0-1)

sustain : renoise.DeviceParameter

with range (0-1)

release : renoise.DeviceParameter

with range (0-1)


Functions

init(self)

Reset the device to its default state.

copy_from(self, other_device : renoise.SampleModulationDevice)

Copy a device's state from another device. 'other_device' must be of the same type.

parameter(self, index : integer)

->renoise.DeviceParameter

Access to a single parameter by index. Use properties 'parameters' to iterate over all parameters and to query the parameter count.

renoise.SampleBuffer

NOTE: All properties are invalid when no sample data is present, 'has_sample_data' returns false:

Constants

Channel

{
    CHANNEL_LEFT: integer = 1,
    CHANNEL_RIGHT: integer = 2,
    CHANNEL_LEFT_AND_RIGHT: integer = 3,
}

Properties

has_sample_data : boolean

READ-ONLY Check this before accessing properties

read_only : boolean

READ-ONLY True, when the sample buffer can only be read, but not be modified. true for sample aliases of sliced samples. To modify such sample buffers, modify the sliced master sample buffer instead.

sample_rate : integer

READ-ONLY The current sample rate in Hz, like 44100.

bit_depth : integer

READ-ONLY The current bit depth, like 32, 16, 8.

number_of_channels : integer

READ-ONLY The integer of sample channels (1 or 2)

number_of_frames : integer

READ-ONLY The sample frame count (integer of samples per channel)

display_start : integer

Range: (1 - number_of_frames)

display_start_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

display_length : integer

Range: (1 - number_of_frames)

display_length_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

display_range : integer[]

Range: (1 - number_of_frames)

display_range_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

vertical_zoom_factor : number

Range(0.0-1.0)

vertical_zoom_factor_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selection_start : integer

Range: (1 - number_of_frames)

selection_start_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selection_end : integer

Range: (1 - number_of_frames)

selection_end_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selection_range : integer[]

Range: (1 - number_of_frames)

selection_range_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_channel : renoise.SampleBuffer.Channel

The selected channel.

selected_channel_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.


Functions

create_sample_data(self, sample_rate : integer, bit_depth : integer, num_channels : integer, num_frames : integer)

->success : boolean

Create new sample data with the given rate, bit-depth, channel and frame count. Will trash existing sample data. Initial buffer is all zero. Will only return false when memory allocation fails (you're running out of memory). All other errors are fired as usual.

delete_sample_data(self)

Delete existing sample data.

sample_data(self, channel_index : integer, frame_index : integer)

->values : number[]

Read access to samples in a sample data buffer.

set_sample_data(self, channel_index : integer, frame_index : integer, sample_value : integer)

Write access to samples in a sample data buffer. New samples values must be within [-1, 1] and will be clipped automatically. Sample buffers may be read-only (see property 'read_only'). Attempts to write on such buffers will result into errors. IMPORTANT: before modifying buffers, call 'prepare_sample_data_changes'. When you are done, call 'finalize_sample_data_changes' to generate undo/redo data for your changes and update sample overview caches!

prepare_sample_data_changes(self, undo_redo_enabled : boolean?)

To be called once before sample data gets manipulated via set_sample_data. This will prepare undo/redo data for the whole sample and does other internal housekeeping. Every prepare_sample_data_changes call must be paired with a finalize_sample_data_changes call.

When param undo_redo_enabled is false, no undo/redo data is generated for the following changes. When undefined or true, the global "Enable Undo/Redo in Sample Editor" option is applied.

See also 'finalize_sample_data_changes'.

finalize_sample_data_changes(self)

To be called once after the sample data got manipulated via set_sample_data. This will create undo/redo data for the whole samples, and also updates the sample view caches for the sample. The reason this isn't automatically invoked is to avoid performance overhead when changing sample data 'sample by sample'.

Don't forget to call this after any data changes, or changes may not be visible in the GUI and can not be un/redone!

load_from(self, filename : string)

->success : boolean

Load sample data from a file. Files can be any audio format Renoise supports. Possible errors are shown to the user, otherwise success is returned.

save_as(self, filename : string, format : SampleBuffer.ExportType)

->success : boolean

Export sample data to a file. Possible errors are shown to the user, otherwise success is returned.

format:
    | "wav"
    | "flac"

Aliases

SampleBuffer.ExportType

"flac" | "wav"

SampleBuffer.ExportType:
    | "wav"
    | "flac"

renoise.SampleDeviceChain


Properties

name : string

Name of the audio effect chain.

name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

available_devices : string[]

READ-ONLY Allowed, available devices for 'insert_device_at'.

available_device_infos : AudioDeviceInfo[]

READ-ONLY Returns a list of tables containing more information about the devices.

devices : renoise.AudioDevice[]

READ-ONLY Device access.

devices_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).

available_output_routings : string[]

READ-ONLY Output routing.

output_routing : string

One of 'available_output_routings'

output_routing_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.


Functions

insert_device_at(self, device_path : string, index : integer)

->new_device : renoise.AudioDevice

Insert a new device at the given position. "device_path" must be an available device See: renoise.SampleDeviceChain.available_devices

delete_device_at(self, index : integer)

Delete an existing device from a chain. The mixer device at index 1 can not be deleted.

swap_devices_at(self, index1 : integer, index2 : integer)

Swap the positions of two devices in the device chain. The mixer device at index 1 can not be swapped or moved.

device(self, index : integer)

->renoise.AudioDevice

Access to a single device in the chain.


Structs

AudioDeviceInfo

Audio device info


Properties

path : string

The device's path used by renoise.Track:insert_device_at

name : string

The device's name

short_name : string

The device's name as displayed in shortened lists

favorite_name : string

The device's name as displayed in favorites

is_favorite : boolean

true if the device is a favorite

is_bridged : boolean

true if the device is a bridged plugin

renoise.SampleEnvelopeModulationDevice

Constants

PlayMode

{
    PLAYMODE_POINTS: integer = 1,
    PLAYMODE_LINES: integer = 2,
    PLAYMODE_CURVES: integer = 3,
}

LoopMode

{
    LOOP_MODE_OFF: integer = 1,
    LOOP_MODE_FORWARD: integer = 2,
    LOOP_MODE_REVERSE: integer = 3,
    LOOP_MODE_PING_PONG: integer = 4,
}

MIN_NUMBER_OF_POINTS : integer

MAX_NUMBER_OF_POINTS : integer


Properties

name : string

READ-ONLY Fixed name of the device.

short_name : string

READ-ONLY

display_name : string

Configurable device display name.

display_name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

enabled : boolean

Deprecated. Use is_active instead.

enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active : boolean

not active = bypassed

is_active_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_maximized : boolean

Maximize state in modulation chain.

is_maximized_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

target : renoise.SampleModulationDevice.TargetType

READ-ONLY Where the modulation gets applied (Volume, Pan, Pitch, Cutoff, Resonance).

operator : renoise.SampleModulationDevice.OperatorType

Modulation operator: how the device applies.

operator_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

bipolar : boolean

Modulation polarity: when bipolar, the device applies it's values in a -1 to 1 range, when unipolar in a 0 to 1 range.

bipolar_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

tempo_sync_switching_allowed : boolean

READ-ONLY When true, the device has one of more time parameters, which can be switched to operate in synced or unsynced mode. see also field tempo_synced.

tempo_synced : boolean

When true and the device supports sync switching the device operates in wall-clock (ms) instead of beat times. see also property 'tempo_sync_switching_allowed'

tempo_synced_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active_parameter : renoise.DeviceParameter

READ-ONLY Generic access to all parameters of this device.

parameters : renoise.DeviceParameter[]

READ-ONLY

external_editor_visible : boolean

External editor visibility. set to true to show the editor, false to close it

play_mode : renoise.SampleEnvelopeModulationDevice.PlayMode

Play mode (interpolation mode).

play_mode_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

length : integer

Range: (6 - 1000)

length_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

loop_mode : renoise.SampleEnvelopeModulationDevice.LoopMode

Loop.

loop_mode_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

loop_start : integer

Range: (1 - envelope.length)

loop_start_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

loop_end : integer

Range: (1 - envelope.length)

loop_end_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

sustain_enabled : boolean

Sustain.

sustain_enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

sustain_position : integer

Range: (1 - envelope.length)

sustain_position_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

fade_amount : integer

Range: (0 - 4095)

fade_amount_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

points : SampleEnvelopeModulationDevice.Point[]

Get all points of the envelope. When setting a new list of points, items may be unsorted by time, but there may not be multiple points for the same time. Returns a copy of the list, so changing points[1].value will not do anything. Instead, change them via points = { something } instead.

points_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).


Functions

parameter(self, index : integer)

->renoise.DeviceParameter

Access to a single parameter by index. Use properties 'parameters' to iterate over all parameters and to query the parameter count.

init(self)

Reset the envelope back to its default initial state.

copy_from(self, other_device : renoise.SampleEnvelopeModulationDevice)

Copy all properties from another SampleEnvelopeModulation object.

clear_points(self)

Remove all points from the envelope.

clear_points_in_range(self, from_time : integer, to_time : integer)

Remove points in the given [from, to) time range from the envelope.

copy_points_from(self, other_device : renoise.SampleEnvelopeModulationDevice)

Copy all points from another SampleEnvelopeModulation object.

has_point_at(self, time : integer)

->boolean

Test if a point exists at the given time.

add_point_at(self, time : integer, value : number, scaling : number?)

Add a new point value (or replace any existing value) at time.

remove_point_at(self, time : integer)

Removes a point at the given time. Point must exist.


Structs

SampleEnvelopeModulationDevice.Point


Properties

time : integer

Range: (1 - envelope.length)

value : number

Range: (0.0 - 1.0)

scaling : number

Range: (-1.0 - 1.0)

renoise.SampleFaderModulationDevice

Constants

ScalingType

{
    SCALING_LOG_FAST: integer = 1,
    SCALING_LOG_SLOW: integer = 2,
    SCALING_LINEAR: integer = 3,
    SCALING_EXP_SLOW: integer = 4,
    SCALING_EXP_FAST: integer = 5,
}

Properties

name : string

READ-ONLY Fixed name of the device.

short_name : string

READ-ONLY

display_name : string

Configurable device display name.

display_name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

enabled : boolean

Deprecated. Use is_active instead.

enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active : boolean

not active = bypassed

is_active_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_maximized : boolean

Maximize state in modulation chain.

is_maximized_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

target : renoise.SampleModulationDevice.TargetType

READ-ONLY Where the modulation gets applied (Volume, Pan, Pitch, Cutoff, Resonance).

operator : renoise.SampleModulationDevice.OperatorType

Modulation operator: how the device applies.

operator_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

bipolar : boolean

Modulation polarity: when bipolar, the device applies it's values in a -1 to 1 range, when unipolar in a 0 to 1 range.

bipolar_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

tempo_sync_switching_allowed : boolean

READ-ONLY When true, the device has one of more time parameters, which can be switched to operate in synced or unsynced mode. see also field tempo_synced.

tempo_synced : boolean

When true and the device supports sync switching the device operates in wall-clock (ms) instead of beat times. see also property 'tempo_sync_switching_allowed'

tempo_synced_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active_parameter : renoise.DeviceParameter

READ-ONLY Generic access to all parameters of this device.

parameters : renoise.DeviceParameter[]

READ-ONLY

scaling : renoise.SampleFaderModulationDevice.ScalingType

Scaling mode.

scaling_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

from : renoise.DeviceParameter

Start value.

to : renoise.DeviceParameter

Target value.

duration : renoise.DeviceParameter

Duration.

delay : renoise.DeviceParameter

Delay.


Functions

init(self)

Reset the device to its default state.

copy_from(self, other_device : renoise.SampleModulationDevice)

Copy a device's state from another device. 'other_device' must be of the same type.

parameter(self, index : integer)

->renoise.DeviceParameter

Access to a single parameter by index. Use properties 'parameters' to iterate over all parameters and to query the parameter count.

renoise.SampleKeyTrackingModulationDevice


Properties

name : string

READ-ONLY Fixed name of the device.

short_name : string

READ-ONLY

display_name : string

Configurable device display name.

display_name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

enabled : boolean

Deprecated. Use is_active instead.

enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active : boolean

not active = bypassed

is_active_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_maximized : boolean

Maximize state in modulation chain.

is_maximized_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

target : renoise.SampleModulationDevice.TargetType

READ-ONLY Where the modulation gets applied (Volume, Pan, Pitch, Cutoff, Resonance).

operator : renoise.SampleModulationDevice.OperatorType

Modulation operator: how the device applies.

operator_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

bipolar : boolean

Modulation polarity: when bipolar, the device applies it's values in a -1 to 1 range, when unipolar in a 0 to 1 range.

bipolar_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

tempo_sync_switching_allowed : boolean

READ-ONLY When true, the device has one of more time parameters, which can be switched to operate in synced or unsynced mode. see also field tempo_synced.

tempo_synced : boolean

When true and the device supports sync switching the device operates in wall-clock (ms) instead of beat times. see also property 'tempo_sync_switching_allowed'

tempo_synced_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active_parameter : renoise.DeviceParameter

READ-ONLY Generic access to all parameters of this device.

parameters : renoise.DeviceParameter[]

READ-ONLY

min : renoise.DeviceParameter

with range (0-119)

max : renoise.DeviceParameter

with range (0-119)


Functions

init(self)

Reset the device to its default state.

copy_from(self, other_device : renoise.SampleModulationDevice)

Copy a device's state from another device. 'other_device' must be of the same type.

parameter(self, index : integer)

->renoise.DeviceParameter

Access to a single parameter by index. Use properties 'parameters' to iterate over all parameters and to query the parameter count.

renoise.SampleLfoModulationDevice

Constants

Mode

{
    MODE_SIN: integer = 1,
    MODE_SAW: integer = 2,
    MODE_PULSE: integer = 3,
    MODE_RANDOM: integer = 4,
}

Properties

name : string

READ-ONLY Fixed name of the device.

short_name : string

READ-ONLY

display_name : string

Configurable device display name.

display_name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

enabled : boolean

Deprecated. Use is_active instead.

enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active : boolean

not active = bypassed

is_active_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_maximized : boolean

Maximize state in modulation chain.

is_maximized_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

target : renoise.SampleModulationDevice.TargetType

READ-ONLY Where the modulation gets applied (Volume, Pan, Pitch, Cutoff, Resonance).

operator : renoise.SampleModulationDevice.OperatorType

Modulation operator: how the device applies.

operator_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

bipolar : boolean

Modulation polarity: when bipolar, the device applies it's values in a -1 to 1 range, when unipolar in a 0 to 1 range.

bipolar_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

tempo_sync_switching_allowed : boolean

READ-ONLY When true, the device has one of more time parameters, which can be switched to operate in synced or unsynced mode. see also field tempo_synced.

tempo_synced : boolean

When true and the device supports sync switching the device operates in wall-clock (ms) instead of beat times. see also property 'tempo_sync_switching_allowed'

tempo_synced_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active_parameter : renoise.DeviceParameter

READ-ONLY Generic access to all parameters of this device.

parameters : renoise.DeviceParameter[]

READ-ONLY

mode : renoise.SampleLfoModulationDevice.Mode

LFO mode.

phase : renoise.DeviceParameter

with range (0-360)

frequency : renoise.DeviceParameter

with range (0-1)

amount : renoise.DeviceParameter

with range (0-1)

delay : renoise.DeviceParameter

Delay.


Functions

init(self)

Reset the device to its default state.

copy_from(self, other_device : renoise.SampleModulationDevice)

Copy a device's state from another device. 'other_device' must be of the same type.

parameter(self, index : integer)

->renoise.DeviceParameter

Access to a single parameter by index. Use properties 'parameters' to iterate over all parameters and to query the parameter count.

renoise.SampleMapping

General remarks: Sample mappings of sliced samples are read-only: can not be modified. See sample_mappings[].read_only


Properties

read_only : boolean

READ-ONLY True for sliced instruments. No sample mapping properties are allowed to be modified, but can be read.

sample : renoise.Sample

Linked sample.

layer : renoise.Instrument.Layer

Mapping's layer (triggered via Note-Ons or Note-Offs?).

layer_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

map_velocity_to_volume : boolean

Mappings velocity->volume and key->pitch options.

map_velocity_to_volume_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

map_key_to_pitch : boolean

map_key_to_pitch_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

base_note : integer

Range: (0-119, c-4=48)]

base_note_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

note_range : integer[]

Range: (0 - 119) where C-4 is 48

note_range_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

velocity_range : integer[]

Range: (0 - 127)

velocity_range_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

renoise.SampleModulationDevice

Constants

TargetType

{
    TARGET_VOLUME: integer = 1,
    TARGET_PANNING: integer = 2,
    TARGET_PITCH: integer = 3,
    TARGET_CUTOFF: integer = 4,
    TARGET_RESONANCE: integer = 5,
    TARGET_DRIVE: integer = 6,
}

OperatorType

{
    OPERATOR_ADD: integer = 1,
    OPERATOR_SUB: integer = 2,
    OPERATOR_MUL: integer = 3,
    OPERATOR_DIV: integer = 4,
}

Properties

name : string

READ-ONLY Fixed name of the device.

short_name : string

READ-ONLY

display_name : string

Configurable device display name.

display_name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

enabled : boolean

Deprecated. Use is_active instead.

enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active : boolean

not active = bypassed

is_active_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_maximized : boolean

Maximize state in modulation chain.

is_maximized_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

target : renoise.SampleModulationDevice.TargetType

READ-ONLY Where the modulation gets applied (Volume, Pan, Pitch, Cutoff, Resonance).

operator : renoise.SampleModulationDevice.OperatorType

Modulation operator: how the device applies.

operator_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

bipolar : boolean

Modulation polarity: when bipolar, the device applies it's values in a -1 to 1 range, when unipolar in a 0 to 1 range.

bipolar_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

tempo_sync_switching_allowed : boolean

READ-ONLY When true, the device has one of more time parameters, which can be switched to operate in synced or unsynced mode. see also field tempo_synced.

tempo_synced : boolean

When true and the device supports sync switching the device operates in wall-clock (ms) instead of beat times. see also property 'tempo_sync_switching_allowed'

tempo_synced_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active_parameter : renoise.DeviceParameter

READ-ONLY Generic access to all parameters of this device.

parameters : renoise.DeviceParameter[]

READ-ONLY


Functions

init(self)

Reset the device to its default state.

copy_from(self, other_device : renoise.SampleModulationDevice)

Copy a device's state from another device. 'other_device' must be of the same type.

parameter(self, index : integer)

->renoise.DeviceParameter

Access to a single parameter by index. Use properties 'parameters' to iterate over all parameters and to query the parameter count.

renoise.SampleModulationSet


Properties

name : string

Name of the modulation set.

name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

volume_input : renoise.DeviceParameter

Input value for the volume domain

panning_input : renoise.DeviceParameter

Input value for the panning domain

pitch_input : renoise.DeviceParameter

Input value for the pitch domain

cutoff_input : renoise.DeviceParameter

Input value for the cutoff domain

resonance_input : renoise.DeviceParameter

Input value for the resonance domain

drive_input : renoise.DeviceParameter

Input value for the drive domain

pitch_range : integer

Range: (1 - 96)

pitch_range_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

available_devices : string[]

READ-ONLY All available devices, to be used in 'insert_device_at'.

devices : renoise.SampleModulationDevice[]

READ-ONLY Device list access.

devices_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).

filter_version : 1 | 2 | 3

READ-ONLY Filter version, 3 is the latest.

filter_version_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

available_filter_types : FilterTypes[]

READ-ONLY List of available filter types depending on the filter_version.

filter_type : FilterTypes

The type of the filter selected for the modulation set. Songs made with previous versions of Renoise may use old filter types.

filter_type_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.


Functions

init(self)

Reset all chain back to default initial state. Removing all devices too.

copy_from(self, other_set : renoise.SampleModulationSet)

Copy all devices from another SampleModulationSet object.

insert_device_at(self, device_path : string, target_type : renoise.SampleModulationDevice.TargetType, index : integer)

->new_sample_modulation_device : renoise.SampleModulationDevice

Insert a new device at the given position. "device_path" must be one of renoise.song().instruments[].sample_modulation_sets[].available_devices.

delete_device_at(self, index : integer)

Delete a device at the given index.

device(self, index : integer)

->renoise.SampleModulationDevice

Access a single device by index.

upgrade_filter_version(self)

Upgrade filter to the latest version. Tries to find a somewhat matching filter in the new version, but things quite likely won't sound the same.


Aliases

FilterTypes

FilterTypes1 | FilterTypes2 | FilterTypes3

-- Available filter types when filter_version = 3
-- Available filter types when filter_version = 3
-- Available filter types when filter_version = 2
-- Available filter types when filter_version = 1
FilterTypes:
    | "None"
    | "LP Clean"
    | "LP K35"
    | "LP Moog"
    | "LP Diode"
    | "HP Clean"
    | "HP K35"
    | "HP Moog"
    | "BP Clean"
    | "BP K35"
    | "BP Moog"
    | "BandPass"
    | "BandStop"
    | "Vowel"
    | "Comb"
    | "Decimator"
    | "Dist Shape"
    | "Dist Fold"
    | "AM Sine"
    | "AM Triangle"
    | "AM Saw"
    | "AM Pulse"
    | "None"
    | "LP 2x2 Pole"
    | "LP 2 Pole"
    | "LP Biquad"
    | "LP Moog"
    | "LP Single"
    | "HP 2x2 Pole"
    | "HP 2 Pole"
    | "HP Moog"
    | "Band Reject"
    | "Band Pass"
    | "EQ -15 dB"
    | "EQ -6 dB"
    | "EQ +6 dB"
    | "EQ +15 dB"
    | "EQ Peaking"
    | "Dist. Low"
    | "Dist. Mid"
    | "Dist. High"
    | "Dist."
    | "RingMod"
    | "None"
    | "LP -12 dB"
    | "LP -24 dB"
    | "LP -48 dB"
    | "Moog LP"
    | "Single Pole"
    | "HP -12 dB"
    | "HP -24 dB"
    | "Moog HP"
    | "Band Reject"
    | "Band Pass"
    | "EQ -15 dB"
    | "EQ -6 dB"
    | "EQ +6 dB"
    | "EQ +15 dB"
    | "Peaking EQ"
    | "Dist. Low"
    | "Dist. Mid"
    | "Dist. High"
    | "Dist."
    | "AMod"

FilterTypes1

"AMod" | "Band Pass" | "Band Reject" | "Dist. High" | "Dist. Low" | "Dist. Mid" | "Dist." | "EQ +15 dB" | "EQ +6 dB" | "EQ -15 dB" | "EQ -6 dB" | "HP -12 dB" | "HP -24 dB" | "LP -12 dB" | "LP -24 dB" | "LP -48 dB" | "Moog HP" | "Moog LP" | "None" | "Peaking EQ" | "Single Pole"

-- Available filter types when filter_version = 1
FilterTypes1:
    | "None"
    | "LP -12 dB"
    | "LP -24 dB"
    | "LP -48 dB"
    | "Moog LP"
    | "Single Pole"
    | "HP -12 dB"
    | "HP -24 dB"
    | "Moog HP"
    | "Band Reject"
    | "Band Pass"
    | "EQ -15 dB"
    | "EQ -6 dB"
    | "EQ +6 dB"
    | "EQ +15 dB"
    | "Peaking EQ"
    | "Dist. Low"
    | "Dist. Mid"
    | "Dist. High"
    | "Dist."
    | "AMod"

FilterTypes2

"Band Pass" | "Band Reject" | "Dist. High" | "Dist. Low" | "Dist. Mid" | "Dist." | "EQ +15 dB" | "EQ +6 dB" | "EQ -15 dB" | "EQ -6 dB" | "EQ Peaking" | "HP 2 Pole" | "HP 2x2 Pole" | "HP Moog" | "LP 2 Pole" | "LP 2x2 Pole" | "LP Biquad" | "LP Moog" | "LP Single" | "None" | "RingMod"

-- Available filter types when filter_version = 2
FilterTypes2:
    | "None"
    | "LP 2x2 Pole"
    | "LP 2 Pole"
    | "LP Biquad"
    | "LP Moog"
    | "LP Single"
    | "HP 2x2 Pole"
    | "HP 2 Pole"
    | "HP Moog"
    | "Band Reject"
    | "Band Pass"
    | "EQ -15 dB"
    | "EQ -6 dB"
    | "EQ +6 dB"
    | "EQ +15 dB"
    | "EQ Peaking"
    | "Dist. Low"
    | "Dist. Mid"
    | "Dist. High"
    | "Dist."
    | "RingMod"

FilterTypes3

"AM Pulse" | "AM Saw" | "AM Sine" | "AM Triangle" | "BP Clean" | "BP K35" | "BP Moog" | "BandPass" | "BandStop" | "Comb" | "Decimator" | "Dist Fold" | "Dist Shape" | "HP Clean" | "HP K35" | "HP Moog" | "LP Clean" | "LP Diode" | "LP K35" | "LP Moog" | "None" | "Vowel"

-- Available filter types when filter_version = 3
FilterTypes3:
    | "None"
    | "LP Clean"
    | "LP K35"
    | "LP Moog"
    | "LP Diode"
    | "HP Clean"
    | "HP K35"
    | "HP Moog"
    | "BP Clean"
    | "BP K35"
    | "BP Moog"
    | "BandPass"
    | "BandStop"
    | "Vowel"
    | "Comb"
    | "Decimator"
    | "Dist Shape"
    | "Dist Fold"
    | "AM Sine"
    | "AM Triangle"
    | "AM Saw"
    | "AM Pulse"

renoise.SampleOperandModulationDevice


Properties

name : string

READ-ONLY Fixed name of the device.

short_name : string

READ-ONLY

display_name : string

Configurable device display name.

display_name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

enabled : boolean

Deprecated. Use is_active instead.

enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active : boolean

not active = bypassed

is_active_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_maximized : boolean

Maximize state in modulation chain.

is_maximized_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

target : renoise.SampleModulationDevice.TargetType

READ-ONLY Where the modulation gets applied (Volume, Pan, Pitch, Cutoff, Resonance).

operator : renoise.SampleModulationDevice.OperatorType

Modulation operator: how the device applies.

operator_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

bipolar : boolean

Modulation polarity: when bipolar, the device applies it's values in a -1 to 1 range, when unipolar in a 0 to 1 range.

bipolar_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

tempo_sync_switching_allowed : boolean

READ-ONLY When true, the device has one of more time parameters, which can be switched to operate in synced or unsynced mode. see also field tempo_synced.

tempo_synced : boolean

When true and the device supports sync switching the device operates in wall-clock (ms) instead of beat times. see also property 'tempo_sync_switching_allowed'

tempo_synced_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active_parameter : renoise.DeviceParameter

READ-ONLY Generic access to all parameters of this device.

parameters : renoise.DeviceParameter[]

READ-ONLY

value : renoise.DeviceParameter

Operand value.


Functions

init(self)

Reset the device to its default state.

copy_from(self, other_device : renoise.SampleModulationDevice)

Copy a device's state from another device. 'other_device' must be of the same type.

parameter(self, index : integer)

->renoise.DeviceParameter

Access to a single parameter by index. Use properties 'parameters' to iterate over all parameters and to query the parameter count.

renoise.SampleStepperModulationDevice

Constants

PlayMode

{
    PLAYMODE_POINTS: integer = 1,
    PLAYMODE_LINES: integer = 2,
    PLAYMODE_CURVES: integer = 3,
}

MIN_NUMBER_OF_POINTS : integer

MAX_NUMBER_OF_POINTS : integer


Properties

name : string

READ-ONLY Fixed name of the device.

short_name : string

READ-ONLY

display_name : string

Configurable device display name.

display_name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

enabled : boolean

Deprecated. Use is_active instead.

enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active : boolean

not active = bypassed

is_active_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_maximized : boolean

Maximize state in modulation chain.

is_maximized_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

target : renoise.SampleModulationDevice.TargetType

READ-ONLY Where the modulation gets applied (Volume, Pan, Pitch, Cutoff, Resonance).

operator : renoise.SampleModulationDevice.OperatorType

Modulation operator: how the device applies.

operator_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

bipolar : boolean

Modulation polarity: when bipolar, the device applies it's values in a -1 to 1 range, when unipolar in a 0 to 1 range.

bipolar_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

tempo_sync_switching_allowed : boolean

READ-ONLY When true, the device has one of more time parameters, which can be switched to operate in synced or unsynced mode. see also field tempo_synced.

tempo_synced : boolean

When true and the device supports sync switching the device operates in wall-clock (ms) instead of beat times. see also property 'tempo_sync_switching_allowed'

tempo_synced_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active_parameter : renoise.DeviceParameter

READ-ONLY Generic access to all parameters of this device.

parameters : renoise.DeviceParameter[]

READ-ONLY

external_editor_visible : boolean

External editor visibility. set to true to show the editor, false to close it

play_mode : renoise.SampleStepperModulationDevice.PlayMode

Play mode (interpolation mode).

play_mode_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

play_step : integer

Range: (-1 - 16)

play_step_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

length : integer

Range: (1 - 256)

length_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

points : SampleStepperModulationDevice.Point[]

Get all points of the envelope. When setting a new list of points, items may be unsorted by time, but there may not be multiple points for the same time. Returns a copy of the list, so changing points[1].value will not do anything. Instead, change them via points = { something }.

points_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).


Functions

parameter(self, index : integer)

->renoise.DeviceParameter

Access to a single parameter by index. Use properties 'parameters' to iterate over all parameters and to query the parameter count.

init(self)

Reset the envelope back to its default initial state.

copy_from(self, other_device : renoise.SampleStepperModulationDevice)

Copy all properties from another SampleStepperModulation object.

clear_points(self)

Remove all points from the envelope.

clear_points_in_range(self, from_time : integer, to_time : integer)

Remove points in the given [from, to) time range from the envelope.

copy_points_from(self, other_device : renoise.SampleStepperModulationDevice)

Copy all points from another SampleStepperModulation object.

has_point_at(self, time : integer)

->boolean

Test if a point exists at the given time.

add_point_at(self, time : integer, value : number, scaling : number?)

Add a new point value (or replace any existing value) at time.

remove_point_at(self, time : integer)

Removes a point at the given time. Point must exist.


Structs

SampleStepperModulationDevice.Point


Properties

time : integer

Range: (1 - envelope.length)

value : number

Range: (0.0 - 1.0)

scaling : number

Range: (-1.0 - 1.0)

renoise.SampleVelocityTrackingModulationDevice

Constants

Mode

{
    MODE_CLAMP: integer = 1,
    MODE_SCALE: integer = 2,
}

Properties

name : string

READ-ONLY Fixed name of the device.

short_name : string

READ-ONLY

display_name : string

Configurable device display name.

display_name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

enabled : boolean

Deprecated. Use is_active instead.

enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active : boolean

not active = bypassed

is_active_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_maximized : boolean

Maximize state in modulation chain.

is_maximized_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

target : renoise.SampleModulationDevice.TargetType

READ-ONLY Where the modulation gets applied (Volume, Pan, Pitch, Cutoff, Resonance).

operator : renoise.SampleModulationDevice.OperatorType

Modulation operator: how the device applies.

operator_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

bipolar : boolean

Modulation polarity: when bipolar, the device applies it's values in a -1 to 1 range, when unipolar in a 0 to 1 range.

bipolar_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

tempo_sync_switching_allowed : boolean

READ-ONLY When true, the device has one of more time parameters, which can be switched to operate in synced or unsynced mode. see also field tempo_synced.

tempo_synced : boolean

When true and the device supports sync switching the device operates in wall-clock (ms) instead of beat times. see also property 'tempo_sync_switching_allowed'

tempo_synced_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

is_active_parameter : renoise.DeviceParameter

READ-ONLY Generic access to all parameters of this device.

parameters : renoise.DeviceParameter[]

READ-ONLY

mode : renoise.SampleVelocityTrackingModulationDevice.Mode

Mode.

mode_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

min : renoise.DeviceParameter

with range (0-127)

max : renoise.DeviceParameter

with range (0-127)


Functions

init(self)

Reset the device to its default state.

copy_from(self, other_device : renoise.SampleModulationDevice)

Copy a device's state from another device. 'other_device' must be of the same type.

parameter(self, index : integer)

->renoise.DeviceParameter

Access to a single parameter by index. Use properties 'parameters' to iterate over all parameters and to query the parameter count.

renoise.ScriptingTool

The scripting tool interface allows your tool to interact with Renoise by injecting or creating menu entries and keybindings into Renoise; or by attaching it to some common tool related notifiers.


Properties

bundle_path : string

READ_ONLY Full absolute path and name to your tool's bundle directory.

tool_finished_loading_observable : renoise.Document.Observable

Invoked when the tool finished loading/initializing and no errors happened. When the tool has preferences, they are loaded here as well when the notification fires, but 'renoise.song()' may not yet be available.

See also 'renoise.tool().app_new_document_observable'.

tool_will_unload_observable : renoise.Document.Observable

Invoked right before a tool gets unloaded: either because it got disabled, reloaded or the application exists. You can cleanup resources or connections to other devices here if necessary.

app_became_active_observable : renoise.Document.Observable

Invoked as soon as the application becomes the foreground window. For example, when you ATL-TAB to it, or activate it with the mouse from another app to Renoise.

app_resigned_active_observable : renoise.Document.Observable

Invoked as soon as the application looses focus and another app becomes the foreground window.

app_idle_observable : renoise.Document.Observable

Invoked periodically in the background, more often when the work load is low, less often when Renoise's work load is high. The exact interval is undefined and can not be relied on, but will be around 10 times per sec. You can do stuff in the background without blocking the application here. Be gentle and don't do CPU heavy stuff please!

app_release_document_observable : renoise.Document.Observable

Invoked each time before a new document gets created or loaded: this is the last time renoise.song() still points to the old song before a new one arrives. You can explicitly release notifiers to the old document here, or do your own housekeeping. Also called right before the application exits.

app_new_document_observable : renoise.Document.Observable

Invoked each time a new document (song) is created or loaded. In other words: each time the result of renoise.song() is changed. Also called when the script gets reloaded (only happens with the auto_reload debugging tools), in order to connect the new script instance to the already running document.

app_will_save_document_observable : renoise.Document.Observable

Invoked just before the application document (song) is saved. This is the last chance to make any changes that should be part of the saved song. You could for example write your tool data to renoise.song().tool_data here.

app_saved_document_observable : renoise.Document.Observable

Invoked each time the app's document (song) is successfully saved. renoise.song().file_name will point to the filename that it was saved to.

preferences : renoise.Document.DocumentNode

Get or set an optional renoise.Document.DocumentNode object, which will be used as set of persistent "options" or preferences for your tool. By default nil. When set, the assigned document object will automatically be loaded and saved by Renoise, to retain the tools state. The preference XML file is saved/loaded within the tool bundle as "com.example.your_tool.xrnx/preferences.xml".

examples:

-- create a document via "Document.create"
my_options = renoise.Document.create("ScriptingToolPreferences") {
 some_option = true,
 some_value = "string_value"
}

-- or create a document by inheriting from renoise.Document.DocumentNode
class "ExampleToolPreferences"(renoise.Document.DocumentNode)
  function ExampleToolPreferences:__init()
    renoise.Document.DocumentNode.__init(self)
    self:add_property("some_option", true)
    self:add_property("some_value", "string_value")
  end

  my_options = ExampleToolPreferences()
  -- values can be accessed (read, written) via
  my_options.some_option.value = false
  -- also notifiers can be added to listen to changes to the values
  -- done by you, or after new values got loaded or a view changed the value:
  my_options.some_option:add_notifier(function() end)

-- and assign it:
renoise.tool().preferences = my_options
-- 'my_options' will be loaded/saved automatically with the tool now

Functions

has_menu_entry(self, entry_name : string)

->boolean

Returns true if the given entry already exists, otherwise false.

add_menu_entry(self, entry : ToolMenuEntry)

Add a new menu entry.

remove_menu_entry(self, entry_name : string)

Remove a previously added menu entry by specifying its full name.

has_keybinding(self, keybinding_name : string)

->boolean

Returns true when the given keybinging already exists, otherwise false.

add_keybinding(self, keybinding : ToolKeybindingEntry)

Register key bindings somewhere in Renoise's existing set of bindings.

remove_keybinding(self, keybinding_name : string)

Remove a previously added key binding by specifying its name and path.

has_midi_mapping(self, midi_mapping_name : string)

->boolean

Returns true when the given mapping already exists, otherwise false.

add_midi_mapping(self, midi_mapping : ToolMidiMappingEntry)

Add a new midi_mapping entry.

remove_midi_mapping(self, midi_mapping_name : string)

Remove a previously added midi mapping by specifying its name.

has_file_import_hook(self, category : FileHookCategory, extensions_table : string[])

->boolean

Returns true when the given hook already exists, otherwise false.

category:
    | "song"
    | "instrument"
    | "effect chain"
    | "effect preset"
    | "modulation set"
    | "phrase"
    | "sample"
    | "theme"

add_file_import_hook(self, file_import_hook : ToolFileImportHook)

Add a new file import hook as described above.

remove_file_import_hook(self, category : FileHookCategory, extensions_table : string[])

Remove a previously added file import hook by specifying its category and extension(s)

category:
    | "song"
    | "instrument"
    | "effect chain"
    | "effect preset"
    | "modulation set"
    | "phrase"
    | "sample"
    | "theme"

has_timer(self, timer : TimerFunction)

->boolean

Returns true when the given function or method was registered as a timer.

add_timer(self, timer : TimerFunction, interval_in_ms : number)

Register a timer function or table with a function and context (a method) that periodically gets called by the app_idle_observable for your tool.

Modal dialogs will avoid that timers are called. To create a one-shot timer, simply call remove_timer at the end of your timer function.

interval_in_ms must be > 0. The exact interval your function is called will vary a bit, depending on workload; e.g. when enough CPU time is available the rounding error will be around +/- 5 ms.

remove_timer(self, timer : TimerFunction)

Remove a previously registered timer.


Structs

ToolFileImportHook

Add support for new filetypes in Renoise. Registered file types will show up in Renoise's disk browser and can also be loaded by drag and dropping the files onto the Renoise window. When adding hooks for files which Renoise already supports, your tool's import functions will override the internal import functions.

Always load the file into the currently selected component, like 'renoise.song().selected_track','selected_instrument','selected_sample'.

Preloading/prehearing sample files is not supported via tools.


Properties

category : FileHookCategory

In which disk browser category the file type shows up. One of

extensions : string[]

A list of strings, file extensions, that will invoke your hook, like for example {"txt", "s_wave"}

invoke : (file_name : string) -> boolean

function that is called to do the import. return true when the import succeeded, else false.


Aliases

FileHookCategory

"effect chain" | "effect preset" | "instrument" | "modulation set" | "phrase" | "sample" | "song" | "theme"

FileHookCategory:
    | "song"
    | "instrument"
    | "effect chain"
    | "effect preset"
    | "modulation set"
    | "phrase"
    | "sample"
    | "theme"

ToolKeybindingEntry

Register tool key bindings somewhere in Renoise's existing set of bindings.

Please note: there's no way to define default keyboard shortcuts for your entries. Users manually have to bind them in the keyboard prefs pane. As soon as they do, they'll get saved just like any other key binding in Renoise.


Properties

name : string

The scope, name and category of the key binding use the form: $scope:$topic_name:$binding_name:

$scope is where the shortcut will be applied, just like those in the categories list for the keyboard assignment preference pane. Your key binding will only fire, when the scope is currently focused, except it's the global scope one. Using an unavailable scope will not fire an error, instead it will render the binding useless. It will be listed and mappable, but never be invoked.

$topic_name is useful when grouping entries in the key assignment pane. Use "tool" if you can't come up with something meaningful.

$binding_name is the name of the binding.

-Currently available scopes are:

+ "Global"
+ "Automation"
+ "Disk Browser"
+ "DSPs Chain"
+ "Instrument Box"
+ "Mixer"
+ "Pattern Editor"
+ "Pattern Matrix"
+ "Pattern Sequencer"
+ "Sample Editor"
+ "Sample FX Mixer"
+ "Sample Keyzones"
+ "Sample Modulation Matrix"

invoke : (repeated : boolean)

A function that is called as soon as the mapped key is pressed. The callback parameter "repeated", indicates if its a virtual key repeat.

ToolMenuEntry

Defines a menu entry somewhere in Renoise's existing context menus or the global app menu. Insertion can be done during script initialization, but can also be done dynamically later on.

You can place your entries in any context menu or any window menu in Renoise. To do so, use one of the specified categories in its name:

+ "Window Menu" -- Renoise icon menu in the window caption on Windows/Linux
+ "Main Menu:XXX" (with XXX = ":File", ":Edit", ":View", ":Tools" or ":Help") -- Main menu
+ "Scripting Menu:XXX" (with XXX = ":File" or ":Tools") -- Scripting Editor & Terminal
+ "Disk Browser Directories"
+ "Disk Browser Files"
+ "Instrument Box"
+ "Pattern Sequencer"
+ "Pattern Editor"
+ "Pattern Matrix"
+ "Pattern Matrix Header"
+ "Phrase Editor"
+ "Phrase Mappings"
+ "Phrase Grid"
+ "Phrase Script Editor"
+ "Sample Navigator"
+ "Sample Editor"
+ "Sample Editor Ruler"
+ "Sample Editor Slice Markers"
+ "Sample List"
+ "Sample Mappings"
+ "Sample FX Mixer"
+ "Sample Modulation Matrix"
+ "Mixer"
+ "Master Spectrum"
+ "Track Automation"
+ "Track Automation List"
+ "DSP Chain"
+ "DSP Chain List"
+ "DSP Device"
+ "DSP Device Header"
+ "DSP Device Automation"
+ "Modulation Set"
+ "Modulation Set List"
+ "Tool Browser"
+ "Script File Browser"
+ "Script File Tabs"
+ "Script Editor"

Separating entries: To divide entries into groups (separate entries with a line), prepend one or more dashes to the name, like "--- Main Menu:Tools:My Tool Group Starts Here"


Properties

name : string

Name and 'path' of the entry as shown in the global menus or context menus to the user.

invoke : fun()

A function that is called as soon as the entry is clicked

active : () -> boolean

A function that should return true or false. When returning false, the action will not be invoked and will be "greyed out" in menus. This function is always called before "invoke", and every time prior to a menu becoming visible.

selected : () -> boolean

A function that should return true or false. When returning true, the entry will be marked as "this is a selected option"

ToolMidiMappingEntry

Extend Renoise's default MIDI mapping set, or add custom MIDI mappings for your tool.

A tool's MIDI mapping can be used just like the regular mappings in Renoise: Either by manually looking its up the mapping in the MIDI mapping list, then binding it to a MIDI message, or when your tool has a custom GUI, specifying the mapping via a control's control.midi_mapping property. Such controls will then get highlighted as soon as the MIDI mapping dialog is opened. Then, users simply click on the highlighted control to map MIDI messages.


Properties

name : string

The group, name of the midi mapping; as visible to the user.

The scope, name and category of the midi mapping use the form: $topic_name:$optional_sub_topic_name:$name:

$topic_name and $optional_sub_topic_name will create new groups in the list of MIDI mappings, as seen in Renoise's MIDI mapping dialog. If you can't come up with a meaningful string, use your tool's name as topic name.

Existing global mappings from Renoise can be overridden. In this case the original mappings are no longer called, only your tool's mapping.

invoke : (message : renoise.ScriptingTool.MidiMessage)

A function that is called to handle a bound MIDI message.


Aliases

FileHookCategory

"effect chain" | "effect preset" | "instrument" | "modulation set" | "phrase" | "sample" | "song" | "theme"

FileHookCategory:
    | "song"
    | "instrument"
    | "effect chain"
    | "effect preset"
    | "modulation set"
    | "phrase"
    | "sample"
    | "theme"

TimerFunction

fun()

renoise.ScriptingTool.MidiMessage

MIDI message as passed to the invoke callback in tool midi_mappings.


Properties

int_value : integer?

Range: (0S - 127) for abs values, Range: (-63 - 63) for relative values valid when is_rel_value() or is_abs_value() returns true, else undefined

boolean_value : boolean?

valid [true OR false] when is_switch() returns true, else undefined


Functions

is_trigger(self)

returns if action should be invoked

is_switch(self)

check if the boolean_value property is valid

is_rel_value(self)

->boolean

check if the int_value property is valid

is_abs_value(self)

->boolean

check if the int_value property is valid

renoise.Socket

Interfaces for built-in socket support for Lua scripts in Renoise.

Right now UDP and TCP protocols are supported. The class interfaces for UDP and TCP sockets behave exactly the same. That is, they don't depend on the protocol, so both are easily interchangeable when needed.

Constants

Protocol

{
    PROTOCOL_TCP: integer = 1,
    PROTOCOL_UDP: integer = 2,
}

Functions

create_server(server_address : string, server_port : integer, protocol : renoise.Socket.Protocol?)

->renoise.Socket.SocketServer?, string?

Creates a connected UPD or TCP server object. Use "localhost" to use your system's default network address. Protocol can be renoise.Socket.PROTOCOL_TCP or renoise.Socket.PROTOCOL_UDP (by default TCP). When instantiation and connection succeed, a valid server object is returned, otherwise "error" is set and the server object is nil. Using the create function with no server_address allows you to create a server which allows connections to any address (for example localhost and some IP)

create_client(server_address : string, server_port : integer, protocol : renoise.Socket.Protocol?, timeout : integer?)

->client : renoise.Socket.SocketClient?, error : string?

Create a connected UPD or TCP client. protocol can be renoise.Socket.PROTOCOL_TCP or renoise.Socket.PROTOCOL_UDP (by default TCP). timeout is the time in ms to wait until the connection is established (1000 ms by default). When instantiation and connection succeed, a valid client object is returned, otherwise "error" is set and the client object is nil

renoise.Socket.SocketBase

SocketBase is the base class for socket clients and servers. All SocketBase properties and functions are available for servers and clients.


Properties

is_open : boolean

READ-ONLY Returns true when the socket object is valid and connected. Sockets can manually be closed (see socket:close()). Client sockets can also actively be closed/refused by the server. In this case the client:receive() calls will fail and return an error.

local_address : string

READ-ONLY The socket's resolved local address (for example "127.0.0.1" when a socket is bound to "localhost")

local_port : integer

READ-ONLY The socket's local port number, as specified when instantiated.


Functions

close(self)

Closes the socket connection and releases all resources. This will make the socket useless, so any properties, calls to the socket will result in errors. Can be useful to explicitly release a connection without waiting for the dead object to be garbage collected, or if you want to actively refuse a connection.

renoise.Socket.SocketClient

A SocketClient can connect to other socket servers and send and receive data from them on request. Connections to a server can not change, they are specified when constructing a client. You can not reconnect a client; create a new client instance instead.

Socket clients in Renoise do block with timeouts to receive messages, and assume that you only expect a response from a server after having sent something to it (i.e.: GET HTTP). To constantly poll a connection to a server, for example in idle timers, specify a timeout of 0 in "receive(message, 0)". This will only check if there are any pending messages from the server and read them. If there are no pending messages it will not block or timeout.


Properties

is_open : boolean

READ-ONLY Returns true when the socket object is valid and connected. Sockets can manually be closed (see socket:close()). Client sockets can also actively be closed/refused by the server. In this case the client:receive() calls will fail and return an error.

local_address : string

READ-ONLY The socket's resolved local address (for example "127.0.0.1" when a socket is bound to "localhost")

local_port : integer

READ-ONLY The socket's local port number, as specified when instantiated.

peer_address : string

READ-ONLY Address of the socket's peer, the socket address this client is connected to.

peer_port : integer

READ-ONLY Port of the socket's peer, the socket this client is connected to.


Functions

close(self)

Closes the socket connection and releases all resources. This will make the socket useless, so any properties, calls to the socket will result in errors. Can be useful to explicitly release a connection without waiting for the dead object to be garbage collected, or if you want to actively refuse a connection.

send(self, message : string)

->success : boolean, error : string?

Send a message string (or OSC messages or bundles) to the connected server. When sending fails, "success" return value will be false and "error_message" is set, describing the error in a human readable format. NB: when using TCP instead of UDP as protocol for OSC messages, !no! SLIP encoding and no size prefixing of the passed OSC data will be done here. So, when necessary, do this manually by your own please.

receive(self, mode : SocketReceiveMode, timeout_ms : number)

->success : boolean?, error : string?

Receive a message string from the the connected server with the given timeout in milliseconds. Mode can be one of "*line", "*all" or a number > 0, like Lua's io.read. \param timeout can be 0, which is useful for receive("*all"). This will only check and read pending data from the sockets queue.

  • mode "*line": Will receive new data from the server or flush pending data that makes up a "line": a string that ends with a newline. remaining data is kept buffered for upcoming receive calls and any kind of newlines are supported. The returned line will not contain the newline characters.

  • mode "*all": Reads all pending data from the peer socket and also flushes internal buffers from previous receive line/byte calls (when present). This will NOT read the entire requested content, but only the current buffer that is queued for the local socket from the peer. To read an entire HTTP page or file you may have to call receive("*all") multiple times until you got all you expect to get.

  • mode "number > 0": Tries reading \param NumberOfBytes of data from the peer. Note that the timeout may be applied more than once, if more than one socket read is needed to receive the requested block.

When receiving fails or times-out, the returned message will be nil and error_message is set. The error message is "timeout" on timeouts, "disconnected" when the server actively refused/disconnected your client. Any other errors are system dependent, and should only be used for display purposes.

Once you get an error from receive, and this error is not a "timeout", the socket will already be closed and thus must be recreated in order to retry communication with the server. Any attempt to use a closed socket will fire a runtime error.

mode:
    | "*line"
    | "*all"

Aliases

SocketReceiveMode

integer | "*all" | "*line"

SocketReceiveMode:
    | "*line"
    | "*all"

renoise.Socket.SocketServer

A SocketServer handles one or more clients in the background, interacts only with callbacks from connected clients. This background polling can be start and stop on request.

The socket server interface in Renoise is asynchronous (callback based), which means server calls never block or wait, but are served in the background. As soon a connection is established or messages arrive, a set of specified callbacks are invoked to respond to messages.


Properties

is_open : boolean

READ-ONLY Returns true when the socket object is valid and connected. Sockets can manually be closed (see socket:close()). Client sockets can also actively be closed/refused by the server. In this case the client:receive() calls will fail and return an error.

local_address : string

READ-ONLY The socket's resolved local address (for example "127.0.0.1" when a socket is bound to "localhost")

local_port : integer

READ-ONLY The socket's local port number, as specified when instantiated.

is_running : boolean

READ-ONLY true while the server is running, else false.


Functions

close(self)

Closes the socket connection and releases all resources. This will make the socket useless, so any properties, calls to the socket will result in errors. Can be useful to explicitly release a connection without waiting for the dead object to be garbage collected, or if you want to actively refuse a connection.

run(self, notifier_table : SocketNotifierClass | SocketNotifierTable)

Start running the server by specifying a class or table which defines the callback functions for the server.

stop(self)

Stop a running server.

wait(self, timeout : number)

Suspends the calling thread by the given timeout, and calls the server's callback methods as soon as something has happened in the server while waiting. Should be avoided whenever possible.


Structs

SocketNotifierClass

Custom notifier class for renoise.Socket.SocketServer:run. Note: You must pass an instance of a class, like server_socket:run(MyNotifier())

All callback properties are optional. So you can, for example, skip specifying "socket_accepted" if you have no use for this.

examples:

class "MyNotifier"
function MyNotifier:__init()
  -- could pass a server ref or something else here, or simply do nothing
end
function MyNotifier:socket_error(error_message)
  -- do something with the error message
end
function MyNotifier:socket_accepted(socket)
  -- FOR TCP CONNECTIONS ONLY: do something with socket
end
function MyNotifier:socket_message(socket, message)
  -- do something with socket and message
end

Properties

socket_error : (self : SocketNotifierClass, error_message : string)?

socket_accepted : (self : SocketNotifierClass, socket : renoise.Socket.SocketClient)?

socket_message : (self : SocketNotifierClass, socket : renoise.Socket.SocketClient, message : string)?

SocketNotifierTable

Notifier table for renoise.Socket.SocketServer:run.

All callback properties are optional. So you can, for example, skip specifying "socket_accepted" if you have no use for this.

examples:

{
  socket_error = function(error_message)
    -- do something with the error message
  end,
  socket_accepted = function(client)
    -- FOR TCP CONNECTIONS ONLY: do something with client
  end,
  socket_message = function(client, message)
    -- do something with client and message
  end
}

Properties

socket_error : (error_message : string)?

An error happened in the servers background thread.

socket_accepted : (client : renoise.Socket.SocketClient)?

FOR TCP CONNECTIONS ONLY: called as soon as a new client connected to your server. The passed socket is a ready to use socket object, representing a connection to the new socket.

socket_message : (client : renoise.Socket.SocketClient, message : string)?

A message was received from a client: The passed socket is a ready to use connection for TCP connections. For UDP, a "dummy" socket is passed, which can only be used to query the peer address and port -> socket.port and socket.address

renoise.Song

Renoise's main document - the song.

Constants

SubColumnType

{
    SUB_COLUMN_NOTE: integer = 1,
    SUB_COLUMN_INSTRUMENT: integer = 2,
    SUB_COLUMN_VOLUME: integer = 3,
    SUB_COLUMN_PANNING: integer = 4,
    SUB_COLUMN_DELAY: integer = 5,
    SUB_COLUMN_SAMPLE_EFFECT_NUMBER: integer = 6,
    SUB_COLUMN_SAMPLE_EFFECT_AMOUNT: integer = 7,
    SUB_COLUMN_EFFECT_NUMBER: integer = 8,
    SUB_COLUMN_EFFECT_AMOUNT: integer = 9,
}

MAX_NUMBER_OF_INSTRUMENTS : integer


Properties

file_name : string

READ-ONLY When the song is loaded from or saved to a file, the absolute path and name to the XRNS file, otherwise an empty string.

artist : string

Song Comments

artist_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

name : string

name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

comments : string[]

Note: All property tables of basic types in the API are temporary copies. In other words comments = { "Hello", "World" } will work, comments[1] = "Hello"; renoise.song().comments[2] = "World" will not work.

comments_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).

comments_assignment_observable : renoise.Document.Observable

READ-ONLY Notifier is called as soon as any paragraph in the comments change.

show_comments_after_loading : boolean

Set this to true to show the comments dialog after loading a song

show_comments_after_loading_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

tool_data : string?

Inject/fetch custom XRNX scripting tool data into the song. Can only be called from scripts that are running in Renoise scripting tool bundles; attempts to access the data from e.g. the scripting terminal will result in an error. Returns nil when no data is present.

Each tool gets it's own data slot in the song, which is resolved by the tool's bundle id, so this data is unique for every tool and persistent across tools with the same bundle id (but possibly different versions). If you want to store renoise.Document data in here, you can use the renoise.Document's 'to_string' and 'from_string' functions to serialize the data. Alternatively, write your own serializers for your custom data.

rendering : boolean

READ-ONLY True while rendering is in progress.

rendering_progress : number

Range: (0.0 - 1.0)

transport : renoise.Transport

READ-ONLY

sequencer : renoise.PatternSequencer

READ-ONLY

pattern_iterator : renoise.PatternIterator

READ-ONLY

sequencer_track_count : integer

READ-ONLY number of normal playback tracks (non-master or sends) in song.

send_track_count : integer

-READ-ONLY number of send tracks in song.

instruments : renoise.Instrument[]

READ-ONLY Instrument arrays

instruments_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).

patterns : renoise.Pattern[]

READ-ONLY Pattern arrays

patterns_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).

tracks : renoise.Track[]

READ-ONLY Track array

tracks_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).

selected_instrument : renoise.Instrument

READ-ONLY Selected in the instrument box.

selected_instrument_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_instrument_index : integer

READ-ONLY Selected instrument index in the instrument box.

selected_instrument_index_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_phrase : renoise.InstrumentPhrase

READ-ONLY Selected phrase the instrument's phrase map piano view.

selected_phrase_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_phrase_index : integer

READ-ONLY Selected phrase index the instrument's phrase map piano view.

selected_sample : renoise.Sample

READ-ONLY Selected in the instrument's sample list. Only nil when no samples are present in the selected instrument.

selected_sample_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_sample_index : integer

READ-ONLY Selected sample index in the instrument's sample list. Only 0 when no samples are present in the selected instrument.

selected_sample_modulation_set : renoise.SampleModulationSet

READ-ONLY Selected in the instrument's modulation view.

selected_sample_modulation_set_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_sample_modulation_set_index : integer

READ-ONLY Selected modulation set index in the instrument's modulation view.

selected_sample_device_chain : renoise.SampleDeviceChain

READ-ONLY Selected in the instrument's effects view.

selected_sample_device_chain_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_sample_device_chain_index : integer

READ-ONLY Selected chain index in the instrument's effects view.

selected_sample_device : renoise.AudioDevice

READ-ONLY Selected in the sample effect mixer.

selected_sample_device_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_sample_device_index : integer

READ-ONLY Selected device index in the sample effect mixer.

selected_track : renoise.Track

READ-ONLY Selected in the pattern editor or mixer.

selected_track_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_track_index : integer

READ-ONLY Selected track index in the pattern editor or mixer.

selected_track_index_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_track_device : renoise.AudioDevice

READ-ONLY Selected in the track DSP chain editor.

selected_track_device_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_track_device_index : integer

READ-ONLY Selected device index in the track DSP chain editor.

selected_device : renoise.AudioDevice

Deprecated. READ-ONLY Use 'selected_track_device' instead.

selected_device_observable : renoise.Document.Observable

Deprecated. Use 'selected_track_device_observable' instead.

selected_device_index : integer

Deprecated. READ-ONLY Use 'selected_track_device_index' instead.

selected_parameter : renoise.DeviceParameter

Deprecated. READ-ONLY Use 'selected_automation_parameter' instead.

selected_parameter_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_automation_parameter : renoise.DeviceParameter

Selected parameter in the automation editor. When setting a new parameter, parameter must be automateable and must be one of the currently selected track device chain.

selected_automation_parameter_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_automation_device : renoise.AudioDevice

READ-ONLY Parent device of 'selected_automation_parameter'.

selected_automation_device_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_pattern : renoise.Pattern

READ-ONLY The currently edited pattern.

selected_pattern_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_pattern_index : integer

READ-ONLY The currently edited pattern index.

selected_pattern_index_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_pattern_track : renoise.PatternTrack

READ-ONLY The currently edited pattern track object. and selected_track_observable for notifications.

selected_pattern_track_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_sequence_index : integer

The currently edited sequence position.

selected_sequence_index_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

selected_line : renoise.PatternLine

READ-ONLY The currently edited line in the edited pattern.

selected_line_index : integer

selected_note_column : renoise.NoteColumn

READ-ONLY The currently edited column in the selected line in the edited sequence/pattern. Nil when an effect column is selected.

selected_note_column_index : integer

selected_effect_column : renoise.EffectColumn

READ-ONLY The currently edited column in the selected line in the edited sequence/pattern. Nil when a note column is selected.

selected_effect_column_index : integer

selected_sub_column_type : renoise.Song.SubColumnType

READ-ONLY The currently edited sub column type within the selected note/effect column.

selection_in_pattern : PatternSelection?

Read/write access to the selection in the pattern editor.

Line indexes are valid from 1 to patterns[].number_of_lines Track indexes are valid from 1 to #tracks Column indexes are valid from 1 to (tracks[].visible_note_columns + tracks[].visible_effect_columns)

When setting the selection, all members are optional. Combining them in various different ways will affect how specific the selection is. When selection_in_pattern returns nil or is set to nil, no selection is present.

examples:

renoise.song().selection_in_pattern = {}
  --> clear
renoise.song().selection_in_pattern = { start_line = 1, end_line = 4 }
  --> select line 1 to 4, first to last track
renoise.song().selection_in_pattern =
  { start_line = 1, start_track = 1, end_line = 4, end_track = 1 }
  --> select line 1 to 4, in the first track only

selected_phrase_line : renoise.PatternLine

READ-ONLY The currently edited line in the currently edited phrase. Nil when no phrase is selected.

selected_phrase_line_index : integer

The currently edited line index in the currently edited phrase. 0 when no phrase is selected.

selected_phrase_note_column : renoise.NoteColumn

READ-ONLY The currently edited column in the selected line in the currently edited phrase. Nil when no phrase is selected or when an effect column is selected.

selected_phrase_note_column_index : integer

The currently edited column index in the selected line in the currently edited phrase. 0 when no phrase is selected or when an effect column is selected.

selected_phrase_effect_column : renoise.EffectColumn

READ-ONLY The currently edited column in the selected line in the currently edited phrase. Nil when no phrase is selected or when a note column is selected.

selected_phrase_effect_column_index : integer

The currently edited effect column index in the selected line in the currently edited phrase. 0 when no phrase is selected or when a note column is selected.

selected_phrase_sub_column_type : renoise.Song.SubColumnType

READ-ONLY The currently edited sub column type within the selected note/effect column in the current phrase. 0 when no phrase is selected.

selection_in_phrase : PhraseSelection?

Same as selection_in_pattern but for the currently selected phrase (if any).


Functions

is_undo_redoing(self)

True while an undo/redo action is invoked. This may be useful to check in notifiers, to figure out if the document currently changes because of an undo/redo operation.

can_undo(self)

->boolean

Test if something in the song can be undone.

undo(self)

Undo the last performed action. Will do nothing if nothing can be undone.

can_redo(self)

->boolean

Test if something in the song can be redone.

redo(self)

Redo a previously undo action. Will do nothing if nothing can be redone.

describe_undo(self, description : string)

When modifying the song, Renoise will automatically add descriptions for undo/redo by looking at what first changed (a track was inserted, a pattern line changed, and so on). When the song is changed from an action in a menu entry callback, the menu entry's label will automatically be used for the undo description. If those auto-generated names do not work for you, or you want to use something more descriptive, you can, before changing anything in the song, give your changes a custom undo description (like: "Generate Synth Sample")

describe_batch_undo(self, description : string, timeout_ms : number?)

Same as describe_undo, but additionally this tries to merge the following changes to the document with the last one, if the description matches the last description and the given timeout was not reached since the last describe_batch_undo call.

Calls to describe_undo from other tools, or from Renoise internally, will cancel batches and split the undo action.

Batches can be useful to combine multiple changes in the document into a single udo/redo step, when the changes happen asynchroniously, for example a process sliced action (via Lua coroutines).

insert_track_at(self, index : integer)

->renoise.Track

Insert a new track at the given index. Inserting a track behind or at the Master Track's index will create a Send Track. Otherwise, a regular track is created.

delete_track_at(self, index : integer)

Delete an existing track. The Master track can not be deleted, but all Sends can. Renoise needs at least one regular track to work, thus trying to delete all regular tracks will fire an error.

swap_tracks_at(self, index1 : integer, index2 : integer)

Swap the positions of two tracks. A Send can only be swapped with a Send track and a regular track can only be swapped with another regular track. The Master can not be swapped at all.

track(self, index : integer)

->renoise.Track

Access to a single track by index. Use properties 'tracks' to iterate over all tracks and to query the track count.

select_previous_track(self)

Set the selected track to prev relative to the current track. Takes care of skipping over hidden tracks and wrapping around at the edges.

select_next_track(self)

Set the selected track to next relative to the current track. Takes care of skipping over hidden tracks and wrapping around at the edges.

insert_group_at(self, index : integer)

->renoise.GroupTrack

Insert a new group track at the given index. Group tracks can only be inserted before the Master track.

add_track_to_group(self, track_index : integer, group_index : integer)

Add track at track_index to group at group_index by first moving it to the right spot to the left of the group track, and then adding it. If group_index is not a group track, a new group track will be created and both tracks will be added to it.

remove_track_from_group(self, track_index : integer)

Removes track from its immediate parent group and places it outside it to the left. Can only be called for tracks that are actually part of a group.

delete_group_at(self, group_index : integer)

Delete the group with the given index and all its member tracks. Index must be that of a group or a track that is a member of a group.

insert_instrument_at(self, index : integer)

->renoise.Instrument

Insert a new instrument at the given index. This will remap all existing notes in all patterns, if needed, and also update all other instrument links in the song. Can't have more than MAX_NUMBER_OF_INSTRUMENTS in a song.

delete_instrument_at(self, index : integer)

Delete an existing instrument at the given index. Renoise needs at least one instrument, thus trying to completely remove all instruments is not allowed. This will remap all existing notes in all patterns and update all other instrument links in the song.

swap_instruments_at(self, index1 : integer, index2 : integer)

Swap the position of two instruments. Will remap all existing notes in all patterns and update all other instrument links in the song.

instrument(self, index : integer)

->renoise.Instrument

Access to a single instrument by index. Use properties 'instruments' to iterate over all instruments and to query the instrument count.

capture_instrument_from_pattern(self)

Captures the current instrument (selects the instrument) from the current note column at the current cursor pos. Changes the selected instrument accordingly, but does not return the result. When no instrument is present at the current cursor pos, nothing will be done.

capture_nearest_instrument_from_pattern(self)

Tries to captures the nearest instrument from the current pattern track, starting to look at the cursor pos, then advancing until an instrument is found. Changes the selected instrument accordingly, but does not return the result. When no instruments (notes) are present in the current pattern track, nothing will be done.

pattern(self, index : integer)

->renoise.Pattern

Access to a single pattern by index. Use properties 'patterns' to iterate over all patterns and to query the pattern count.

render(self, options : RenderOptions, filename : string, rendering_done_callback : fun())

->success : boolean, error : string

Start rendering a section of the song or the whole song to a WAV file.

Rendering job will be done in the background and the call will return back immediately, but the Renoise GUI will be blocked during rendering. The passed rendering_done_callback function is called as soon as rendering is done, e.g. successfully completed.

While rendering, the rendering status can be polled with the song().rendering and song().rendering_progress properties, for example, in idle notifier loops. If starting the rendering process fails (because of file IO errors for example), the render function will return false and the error message is set as the second return value. On success, only a single true value is returned.

To render only specific tracks or columns, mute the undesired tracks/columns before starting to render.

Parameter file_name must point to a valid, maybe already existing file. If it already exists, the file will be silently overwritten. The renderer will automatically add a ".wav" extension to the file_name, if missing.

Parameter rendering_done_callback is ONLY called when rendering has succeeded. You can do something with the file you've passed to the renderer here, like for example loading the file into a sample buffer.

cancel_rendering(self)

When rendering (see rendering, renoise.song().rendering_progress), the current render process is canceled. Otherwise, nothing is done.

trigger_pattern_line(self, line_index : integer)

Trigger the given pattern line index in the current pattern for preview purposes. This works similar to the Renoise PlayCurrentLine keyboard shortcut, but does now advance the playback position.

If you want to preview a single track's note only, mute other tracks before triggering the pattern line. To stop the preview, invoke stop from the transport.

Transport playback must be stopped for this to work. If it's not, an error is thrown.

This is evaluated from the GUI thread, not a real-time thread, so timing will be a little bit wonky. Don't try to use this as a custom sequencer!

trigger_instrument_note_on(self, instrument_index : integer, track_index : integer, note : integer | integer[]?, volume : number?)

Trigger instrument playback with the specified note or a table of notes (a chord) and volume for preview purposes on the given track index.

Send tracks can not play notes. When specifying a send track, notes will play on the master track instead.

This is evaluated from the GUI thread, not a real-time thread, so timing will be a little bit wonky. Only use this to preview instruments from tools and not as a sequencer.

trigger_instrument_note_off(self, instrument_index : integer, track_index : integer, note : integer | integer[]?)

Stop instrument playback which previously got started via trigger_instrument_note_on.

trigger_sample_note_on(self, instrument_index : integer, sample_index : integer, track_index : integer, note : integer?, volume : number?, use_selection : boolean?)

Trigger a sample with the specified note and volume for preview purposes on the given track. This directly triggers the sample, bypassing the instrument's keyzone.

Only use this to preview samples from tools and not as a sequencer. See also trigger_instrument_note_on.

trigger_sample_note_off(self, instrument_index : integer, sample_index : integer, track_index : integer, note : integer?)

Stops sample playback that previously got triggered via trigger_sample_note_on.

load_midi_mappings(self, filename : string)

->success : boolean, error : string

Load all global MIDI mappings in the song into a XRNM file. Returns true when loading/saving succeeded, else false and the error message.

save_midi_mappings(self, filename : string)

->success : boolean, error : string

Save all global MIDI mappings in the song into a XRNM file. Returns true when loading/saving succeeded, else false and the error message.

clear_midi_mappings(self)

clear all MIDI mappings in the song


Structs

PatternSelection

Selection range in the current pattern


Properties

start_line : integer?

Start pattern line index

start_track : integer?

Start track index

start_column : integer?

Start column index within start_track

end_line : integer?

End pattern line index

end_track : integer?

End track index

end_column : integer?

End column index within end_track

PhraseSelection

Selection range in the current phrase


Properties

start_line : integer?

Start pattern line index

start_column : integer?

Start column index within start_track

end_line : integer?

End pattern line index

end_column : integer?

End column index within end_track

RenderOptions


Properties

start_pos : renoise.SongPos

by default the song start.

end_pos : renoise.SongPos

by default the song end.

sample_rate : 192000 | 22050 | 44100 | 48000 | 88200 | 96000

by default the players current rate.

bit_depth : 16 | 24 | 32

by default 32.

interpolation : "default" | "precise"

by default "default".

priority : "high" | "low" | "realtime"

by default "high".

renoise.SongPos

Helper class used in Transport and Song, representing a position in the song.


Properties

sequence : integer

Position in the pattern sequence.

line : integer

Position in the pattern at the given pattern sequence.

renoise.SQLite

Constants

Status

{
    OK: integer = 0,
    ERROR: integer = 1,
    INTERNAL: integer = 2,
    PERM: integer = 3,
    ABORT: integer = 4,
    BUSY: integer = 5,
    LOCKED: integer = 6,
    NOMEM: integer = 7,
    READONLY: integer = 8,
    INTERRUPT: integer = 9,
    IOERR: integer = 10,
    CORRUPT: integer = 11,
    NOTFOUND: integer = 12,
    FULL: integer = 13,
    CANTOPEN: integer = 14,
    MISMATCH: integer = 20,
    MISUSE: integer = 21,
    NOLFS: integer = 22,
    FORMAT: integer = 24,
    RANGE: integer = 25,
    NOTADB: integer = 26,
    ROW: integer = 100,
    DONE: integer = 101,
}

Functions

open(filename : string?, flags : SQLiteOpenFlags | SQLiteOpenModes?)

->SQLiteDatabase?, renoise.SQLite.Status?, string?

Opens (or creates if it does not exist) a SQLite database either in memory or from the given file path.

Examples:

-- open an existing db in read-only mode.
local db, status, error = renoise.SQLite.open('MyDatabase.sqlite', 'ro')
if db then
  -- do some database calls...
  db:close()
else
  -- handle error
end

-- open an in-memory db in read-write-create mode.
local db, status, error = renoise.SQLite.open()
if db then
  -- do some database calls...
  db:close()
else
  -- handle error
end
-- Configure database open mode.
-- Default: "rwc" (read-write-create).
-- Raw open mode flags from SQLite.
-- See https://sqlite.org/c3ref/open.html#urifilenamesinsqlite3open
flags:
    | "ro"
    | "rw"
    | "rwc"

Structs

SQLiteDatabase


Properties

is_open : boolean

READ-ONLY Whether or not the database is open.

is_closed : boolean

READ-ONLY Whether or not the database is closed.

error_code : renoise.SQLite.Status

READ-ONLY The most recent error code.

error_message : string

READ-ONLY The most recent error message.

changes : integer

READ-ONLY Number of database rows that were changed, inserted, or deleted by the most recent SQL statement. Only changes that are directly specified by INSERT, UPDATE, or DELETE statements are counted. Auxiliary changes caused by triggers are not counted. Use db.total_changes to find the total number of changes.

total_changes : integer

READ-ONLY The number of database rows that have been modified by INSERT, UPDATE or DELETE statements since the database was opened. This includes UPDATE, INSERT and DELETE statements executed as part of trigger programs. All changes are counted as soon as the statement that produces them is completed by calling either stmt:reset() or stmt:finalize().

last_insert_rowid : integer

READ-ONLY Gets the rowid of the most recent INSERT into the database. If no inserts have ever occurred, 0 is returned. (Each row in an SQLite table has a unique 64-bit signed integer key called the 'rowid'. This id is always available as an undeclared column named ROWID, OID, or ROWID. If the table has a column of type INTEGER PRIMARY KEY then that column is another alias for the rowid.)

If an INSERT occurs within a trigger, then the rowid of the inserted row is returned as long as the trigger is running. Once the trigger terminates, the value returned reverts to the last value inserted before the trigger fired.


Functions

close(self)

->renoise.SQLite.Status

Closes a database. All SQL statements prepared using db:prepare() should have been finalized before this function is called.

The function returns renoise.SQLlite.Status.OK on success or else a error code.

prepare(self, sql : string)

->SQLiteStatement?, renoise.SQLite.Status, string?

Compiles the SQL statement in string sql into an internal representation and returns this as userdata. The returned object should be used for all further method calls in connection with this specific SQL statement.

The function returns the statement object and renoise.SQLlite.Status.OK on success or else nil, an error code and the error message.

Examples:

local statement, code, error = db:prepare("SELECT * from my_table")
if statement then
  -- bind, step or do some queries
else
  -- handle error
end

See: SQLiteStatement

finalize(self, temp_only : boolean?)

Finalizes all statements that have not been explicitly finalized.

execute(self, sql : string, fun : fun(data: any, cols: integer, values: table, names: table)?, data : any)

->renoise.SQLite.Status, string?

Compiles and executes the SQL statement(s) given in string sql. The statements are simply executed one after the other and not stored.

The function returns renoise.SQLlite.Status.OK on success or else an error code and the error message.

If one or more of the SQL statements are queries, then the callback function specified in fun is invoked once for each row of the query result (if fun is nil, no callback is invoked).

The callback receives four arguments: data (the third parameter of the db:exec() call), the number of columns in the row, a table with the column values and another table with the column names.

The callback function should return 0. If the callback returns a non-zero value then the query is aborted, all subsequent SQL statements are skipped and db:exec() returns sqlite.ABORT.

Example:

sql = [[
  CREATE TABLE numbers(num1,num2,str);
  INSERT INTO numbers VALUES(1,11,"ABC");
  INSERT INTO numbers VALUES(2,22,"DEF");
  INSERT INTO numbers VALUES(3,33,"UVW");
  INSERT INTO numbers VALUES(4,44,"XYZ");
  SELECT * FROM numbers;
]]
function show_row(udata,cols,values,names)
  assert(udata=='test_udata')
  print('exec:')
  for i=1,cols do print('',names[i],values[i]) end
  return 0
end
db:execute(sql,show_row,'test_udata')

interrupt(self)

Causes any pending database operation to abort and return at the next opportunity.

busy_handler(self, fun : (udata : any, retries : integer) -> boolean?, data : any)

Sets or removes a busy handler for a SQLiteDatabase. fun is either a Lua function that implements the busy handler or nil to remove a previously set handler. This function returns nothing. The handler function is called with two parameters: data and the number of (re-)tries for a pending transaction. It should return nil, false or 0 if the transaction is to be aborted. All other values will result in another attempt to perform the transaction.

(See the SQLite documentation for important hints about writing busy handlers.)

busy_timeout(self, t : integer)

Sets a busy handler that waits for t milliseconds if a transaction cannot proceed. Calling this function will remove any busy handler set by db:busy_handler(); calling it with an argument less than or equal to 0 will turn off all busy handlers.

nrows(self, sql : string)

->() -> table<string, SQLiteValue>?

Creates an iterator that returns the successive rows selected by the SQL statement given in string sql.

Each call to the iterator returns a table in which the named fields correspond to the columns in the database.

rows(self, sql : string)

->() -> any[]

Creates an iterator that returns the successive rows selected by the SQL statement given in string sql. Each call to the iterator returns a table in which the numerical indices 1 to n correspond to the selected columns 1 to n in the database.

Example:

for a in db:rows('SELECT * FROM table') do
  for _,v in ipairs(a) do print(v) end
end

urows(self, sql : string)

->() -> SQLiteValue?

Creates an iterator that returns the successive rows selected by the SQL statement given in string sql. Each call to the iterator returns the values that correspond to the columns in the currently selected row.

Example:

for num1,num2 in db:urows('SELECT * FROM table') do
  print(num1,num2)
end

Aliases

SQLiteValue

string | integer

SQLiteStatement

Precompiled SQLite statements, as created with db:prepare().


Properties

is_open : boolean

READ-ONLY Whether or not the statement hasn't been finalized.

is_closed : boolean

READ-ONLY Whether or not the statement has been finalized.

columns : integer

READ-ONLY Number of columns in the result set returned by the statement, or 0 if the statement does not return data (for example an UPDATE).

last_insert_rowid : integer

READ-ONLY rowid of the most recent INSERT into the database corresponding to this statement.

named_types : table<string, string>

READ-ONLY A table with the names and types of all columns in the current result set of the statement.

named_values : table<string, SQLiteValue>

READ-ONLY A table with names and values of all columns in the current result row of a query.

names : string[]

READ-ONLY A list of the names of all columns in the result set returned by the statement.

values : SQLiteValue[]

READ-ONLY A list of the values of all columns in the result set returned by the statement.

types : string[]

READ-ONLY A list of the types of all columns in the result set returned by the statement.

unames : string[]

READ-ONLY A list of the names of all columns in the result set returned by the statement.

utypes : string[]

READ-ONLY A list of the types of all columns in the result set returned by the statement.

uvalues : SQLiteValue[]

READ-ONLY A list of the values of all columns in the current result row of a query.


Functions

name(self, n : integer)

->string

The name of column n in the result set of the statement. (The left-most column is number 0.)

value(self, n : integer)

->SQLiteValue

The value of column n in the result set of the statement. (The left-most column is number 0.)

type(self, n : integer)

->string

The type of column n in the result set of the statement. (The left-most column is number 0.)

finalize(self)

->renoise.SQLite.Status

Frees a prepared statement.

If the statement was executed successfully, or not executed at all, then renoise.SQLlite.Status.OK is returned. If execution of the statement failed then an error code is returned.

reset(self)

Resets the statement so that it is ready to be re-executed. Any statement variables that had values bound to them using the stmt:bind*() functions retain their values.

step(self)

->renoise.SQLite.Status

Evaluates the (next iteration of the) prepared statement. It will return one of the following values:

  • renoise.SQLite.Status.BUSY: the engine was unable to acquire the locks needed. If the statement is a COMMIT or occurs outside of an explicit transaction, then you can retry the statement. If the statement is not a COMMIT and occurs within a explicit transaction then you should rollback the transaction before continuing.
  • renoise.SQLite.Status.DONE: the statement has finished executing successfully. stmt:step() should not be called again on this statement without first calling stmt:reset() to reset the virtual machine back to the initial state.
  • renoise.SQLite.Status.ROW: this is returned each time a new row of data is ready. The values may be accessed using the column access functions. stmt:step() can be called again to retrieve the next row of data.
  • renoise.SQLite.Status.ERROR: a run-time error (e.g. a constraint violation) occurred. stmt:step() should not be called again. More information may be found by calling db:error_message(). A more specific error code can be obtained by calling stmt:reset().
  • renoise.SQLite.Status.MISUSE: the function was called inappropriately. Perhaps because the statement has already been finalized or a previous call to stmt:step() has returned sqlite.ERROR or sqlite.DONE.

bind_parameter_count(self)

->integer

Gets the largest statement parameter index in prepared statement stmt. When the statement parameters are of the forms ":AAA" or "?", then they are assigned sequentially increasing numbers beginning with one, so the value returned is the number of parameters. However if the same statement parameter name is used multiple times, each occurrence is given the same number, so the value returned is the number of unique statement parameter names.

If statement parameters of the form "?NNN" are used (where NNN is an integer) then there might be gaps in the numbering and the value returned by this interface is the index of the statement parameter with the largest index value.

bind_parameter_name(self, n : any)

->string?, renoise.SQLite.Status

Gets the name of the n-th parameter in prepared statement stmt. Statement parameters of the form ":AAA" or "@AAA" or "$VVV" have a name which is the string ":AAA" or "@AAA" or "$VVV". In other words, the initial ":" or "$" or "@" is included as part of the name. Parameters of the form "?" or "?NNN" have no name. The first bound parameter has an index of 1. If the value n is out of range or if the n-th parameter is nameless, then nil is returned.

The function returns renoise.SQLlite.Status.OK on success or else a numerical error code. See: renoise.SQLite.Status

bind(self, n : integer, value : boolean | string | number?)

->renoise.SQLite.Status

Binds value to statement parameter n. If value is a string, it is bound as text, otherwise if it is a number it is bound as a double. If it is a boolean, it is bound as 0 or 1. If value is nil, any previous binding is removed.

The function returns renoise.SQLlite.Status.OK on success or else a error code.

bind_blob(self, n : integer, blob : string)

->renoise.SQLite.Status

Binds string blob (which can be a binary string) as a blob to statement parameter n.

The function returns renoise.SQLlite.Status.OK on success or else a error code.

bind_names(self, nametable : table<string|integer, boolean|string|number>)

->renoise.SQLite.Status

Binds the values in nametable to statement parameters.

If the statement parameters are named (i.e., of the form ":AAA" or "$AAA") then this function looks for appropriately named fields in nametable; if the statement parameters are not named, it looks for numerical fields 1 to the number of statement parameters.

The function returns renoise.SQLlite.Status.OK on success or else a error code.

bind_values(self, ...boolean | string | number)

->renoise.SQLite.Status

Binds the given values to statement parameters.

The function returns renoise.SQLlite.Status.OK on success or else a error code. See: renoise.SQLite.Status

nrows(self)

->() -> table<string, string | integer>?

Creates an iterator over the names and values of the result set of the statement. Each iteration returns a table with the names and values for the current row.

This is the prepared statement equivalent of db:nrows(). See: SQLiteDatabase.nrows

rows(self)

->() -> any[]

Creates an iterator over the values of the result set of the statement. Each iteration returns an array with the values for the current row. This is the prepared statement equivalent of db:rows(). See: SQLiteDatabase.rows

urows(self)

->() -> string | number?

Creates an iterator over the values of the result set of the statement. Each iteration returns the values for the current row. This is the prepared statement equivalent of db:urows(). See: SQLiteDatabase.urows


Aliases

SQLiteValue

string | integer


Aliases

SQLiteOpenFlags

integer

Raw open mode flags from SQLite. See https://sqlite.org/c3ref/open.html#urifilenamesinsqlite3open

SQLiteOpenModes

"ro" | "rw" | "rwc"

-- Configure database open mode.
-- Default: "rwc" (read-write-create).
SQLiteOpenModes:
    | "ro"
    | "rw"
    | "rwc"

SQLiteValue

string | integer

renoise.Track

Track component of a Renoise song.

Constants

TrackType

{
    TRACK_TYPE_SEQUENCER: integer = 1,
    TRACK_TYPE_MASTER: integer = 2,
    TRACK_TYPE_SEND: integer = 3,
    TRACK_TYPE_GROUP: integer = 4,
}

MuteState

{
    MUTE_STATE_ACTIVE: integer = 1,
    MUTE_STATE_OFF: integer = 2,
    MUTE_STATE_MUTED: integer = 3,
}

Properties

type : renoise.Track.TrackType

READ-ONLY

name : string

Name, as visible in track headers

name_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

color : RGBColor

A table of 3 bytes (ranging from 0 to 255) representing the red, green and blue channels of a color. {0xFF, 0xFF, 0xFF} is white {165, 73, 35} is the red from the Renoise logo

color_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

color_blend : integer

Range: (0 - 100) Color blend in percent

color_blend_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

mute_state : renoise.Track.MuteState

Mute and solo states. Not available for the master track.

mute_state_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

solo_state : boolean

solo_state_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

prefx_volume : renoise.DeviceParameter

READ-ONLY

prefx_panning : renoise.DeviceParameter

READ-ONLY

prefx_width : renoise.DeviceParameter

READ-ONLY

postfx_volume : renoise.DeviceParameter

READ-ONLY

postfx_panning : renoise.DeviceParameter

READ-ONLY

collapsed : boolean

Collapsed/expanded visual appearance.

collapsed_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

group_parent : renoise.GroupTrack

READ-ONLY

available_output_routings : string[]

READ-ONLY

output_routing : string

One of available_output_routings

output_routing_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

output_delay : number

Range: (-100.0-100.0) in ms

output_delay_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

max_effect_columns : integer

READ-ONLY 8 OR 0 depending on the track type

min_effect_columns : integer

READ-ONLY 1 OR 0 depending on the track type

max_note_columns : integer

READ-ONLY 12 OR 0 depending on the track type

min_note_columns : integer

READ-ONLY 1 OR 0 depending on the track type

visible_effect_columns : integer

1-8 OR 0-8, depending on the track type

visible_effect_columns_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

visible_note_columns : integer

0 OR 1-12, depending on the track type

visible_note_columns_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

volume_column_visible : boolean

volume_column_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

panning_column_visible : boolean

panning_column_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

delay_column_visible : boolean

delay_column_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

sample_effects_column_visible : boolean

sample_effects_column_visible_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

available_devices : string[]

READ-ONLY FX devices this track can handle.

available_device_infos : AudioDeviceInfo[]

READ-ONLY Array of tables containing information about the devices.

devices : renoise.AudioDevice[]

READ-ONLY List of audio DSP FX.

devices_observable : renoise.Document.ObservableList

Track changes to document lists by attaching listener functions to it. NB: Notifiers will not broadcast changes made to list items, but only changes to the lists layout (items got added, removed, swapped).


Functions

insert_device_at(self, device_path : string, device_index : integer)

->renoise.AudioDevice

Insert a new device at the given position. device_path must be one of renoise.Track.available_devices.

delete_device_at(self, device_index : any)

Delete an existing device in a track. The mixer device at index 1 can not be deleted from any track.

swap_devices_at(self, device_index1 : integer, device_index2 : integer)

Swap the positions of two devices in the device chain. The mixer device at index 1 can not be swapped or moved.

device(self, device_index : integer)

->renoise.AudioDevice

Access to a single device by index. Use property devices to iterate over all devices and to query the device count.

mute(self)

Uses default mute state from the prefs. Not for the master track.

unmute(self)

solo(self)

column_is_muted(self, column_index : integer)

->boolean

Note column mutes. Only valid within (1-track.max_note_columns)

column_is_muted_observable(self, column_index : integer)

->renoise.Document.Observable

set_column_is_muted(self, column_index : integer, muted : boolean)

column_name(self, column_index : integer)

->string

Note column names. Only valid within (1-track.max_note_columns)

column_name_observable(self, column_index : integer)

->renoise.Document.Observable

set_column_name(self, column_index : integer, name : string)

swap_note_columns_at(self, column_index1 : integer, column_index2 : integer)

Swap the positions of two note or effect columns within a track.

swap_effect_columns_at(self, column_index1 : integer, column_index2 : integer)


Structs

AudioDeviceInfo

Audio device info


Properties

path : string

The device's path used by renoise.Track:insert_device_at

name : string

The device's name

short_name : string

The device's name as displayed in shortened lists

favorite_name : string

The device's name as displayed in favorites

is_favorite : boolean

true if the device is a favorite

is_bridged : boolean

true if the device is a bridged plugin


Aliases

RGBColor

{ 1 : integer, 2 : integer, 3 : integer }

A table of 3 bytes (ranging from 0 to 255) representing the red, green and blue channels of a color. {0xFF, 0xFF, 0xFF} is white {165, 73, 35} is the red from the Renoise logo

renoise.Transport

Transport component of the Renoise song.

Constants

PlayMode

{
    PLAYMODE_RESTART_PATTERN: integer = 1,
    PLAYMODE_CONTINUE_PATTERN: integer = 2,
}

RecordParameterMode

{
    RECORD_PARAMETER_MODE_PATTERN: integer = 1,
    RECORD_PARAMETER_MODE_AUTOMATION: integer = 2,
}

TimingModel

{
    TIMING_MODEL_SPEED: integer = 1,
    TIMING_MODEL_LPB: integer = 2,
}

SyncMode

{
    SYNC_MODE_INTERNAL: integer = 1,
    SYNC_MODE_MIDI_CLOCK: integer = 2,
    SYNC_MODE_ABLETON_LINK: integer = 3,
    SYNC_MODE_JACK: integer = 4,
}

Properties

playing : boolean

Playing

playing_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

sync_mode : renoise.Transport.SyncMode

Transport sync mode. Note: SYNC_MODE_JACK only is available on Linux. Trying to enable it on other platforms will fire an error.

sync_mode_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

timing_model : renoise.Transport.TimingModel

READ-ONLY Old school speed or new LPB timing used? With TIMING_MODEL_SPEED, tpl is used as speed factor. The lpb property is unused then. With TIMING_MODEL_LPB, tpl is used as event rate for effects only and lpb defines relationship between pattern lines and beats.

bpm : number

Range: (32 - 999) Beats per Minute

bpm_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

lpb : integer

Range: (1 - 256) Lines per Beat

lpb_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

tpl : integer

Range: (1 - 16) Ticks per Line

tpl_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

playback_pos : renoise.SongPos

Playback position

playback_pos_beats : number

Range: (0 - song_end_beats) Song position in beats

edit_pos : renoise.SongPos

Edit position

edit_pos_beats : number

Range: (0 - song_end_beats) Song position in beats

song_length : renoise.SongPos

READ-ONLY

song_length_beats : number

READ-ONLY

loop_start : renoise.SongPos

READ-ONLY

loop_end : renoise.SongPos

READ-ONLY

loop_range : renoise.SongPos[]

{loop start, loop end}

loop_start_beats : number

READ-ONLY Range: (0 - song_end_beats)

loop_end_beats : number

READ-ONLY Range: (0 - song_end_beats)

loop_range_beats : number[]

{loop start beats, loop end beats}

loop_sequence_start : integer

READ-ONLY 0 or Range: (1 - sequence length)

loop_sequence_end : integer

READ-ONLY 0 or Range: (1 - sequence length)

loop_sequence_range : integer[]

{} or Range(sequence start, sequence end)

loop_pattern : boolean

Pattern Loop On/Off

loop_pattern_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

loop_block_enabled : boolean

Block Loop On/Off

loop_block_enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

loop_block_range_coeff : integer

Range: (2 - 16)

loop_block_range_coeff_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

loop_block_start_pos : renoise.SongPos

Start of block loop

edit_mode : boolean

Pattern edit/record mode On/Off

edit_mode_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

edit_step : integer

Range: (0 - 64)

edit_step_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

octave : integer

Range: (0 - 8)

octave_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

octave_enabled : boolean

Enabled for MIDI keyboards

octave_enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

metronome_enabled : boolean

Metronome playback On/Off

metronome_enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

metronome_beats_per_bar : integer

Range: (1 - 16) or 0 = guess from pattern length

metronome_beats_per_bar_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

metronome_lines_per_beat : integer

Range: (1 - 256) or 0 = songs current LPB

metronome_lines_per_beat_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

metronome_precount_enabled : boolean

Metronome precount playback On/Off

metronome_precount_enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

metronome_precount_bars : integer

Range: (1 - 4)

metronome_precount_bars_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

metronome_volume : number

Range: (0 - math.db2lin(6))

metronome_volume_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

record_quantize_enabled : boolean

Record note quantization On/Off

record_quantize_enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

record_quantize_lines : integer

Range: (1 - 32)

record_quantize_lines_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

record_parameter_mode : renoise.Transport.RecordParameterMode

Record parameter

record_parameter_mode_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

follow_player : boolean

Follow, wrapped pattern, single track modes

follow_player_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

wrapped_pattern_edit : boolean

wrapped_pattern_edit_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

single_track_edit_mode : boolean

single_track_edit_mode_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

groove_enabled : boolean

Groove (aka Shuffle)

groove_enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

groove_amounts : number[]

table with 4 numbers in Range: (0 - 1)

groove_assignment_observable : renoise.Document.Observable

Will be called as soon as any groove value changed.

track_headroom : number

Global Track Headroom To convert to dB: dB = math.lin2db(renoise.Transport.track_headroom) To convert from dB: renoise.Transport.track_headroom = math.db2lin(dB) Range: (math.db2lin(-12) - math.db2lin(0))

track_headroom_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

keyboard_velocity_enabled : boolean

Computer Keyboard Velocity.

keyboard_velocity_enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

keyboard_velocity : integer

Will return the default value of 127 when keyboard_velocity_enabled == false. Range: (0 - 127)

keyboard_velocity_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.

sample_recording : boolean

READ-ONLY true when sample sample dialog is visible and recording started.

sample_recording_sync_enabled : boolean

Sample recording pattern quantization On/Off.

sample_recording_sync_enabled_observable : renoise.Document.Observable

Track changes to document properties or general states by attaching listener functions to it.


Functions

panic(self)

Panic.

start(self, mode : renoise.Transport.PlayMode)

Start playing in song or pattern mode.

start_at(self, line : integer)

Start playing the currently edited pattern at the given line offset

start_at(self, song_pos : renoise.SongPos)

Start playing a the given renoise.SongPos (sequence pos and line)

stop(self)

Stop playing. When already stopped this just stops all playing notes.

trigger_sequence(self, sequence_pos : integer)

Immediately start playing at the given sequence position.

add_scheduled_sequence(self, sequence_pos : integer)

Append the sequence to the scheduled sequence list. Scheduled playback positions will apply as soon as the currently playing pattern play to end.

set_scheduled_sequence(self, sequence_pos : integer)

Replace the scheduled sequence list with the given sequence.

loop_block_move_forwards(self)

Move the block loop one segment forwards, when possible.

loop_block_move_backwards(self)

Move the block loop one segment backwards, when possible.

start_sample_recording(self)

Start a new sample recording when the sample dialog is visible.

stop_sample_recording(self)

Stop sample recording when the sample dialog is visible and running

start_stop_sample_recording(self)

Deprecated. Use start_sample_recording or stop_sample_recording instead.

cancel_sample_recording(self)

Cancel a currently running sample recording when the sample dialog is visible, otherwise do nothing.

renoise.ViewBuilder

Class which is used to construct new views. All view properties can optionally be in-lined in a passed construction table:

local vb = renoise.ViewBuilder() -- create a new ViewBuilder
vb:button { text = "ButtonText" } -- is the same as
my_button = vb:button(); my_button.text = "ButtonText"

Besides the listed class properties, you can also specify the following "extra" properties in the passed table:

  • id = "SomeString": Can be use to resolve the view later on, e.g. vb.views.SomeString or vb.views["SomeString"]

  • Nested child views: Add child views to the currently specified view.

examples:

-- creates a column view with `margin = 1` and adds two text views to the column.
vb:column {
  margin = 1,
  views = {
    vb:text {
      text = "Text1"
    },
    vb:text {
      text = "Text1"
    }
  }
}

Constants

DEFAULT_CONTROL_MARGIN : integer

The default margin for all control views

DEFAULT_CONTROL_SPACING : integer

The default spacing for all control views

DEFAULT_CONTROL_HEIGHT : integer

The default height for control views

DEFAULT_MINI_CONTROL_HEIGHT : integer

The default height for mini-sliders

DEFAULT_DIALOG_MARGIN : integer

The default margin for dialogs

DEFAULT_DIALOG_SPACING : integer

The default spacing for dialogs

DEFAULT_DIALOG_BUTTON_HEIGHT : integer

The default height for buttons


Properties

views : table<string, renoise.Views.View>

Table of views, which got registered via the "id" property View id is the table key, the table's value is the view's object.

examples:

vb:text { id="my_view", text="some_text"}
vb.views.my_view.visible = false
--or
vb.views["my_view"].visible = false

Functions

column(self, properties : RackViewProperties)

You can add nested child views when constructing a column or row by including them in the constructor table in the views property.

examples:

vb:column {
  margin = 1,
  views = {
    vb:text {
      text = "Text1"
    },
    vb:text {
      text = "Text2"
    }
  }
}

row(self, properties : RackViewProperties)

You can add nested child views when constructing a column or row by including them in the constructor table in the views property.

examples:

vb:column {
  margin = 1,
  views = {
    vb:text {
      text = "Text1"
    },
    vb:text {
      text = "Text2"
    }
  }
}

horizontal_aligner(self, properties : AlignerViewProperties)

You can add nested child views when constructing aligners by including them in the constructor table.

examples:

vb:horizontal_aligner {
   mode = "center",
   views = {
     vb:text {
       text = "Text1"
     },
     vb:text {
       text = "Text2"
     }
   }
}

vertical_aligner(self, properties : AlignerViewProperties)

You can add nested child views when constructing aligners by including them in the constructor table.

examples:

vb:horizontal_aligner {
   mode = "center",
   views = {
     vb:text {
       text = "Text1"
     },
     vb:text {
       text = "Text2"
     }
   }
}

stack(self, properties : StackViewProperties?)

->renoise.Views.Stack

You can add nested child views when constructing stacks by including them in the constructor table. Use the view property origin to position them in the stack.

--Stack multiple views
vb:stack {
   views = {
     vb:text {
       origin = { 10, 10 },
       text = "Text1"
     },
     vb:text {
       origin = { 100, 20 },
       text = "Text 2"
     }
   }
}

See: renoise.Views.Stack

space(self, properties : ViewProperties)

You can create an empty space in layouts with a space.

examples:

--Empty space in layouts
vb:row {
  views = {
    vb:button {
      text = "Some Button"
    },
    vb:space { -- extra spacing between buttons
      width = 8
    },
    vb:button {
      text = "Another Button"
    },
  }
}

canvas(self, properties : CanvasViewProperties?)

->renoise.Views.Canvas

See: renoise.Views.Canvas

text(self, properties : TextViewProperties?)

->renoise.Views.Text

See: renoise.Views.Text

multiline_text(self, properties : MultilineTextViewProperties?)

->renoise.Views.MultiLineText

See: renoise.Views.MultiLineText

textfield(self, properties : TextFieldProperties?)

->renoise.Views.TextField

See: renoise.Views.TextField

multiline_textfield(self, properties : MultilineTextFieldProperties?)

->renoise.Views.MultiLineTextField

See: renoise.Views.MultiLineTextField

link(self, properties : TextLinkViewProperties?)

->renoise.Views.TextLink

See: renoise.Views.TextLink

bitmap(self, properties : BitmapViewProperties?)

->renoise.Views.Bitmap

See: renoise.Views.Bitmap

button(self, properties : ButtonProperties?)

->renoise.Views.Button

See: renoise.Views.Button

checkbox(self, properties : CheckBoxProperties?)

->renoise.Views.CheckBox

See: renoise.Views.CheckBox

switch(self, properties : ButtonSwitchProperties?)

->renoise.Views.Switch

See: renoise.Views.Switch

popup(self, properties : PopUpMenuProperties?)

->renoise.Views.Popup

See: renoise.Views.Popup

chooser(self, properties : ChooserProperties?)

->renoise.Views.Chooser

See: renoise.Views.Chooser

valuebox(self, properties : ValueBoxProperties?)

->renoise.Views.ValueBox

See: renoise.Views.ValueBox

value(self, properties : ValueViewProperties?)

->renoise.Views.Value

See: renoise.Views.Value

valuefield(self, properties : ValueFieldProperties?)

->renoise.Views.ValueField

See: renoise.Views.ValueField

scrollbar(self, properties : ScrollBarProperties?)

->renoise.Views.ScrollBar

See: renoise.Views.ScrollBar

slider(self, properties : SliderProperties?)

->renoise.Views.Slider

See: renoise.Views.Slider

minislider(self, properties : MiniSliderProperties?)

->renoise.Views.MiniSlider

See: renoise.Views.MiniSlider

rotary(self, properties : RotaryEncoderProperties?)

->renoise.Views.RotaryEncoder

See: renoise.Views.RotaryEncoder

xypad(self, properties : XYPadProperties?)

->renoise.Views.XYPad

See: renoise.Views.XYPad


Structs

AlignerViewProperties


Properties

margin : RackMargin?

Set the "borders" of a rack (left, right, top and bottom inclusively)

  • Default: 0 (no borders)

spacing : RackSpacing?

Set the amount stacked child views are separated by (horizontally in rows, vertically in columns).

  • Default: 0 (no spacing)

mode : AlignerMode?

  • Default: "left" (for horizontal_aligner) "top" (for vertical_aligner)

background : ViewBackgroundStyle?

Setup a background style for the view.

mouse_handler : MouseHandler?

Optional mouse event handler for a view. return nil when the event got handled to stop propagating the event. return the event instance, as passed, to pass it to the next view in the view hirarchy.

mouse_events : MouseEventTypes?

The mouse event types that should be passed to your mouse_handler function. By default: { "down", "up", "double" } Avoid adding event types that you don't use, especially "move" events as they do create quite some overhead. Also note that when enabling "drag", sub view controls can no longer handle drag events, even when you pass back the event in the handler, so only enable it when you want to completely override mouse drag behavior of all your content views.

views : AlignerChildViews?

The aligner view's initial child views. Views can later on also be added and removed dynamically after construction via aligner:add_view(child) and aligner:remove_view(child)

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

AlignerChildViews

renoise.Views.View[]

The aligner view's initial child views. Views can later on also be added and removed dynamically after construction via aligner:add_view(child) and aligner:remove_view(child)

AlignerMode

"bottom" | "center" | "distribute" | "justify" | "left" | "right" | "top"

-- * Default: "left" (for horizontal_aligner) "top" (for vertical_aligner)
AlignerMode:
    | "left" -- align from left to right (for horizontal_aligner only)
    | "right" -- align from right to left (for horizontal_aligner only)
    | "top" -- align from top to bottom (for vertical_aligner only)
    | "bottom" -- align from bottom to top (for vertical_aligner only)
    | "center" -- center all views
    | "justify" -- keep outer views at the borders, distribute the rest
    | "distribute" -- equally distributes views over the aligners width/height

MouseEventButton

"left" | "middle" | "right"

-- Mouse button of a `MouseEvent` of type "up"|"down"|"double"|"drag".
MouseEventButton:
    | "left"
    | "right"
    | "middle"

MouseEventType

"double" | "down" | "drag" | "enter" | "exit" | "move" | "up" | "wheel"

-- Event type of a `MouseEvent`.
MouseEventType:
    | "enter"
    | "exit"
    | "move"
    | "down"
    | "up"
    | "double"
    | "drag"
    | "wheel"

MouseEventTypes

MouseEventType[]

The mouse event types that should be passed to your mouse_handler function. By default: { "down", "up", "double" } Avoid adding event types that you don't use, especially "move" events as they do create quite some overhead. Also note that when enabling "drag", sub view controls can no longer handle drag events, even when you pass back the event in the handler, so only enable it when you want to completely override mouse drag behavior of all your content views.

MouseEventWheelDirection

"down" | "left" | "right" | "up"

-- Mouse wheel direction in a `MouseEvent` of type "wheel".
MouseEventWheelDirection:
    | "up"
    | "down"
    | "left"
    | "right"

MouseHandler

MouseHandlerNotifierFunction | MouseHandlerNotifierMethod1 | MouseHandlerNotifierMethod2

Optional mouse event handler for a view. return nil when the event got handled to stop propagating the event. return the event instance, as passed, to pass it to the next view in the view hirarchy.

MouseHandlerNotifierFunction

(event : MouseEvent) -> MouseEvent?

MouseHandlerNotifierMemberFunction

(self : NotifierMemberContext, event : MouseEvent) -> MouseEvent?

MouseHandlerNotifierMethod1

{ 1 : NotifierMemberContext, 2 : MouseHandlerNotifierMemberFunction }

MouseHandlerNotifierMethod2

{ 1 : MouseHandlerNotifierMemberFunction, 2 : NotifierMemberContext }

NotifierMemberContext

table | userdata

RackMargin

integer

Set the "borders" of a rack (left, right, top and bottom inclusively)

  • Default: 0 (no borders)

RackSpacing

integer

Set the amount stacked child views are separated by (horizontally in rows, vertically in columns).

  • Default: 0 (no spacing)

ViewBackgroundStyle

"body" | "border" | "group" | "invisible" | "panel" | "plain"

-- Setup a background style for the view. 
ViewBackgroundStyle:
    | "invisible" -- no background (Default)
    | "plain" -- undecorated, single coloured background
    | "border" -- same as plain, but with a bold nested border
    | "body" -- main "background" style, as used in dialog backgrounds
    | "panel" -- alternative "background" style, beveled
    | "group" -- background for "nested" groups within body

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

BitmapViewProperties


Properties

mode : BitmapMode?

Setup how the bitmap should be drawn, recolored. Available modes are:

color : BitmapColor?

When set, the bitmap will be drawn in the specified color and mode is set to custom_color. Set mode to something else than custom_color or the color to {0, 0, 0} to enable a plain display mode.

bitmap : BitmapPath?

Supported bitmap file formats are *.bmp, *.png or *.tif (no transparency).

notifier : ButtonNotifier?

A click notifier

active : ControlActive?

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString?

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

BitmapColor

RGBColor | ThemeColor

-- When set, the bitmap will be drawn in the specified color and `mode` is set 
-- to `custom_color`. Set `mode` to something else than `custom_color` or the
-- `color` to `{0, 0, 0}` to enable a `plain` display mode.
-- A table of 3 bytes (ranging from 0 to 255)
-- representing the red, green and blue channels of a color.
-- {0xFF, 0xFF, 0xFF} is white
-- {165, 73, 35} is the red from the Renoise logo
-- The application theme's colors
BitmapColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

BitmapImagePath

string

You can load an image from your tool's directory, or use one from Renoise's built-in icons.

  • For the built-in icons, use "Icons/ArrowRight.bmp"
  • For custom images, use a path relative to your tool's root folder.

For example "Images/MyBitmap.bmp" will load the image from "com.me.MyTool.xrnx/Images/MyBitmap.bmp".
If your custom path matches a built-in icon's (like "Icons/ArrowRight.bmp"), your image will be loaded instead of the one from Renoise.

If you want to support high DPI UI scaling with your bitmaps like the built-in Icons, include high resolution versions with their filenames ending with "@4x"
The following rules will be used when loading bitmaps

  • When UI scaling is 100%, only the base bitmaps are used.
  • When UI scaling is 125%, the base bitmaps are used, except if there is a BitmapName@x1.25.bmp variant.
  • For all other UI scaling > 125% the "@4x" variants are used and downscaled as needed, except when there is an exact match for the current UI scaling factor (e.g. BitmapName@1.5x.bmp for 150%)

BitmapMode

"body_color" | "button_color" | "custom_color" | "main_color" | "plain" | "transparent"

-- Setup how the bitmap should be drawn, recolored. Available modes are:
BitmapMode:
    | "plain" -- bitmap is drawn as is, no recoloring is done (Default)
    | "transparent" -- same as plain, but black pixels will be fully transparent
    | "button_color" -- recolor the bitmap, using the theme's button color
    | "body_color" -- same as 'button_back' but with body text/back color
    | "main_color" -- same as 'button_back' but with main text/back colors
    | "custom_color" -- Recolor the bitmap using a custom color set by the `color'

BitmapPath

BitmapImagePath

Supported bitmap file formats are *.bmp, *.png or *.tif (no transparency).

ButtonNotifier

NotifierFunction | NotifierMethod1 | NotifierMethod2

A click notifier

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NotifierFunction

fun()

NotifierMemberContext

table | userdata

NotifierMemberFunction

(self : NotifierMemberContext)

NotifierMethod1

{ 1 : NotifierMemberContext, 2 : NotifierMemberFunction }

NotifierMethod2

{ 1 : NotifierMemberFunction, 2 : NotifierMemberContext }

RGBColor

{ 1 : integer, 2 : integer, 3 : integer }

A table of 3 bytes (ranging from 0 to 255) representing the red, green and blue channels of a color. {0xFF, 0xFF, 0xFF} is white {165, 73, 35} is the red from the Renoise logo

ThemeColor

"alternate_main_back" | "alternate_main_font" | "automation_grid" | "automation_line_edge" | "automation_line_fill" | "automation_marker_diamond" | "automation_marker_pair" | "automation_marker_play" | "automation_marker_single" | "automation_point" | "body_back" | "body_font" | "button_back" | "button_font" | "button_highlight_font" | "default_color_01" | "default_color_02" | "default_color_03" | "default_color_04" | "default_color_05" | "default_color_06" | "default_color_07" | "default_color_08" | "default_color_09" | "default_color_10" | "default_color_11" | "default_color_12" | "default_color_13" | "default_color_14" | "default_color_15" | "default_color_16" | "folder" | "main_back" | "main_font" | "midi_mapping_back" | "midi_mapping_font" | "pattern_centerbar_back" | "pattern_centerbar_back_standby" | "pattern_centerbar_font" | "pattern_centerbar_font_standby" | "pattern_default_back" | "pattern_default_font" | "pattern_default_font_delay" | "pattern_default_font_dspfx" | "pattern_default_font_global" | "pattern_default_font_other" | "pattern_default_font_panning" | "pattern_default_font_pitch" | "pattern_default_font_unused" | "pattern_default_font_volume" | "pattern_highlighted_back" | "pattern_highlighted_font" | "pattern_highlighted_font_delay" | "pattern_highlighted_font_dspfx" | "pattern_highlighted_font_global" | "pattern_highlighted_font_other" | "pattern_highlighted_font_panning" | "pattern_highlighted_font_pitch" | "pattern_highlighted_font_unused" | "pattern_highlighted_font_volume" | "pattern_mute_state" | "pattern_playposition_back" | "pattern_playposition_font" | "pattern_selection" | "pattern_standby_selection" | "scrollbar" | "selected_button_back" | "selected_button_font" | "selection_back" | "selection_font" | "slider" | "standby_selection_back" | "standby_selection_font" | "strong_body_font" | "tooltip_back" | "tooltip_font" | "valuebox_back" | "valuebox_font" | "valuebox_font_icons" | "vumeter_back_clipped" | "vumeter_back_normal" | "vumeter_meter" | "vumeter_meter_high" | "vumeter_meter_low" | "vumeter_meter_middle" | "vumeter_peak"

-- The application theme's colors
ThemeColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

ButtonProperties


Properties

text : ButtonLabel?

The text label of the button

  • Default: ""

bitmap : ButtonBitmapPath?

If set, existing text is removed and the loaded image is displayed instead. Supported bitmap file formats are ".bmp", ".png" and ".tiff". Colors in bitmaps will be overridden by the button's theme color, using black as the transparent color for BMPs and TIFFS, and the alpha channel for PNGs. All other colors are mapped to the theme color according to their grey value, so plain white is the target theme color, and all other colors blend into the button's background color of the theme.

align : ButtonAlignment?

Setup the buttons text's or bitmap's alignment within the button.

font : TextFontStyle?

The style that the text should be displayed with.

color : ButtonColor?

When set, the unpressed button's background will be drawn in the specified color. A text color is automatically selected unless explicitly set, to make sure its always visible. Set color {0,0,0} to enable the theme colors for the button again.

secondary_color : ButtonColor?

When set, the unpressed button's background will be drawn in the specified color. A text color is automatically selected unless explicitly set, to make sure its always visible. Set color {0,0,0} to enable the theme colors for the button again.

style : ButtonStyle?

Get/set the style a button should be displayed with.

notifier : ButtonNotifier?

A click notifier

pressed : ButtonNotifier?

A click notifier

released : ButtonNotifier?

A click notifier

active : ControlActive?

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString?

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

BitmapImagePath

string

You can load an image from your tool's directory, or use one from Renoise's built-in icons.

  • For the built-in icons, use "Icons/ArrowRight.bmp"
  • For custom images, use a path relative to your tool's root folder.

For example "Images/MyBitmap.bmp" will load the image from "com.me.MyTool.xrnx/Images/MyBitmap.bmp".
If your custom path matches a built-in icon's (like "Icons/ArrowRight.bmp"), your image will be loaded instead of the one from Renoise.

If you want to support high DPI UI scaling with your bitmaps like the built-in Icons, include high resolution versions with their filenames ending with "@4x"
The following rules will be used when loading bitmaps

  • When UI scaling is 100%, only the base bitmaps are used.
  • When UI scaling is 125%, the base bitmaps are used, except if there is a BitmapName@x1.25.bmp variant.
  • For all other UI scaling > 125% the "@4x" variants are used and downscaled as needed, except when there is an exact match for the current UI scaling factor (e.g. BitmapName@1.5x.bmp for 150%)

ButtonAlignment

"center" | "left" | "right"

-- Setup the buttons text's or bitmap's alignment within the button.
ButtonAlignment:
    | "left" -- aligned to the left
    | "right" -- aligned to the right
    | "center" -- center (default)

ButtonBitmapPath

BitmapImagePath

If set, existing text is removed and the loaded image is displayed instead. Supported bitmap file formats are ".bmp", ".png" and ".tiff". Colors in bitmaps will be overridden by the button's theme color, using black as the transparent color for BMPs and TIFFS, and the alpha channel for PNGs. All other colors are mapped to the theme color according to their grey value, so plain white is the target theme color, and all other colors blend into the button's background color of the theme.

ButtonColor

RGBColor | ThemeColor

-- When set, the unpressed button's background will be drawn in the specified color.
-- A text color is automatically selected unless explicitly set, to make sure its
-- always visible.
-- Set color {0,0,0} to enable the theme colors for the button again.
-- A table of 3 bytes (ranging from 0 to 255)
-- representing the red, green and blue channels of a color.
-- {0xFF, 0xFF, 0xFF} is white
-- {165, 73, 35} is the red from the Renoise logo
-- The application theme's colors
ButtonColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

ButtonLabel

string

The text label of the button

  • Default: ""

ButtonNotifier

NotifierFunction | NotifierMethod1 | NotifierMethod2

A click notifier

ButtonStyle

"normal" | "rounded" | "rounded_bottom" | "rounded_left" | "rounded_right" | "rounded_top"

-- Get/set the style a button should be displayed with.
ButtonStyle:
    | "normal" -- (Default)
    | "rounded" -- rounded corners on all sides
    | "rounded_left" -- rounded left side
    | "rounded_right" -- rounded right side
    | "rounded_top" -- rounded left side
    | "rounded_bottom" -- rounded right side

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NotifierFunction

fun()

NotifierMemberContext

table | userdata

NotifierMemberFunction

(self : NotifierMemberContext)

NotifierMethod1

{ 1 : NotifierMemberContext, 2 : NotifierMemberFunction }

NotifierMethod2

{ 1 : NotifierMemberFunction, 2 : NotifierMemberContext }

RGBColor

{ 1 : integer, 2 : integer, 3 : integer }

A table of 3 bytes (ranging from 0 to 255) representing the red, green and blue channels of a color. {0xFF, 0xFF, 0xFF} is white {165, 73, 35} is the red from the Renoise logo

TextFontStyle

"big" | "bold" | "code" | "italic" | "mono" | "normal"

-- The style that the text should be displayed with.
TextFontStyle:
    | "normal" -- (Default)
    | "big" -- big text
    | "bold" -- bold font
    | "italic" -- italic font
    | "mono" -- monospace font
    | "code" -- monospace code font

ThemeColor

"alternate_main_back" | "alternate_main_font" | "automation_grid" | "automation_line_edge" | "automation_line_fill" | "automation_marker_diamond" | "automation_marker_pair" | "automation_marker_play" | "automation_marker_single" | "automation_point" | "body_back" | "body_font" | "button_back" | "button_font" | "button_highlight_font" | "default_color_01" | "default_color_02" | "default_color_03" | "default_color_04" | "default_color_05" | "default_color_06" | "default_color_07" | "default_color_08" | "default_color_09" | "default_color_10" | "default_color_11" | "default_color_12" | "default_color_13" | "default_color_14" | "default_color_15" | "default_color_16" | "folder" | "main_back" | "main_font" | "midi_mapping_back" | "midi_mapping_font" | "pattern_centerbar_back" | "pattern_centerbar_back_standby" | "pattern_centerbar_font" | "pattern_centerbar_font_standby" | "pattern_default_back" | "pattern_default_font" | "pattern_default_font_delay" | "pattern_default_font_dspfx" | "pattern_default_font_global" | "pattern_default_font_other" | "pattern_default_font_panning" | "pattern_default_font_pitch" | "pattern_default_font_unused" | "pattern_default_font_volume" | "pattern_highlighted_back" | "pattern_highlighted_font" | "pattern_highlighted_font_delay" | "pattern_highlighted_font_dspfx" | "pattern_highlighted_font_global" | "pattern_highlighted_font_other" | "pattern_highlighted_font_panning" | "pattern_highlighted_font_pitch" | "pattern_highlighted_font_unused" | "pattern_highlighted_font_volume" | "pattern_mute_state" | "pattern_playposition_back" | "pattern_playposition_font" | "pattern_selection" | "pattern_standby_selection" | "scrollbar" | "selected_button_back" | "selected_button_font" | "selection_back" | "selection_font" | "slider" | "standby_selection_back" | "standby_selection_font" | "strong_body_font" | "tooltip_back" | "tooltip_font" | "valuebox_back" | "valuebox_font" | "valuebox_font_icons" | "vumeter_back_clipped" | "vumeter_back_normal" | "vumeter_meter" | "vumeter_meter_high" | "vumeter_meter_low" | "vumeter_meter_middle" | "vumeter_peak"

-- The application theme's colors
ThemeColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

ButtonSwitchProperties


Properties

active : ControlActive?

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString?

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

bind : ViewNumberObservable?

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

value : SelectedItem?

The currently selected item's index

notifier : IntegerNotifier?

Set up a notifier that will be called whenever a new item is picked

items : ItemLabels?

A list of buttons labels to show in order. Must have more than one item.

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

IntegerNotifier

IntegerValueNotifierFunction | IntegerValueNotifierMethod1 | IntegerValueNotifierMethod2

Set up a notifier that will be called whenever a new item is picked

IntegerValueNotifierFunction

(value : integer)

IntegerValueNotifierMemberFunction

(self : NotifierMemberContext, value : integer)

IntegerValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : IntegerValueNotifierMemberFunction }

IntegerValueNotifierMethod2

{ 1 : IntegerValueNotifierMemberFunction, 2 : NotifierMemberContext }

ItemLabels

string[]

A list of buttons labels to show in order. Must have more than one item.

NotifierFunction

fun()

NotifierMemberContext

table | userdata

SelectedItem

integer

The currently selected item's index

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewNumberObservable

renoise.Document.ObservableNumber

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

CanvasViewProperties


Properties

mode : CanvasMode?

How to draw the canvas context to screen: "transparent" draws with alpha from the canvas, "plain" ignores alpha values, which usually is a lot faster to draw. Use "plain" to speed up drawing background alike canvas views which cover the entire view area. Default: "transparent"

render : CanvasRenderFunction?

Rendering callback for a canvas.

To update the canvas, use the canvas view's update function. This will will schedule a new drawing as soon as the backend is ready to draw. Always draw a complete image here, as the canvas will be completely empty in each new render call.

UI scaling: the canvas context by default is set up, so that the global UI scaling gets applied. So all positions in the canvas context by default use view sizes and not pixels. If you want to draw in a raw pixel resolution reset the canvas transformation via context.set_transform(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) To query the actual canvas size in pixels, use the context's size property.

mouse_handler : MouseHandler?

Optional mouse event handler for a view. return nil when the event got handled to stop propagating the event. return the event instance, as passed, to pass it to the next view in the view hirarchy.

mouse_events : MouseEventTypes?

The mouse event types that should be passed to your mouse_handler function. By default: { "down", "up", "double" } Avoid adding event types that you don't use, especially "move" events as they do create quite some overhead. Also note that when enabling "drag", sub view controls can no longer handle drag events, even when you pass back the event in the handler, so only enable it when you want to completely override mouse drag behavior of all your content views.

views : CanvasChildViews?

The canvas view's optional child views. Views can later on also be added and removed dynamically after construction via stack:add_view(child) and stack:remove_view(child)

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

CanvasChildViews

renoise.Views.View[]

The canvas view's optional child views. Views can later on also be added and removed dynamically after construction via stack:add_view(child) and stack:remove_view(child)

CanvasMode

"plain" | "transparent"

-- How to draw the canvas context to screen: "transparent" draws with alpha from
-- the canvas, "plain" ignores alpha values, which usually is a lot faster to draw.
-- Use "plain" to speed up drawing background alike canvas views which cover the
-- entire view area. Default: "transparent"
CanvasMode:
    | "plain"
    | "transparent"

CanvasRenderFunction

(context : renoise.Views.Canvas.Context)

Rendering callback for a canvas.

To update the canvas, use the canvas view's update function. This will will schedule a new drawing as soon as the backend is ready to draw. Always draw a complete image here, as the canvas will be completely empty in each new render call.

UI scaling: the canvas context by default is set up, so that the global UI scaling gets applied. So all positions in the canvas context by default use view sizes and not pixels. If you want to draw in a raw pixel resolution reset the canvas transformation via context.set_transform(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) To query the actual canvas size in pixels, use the context's size property.

MouseEventButton

"left" | "middle" | "right"

-- Mouse button of a `MouseEvent` of type "up"|"down"|"double"|"drag".
MouseEventButton:
    | "left"
    | "right"
    | "middle"

MouseEventType

"double" | "down" | "drag" | "enter" | "exit" | "move" | "up" | "wheel"

-- Event type of a `MouseEvent`.
MouseEventType:
    | "enter"
    | "exit"
    | "move"
    | "down"
    | "up"
    | "double"
    | "drag"
    | "wheel"

MouseEventTypes

MouseEventType[]

The mouse event types that should be passed to your mouse_handler function. By default: { "down", "up", "double" } Avoid adding event types that you don't use, especially "move" events as they do create quite some overhead. Also note that when enabling "drag", sub view controls can no longer handle drag events, even when you pass back the event in the handler, so only enable it when you want to completely override mouse drag behavior of all your content views.

MouseEventWheelDirection

"down" | "left" | "right" | "up"

-- Mouse wheel direction in a `MouseEvent` of type "wheel".
MouseEventWheelDirection:
    | "up"
    | "down"
    | "left"
    | "right"

MouseHandler

MouseHandlerNotifierFunction | MouseHandlerNotifierMethod1 | MouseHandlerNotifierMethod2

Optional mouse event handler for a view. return nil when the event got handled to stop propagating the event. return the event instance, as passed, to pass it to the next view in the view hirarchy.

MouseHandlerNotifierFunction

(event : MouseEvent) -> MouseEvent?

MouseHandlerNotifierMemberFunction

(self : NotifierMemberContext, event : MouseEvent) -> MouseEvent?

MouseHandlerNotifierMethod1

{ 1 : NotifierMemberContext, 2 : MouseHandlerNotifierMemberFunction }

MouseHandlerNotifierMethod2

{ 1 : MouseHandlerNotifierMemberFunction, 2 : NotifierMemberContext }

NotifierMemberContext

table | userdata

RGBAColor

{ 1 : integer, 2 : integer, 3 : integer, 4 : integer }

A table of 4 bytes (ranging from 0 to 255) representing the red, green, blue, alpha channels of a color. {0xFF, 0xFF, 0xFF, 0xFF} is white {165, 73, 35, 0x80} is the red from the Renoise logo, half opaque.

RGBColor

{ 1 : integer, 2 : integer, 3 : integer }

A table of 3 bytes (ranging from 0 to 255) representing the red, green and blue channels of a color. {0xFF, 0xFF, 0xFF} is white {165, 73, 35} is the red from the Renoise logo

ThemeColor

"alternate_main_back" | "alternate_main_font" | "automation_grid" | "automation_line_edge" | "automation_line_fill" | "automation_marker_diamond" | "automation_marker_pair" | "automation_marker_play" | "automation_marker_single" | "automation_point" | "body_back" | "body_font" | "button_back" | "button_font" | "button_highlight_font" | "default_color_01" | "default_color_02" | "default_color_03" | "default_color_04" | "default_color_05" | "default_color_06" | "default_color_07" | "default_color_08" | "default_color_09" | "default_color_10" | "default_color_11" | "default_color_12" | "default_color_13" | "default_color_14" | "default_color_15" | "default_color_16" | "folder" | "main_back" | "main_font" | "midi_mapping_back" | "midi_mapping_font" | "pattern_centerbar_back" | "pattern_centerbar_back_standby" | "pattern_centerbar_font" | "pattern_centerbar_font_standby" | "pattern_default_back" | "pattern_default_font" | "pattern_default_font_delay" | "pattern_default_font_dspfx" | "pattern_default_font_global" | "pattern_default_font_other" | "pattern_default_font_panning" | "pattern_default_font_pitch" | "pattern_default_font_unused" | "pattern_default_font_volume" | "pattern_highlighted_back" | "pattern_highlighted_font" | "pattern_highlighted_font_delay" | "pattern_highlighted_font_dspfx" | "pattern_highlighted_font_global" | "pattern_highlighted_font_other" | "pattern_highlighted_font_panning" | "pattern_highlighted_font_pitch" | "pattern_highlighted_font_unused" | "pattern_highlighted_font_volume" | "pattern_mute_state" | "pattern_playposition_back" | "pattern_playposition_font" | "pattern_selection" | "pattern_standby_selection" | "scrollbar" | "selected_button_back" | "selected_button_font" | "selection_back" | "selection_font" | "slider" | "standby_selection_back" | "standby_selection_font" | "strong_body_font" | "tooltip_back" | "tooltip_font" | "valuebox_back" | "valuebox_font" | "valuebox_font_icons" | "vumeter_back_clipped" | "vumeter_back_normal" | "vumeter_meter" | "vumeter_meter_high" | "vumeter_meter_low" | "vumeter_meter_middle" | "vumeter_peak"

-- The application theme's colors
ThemeColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

CheckBoxProperties


Properties

bind : ViewBooleanObservable?

Bind the view's value to a renoise.Document.ObservableBoolean object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

value : CheckBoxBoolean?

The current state of the checkbox, expressed as boolean.

  • Default: false

notifier : CheckBoxBooleanNotifier?

A notifier for when the checkbox is toggled

active : ControlActive?

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString?

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

BooleanValueNotifierFunction

(value : boolean)

BooleanValueNotifierMemberFunction

(self : NotifierMemberContext, value : boolean)

BooleanValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : BooleanValueNotifierMemberFunction }

BooleanValueNotifierMethod2

{ 1 : BooleanValueNotifierMemberFunction, 2 : NotifierMemberContext }

CheckBoxBoolean

boolean

The current state of the checkbox, expressed as boolean.

  • Default: false

CheckBoxBooleanNotifier

BooleanValueNotifierFunction | BooleanValueNotifierMethod1 | BooleanValueNotifierMethod2

A notifier for when the checkbox is toggled

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NotifierFunction

fun()

NotifierMemberContext

table | userdata

ViewBooleanObservable

renoise.Document.ObservableBoolean

Bind the view's value to a renoise.Document.ObservableBoolean object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

ChooserProperties


Properties

bind : ViewNumberObservable?

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

value : SelectedItem?

The currently selected item's index

notifier : IntegerNotifier?

Set up a notifier that will be called whenever a new item is picked

items : ItemLabels?

A list of buttons labels to show in order. Must have more than one item.

active : ControlActive?

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString?

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

IntegerNotifier

IntegerValueNotifierFunction | IntegerValueNotifierMethod1 | IntegerValueNotifierMethod2

Set up a notifier that will be called whenever a new item is picked

IntegerValueNotifierFunction

(value : integer)

IntegerValueNotifierMemberFunction

(self : NotifierMemberContext, value : integer)

IntegerValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : IntegerValueNotifierMemberFunction }

IntegerValueNotifierMethod2

{ 1 : IntegerValueNotifierMemberFunction, 2 : NotifierMemberContext }

ItemLabels

string[]

A list of buttons labels to show in order. Must have more than one item.

NotifierFunction

fun()

NotifierMemberContext

table | userdata

SelectedItem

integer

The currently selected item's index

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewNumberObservable

renoise.Document.ObservableNumber

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

MiniSliderProperties


Properties

active : ControlActive?

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString?

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

bind : ViewNumberObservable?

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

value : SliderNumberValue?

The current value of the view

notifier : NumberValueNotifier?

Set up a value notifier that will be called whenever the value changes

polarity : SliderPolarity?

Value polarity of the control. Bipolar controls show the value from the center to left and right or up and down and typically controls a range around zero, e.g. -1 to 1. Unipolar controls show the value from left to right or bottom to top.

  • Default: "unipolar"

min : SliderMinValue?

The minimum value that can be set using the view

  • Default: 0

max : SliderMaxValue?

The maximum value that can be set using the view

  • Default: 1.0

default : SliderDefaultValue?

The default value that will be re-applied on double-click

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NotifierFunction

fun()

NotifierMemberContext

table | userdata

NumberValueNotifier

NumberValueNotifierFunction | NumberValueNotifierMethod1 | NumberValueNotifierMethod2

Set up a value notifier that will be called whenever the value changes

NumberValueNotifierFunction

(value : number)

NumberValueNotifierMemberFunction

(self : NotifierMemberContext, value : number)

NumberValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : NumberValueNotifierMemberFunction }

NumberValueNotifierMethod2

{ 1 : NumberValueNotifierMemberFunction, 2 : NotifierMemberContext }

SliderDefaultValue

number

The default value that will be re-applied on double-click

SliderMaxValue

number

The maximum value that can be set using the view

  • Default: 1.0

SliderMinValue

number

The minimum value that can be set using the view

  • Default: 0

SliderNumberValue

number

The current value of the view

SliderPolarity

"bipolar" | "unipolar"

-- Value polarity of the control. Bipolar controls show the value from the
-- center to left and right or up and down and typically controls a range
-- around zero, e.g. -1 to 1. Unipolar controls show the value from left to
-- right or bottom to top.
-- * Default: "unipolar" 
SliderPolarity:
    | "unipolar"
    | "bipolar"

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewNumberObservable

renoise.Document.ObservableNumber

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

MouseEvent

Mouse event as passed to a layout view's "mouse_handler" function.


Properties

type : MouseEventType

Mouse event type. Only enabled types are passed to the handler.

button : MouseEventButton?

For "up"|"down"|"double"|"drag" events, the mouse button which got pressed, nil for all other events.

direction : MouseEventWheelDirection?

For "wheel" events, the wheel's direction, nil for all other events.

position : { x : number, y : number }

Mouse cursor position in relative coordinates to the layout.

modifier_flags : { alt : boolean, control : boolean, meta : boolean, shift : boolean }

Currently pressed (held down) keyboard modifier buttons.

button_flags : { left : boolean, middle : boolean, right : boolean }

Currently pressed (held down) mouse buttons.

hover_views : { id : string, view : renoise.Views.View }[]

List of sub views and possible layout subview's subviews, that are located below the mouse cursor. In other words: all views that are located below the mouse cursor. The list is orderd by containing the top-most visible view first, so you usually will need to check the first table entry only.

NB: Only views that got created with the same view builder instance as the layout, and only subviews with valid viewbuilder "id"s will show up here!


Aliases

MouseEventButton

"left" | "middle" | "right"

-- Mouse button of a `MouseEvent` of type "up"|"down"|"double"|"drag".
MouseEventButton:
    | "left"
    | "right"
    | "middle"

MouseEventType

"double" | "down" | "drag" | "enter" | "exit" | "move" | "up" | "wheel"

-- Event type of a `MouseEvent`.
MouseEventType:
    | "enter"
    | "exit"
    | "move"
    | "down"
    | "up"
    | "double"
    | "drag"
    | "wheel"

MouseEventWheelDirection

"down" | "left" | "right" | "up"

-- Mouse wheel direction in a `MouseEvent` of type "wheel".
MouseEventWheelDirection:
    | "up"
    | "down"
    | "left"
    | "right"

MultilineTextFieldProperties


Properties

bind : ViewStringListObservable?

Bind the view's value to a renoise.Document.ObservableStringList object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

active : TextActive?

When false, text is displayed but can not be entered/modified by the user.

  • Default: true

value : TextMultilineString?

The text that should be displayed. Newlines (Windows, Mac or Unix styled) in the text can be used to create paragraphs.

notifier : StringChangeNotifier?

Set up a notifier for text changes

text : TextValueAlias?

Exactly the same as "value"; provided for consistency.

  • Default: ""

paragraphs : TextParagraphs?

A table of text lines to be used instead of specifying a single text line with newline characters like "text"

  • Default: []

font : TextFontStyle?

The style that the text should be displayed with.

style : TextBackgroundStyle?

Setup the text view's background:

edit_mode : TextEditMode?

True when the text field is focused. setting it at run-time programmatically will focus the text field or remove the focus (focus the dialog) accordingly.

  • Default: false

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

ListElementAdded

{ index : integer, type : "insert" }

ListElementChange

ListElementAdded | ListElementRemoved | ListElementsSwapped

ListElementRemoved

{ index : integer, type : "removed" }

ListElementsSwapped

{ index1 : integer, index2 : integer, type : "swapped" }

ListNotifierFunction

(change : ListElementChange)

ListNotifierMemberContext

table | userdata

NotifierMemberContext

table | userdata

StringChangeNotifier

StringValueNotifierFunction | StringValueNotifierMethod1 | StringValueNotifierMethod2

Set up a notifier for text changes

StringValueNotifierFunction

(value : string)

StringValueNotifierMemberFunction

(self : NotifierMemberContext, value : string)

StringValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : StringValueNotifierMemberFunction }

StringValueNotifierMethod2

{ 1 : StringValueNotifierMemberFunction, 2 : NotifierMemberContext }

TextActive

boolean

When false, text is displayed but can not be entered/modified by the user.

  • Default: true

TextBackgroundStyle

"body" | "border" | "strong"

-- Setup the text view's background:
TextBackgroundStyle:
    | "body" -- simple text color with no background
    | "strong" -- stronger text color with no background
    | "border" -- text on a bordered background

TextEditMode

boolean

True when the text field is focused. setting it at run-time programmatically will focus the text field or remove the focus (focus the dialog) accordingly.

  • Default: false

TextFontStyle

"big" | "bold" | "code" | "italic" | "mono" | "normal"

-- The style that the text should be displayed with.
TextFontStyle:
    | "normal" -- (Default)
    | "big" -- big text
    | "bold" -- bold font
    | "italic" -- italic font
    | "mono" -- monospace font
    | "code" -- monospace code font

TextMultilineString

string

The text that should be displayed. Newlines (Windows, Mac or Unix styled) in the text can be used to create paragraphs.

TextParagraphs

string[]

A table of text lines to be used instead of specifying a single text line with newline characters like "text"

  • Default: []

TextValueAlias

string

Exactly the same as "value"; provided for consistency.

  • Default: ""

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewStringListObservable

renoise.Document.ObservableStringList

Bind the view's value to a renoise.Document.ObservableStringList object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

MultilineTextViewProperties


Properties

text : TextMultilineString?

The text that should be displayed. Newlines (Windows, Mac or Unix styled) in the text can be used to create paragraphs.

paragraphs : TextParagraphs?

A table of text lines to be used instead of specifying a single text line with newline characters like "text"

  • Default: []

font : TextFontStyle?

The style that the text should be displayed with.

style : TextBackgroundStyle?

Setup the text view's background:

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

TextBackgroundStyle

"body" | "border" | "strong"

-- Setup the text view's background:
TextBackgroundStyle:
    | "body" -- simple text color with no background
    | "strong" -- stronger text color with no background
    | "border" -- text on a bordered background

TextFontStyle

"big" | "bold" | "code" | "italic" | "mono" | "normal"

-- The style that the text should be displayed with.
TextFontStyle:
    | "normal" -- (Default)
    | "big" -- big text
    | "bold" -- bold font
    | "italic" -- italic font
    | "mono" -- monospace font
    | "code" -- monospace code font

TextMultilineString

string

The text that should be displayed. Newlines (Windows, Mac or Unix styled) in the text can be used to create paragraphs.

TextParagraphs

string[]

A table of text lines to be used instead of specifying a single text line with newline characters like "text"

  • Default: []

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

PopUpMenuProperties


Properties

active : ControlActive?

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString?

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

bind : ViewNumberObservable?

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

value : SelectedItem?

The currently selected item's index

notifier : IntegerNotifier?

Set up a notifier that will be called whenever a new item is picked

items : PopupItemLabels?

A list of buttons labels to show in order The list can be empty, then "None" is displayed and the value won't change.

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

IntegerNotifier

IntegerValueNotifierFunction | IntegerValueNotifierMethod1 | IntegerValueNotifierMethod2

Set up a notifier that will be called whenever a new item is picked

IntegerValueNotifierFunction

(value : integer)

IntegerValueNotifierMemberFunction

(self : NotifierMemberContext, value : integer)

IntegerValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : IntegerValueNotifierMemberFunction }

IntegerValueNotifierMethod2

{ 1 : IntegerValueNotifierMemberFunction, 2 : NotifierMemberContext }

NotifierFunction

fun()

NotifierMemberContext

table | userdata

PopupItemLabels

string[]

A list of buttons labels to show in order The list can be empty, then "None" is displayed and the value won't change.

SelectedItem

integer

The currently selected item's index

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewNumberObservable

renoise.Document.ObservableNumber

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

RackViewProperties


Properties

margin : RackMargin?

Set the "borders" of a rack (left, right, top and bottom inclusively)

  • Default: 0 (no borders)

spacing : RackSpacing?

Set the amount stacked child views are separated by (horizontally in rows, vertically in columns).

  • Default: 0 (no spacing)

background : ViewBackgroundStyle?

Setup a background style for the view.

uniform : RackUniformity?

When set to true, all child views in the rack are automatically resized to the max size of all child views (width in ViewBuilder.column, height in ViewBuilder.row). This can be useful to automatically align all sub columns/panels to the same size. Resizing is done automatically, as soon as a child view size changes or new children are added.

  • Default: false

mouse_handler : MouseHandler?

Optional mouse event handler for a view. return nil when the event got handled to stop propagating the event. return the event instance, as passed, to pass it to the next view in the view hirarchy.

mouse_events : MouseEventTypes?

The mouse event types that should be passed to your mouse_handler function. By default: { "down", "up", "double" } Avoid adding event types that you don't use, especially "move" events as they do create quite some overhead. Also note that when enabling "drag", sub view controls can no longer handle drag events, even when you pass back the event in the handler, so only enable it when you want to completely override mouse drag behavior of all your content views.

views : RackChildViews?

The rack view's initial child views. Views can later on also be added and removed dynamically after construction via rack:add_view(child) and rack:remove_view(child)

style : ViewBackgroundStyle?

Deprecated Use background instead.

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

MouseEventButton

"left" | "middle" | "right"

-- Mouse button of a `MouseEvent` of type "up"|"down"|"double"|"drag".
MouseEventButton:
    | "left"
    | "right"
    | "middle"

MouseEventType

"double" | "down" | "drag" | "enter" | "exit" | "move" | "up" | "wheel"

-- Event type of a `MouseEvent`.
MouseEventType:
    | "enter"
    | "exit"
    | "move"
    | "down"
    | "up"
    | "double"
    | "drag"
    | "wheel"

MouseEventTypes

MouseEventType[]

The mouse event types that should be passed to your mouse_handler function. By default: { "down", "up", "double" } Avoid adding event types that you don't use, especially "move" events as they do create quite some overhead. Also note that when enabling "drag", sub view controls can no longer handle drag events, even when you pass back the event in the handler, so only enable it when you want to completely override mouse drag behavior of all your content views.

MouseEventWheelDirection

"down" | "left" | "right" | "up"

-- Mouse wheel direction in a `MouseEvent` of type "wheel".
MouseEventWheelDirection:
    | "up"
    | "down"
    | "left"
    | "right"

MouseHandler

MouseHandlerNotifierFunction | MouseHandlerNotifierMethod1 | MouseHandlerNotifierMethod2

Optional mouse event handler for a view. return nil when the event got handled to stop propagating the event. return the event instance, as passed, to pass it to the next view in the view hirarchy.

MouseHandlerNotifierFunction

(event : MouseEvent) -> MouseEvent?

MouseHandlerNotifierMemberFunction

(self : NotifierMemberContext, event : MouseEvent) -> MouseEvent?

MouseHandlerNotifierMethod1

{ 1 : NotifierMemberContext, 2 : MouseHandlerNotifierMemberFunction }

MouseHandlerNotifierMethod2

{ 1 : MouseHandlerNotifierMemberFunction, 2 : NotifierMemberContext }

NotifierMemberContext

table | userdata

RackChildViews

renoise.Views.View[]

The rack view's initial child views. Views can later on also be added and removed dynamically after construction via rack:add_view(child) and rack:remove_view(child)

RackMargin

integer

Set the "borders" of a rack (left, right, top and bottom inclusively)

  • Default: 0 (no borders)

RackSpacing

integer

Set the amount stacked child views are separated by (horizontally in rows, vertically in columns).

  • Default: 0 (no spacing)

RackUniformity

boolean

When set to true, all child views in the rack are automatically resized to the max size of all child views (width in ViewBuilder.column, height in ViewBuilder.row). This can be useful to automatically align all sub columns/panels to the same size. Resizing is done automatically, as soon as a child view size changes or new children are added.

  • Default: false

ViewBackgroundStyle

"body" | "border" | "group" | "invisible" | "panel" | "plain"

-- Setup a background style for the view. 
ViewBackgroundStyle:
    | "invisible" -- no background (Default)
    | "plain" -- undecorated, single coloured background
    | "border" -- same as plain, but with a bold nested border
    | "body" -- main "background" style, as used in dialog backgrounds
    | "panel" -- alternative "background" style, beveled
    | "group" -- background for "nested" groups within body

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

RotaryEncoderProperties


Properties

active : ControlActive?

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString?

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

bind : ViewNumberObservable?

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

value : SliderNumberValue?

The current value of the view

notifier : NumberValueNotifier?

Set up a value notifier that will be called whenever the value changes

polarity : SliderPolarity?

Value polarity of the control. Bipolar controls show the value from the center to left and right or up and down and typically controls a range around zero, e.g. -1 to 1. Unipolar controls show the value from left to right or bottom to top.

  • Default: "unipolar"

min : SliderMinValue?

The minimum value that can be set using the view

  • Default: 0

max : SliderMaxValue?

The maximum value that can be set using the view

  • Default: 1.0

default : SliderDefaultValue?

The default value that will be re-applied on double-click

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NotifierFunction

fun()

NotifierMemberContext

table | userdata

NumberValueNotifier

NumberValueNotifierFunction | NumberValueNotifierMethod1 | NumberValueNotifierMethod2

Set up a value notifier that will be called whenever the value changes

NumberValueNotifierFunction

(value : number)

NumberValueNotifierMemberFunction

(self : NotifierMemberContext, value : number)

NumberValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : NumberValueNotifierMemberFunction }

NumberValueNotifierMethod2

{ 1 : NumberValueNotifierMemberFunction, 2 : NotifierMemberContext }

SliderDefaultValue

number

The default value that will be re-applied on double-click

SliderMaxValue

number

The maximum value that can be set using the view

  • Default: 1.0

SliderMinValue

number

The minimum value that can be set using the view

  • Default: 0

SliderNumberValue

number

The current value of the view

SliderPolarity

"bipolar" | "unipolar"

-- Value polarity of the control. Bipolar controls show the value from the
-- center to left and right or up and down and typically controls a range
-- around zero, e.g. -1 to 1. Unipolar controls show the value from left to
-- right or bottom to top.
-- * Default: "unipolar" 
SliderPolarity:
    | "unipolar"
    | "bipolar"

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewNumberObservable

renoise.Document.ObservableNumber

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

ScrollBarProperties


Properties

active : ControlActive?

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString?

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

bind : ViewNumberObservable?

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

value : ScrollbarValue?

Default 0. Offset value in range min to max - pagestep.

notifier : NumberValueNotifier?

Set up a value notifier that will be called whenever the value changes

min : ScrollbarMin?

Default 0. Minimum offset value.

max : ScrollbarMax?

Default 100. Maximum offset value.

step : ScrollbarStep?

Default 1. Amount the mouse-wheel or additional +/- buttons in the scroll bar move the scrollable area.

pagestep : ScrollbarPagestep?

Default 100. Size of the currently visible area.

background : ViewBackgroundStyle?

Setup a background style for the view.

autohide : ScrollbarAutoHide?

Default: false. When true, view gets automatically hidden when no scrolling is needed

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NotifierFunction

fun()

NotifierMemberContext

table | userdata

NumberValueNotifier

NumberValueNotifierFunction | NumberValueNotifierMethod1 | NumberValueNotifierMethod2

Set up a value notifier that will be called whenever the value changes

NumberValueNotifierFunction

(value : number)

NumberValueNotifierMemberFunction

(self : NotifierMemberContext, value : number)

NumberValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : NumberValueNotifierMemberFunction }

NumberValueNotifierMethod2

{ 1 : NumberValueNotifierMemberFunction, 2 : NotifierMemberContext }

ScrollbarAutoHide

boolean

Default: false. When true, view gets automatically hidden when no scrolling is needed

ScrollbarMax

integer

Default 100. Maximum offset value.

ScrollbarMin

integer

Default 0. Minimum offset value.

ScrollbarPagestep

integer

Default 100. Size of the currently visible area.

ScrollbarStep

integer

Default 1. Amount the mouse-wheel or additional +/- buttons in the scroll bar move the scrollable area.

ScrollbarValue

integer

Default 0. Offset value in range min to max - pagestep.

ViewBackgroundStyle

"body" | "border" | "group" | "invisible" | "panel" | "plain"

-- Setup a background style for the view. 
ViewBackgroundStyle:
    | "invisible" -- no background (Default)
    | "plain" -- undecorated, single coloured background
    | "border" -- same as plain, but with a bold nested border
    | "body" -- main "background" style, as used in dialog backgrounds
    | "panel" -- alternative "background" style, beveled
    | "group" -- background for "nested" groups within body

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewNumberObservable

renoise.Document.ObservableNumber

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

SliderProperties


Properties

active : ControlActive?

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString?

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

bind : ViewNumberObservable?

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

value : SliderNumberValue?

The current value of the view

notifier : NumberValueNotifier?

Set up a value notifier that will be called whenever the value changes

polarity : SliderPolarity?

Value polarity of the control. Bipolar controls show the value from the center to left and right or up and down and typically controls a range around zero, e.g. -1 to 1. Unipolar controls show the value from left to right or bottom to top.

  • Default: "unipolar"

min : SliderMinValue?

The minimum value that can be set using the view

  • Default: 0

max : SliderMaxValue?

The maximum value that can be set using the view

  • Default: 1.0

steps : SliderStepAmounts?

A table containing two numbers representing the step amounts for incrementing and decrementing by clicking the <> buttons. The first value is the small step (applied on left clicks) second value is the big step (applied on right clicks)

default : SliderDefaultValue?

The default value that will be re-applied on double-click

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NotifierFunction

fun()

NotifierMemberContext

table | userdata

NumberValueNotifier

NumberValueNotifierFunction | NumberValueNotifierMethod1 | NumberValueNotifierMethod2

Set up a value notifier that will be called whenever the value changes

NumberValueNotifierFunction

(value : number)

NumberValueNotifierMemberFunction

(self : NotifierMemberContext, value : number)

NumberValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : NumberValueNotifierMemberFunction }

NumberValueNotifierMethod2

{ 1 : NumberValueNotifierMemberFunction, 2 : NotifierMemberContext }

SliderDefaultValue

number

The default value that will be re-applied on double-click

SliderMaxValue

number

The maximum value that can be set using the view

  • Default: 1.0

SliderMinValue

number

The minimum value that can be set using the view

  • Default: 0

SliderNumberValue

number

The current value of the view

SliderPolarity

"bipolar" | "unipolar"

-- Value polarity of the control. Bipolar controls show the value from the
-- center to left and right or up and down and typically controls a range
-- around zero, e.g. -1 to 1. Unipolar controls show the value from left to
-- right or bottom to top.
-- * Default: "unipolar" 
SliderPolarity:
    | "unipolar"
    | "bipolar"

SliderStepAmounts

{ 1 : number, 2 : number }

A table containing two numbers representing the step amounts for incrementing and decrementing by clicking the <> buttons. The first value is the small step (applied on left clicks) second value is the big step (applied on right clicks)

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewNumberObservable

renoise.Document.ObservableNumber

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

StackViewProperties


Properties

autosize : StackAutoSize?

When set to true, the width and height of the stack will be automatically calculated and updated from the stack's child views, to ensure all views fit into the stack. When disabled, the width and height must be set manually.

  • Default: true

background : ViewBackgroundStyle?

Setup a background style for the view.

mouse_handler : MouseHandler?

Optional mouse event handler for a view. return nil when the event got handled to stop propagating the event. return the event instance, as passed, to pass it to the next view in the view hirarchy.

mouse_events : MouseEventTypes?

The mouse event types that should be passed to your mouse_handler function. By default: { "down", "up", "double" } Avoid adding event types that you don't use, especially "move" events as they do create quite some overhead. Also note that when enabling "drag", sub view controls can no longer handle drag events, even when you pass back the event in the handler, so only enable it when you want to completely override mouse drag behavior of all your content views.

views : StackChildViews?

The stack view's optional child views. Views can later on also be added and removed dynamically after construction via stack:add_view(child) and stack:remove_view(child)

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

MouseEventButton

"left" | "middle" | "right"

-- Mouse button of a `MouseEvent` of type "up"|"down"|"double"|"drag".
MouseEventButton:
    | "left"
    | "right"
    | "middle"

MouseEventType

"double" | "down" | "drag" | "enter" | "exit" | "move" | "up" | "wheel"

-- Event type of a `MouseEvent`.
MouseEventType:
    | "enter"
    | "exit"
    | "move"
    | "down"
    | "up"
    | "double"
    | "drag"
    | "wheel"

MouseEventTypes

MouseEventType[]

The mouse event types that should be passed to your mouse_handler function. By default: { "down", "up", "double" } Avoid adding event types that you don't use, especially "move" events as they do create quite some overhead. Also note that when enabling "drag", sub view controls can no longer handle drag events, even when you pass back the event in the handler, so only enable it when you want to completely override mouse drag behavior of all your content views.

MouseEventWheelDirection

"down" | "left" | "right" | "up"

-- Mouse wheel direction in a `MouseEvent` of type "wheel".
MouseEventWheelDirection:
    | "up"
    | "down"
    | "left"
    | "right"

MouseHandler

MouseHandlerNotifierFunction | MouseHandlerNotifierMethod1 | MouseHandlerNotifierMethod2

Optional mouse event handler for a view. return nil when the event got handled to stop propagating the event. return the event instance, as passed, to pass it to the next view in the view hirarchy.

MouseHandlerNotifierFunction

(event : MouseEvent) -> MouseEvent?

MouseHandlerNotifierMemberFunction

(self : NotifierMemberContext, event : MouseEvent) -> MouseEvent?

MouseHandlerNotifierMethod1

{ 1 : NotifierMemberContext, 2 : MouseHandlerNotifierMemberFunction }

MouseHandlerNotifierMethod2

{ 1 : MouseHandlerNotifierMemberFunction, 2 : NotifierMemberContext }

NotifierMemberContext

table | userdata

StackAutoSize

boolean

When set to true, the width and height of the stack will be automatically calculated and updated from the stack's child views, to ensure all views fit into the stack. When disabled, the width and height must be set manually.

  • Default: true

StackChildViews

renoise.Views.View[]

The stack view's optional child views. Views can later on also be added and removed dynamically after construction via stack:add_view(child) and stack:remove_view(child)

ViewBackgroundStyle

"body" | "border" | "group" | "invisible" | "panel" | "plain"

-- Setup a background style for the view. 
ViewBackgroundStyle:
    | "invisible" -- no background (Default)
    | "plain" -- undecorated, single coloured background
    | "border" -- same as plain, but with a bold nested border
    | "body" -- main "background" style, as used in dialog backgrounds
    | "panel" -- alternative "background" style, beveled
    | "group" -- background for "nested" groups within body

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

TextFieldProperties


Properties

bind : ViewStringObservable?

Bind the view's value to a renoise.Document.ObservableString object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

active : TextActive?

When false, text is displayed but can not be entered/modified by the user.

  • Default: true

value : TextValue?

The currently shown text. The text will not be updated when editing, rather only after editing is complete (return is pressed, or focus is lost).

  • Default: ""

notifier : StringChangeNotifier?

Set up a notifier for text changes

text : TextValueAlias?

Exactly the same as "value"; provided for consistency.

  • Default: ""

align : TextAlignment?

Setup the text's alignment. Applies only when the view's size is larger than the needed size to draw the text

edit_mode : TextEditMode?

True when the text field is focused. setting it at run-time programmatically will focus the text field or remove the focus (focus the dialog) accordingly.

  • Default: false

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

NotifierFunction

fun()

NotifierMemberContext

table | userdata

StringChangeNotifier

StringValueNotifierFunction | StringValueNotifierMethod1 | StringValueNotifierMethod2

Set up a notifier for text changes

StringValueNotifierFunction

(value : string)

StringValueNotifierMemberFunction

(self : NotifierMemberContext, value : string)

StringValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : StringValueNotifierMemberFunction }

StringValueNotifierMethod2

{ 1 : StringValueNotifierMemberFunction, 2 : NotifierMemberContext }

TextActive

boolean

When false, text is displayed but can not be entered/modified by the user.

  • Default: true

TextAlignment

"center" | "left" | "right"

-- Setup the text's alignment. Applies only when the view's size is larger than
-- the needed size to draw the text
TextAlignment:
    | "left" -- (Default)
    | "right" -- aligned to the right
    | "center" -- center text

TextEditMode

boolean

True when the text field is focused. setting it at run-time programmatically will focus the text field or remove the focus (focus the dialog) accordingly.

  • Default: false

TextValue

string

The currently shown text. The text will not be updated when editing, rather only after editing is complete (return is pressed, or focus is lost).

  • Default: ""

TextValueAlias

string

Exactly the same as "value"; provided for consistency.

  • Default: ""

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewStringObservable

renoise.Document.ObservableString

Bind the view's value to a renoise.Document.ObservableString object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

TextLinkViewProperties


Properties

active : ControlActive?

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString?

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

notifier : ButtonNotifier?

A click notifier

pressed : ButtonNotifier?

A click notifier

released : ButtonNotifier?

A click notifier

text : TextSingleLineString?

The text that should be displayed. Setting a new text will resize the view in order to make the text fully visible (expanding only).

  • Default: ""

font : TextFontStyle?

The style that the text should be displayed with.

style : TextStyle?

Get/set the color style the text should be displayed with.

color : TextColor?

When set, the text will be drawn in the specified color. Set style to something else than "custom" or color to {0, 0, 0} to enable the default theme color for the text again.

orientation : TextOrientation?

Setup the texts's orientation (writing direction).

align : TextAlignment?

Setup the text's alignment. Applies only when the view's size is larger than the needed size to draw the text

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

ButtonNotifier

NotifierFunction | NotifierMethod1 | NotifierMethod2

A click notifier

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NotifierFunction

fun()

NotifierMemberContext

table | userdata

NotifierMemberFunction

(self : NotifierMemberContext)

NotifierMethod1

{ 1 : NotifierMemberContext, 2 : NotifierMemberFunction }

NotifierMethod2

{ 1 : NotifierMemberFunction, 2 : NotifierMemberContext }

RGBColor

{ 1 : integer, 2 : integer, 3 : integer }

A table of 3 bytes (ranging from 0 to 255) representing the red, green and blue channels of a color. {0xFF, 0xFF, 0xFF} is white {165, 73, 35} is the red from the Renoise logo

TextAlignment

"center" | "left" | "right"

-- Setup the text's alignment. Applies only when the view's size is larger than
-- the needed size to draw the text
TextAlignment:
    | "left" -- (Default)
    | "right" -- aligned to the right
    | "center" -- center text

TextColor

RGBColor | ThemeColor

-- When set, the text will be drawn in the specified color.
-- Set style to something else than "custom" or color to `{0, 0, 0}`
-- to enable the default theme color for the text again.
-- A table of 3 bytes (ranging from 0 to 255)
-- representing the red, green and blue channels of a color.
-- {0xFF, 0xFF, 0xFF} is white
-- {165, 73, 35} is the red from the Renoise logo
-- The application theme's colors
TextColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

TextFontStyle

"big" | "bold" | "code" | "italic" | "mono" | "normal"

-- The style that the text should be displayed with.
TextFontStyle:
    | "normal" -- (Default)
    | "big" -- big text
    | "bold" -- bold font
    | "italic" -- italic font
    | "mono" -- monospace font
    | "code" -- monospace code font

TextOrientation

"horizontal" | "horizontal-rl" | "vertical" | "vertical-tb"

-- Setup the texts's orientation (writing direction).
TextOrientation:
    | "horizontal" -- Draw from left to right (Default)
    | "horizontal-rl" -- Draw from right to left
    | "vertical" -- Draw from bottom to top
    | "vertical-tb" -- Draw from top to bottom

TextSingleLineString

string

The text that should be displayed. Setting a new text will resize the view in order to make the text fully visible (expanding only).

  • Default: ""

TextStyle

"custom" | "disabled" | "normal" | "strong"

-- Get/set the color style the text should be displayed with.
TextStyle:
    | "normal" -- (Default)
    | "strong" -- highlighted color
    | "disabled" -- greyed out color
    | "custom" -- custom color

ThemeColor

"alternate_main_back" | "alternate_main_font" | "automation_grid" | "automation_line_edge" | "automation_line_fill" | "automation_marker_diamond" | "automation_marker_pair" | "automation_marker_play" | "automation_marker_single" | "automation_point" | "body_back" | "body_font" | "button_back" | "button_font" | "button_highlight_font" | "default_color_01" | "default_color_02" | "default_color_03" | "default_color_04" | "default_color_05" | "default_color_06" | "default_color_07" | "default_color_08" | "default_color_09" | "default_color_10" | "default_color_11" | "default_color_12" | "default_color_13" | "default_color_14" | "default_color_15" | "default_color_16" | "folder" | "main_back" | "main_font" | "midi_mapping_back" | "midi_mapping_font" | "pattern_centerbar_back" | "pattern_centerbar_back_standby" | "pattern_centerbar_font" | "pattern_centerbar_font_standby" | "pattern_default_back" | "pattern_default_font" | "pattern_default_font_delay" | "pattern_default_font_dspfx" | "pattern_default_font_global" | "pattern_default_font_other" | "pattern_default_font_panning" | "pattern_default_font_pitch" | "pattern_default_font_unused" | "pattern_default_font_volume" | "pattern_highlighted_back" | "pattern_highlighted_font" | "pattern_highlighted_font_delay" | "pattern_highlighted_font_dspfx" | "pattern_highlighted_font_global" | "pattern_highlighted_font_other" | "pattern_highlighted_font_panning" | "pattern_highlighted_font_pitch" | "pattern_highlighted_font_unused" | "pattern_highlighted_font_volume" | "pattern_mute_state" | "pattern_playposition_back" | "pattern_playposition_font" | "pattern_selection" | "pattern_standby_selection" | "scrollbar" | "selected_button_back" | "selected_button_font" | "selection_back" | "selection_font" | "slider" | "standby_selection_back" | "standby_selection_font" | "strong_body_font" | "tooltip_back" | "tooltip_font" | "valuebox_back" | "valuebox_font" | "valuebox_font_icons" | "vumeter_back_clipped" | "vumeter_back_normal" | "vumeter_meter" | "vumeter_meter_high" | "vumeter_meter_low" | "vumeter_meter_middle" | "vumeter_peak"

-- The application theme's colors
ThemeColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

TextViewProperties


Properties

text : TextSingleLineString?

The text that should be displayed. Setting a new text will resize the view in order to make the text fully visible (expanding only).

  • Default: ""

font : TextFontStyle?

The style that the text should be displayed with.

style : TextStyle?

Get/set the color style the text should be displayed with.

color : TextColor?

When set, the text will be drawn in the specified color. Set style to something else than "custom" or color to {0, 0, 0} to enable the default theme color for the text again.

orientation : TextOrientation?

Setup the texts's orientation (writing direction).

align : TextAlignment?

Setup the text's alignment. Applies only when the view's size is larger than the needed size to draw the text

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

RGBColor

{ 1 : integer, 2 : integer, 3 : integer }

A table of 3 bytes (ranging from 0 to 255) representing the red, green and blue channels of a color. {0xFF, 0xFF, 0xFF} is white {165, 73, 35} is the red from the Renoise logo

TextAlignment

"center" | "left" | "right"

-- Setup the text's alignment. Applies only when the view's size is larger than
-- the needed size to draw the text
TextAlignment:
    | "left" -- (Default)
    | "right" -- aligned to the right
    | "center" -- center text

TextColor

RGBColor | ThemeColor

-- When set, the text will be drawn in the specified color.
-- Set style to something else than "custom" or color to `{0, 0, 0}`
-- to enable the default theme color for the text again.
-- A table of 3 bytes (ranging from 0 to 255)
-- representing the red, green and blue channels of a color.
-- {0xFF, 0xFF, 0xFF} is white
-- {165, 73, 35} is the red from the Renoise logo
-- The application theme's colors
TextColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

TextFontStyle

"big" | "bold" | "code" | "italic" | "mono" | "normal"

-- The style that the text should be displayed with.
TextFontStyle:
    | "normal" -- (Default)
    | "big" -- big text
    | "bold" -- bold font
    | "italic" -- italic font
    | "mono" -- monospace font
    | "code" -- monospace code font

TextOrientation

"horizontal" | "horizontal-rl" | "vertical" | "vertical-tb"

-- Setup the texts's orientation (writing direction).
TextOrientation:
    | "horizontal" -- Draw from left to right (Default)
    | "horizontal-rl" -- Draw from right to left
    | "vertical" -- Draw from bottom to top
    | "vertical-tb" -- Draw from top to bottom

TextSingleLineString

string

The text that should be displayed. Setting a new text will resize the view in order to make the text fully visible (expanding only).

  • Default: ""

TextStyle

"custom" | "disabled" | "normal" | "strong"

-- Get/set the color style the text should be displayed with.
TextStyle:
    | "normal" -- (Default)
    | "strong" -- highlighted color
    | "disabled" -- greyed out color
    | "custom" -- custom color

ThemeColor

"alternate_main_back" | "alternate_main_font" | "automation_grid" | "automation_line_edge" | "automation_line_fill" | "automation_marker_diamond" | "automation_marker_pair" | "automation_marker_play" | "automation_marker_single" | "automation_point" | "body_back" | "body_font" | "button_back" | "button_font" | "button_highlight_font" | "default_color_01" | "default_color_02" | "default_color_03" | "default_color_04" | "default_color_05" | "default_color_06" | "default_color_07" | "default_color_08" | "default_color_09" | "default_color_10" | "default_color_11" | "default_color_12" | "default_color_13" | "default_color_14" | "default_color_15" | "default_color_16" | "folder" | "main_back" | "main_font" | "midi_mapping_back" | "midi_mapping_font" | "pattern_centerbar_back" | "pattern_centerbar_back_standby" | "pattern_centerbar_font" | "pattern_centerbar_font_standby" | "pattern_default_back" | "pattern_default_font" | "pattern_default_font_delay" | "pattern_default_font_dspfx" | "pattern_default_font_global" | "pattern_default_font_other" | "pattern_default_font_panning" | "pattern_default_font_pitch" | "pattern_default_font_unused" | "pattern_default_font_volume" | "pattern_highlighted_back" | "pattern_highlighted_font" | "pattern_highlighted_font_delay" | "pattern_highlighted_font_dspfx" | "pattern_highlighted_font_global" | "pattern_highlighted_font_other" | "pattern_highlighted_font_panning" | "pattern_highlighted_font_pitch" | "pattern_highlighted_font_unused" | "pattern_highlighted_font_volume" | "pattern_mute_state" | "pattern_playposition_back" | "pattern_playposition_font" | "pattern_selection" | "pattern_standby_selection" | "scrollbar" | "selected_button_back" | "selected_button_font" | "selection_back" | "selection_font" | "slider" | "standby_selection_back" | "standby_selection_font" | "strong_body_font" | "tooltip_back" | "tooltip_font" | "valuebox_back" | "valuebox_font" | "valuebox_font_icons" | "vumeter_back_clipped" | "vumeter_back_normal" | "vumeter_meter" | "vumeter_meter_high" | "vumeter_meter_low" | "vumeter_meter_middle" | "vumeter_peak"

-- The application theme's colors
ThemeColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

ValueBoxProperties


Properties

active : ControlActive?

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString?

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

bind : ViewNumberObservable?

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

value : SliderNumberValue?

The current value of the view

notifier : NumberValueNotifier?

Set up a value notifier that will be called whenever the value changes

min : ValueBoxMinValue?

The minimum value that can be set using the view

  • Default: 0

max : ValueBoxMaxValue?

The maximum value that can be set using the view

  • Default: 100

steps : SliderStepAmounts?

A table containing two numbers representing the step amounts for incrementing and decrementing by clicking the <> buttons. The first value is the small step (applied on left clicks) second value is the big step (applied on right clicks)

tostring : PairedShowNumberAsString?

Make sure to also set tonumber if you set this.

tonumber : PairedParseStringAsNumber?

Make sure to also set tostring if you set this.

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NotifierFunction

fun()

NotifierMemberContext

table | userdata

NumberValueNotifier

NumberValueNotifierFunction | NumberValueNotifierMethod1 | NumberValueNotifierMethod2

Set up a value notifier that will be called whenever the value changes

NumberValueNotifierFunction

(value : number)

NumberValueNotifierMemberFunction

(self : NotifierMemberContext, value : number)

NumberValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : NumberValueNotifierMemberFunction }

NumberValueNotifierMethod2

{ 1 : NumberValueNotifierMemberFunction, 2 : NotifierMemberContext }

PairedParseStringAsNumber

(value : string) -> number?

Make sure to also set tostring if you set this.

PairedShowNumberAsString

ShowNumberAsString

Make sure to also set tonumber if you set this.

ShowNumberAsString

(value : number) -> string?

Set a custom rule on how a number value should be displayed. Useful for showing units like decibel or note values etc. If none are set, a default string/number conversion is done, which simply shows the number with 3 digits after the decimal point. Note: When the callback fails with an error, it will be disabled to avoid a flood of error messages.

SliderNumberValue

number

The current value of the view

SliderStepAmounts

{ 1 : number, 2 : number }

A table containing two numbers representing the step amounts for incrementing and decrementing by clicking the <> buttons. The first value is the small step (applied on left clicks) second value is the big step (applied on right clicks)

ValueBoxMaxValue

number

The maximum value that can be set using the view

  • Default: 100

ValueBoxMinValue

number

The minimum value that can be set using the view

  • Default: 0

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewNumberObservable

renoise.Document.ObservableNumber

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

ValueFieldProperties


Properties

active : ControlActive?

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString?

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

bind : ViewNumberObservable?

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

value : SliderNumberValue?

The current value of the view

notifier : NumberValueNotifier?

Set up a value notifier that will be called whenever the value changes

min : SliderMinValue?

The minimum value that can be set using the view

  • Default: 0

max : SliderMaxValue?

The maximum value that can be set using the view

  • Default: 1.0

align : TextAlignment?

Setup the text's alignment. Applies only when the view's size is larger than the needed size to draw the text

tostring : PairedShowNumberAsString?

Make sure to also set tonumber if you set this.

tonumber : PairedParseStringAsNumber?

Make sure to also set tostring if you set this.

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NotifierFunction

fun()

NotifierMemberContext

table | userdata

NumberValueNotifier

NumberValueNotifierFunction | NumberValueNotifierMethod1 | NumberValueNotifierMethod2

Set up a value notifier that will be called whenever the value changes

NumberValueNotifierFunction

(value : number)

NumberValueNotifierMemberFunction

(self : NotifierMemberContext, value : number)

NumberValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : NumberValueNotifierMemberFunction }

NumberValueNotifierMethod2

{ 1 : NumberValueNotifierMemberFunction, 2 : NotifierMemberContext }

PairedParseStringAsNumber

(value : string) -> number?

Make sure to also set tostring if you set this.

PairedShowNumberAsString

ShowNumberAsString

Make sure to also set tonumber if you set this.

ShowNumberAsString

(value : number) -> string?

Set a custom rule on how a number value should be displayed. Useful for showing units like decibel or note values etc. If none are set, a default string/number conversion is done, which simply shows the number with 3 digits after the decimal point. Note: When the callback fails with an error, it will be disabled to avoid a flood of error messages.

SliderMaxValue

number

The maximum value that can be set using the view

  • Default: 1.0

SliderMinValue

number

The minimum value that can be set using the view

  • Default: 0

SliderNumberValue

number

The current value of the view

TextAlignment

"center" | "left" | "right"

-- Setup the text's alignment. Applies only when the view's size is larger than
-- the needed size to draw the text
TextAlignment:
    | "left" -- (Default)
    | "right" -- aligned to the right
    | "center" -- center text

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewNumberObservable

renoise.Document.ObservableNumber

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

ValueViewProperties


Properties

bind : ViewNumberObservable?

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

value : SliderNumberValue?

The current value of the view

notifier : NumberValueNotifier?

Set up a value notifier that will be called whenever the value changes

align : TextAlignment?

Setup the text's alignment. Applies only when the view's size is larger than the needed size to draw the text

font : TextFontStyle?

The style that the text should be displayed with.

tostring : ShowNumberAsString?

Set a custom rule on how a number value should be displayed. Useful for showing units like decibel or note values etc. If none are set, a default string/number conversion is done, which simply shows the number with 3 digits after the decimal point. Note: When the callback fails with an error, it will be disabled to avoid a flood of error messages.

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

NotifierFunction

fun()

NotifierMemberContext

table | userdata

NumberValueNotifier

NumberValueNotifierFunction | NumberValueNotifierMethod1 | NumberValueNotifierMethod2

Set up a value notifier that will be called whenever the value changes

NumberValueNotifierFunction

(value : number)

NumberValueNotifierMemberFunction

(self : NotifierMemberContext, value : number)

NumberValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : NumberValueNotifierMemberFunction }

NumberValueNotifierMethod2

{ 1 : NumberValueNotifierMemberFunction, 2 : NotifierMemberContext }

ShowNumberAsString

(value : number) -> string?

Set a custom rule on how a number value should be displayed. Useful for showing units like decibel or note values etc. If none are set, a default string/number conversion is done, which simply shows the number with 3 digits after the decimal point. Note: When the callback fails with an error, it will be disabled to avoid a flood of error messages.

SliderNumberValue

number

The current value of the view

TextAlignment

"center" | "left" | "right"

-- Setup the text's alignment. Applies only when the view's size is larger than
-- the needed size to draw the text
TextAlignment:
    | "left" -- (Default)
    | "right" -- aligned to the right
    | "center" -- center text

TextFontStyle

"big" | "bold" | "code" | "italic" | "mono" | "normal"

-- The style that the text should be displayed with.
TextFontStyle:
    | "normal" -- (Default)
    | "big" -- big text
    | "bold" -- bold font
    | "italic" -- italic font
    | "mono" -- monospace font
    | "code" -- monospace code font

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewNumberObservable

renoise.Document.ObservableNumber

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

ViewProperties

Base for all View constructor tables in the viewbuilder.


Properties

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.


Aliases

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

XYPadProperties


Properties

active : ControlActive?

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString?

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

id : ViewId?

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

visible : ViewVisibility?

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin?

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension?

Deprecated. Use property size instead.

height : ViewDimension?

Deprecated. Use property size instead.

size : ViewSize?

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip?

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape?

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

bind : XYPadObservables?

Bind the view's value to a pair of renoise.Document.ObservableNumber objects. Automatically keep both values in sync. Will change the Observables' values as soon as the view's value changes, and change the view's values as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object. Just like in the other XYPad properties, a table with the fields X and Y is expected here and not a single value. So you have to bind two ObservableNumber object to the pad.

value : XYPadValues?

A table of the XYPad's current values on each axis

snapback : XYPadSnapbackValues?

A table of snapback values for each axis When snapback is enabled, the pad will revert its values to the specified snapback values as soon as the mouse button is released in the pad. When disabled, releasing the mouse button will not change the value. You can disable snapback at runtime by setting it to nil or an empty table.

notifier : XYValueNotifier?

Set up a value notifier function that will be used whenever the pad's values change

min : XYPadMinValues?

A table of allowed minimum values for each axis

  • Default: {x: 0.0, y: 0.0}

max : XYPadMaxValues?

A table of allowed maximum values for each axis

  • Default: {x: 1.0, y: 1.0}

Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NotifierFunction

fun()

NotifierMemberContext

table | userdata

SliderMaxValue

number

The maximum value that can be set using the view

  • Default: 1.0

SliderMinValue

number

The minimum value that can be set using the view

  • Default: 0

SliderNumberValue

number

The current value of the view

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

XYPadMaxValues

{ x : SliderMaxValue, y : SliderMaxValue }

A table of allowed maximum values for each axis

  • Default: {x: 1.0, y: 1.0}

XYPadMinValues

{ x : SliderMinValue, y : SliderMinValue }

A table of allowed minimum values for each axis

  • Default: {x: 0.0, y: 0.0}

XYPadObservables

{ x : renoise.Document.ObservableNumber, y : renoise.Document.ObservableNumber }

Bind the view's value to a pair of renoise.Document.ObservableNumber objects. Automatically keep both values in sync. Will change the Observables' values as soon as the view's value changes, and change the view's values as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object. Just like in the other XYPad properties, a table with the fields X and Y is expected here and not a single value. So you have to bind two ObservableNumber object to the pad.

XYPadSnapbackValues

{ x : number, y : number }

A table of snapback values for each axis When snapback is enabled, the pad will revert its values to the specified snapback values as soon as the mouse button is released in the pad. When disabled, releasing the mouse button will not change the value. You can disable snapback at runtime by setting it to nil or an empty table.

XYPadValues

{ x : SliderNumberValue, y : SliderNumberValue }

A table of the XYPad's current values on each axis

XYValueNotifier

XYValueNotifierFunction | XYValueNotifierMethod1 | XYValueNotifierMethod2

Set up a value notifier function that will be used whenever the pad's values change

XYValueNotifierFunction

(value : XYPadValues)

XYValueNotifierMemberFunction

(self : NotifierMemberContext, value : XYPadValues)

XYValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : XYValueNotifierMemberFunction }

XYValueNotifierMethod2

{ 1 : XYValueNotifierMemberFunction, 2 : NotifierMemberContext }


Aliases

AlignerChildViews

renoise.Views.View[]

The aligner view's initial child views. Views can later on also be added and removed dynamically after construction via aligner:add_view(child) and aligner:remove_view(child)

AlignerMode

"bottom" | "center" | "distribute" | "justify" | "left" | "right" | "top"

-- * Default: "left" (for horizontal_aligner) "top" (for vertical_aligner)
AlignerMode:
    | "left" -- align from left to right (for horizontal_aligner only)
    | "right" -- align from right to left (for horizontal_aligner only)
    | "top" -- align from top to bottom (for vertical_aligner only)
    | "bottom" -- align from bottom to top (for vertical_aligner only)
    | "center" -- center all views
    | "justify" -- keep outer views at the borders, distribute the rest
    | "distribute" -- equally distributes views over the aligners width/height

BitmapColor

RGBColor | ThemeColor

-- When set, the bitmap will be drawn in the specified color and `mode` is set 
-- to `custom_color`. Set `mode` to something else than `custom_color` or the
-- `color` to `{0, 0, 0}` to enable a `plain` display mode.
-- A table of 3 bytes (ranging from 0 to 255)
-- representing the red, green and blue channels of a color.
-- {0xFF, 0xFF, 0xFF} is white
-- {165, 73, 35} is the red from the Renoise logo
-- The application theme's colors
BitmapColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

BitmapImagePath

string

You can load an image from your tool's directory, or use one from Renoise's built-in icons.

  • For the built-in icons, use "Icons/ArrowRight.bmp"
  • For custom images, use a path relative to your tool's root folder.

For example "Images/MyBitmap.bmp" will load the image from "com.me.MyTool.xrnx/Images/MyBitmap.bmp".
If your custom path matches a built-in icon's (like "Icons/ArrowRight.bmp"), your image will be loaded instead of the one from Renoise.

If you want to support high DPI UI scaling with your bitmaps like the built-in Icons, include high resolution versions with their filenames ending with "@4x"
The following rules will be used when loading bitmaps

  • When UI scaling is 100%, only the base bitmaps are used.
  • When UI scaling is 125%, the base bitmaps are used, except if there is a BitmapName@x1.25.bmp variant.
  • For all other UI scaling > 125% the "@4x" variants are used and downscaled as needed, except when there is an exact match for the current UI scaling factor (e.g. BitmapName@1.5x.bmp for 150%)

BitmapMode

"body_color" | "button_color" | "custom_color" | "main_color" | "plain" | "transparent"

-- Setup how the bitmap should be drawn, recolored. Available modes are:
BitmapMode:
    | "plain" -- bitmap is drawn as is, no recoloring is done (Default)
    | "transparent" -- same as plain, but black pixels will be fully transparent
    | "button_color" -- recolor the bitmap, using the theme's button color
    | "body_color" -- same as 'button_back' but with body text/back color
    | "main_color" -- same as 'button_back' but with main text/back colors
    | "custom_color" -- Recolor the bitmap using a custom color set by the `color'

BitmapPath

BitmapImagePath

Supported bitmap file formats are *.bmp, *.png or *.tif (no transparency).

BooleanValueNotifierFunction

(value : boolean)

BooleanValueNotifierMemberFunction

(self : NotifierMemberContext, value : boolean)

BooleanValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : BooleanValueNotifierMemberFunction }

BooleanValueNotifierMethod2

{ 1 : BooleanValueNotifierMemberFunction, 2 : NotifierMemberContext }

ButtonAlignment

"center" | "left" | "right"

-- Setup the buttons text's or bitmap's alignment within the button.
ButtonAlignment:
    | "left" -- aligned to the left
    | "right" -- aligned to the right
    | "center" -- center (default)

ButtonBitmapPath

BitmapImagePath

If set, existing text is removed and the loaded image is displayed instead. Supported bitmap file formats are ".bmp", ".png" and ".tiff". Colors in bitmaps will be overridden by the button's theme color, using black as the transparent color for BMPs and TIFFS, and the alpha channel for PNGs. All other colors are mapped to the theme color according to their grey value, so plain white is the target theme color, and all other colors blend into the button's background color of the theme.

ButtonColor

RGBColor | ThemeColor

-- When set, the unpressed button's background will be drawn in the specified color.
-- A text color is automatically selected unless explicitly set, to make sure its
-- always visible.
-- Set color {0,0,0} to enable the theme colors for the button again.
-- A table of 3 bytes (ranging from 0 to 255)
-- representing the red, green and blue channels of a color.
-- {0xFF, 0xFF, 0xFF} is white
-- {165, 73, 35} is the red from the Renoise logo
-- The application theme's colors
ButtonColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

ButtonLabel

string

The text label of the button

  • Default: ""

ButtonNotifier

NotifierFunction | NotifierMethod1 | NotifierMethod2

A click notifier

ButtonStyle

"normal" | "rounded" | "rounded_bottom" | "rounded_left" | "rounded_right" | "rounded_top"

-- Get/set the style a button should be displayed with.
ButtonStyle:
    | "normal" -- (Default)
    | "rounded" -- rounded corners on all sides
    | "rounded_left" -- rounded left side
    | "rounded_right" -- rounded right side
    | "rounded_top" -- rounded left side
    | "rounded_bottom" -- rounded right side

CanvasChildViews

renoise.Views.View[]

The canvas view's optional child views. Views can later on also be added and removed dynamically after construction via stack:add_view(child) and stack:remove_view(child)

CanvasMode

"plain" | "transparent"

-- How to draw the canvas context to screen: "transparent" draws with alpha from
-- the canvas, "plain" ignores alpha values, which usually is a lot faster to draw.
-- Use "plain" to speed up drawing background alike canvas views which cover the
-- entire view area. Default: "transparent"
CanvasMode:
    | "plain"
    | "transparent"

CanvasRenderFunction

(context : renoise.Views.Canvas.Context)

Rendering callback for a canvas.

To update the canvas, use the canvas view's update function. This will will schedule a new drawing as soon as the backend is ready to draw. Always draw a complete image here, as the canvas will be completely empty in each new render call.

UI scaling: the canvas context by default is set up, so that the global UI scaling gets applied. So all positions in the canvas context by default use view sizes and not pixels. If you want to draw in a raw pixel resolution reset the canvas transformation via context.set_transform(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) To query the actual canvas size in pixels, use the context's size property.

CheckBoxBoolean

boolean

The current state of the checkbox, expressed as boolean.

  • Default: false

CheckBoxBooleanNotifier

BooleanValueNotifierFunction | BooleanValueNotifierMethod1 | BooleanValueNotifierMethod2

A notifier for when the checkbox is toggled

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

IntegerNotifier

IntegerValueNotifierFunction | IntegerValueNotifierMethod1 | IntegerValueNotifierMethod2

Set up a notifier that will be called whenever a new item is picked

IntegerValueNotifierFunction

(value : integer)

IntegerValueNotifierMemberFunction

(self : NotifierMemberContext, value : integer)

IntegerValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : IntegerValueNotifierMemberFunction }

IntegerValueNotifierMethod2

{ 1 : IntegerValueNotifierMemberFunction, 2 : NotifierMemberContext }

ItemLabels

string[]

A list of buttons labels to show in order. Must have more than one item.

ListElementAdded

{ index : integer, type : "insert" }

ListElementChange

ListElementAdded | ListElementRemoved | ListElementsSwapped

ListElementRemoved

{ index : integer, type : "removed" }

ListElementsSwapped

{ index1 : integer, index2 : integer, type : "swapped" }

ListNotifierFunction

(change : ListElementChange)

ListNotifierMemberContext

table | userdata

MouseEventButton

"left" | "middle" | "right"

-- Mouse button of a `MouseEvent` of type "up"|"down"|"double"|"drag".
MouseEventButton:
    | "left"
    | "right"
    | "middle"

MouseEventType

"double" | "down" | "drag" | "enter" | "exit" | "move" | "up" | "wheel"

-- Event type of a `MouseEvent`.
MouseEventType:
    | "enter"
    | "exit"
    | "move"
    | "down"
    | "up"
    | "double"
    | "drag"
    | "wheel"

MouseEventTypes

MouseEventType[]

The mouse event types that should be passed to your mouse_handler function. By default: { "down", "up", "double" } Avoid adding event types that you don't use, especially "move" events as they do create quite some overhead. Also note that when enabling "drag", sub view controls can no longer handle drag events, even when you pass back the event in the handler, so only enable it when you want to completely override mouse drag behavior of all your content views.

MouseEventWheelDirection

"down" | "left" | "right" | "up"

-- Mouse wheel direction in a `MouseEvent` of type "wheel".
MouseEventWheelDirection:
    | "up"
    | "down"
    | "left"
    | "right"

MouseHandler

MouseHandlerNotifierFunction | MouseHandlerNotifierMethod1 | MouseHandlerNotifierMethod2

Optional mouse event handler for a view. return nil when the event got handled to stop propagating the event. return the event instance, as passed, to pass it to the next view in the view hirarchy.

MouseHandlerNotifierFunction

(event : MouseEvent) -> MouseEvent?

MouseHandlerNotifierMemberFunction

(self : NotifierMemberContext, event : MouseEvent) -> MouseEvent?

MouseHandlerNotifierMethod1

{ 1 : NotifierMemberContext, 2 : MouseHandlerNotifierMemberFunction }

MouseHandlerNotifierMethod2

{ 1 : MouseHandlerNotifierMemberFunction, 2 : NotifierMemberContext }

NotifierFunction

fun()

NotifierMemberContext

table | userdata

NotifierMemberFunction

(self : NotifierMemberContext)

NotifierMethod1

{ 1 : NotifierMemberContext, 2 : NotifierMemberFunction }

NotifierMethod2

{ 1 : NotifierMemberFunction, 2 : NotifierMemberContext }

NumberValueNotifier

NumberValueNotifierFunction | NumberValueNotifierMethod1 | NumberValueNotifierMethod2

Set up a value notifier that will be called whenever the value changes

NumberValueNotifierFunction

(value : number)

NumberValueNotifierMemberFunction

(self : NotifierMemberContext, value : number)

NumberValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : NumberValueNotifierMemberFunction }

NumberValueNotifierMethod2

{ 1 : NumberValueNotifierMemberFunction, 2 : NotifierMemberContext }

PairedParseStringAsNumber

(value : string) -> number?

Make sure to also set tostring if you set this.

PairedShowNumberAsString

ShowNumberAsString

Make sure to also set tonumber if you set this.

PopupItemLabels

string[]

A list of buttons labels to show in order The list can be empty, then "None" is displayed and the value won't change.

RGBAColor

{ 1 : integer, 2 : integer, 3 : integer, 4 : integer }

A table of 4 bytes (ranging from 0 to 255) representing the red, green, blue, alpha channels of a color. {0xFF, 0xFF, 0xFF, 0xFF} is white {165, 73, 35, 0x80} is the red from the Renoise logo, half opaque.

RGBColor

{ 1 : integer, 2 : integer, 3 : integer }

A table of 3 bytes (ranging from 0 to 255) representing the red, green and blue channels of a color. {0xFF, 0xFF, 0xFF} is white {165, 73, 35} is the red from the Renoise logo

RackChildViews

renoise.Views.View[]

The rack view's initial child views. Views can later on also be added and removed dynamically after construction via rack:add_view(child) and rack:remove_view(child)

RackMargin

integer

Set the "borders" of a rack (left, right, top and bottom inclusively)

  • Default: 0 (no borders)

RackSpacing

integer

Set the amount stacked child views are separated by (horizontally in rows, vertically in columns).

  • Default: 0 (no spacing)

RackUniformity

boolean

When set to true, all child views in the rack are automatically resized to the max size of all child views (width in ViewBuilder.column, height in ViewBuilder.row). This can be useful to automatically align all sub columns/panels to the same size. Resizing is done automatically, as soon as a child view size changes or new children are added.

  • Default: false

ScrollbarAutoHide

boolean

Default: false. When true, view gets automatically hidden when no scrolling is needed

ScrollbarMax

integer

Default 100. Maximum offset value.

ScrollbarMin

integer

Default 0. Minimum offset value.

ScrollbarPagestep

integer

Default 100. Size of the currently visible area.

ScrollbarStep

integer

Default 1. Amount the mouse-wheel or additional +/- buttons in the scroll bar move the scrollable area.

ScrollbarValue

integer

Default 0. Offset value in range min to max - pagestep.

SelectedItem

integer

The currently selected item's index

ShowNumberAsString

(value : number) -> string?

Set a custom rule on how a number value should be displayed. Useful for showing units like decibel or note values etc. If none are set, a default string/number conversion is done, which simply shows the number with 3 digits after the decimal point. Note: When the callback fails with an error, it will be disabled to avoid a flood of error messages.

SliderDefaultValue

number

The default value that will be re-applied on double-click

SliderMaxValue

number

The maximum value that can be set using the view

  • Default: 1.0

SliderMinValue

number

The minimum value that can be set using the view

  • Default: 0

SliderNumberValue

number

The current value of the view

SliderPolarity

"bipolar" | "unipolar"

-- Value polarity of the control. Bipolar controls show the value from the
-- center to left and right or up and down and typically controls a range
-- around zero, e.g. -1 to 1. Unipolar controls show the value from left to
-- right or bottom to top.
-- * Default: "unipolar" 
SliderPolarity:
    | "unipolar"
    | "bipolar"

SliderStepAmounts

{ 1 : number, 2 : number }

A table containing two numbers representing the step amounts for incrementing and decrementing by clicking the <> buttons. The first value is the small step (applied on left clicks) second value is the big step (applied on right clicks)

StackAutoSize

boolean

When set to true, the width and height of the stack will be automatically calculated and updated from the stack's child views, to ensure all views fit into the stack. When disabled, the width and height must be set manually.

  • Default: true

StackChildViews

renoise.Views.View[]

The stack view's optional child views. Views can later on also be added and removed dynamically after construction via stack:add_view(child) and stack:remove_view(child)

StringChangeNotifier

StringValueNotifierFunction | StringValueNotifierMethod1 | StringValueNotifierMethod2

Set up a notifier for text changes

StringValueNotifierFunction

(value : string)

StringValueNotifierMemberFunction

(self : NotifierMemberContext, value : string)

StringValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : StringValueNotifierMemberFunction }

StringValueNotifierMethod2

{ 1 : StringValueNotifierMemberFunction, 2 : NotifierMemberContext }

TextActive

boolean

When false, text is displayed but can not be entered/modified by the user.

  • Default: true

TextAlignment

"center" | "left" | "right"

-- Setup the text's alignment. Applies only when the view's size is larger than
-- the needed size to draw the text
TextAlignment:
    | "left" -- (Default)
    | "right" -- aligned to the right
    | "center" -- center text

TextBackgroundStyle

"body" | "border" | "strong"

-- Setup the text view's background:
TextBackgroundStyle:
    | "body" -- simple text color with no background
    | "strong" -- stronger text color with no background
    | "border" -- text on a bordered background

TextColor

RGBColor | ThemeColor

-- When set, the text will be drawn in the specified color.
-- Set style to something else than "custom" or color to `{0, 0, 0}`
-- to enable the default theme color for the text again.
-- A table of 3 bytes (ranging from 0 to 255)
-- representing the red, green and blue channels of a color.
-- {0xFF, 0xFF, 0xFF} is white
-- {165, 73, 35} is the red from the Renoise logo
-- The application theme's colors
TextColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

TextEditMode

boolean

True when the text field is focused. setting it at run-time programmatically will focus the text field or remove the focus (focus the dialog) accordingly.

  • Default: false

TextFontStyle

"big" | "bold" | "code" | "italic" | "mono" | "normal"

-- The style that the text should be displayed with.
TextFontStyle:
    | "normal" -- (Default)
    | "big" -- big text
    | "bold" -- bold font
    | "italic" -- italic font
    | "mono" -- monospace font
    | "code" -- monospace code font

TextMultilineString

string

The text that should be displayed. Newlines (Windows, Mac or Unix styled) in the text can be used to create paragraphs.

TextOrientation

"horizontal" | "horizontal-rl" | "vertical" | "vertical-tb"

-- Setup the texts's orientation (writing direction).
TextOrientation:
    | "horizontal" -- Draw from left to right (Default)
    | "horizontal-rl" -- Draw from right to left
    | "vertical" -- Draw from bottom to top
    | "vertical-tb" -- Draw from top to bottom

TextParagraphs

string[]

A table of text lines to be used instead of specifying a single text line with newline characters like "text"

  • Default: []

TextSingleLineString

string

The text that should be displayed. Setting a new text will resize the view in order to make the text fully visible (expanding only).

  • Default: ""

TextStyle

"custom" | "disabled" | "normal" | "strong"

-- Get/set the color style the text should be displayed with.
TextStyle:
    | "normal" -- (Default)
    | "strong" -- highlighted color
    | "disabled" -- greyed out color
    | "custom" -- custom color

TextValue

string

The currently shown text. The text will not be updated when editing, rather only after editing is complete (return is pressed, or focus is lost).

  • Default: ""

TextValueAlias

string

Exactly the same as "value"; provided for consistency.

  • Default: ""

ThemeColor

"alternate_main_back" | "alternate_main_font" | "automation_grid" | "automation_line_edge" | "automation_line_fill" | "automation_marker_diamond" | "automation_marker_pair" | "automation_marker_play" | "automation_marker_single" | "automation_point" | "body_back" | "body_font" | "button_back" | "button_font" | "button_highlight_font" | "default_color_01" | "default_color_02" | "default_color_03" | "default_color_04" | "default_color_05" | "default_color_06" | "default_color_07" | "default_color_08" | "default_color_09" | "default_color_10" | "default_color_11" | "default_color_12" | "default_color_13" | "default_color_14" | "default_color_15" | "default_color_16" | "folder" | "main_back" | "main_font" | "midi_mapping_back" | "midi_mapping_font" | "pattern_centerbar_back" | "pattern_centerbar_back_standby" | "pattern_centerbar_font" | "pattern_centerbar_font_standby" | "pattern_default_back" | "pattern_default_font" | "pattern_default_font_delay" | "pattern_default_font_dspfx" | "pattern_default_font_global" | "pattern_default_font_other" | "pattern_default_font_panning" | "pattern_default_font_pitch" | "pattern_default_font_unused" | "pattern_default_font_volume" | "pattern_highlighted_back" | "pattern_highlighted_font" | "pattern_highlighted_font_delay" | "pattern_highlighted_font_dspfx" | "pattern_highlighted_font_global" | "pattern_highlighted_font_other" | "pattern_highlighted_font_panning" | "pattern_highlighted_font_pitch" | "pattern_highlighted_font_unused" | "pattern_highlighted_font_volume" | "pattern_mute_state" | "pattern_playposition_back" | "pattern_playposition_font" | "pattern_selection" | "pattern_standby_selection" | "scrollbar" | "selected_button_back" | "selected_button_font" | "selection_back" | "selection_font" | "slider" | "standby_selection_back" | "standby_selection_font" | "strong_body_font" | "tooltip_back" | "tooltip_font" | "valuebox_back" | "valuebox_font" | "valuebox_font_icons" | "vumeter_back_clipped" | "vumeter_back_normal" | "vumeter_meter" | "vumeter_meter_high" | "vumeter_meter_low" | "vumeter_meter_middle" | "vumeter_peak"

-- The application theme's colors
ThemeColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

ValueBoxMaxValue

number

The maximum value that can be set using the view

  • Default: 100

ValueBoxMinValue

number

The minimum value that can be set using the view

  • Default: 0

ViewBackgroundStyle

"body" | "border" | "group" | "invisible" | "panel" | "plain"

-- Setup a background style for the view. 
ViewBackgroundStyle:
    | "invisible" -- no background (Default)
    | "plain" -- undecorated, single coloured background
    | "border" -- same as plain, but with a bold nested border
    | "body" -- main "background" style, as used in dialog backgrounds
    | "panel" -- alternative "background" style, beveled
    | "group" -- background for "nested" groups within body

ViewBooleanObservable

renoise.Document.ObservableBoolean

Bind the view's value to a renoise.Document.ObservableBoolean object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewId

string

Unique identifier to resolve the view later on in the viewbuilder, e.g. vb.views.SomeString or vb.views["Some String"] View ids must be unique within a single view builder instance.

ViewNumberObservable

renoise.Document.ObservableNumber

Bind the view's value to a renoise.Document.ObservableNumber object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewStringListObservable

renoise.Document.ObservableStringList

Bind the view's value to a renoise.Document.ObservableStringList object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

ViewStringObservable

renoise.Document.ObservableString

Bind the view's value to a renoise.Document.ObservableString object. Automatically keep them in sync. The view will change the Observable value as soon as its value changes and change the view's value as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

XYPadMaxValues

{ x : SliderMaxValue, y : SliderMaxValue }

A table of allowed maximum values for each axis

  • Default: {x: 1.0, y: 1.0}

XYPadMinValues

{ x : SliderMinValue, y : SliderMinValue }

A table of allowed minimum values for each axis

  • Default: {x: 0.0, y: 0.0}

XYPadObservables

{ x : renoise.Document.ObservableNumber, y : renoise.Document.ObservableNumber }

Bind the view's value to a pair of renoise.Document.ObservableNumber objects. Automatically keep both values in sync. Will change the Observables' values as soon as the view's value changes, and change the view's values as soon as the Observable's value changes. Notifiers can be added to either the view or the Observable object. Just like in the other XYPad properties, a table with the fields X and Y is expected here and not a single value. So you have to bind two ObservableNumber object to the pad.

XYPadSnapbackValues

{ x : number, y : number }

A table of snapback values for each axis When snapback is enabled, the pad will revert its values to the specified snapback values as soon as the mouse button is released in the pad. When disabled, releasing the mouse button will not change the value. You can disable snapback at runtime by setting it to nil or an empty table.

XYPadValues

{ x : SliderNumberValue, y : SliderNumberValue }

A table of the XYPad's current values on each axis

XYValueNotifier

XYValueNotifierFunction | XYValueNotifierMethod1 | XYValueNotifierMethod2

Set up a value notifier function that will be used whenever the pad's values change

XYValueNotifierFunction

(value : XYPadValues)

XYValueNotifierMemberFunction

(self : NotifierMemberContext, value : XYPadValues)

XYValueNotifierMethod1

{ 1 : NotifierMemberContext, 2 : XYValueNotifierMemberFunction }

XYValueNotifierMethod2

{ 1 : XYValueNotifierMemberFunction, 2 : NotifierMemberContext }

renoise.Views

Namespace for renoise view widgets.

renoise.Views.Aligner

Just like a Rack, the Aligner shows no content on its own. It just aligns child views vertically or horizontally. As soon as children are added, the Aligner will expand itself to make sure that all children are visible (including spacing & margins). To make use of modes like "center", you manually have to setup a size that is bigger than the sum of the child sizes.


Properties

margin : RackMargin

Set the "borders" of a rack (left, right, top and bottom inclusively)

  • Default: 0 (no borders)

spacing : RackSpacing

Set the amount stacked child views are separated by (horizontally in rows, vertically in columns).

  • Default: 0 (no spacing)

mode : AlignerMode

  • Default: "left" (for horizontal_aligner) "top" (for vertical_aligner)

background : ViewBackgroundStyle

Setup a background style for the view.

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

AlignerMode

"bottom" | "center" | "distribute" | "justify" | "left" | "right" | "top"

-- * Default: "left" (for horizontal_aligner) "top" (for vertical_aligner)
AlignerMode:
    | "left" -- align from left to right (for horizontal_aligner only)
    | "right" -- align from right to left (for horizontal_aligner only)
    | "top" -- align from top to bottom (for vertical_aligner only)
    | "bottom" -- align from bottom to top (for vertical_aligner only)
    | "center" -- center all views
    | "justify" -- keep outer views at the borders, distribute the rest
    | "distribute" -- equally distributes views over the aligners width/height

RackMargin

integer

Set the "borders" of a rack (left, right, top and bottom inclusively)

  • Default: 0 (no borders)

RackSpacing

integer

Set the amount stacked child views are separated by (horizontally in rows, vertically in columns).

  • Default: 0 (no spacing)

ViewBackgroundStyle

"body" | "border" | "group" | "invisible" | "panel" | "plain"

-- Setup a background style for the view. 
ViewBackgroundStyle:
    | "invisible" -- no background (Default)
    | "plain" -- undecorated, single coloured background
    | "border" -- same as plain, but with a bold nested border
    | "body" -- main "background" style, as used in dialog backgrounds
    | "panel" -- alternative "background" style, beveled
    | "group" -- background for "nested" groups within body

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.Bitmap

Draws a bitmap, or a draws a bitmap which acts like a button (as soon as a notifier is specified). The notifier is called when clicking the mouse somewhere on the bitmap. When using a re-colorable style (see 'mode'), the bitmap is automatically recolored to match the current theme's colors. Mouse hover is also enabled when notifiers are present, to show that the bitmap can be clicked.

        *
       ***
    +   *
   / \
  +---+
  | O |  o
  +---+  |
 ||||||||||||

Properties

mode : BitmapMode

Setup how the bitmap should be drawn, recolored. Available modes are:

color : BitmapColor

When set, the bitmap will be drawn in the specified color and mode is set to custom_color. Set mode to something else than custom_color or the color to {0, 0, 0} to enable a plain display mode.

bitmap : BitmapPath

Supported bitmap file formats are *.bmp, *.png or *.tif (no transparency).

active : ControlActive

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_notifier(self, notifier : NotifierFunction)

Add mouse click notifier

remove_notifier(self, notifier : NotifierFunction)

Remove mouse click notifier

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

BitmapColor

RGBColor | ThemeColor

-- When set, the bitmap will be drawn in the specified color and `mode` is set 
-- to `custom_color`. Set `mode` to something else than `custom_color` or the
-- `color` to `{0, 0, 0}` to enable a `plain` display mode.
-- A table of 3 bytes (ranging from 0 to 255)
-- representing the red, green and blue channels of a color.
-- {0xFF, 0xFF, 0xFF} is white
-- {165, 73, 35} is the red from the Renoise logo
-- The application theme's colors
BitmapColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

BitmapImagePath

string

You can load an image from your tool's directory, or use one from Renoise's built-in icons.

  • For the built-in icons, use "Icons/ArrowRight.bmp"
  • For custom images, use a path relative to your tool's root folder.

For example "Images/MyBitmap.bmp" will load the image from "com.me.MyTool.xrnx/Images/MyBitmap.bmp".
If your custom path matches a built-in icon's (like "Icons/ArrowRight.bmp"), your image will be loaded instead of the one from Renoise.

If you want to support high DPI UI scaling with your bitmaps like the built-in Icons, include high resolution versions with their filenames ending with "@4x"
The following rules will be used when loading bitmaps

  • When UI scaling is 100%, only the base bitmaps are used.
  • When UI scaling is 125%, the base bitmaps are used, except if there is a BitmapName@x1.25.bmp variant.
  • For all other UI scaling > 125% the "@4x" variants are used and downscaled as needed, except when there is an exact match for the current UI scaling factor (e.g. BitmapName@1.5x.bmp for 150%)

BitmapMode

"body_color" | "button_color" | "custom_color" | "main_color" | "plain" | "transparent"

-- Setup how the bitmap should be drawn, recolored. Available modes are:
BitmapMode:
    | "plain" -- bitmap is drawn as is, no recoloring is done (Default)
    | "transparent" -- same as plain, but black pixels will be fully transparent
    | "button_color" -- recolor the bitmap, using the theme's button color
    | "body_color" -- same as 'button_back' but with body text/back color
    | "main_color" -- same as 'button_back' but with main text/back colors
    | "custom_color" -- Recolor the bitmap using a custom color set by the `color'

BitmapPath

BitmapImagePath

Supported bitmap file formats are *.bmp, *.png or *.tif (no transparency).

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NotifierFunction

fun()

RGBColor

{ 1 : integer, 2 : integer, 3 : integer }

A table of 3 bytes (ranging from 0 to 255) representing the red, green and blue channels of a color. {0xFF, 0xFF, 0xFF} is white {165, 73, 35} is the red from the Renoise logo

ThemeColor

"alternate_main_back" | "alternate_main_font" | "automation_grid" | "automation_line_edge" | "automation_line_fill" | "automation_marker_diamond" | "automation_marker_pair" | "automation_marker_play" | "automation_marker_single" | "automation_point" | "body_back" | "body_font" | "button_back" | "button_font" | "button_highlight_font" | "default_color_01" | "default_color_02" | "default_color_03" | "default_color_04" | "default_color_05" | "default_color_06" | "default_color_07" | "default_color_08" | "default_color_09" | "default_color_10" | "default_color_11" | "default_color_12" | "default_color_13" | "default_color_14" | "default_color_15" | "default_color_16" | "folder" | "main_back" | "main_font" | "midi_mapping_back" | "midi_mapping_font" | "pattern_centerbar_back" | "pattern_centerbar_back_standby" | "pattern_centerbar_font" | "pattern_centerbar_font_standby" | "pattern_default_back" | "pattern_default_font" | "pattern_default_font_delay" | "pattern_default_font_dspfx" | "pattern_default_font_global" | "pattern_default_font_other" | "pattern_default_font_panning" | "pattern_default_font_pitch" | "pattern_default_font_unused" | "pattern_default_font_volume" | "pattern_highlighted_back" | "pattern_highlighted_font" | "pattern_highlighted_font_delay" | "pattern_highlighted_font_dspfx" | "pattern_highlighted_font_global" | "pattern_highlighted_font_other" | "pattern_highlighted_font_panning" | "pattern_highlighted_font_pitch" | "pattern_highlighted_font_unused" | "pattern_highlighted_font_volume" | "pattern_mute_state" | "pattern_playposition_back" | "pattern_playposition_font" | "pattern_selection" | "pattern_standby_selection" | "scrollbar" | "selected_button_back" | "selected_button_font" | "selection_back" | "selection_font" | "slider" | "standby_selection_back" | "standby_selection_font" | "strong_body_font" | "tooltip_back" | "tooltip_font" | "valuebox_back" | "valuebox_font" | "valuebox_font_icons" | "vumeter_back_clipped" | "vumeter_back_normal" | "vumeter_meter" | "vumeter_meter_high" | "vumeter_meter_low" | "vumeter_meter_middle" | "vumeter_peak"

-- The application theme's colors
ThemeColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.Button

A simple button that calls a custom notifier function when clicked. Supports text or bitmap labels.

 +--------+
 | Button |
 +--------+

Properties

text : ButtonLabel

The text label of the button

  • Default: ""

bitmap : ButtonBitmapPath

If set, existing text is removed and the loaded image is displayed instead. Supported bitmap file formats are ".bmp", ".png" and ".tiff". Colors in bitmaps will be overridden by the button's theme color, using black as the transparent color for BMPs and TIFFS, and the alpha channel for PNGs. All other colors are mapped to the theme color according to their grey value, so plain white is the target theme color, and all other colors blend into the button's background color of the theme.

align : ButtonAlignment

Setup the buttons text's or bitmap's alignment within the button.

font : TextFontStyle

The style that the text should be displayed with.

color : ButtonColor

When set, the unpressed button's background will be drawn in the specified color. A text color is automatically selected unless explicitly set, to make sure its always visible. Set color {0,0,0} to enable the theme colors for the button again.

secondary_color : ButtonSecondaryColor

When set, the unpressed button's background text or bitmap will be drawn in the specified color. Set color {0,0,0} to enable the theme colors for the button again.

style : ButtonStyle

Get/set the style a button should be displayed with.

active : ControlActive

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_pressed_notifier(self, notifier : NotifierFunction)

Add/remove button hit/release notifier functions. When a "pressed" notifier is set, the release notifier is guaranteed to be called as soon as the mouse is released, either over your button or anywhere else. When a "release" notifier is set, it is only called when the mouse button is pressed !and! released over your button.

add_released_notifier(self, notifier : NotifierFunction)

remove_pressed_notifier(self, notifier : NotifierFunction)

remove_released_notifier(self, notifier : NotifierFunction)

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

BitmapImagePath

string

You can load an image from your tool's directory, or use one from Renoise's built-in icons.

  • For the built-in icons, use "Icons/ArrowRight.bmp"
  • For custom images, use a path relative to your tool's root folder.

For example "Images/MyBitmap.bmp" will load the image from "com.me.MyTool.xrnx/Images/MyBitmap.bmp".
If your custom path matches a built-in icon's (like "Icons/ArrowRight.bmp"), your image will be loaded instead of the one from Renoise.

If you want to support high DPI UI scaling with your bitmaps like the built-in Icons, include high resolution versions with their filenames ending with "@4x"
The following rules will be used when loading bitmaps

  • When UI scaling is 100%, only the base bitmaps are used.
  • When UI scaling is 125%, the base bitmaps are used, except if there is a BitmapName@x1.25.bmp variant.
  • For all other UI scaling > 125% the "@4x" variants are used and downscaled as needed, except when there is an exact match for the current UI scaling factor (e.g. BitmapName@1.5x.bmp for 150%)

ButtonAlignment

"center" | "left" | "right"

-- Setup the buttons text's or bitmap's alignment within the button.
ButtonAlignment:
    | "left" -- aligned to the left
    | "right" -- aligned to the right
    | "center" -- center (default)

ButtonBitmapPath

BitmapImagePath

If set, existing text is removed and the loaded image is displayed instead. Supported bitmap file formats are ".bmp", ".png" and ".tiff". Colors in bitmaps will be overridden by the button's theme color, using black as the transparent color for BMPs and TIFFS, and the alpha channel for PNGs. All other colors are mapped to the theme color according to their grey value, so plain white is the target theme color, and all other colors blend into the button's background color of the theme.

ButtonColor

RGBColor | ThemeColor

-- When set, the unpressed button's background will be drawn in the specified color.
-- A text color is automatically selected unless explicitly set, to make sure its
-- always visible.
-- Set color {0,0,0} to enable the theme colors for the button again.
-- A table of 3 bytes (ranging from 0 to 255)
-- representing the red, green and blue channels of a color.
-- {0xFF, 0xFF, 0xFF} is white
-- {165, 73, 35} is the red from the Renoise logo
-- The application theme's colors
ButtonColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

ButtonLabel

string

The text label of the button

  • Default: ""

ButtonSecondaryColor

RGBColor | ThemeColor

-- When set, the unpressed button's background text or bitmap will be drawn in the
-- specified color.
-- Set color {0,0,0} to enable the theme colors for the button again.
-- A table of 3 bytes (ranging from 0 to 255)
-- representing the red, green and blue channels of a color.
-- {0xFF, 0xFF, 0xFF} is white
-- {165, 73, 35} is the red from the Renoise logo
-- The application theme's colors
ButtonSecondaryColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

ButtonStyle

"normal" | "rounded" | "rounded_bottom" | "rounded_left" | "rounded_right" | "rounded_top"

-- Get/set the style a button should be displayed with.
ButtonStyle:
    | "normal" -- (Default)
    | "rounded" -- rounded corners on all sides
    | "rounded_left" -- rounded left side
    | "rounded_right" -- rounded right side
    | "rounded_top" -- rounded left side
    | "rounded_bottom" -- rounded right side

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NotifierFunction

fun()

RGBColor

{ 1 : integer, 2 : integer, 3 : integer }

A table of 3 bytes (ranging from 0 to 255) representing the red, green and blue channels of a color. {0xFF, 0xFF, 0xFF} is white {165, 73, 35} is the red from the Renoise logo

TextFontStyle

"big" | "bold" | "code" | "italic" | "mono" | "normal"

-- The style that the text should be displayed with.
TextFontStyle:
    | "normal" -- (Default)
    | "big" -- big text
    | "bold" -- bold font
    | "italic" -- italic font
    | "mono" -- monospace font
    | "code" -- monospace code font

ThemeColor

"alternate_main_back" | "alternate_main_font" | "automation_grid" | "automation_line_edge" | "automation_line_fill" | "automation_marker_diamond" | "automation_marker_pair" | "automation_marker_play" | "automation_marker_single" | "automation_point" | "body_back" | "body_font" | "button_back" | "button_font" | "button_highlight_font" | "default_color_01" | "default_color_02" | "default_color_03" | "default_color_04" | "default_color_05" | "default_color_06" | "default_color_07" | "default_color_08" | "default_color_09" | "default_color_10" | "default_color_11" | "default_color_12" | "default_color_13" | "default_color_14" | "default_color_15" | "default_color_16" | "folder" | "main_back" | "main_font" | "midi_mapping_back" | "midi_mapping_font" | "pattern_centerbar_back" | "pattern_centerbar_back_standby" | "pattern_centerbar_font" | "pattern_centerbar_font_standby" | "pattern_default_back" | "pattern_default_font" | "pattern_default_font_delay" | "pattern_default_font_dspfx" | "pattern_default_font_global" | "pattern_default_font_other" | "pattern_default_font_panning" | "pattern_default_font_pitch" | "pattern_default_font_unused" | "pattern_default_font_volume" | "pattern_highlighted_back" | "pattern_highlighted_font" | "pattern_highlighted_font_delay" | "pattern_highlighted_font_dspfx" | "pattern_highlighted_font_global" | "pattern_highlighted_font_other" | "pattern_highlighted_font_panning" | "pattern_highlighted_font_pitch" | "pattern_highlighted_font_unused" | "pattern_highlighted_font_volume" | "pattern_mute_state" | "pattern_playposition_back" | "pattern_playposition_font" | "pattern_selection" | "pattern_standby_selection" | "scrollbar" | "selected_button_back" | "selected_button_font" | "selection_back" | "selection_font" | "slider" | "standby_selection_back" | "standby_selection_font" | "strong_body_font" | "tooltip_back" | "tooltip_font" | "valuebox_back" | "valuebox_font" | "valuebox_font_icons" | "vumeter_back_clipped" | "vumeter_back_normal" | "vumeter_meter" | "vumeter_meter_high" | "vumeter_meter_low" | "vumeter_meter_middle" | "vumeter_peak"

-- The application theme's colors
ThemeColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.Canvas

A canvas view lets you draw and handle mouse events in a completely customisable way.

Note: The content is cached in a texture and not hardware accelerated, so it's not suitable for animations, but for static content such as custom backgrounds or bitmap-like views.

      .--.
    .'_\/_'.
    '. /\ .'
      "||"
       || /\
    /\ ||//\)
   (/\\||/
______\||/_______

Properties

mode : CanvasMode

How to draw the canvas context to screen: "transparent" draws with alpha from the canvas, "plain" ignores alpha values, which usually is a lot faster to draw. Use "plain" to speed up drawing background alike canvas views which cover the entire view area. Default: "transparent"

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

update(self)

Request background drawing contents of the canvas to be updated in the next UI draw cycle.

Size changes of the canvas view, global UI scaling changes, and color theme changes will automatically update the canvas, so this is only necessary to call when your draw content needs to be updated due to some internal state changes.

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

CanvasMode

"plain" | "transparent"

-- How to draw the canvas context to screen: "transparent" draws with alpha from
-- the canvas, "plain" ignores alpha values, which usually is a lot faster to draw.
-- Use "plain" to speed up drawing background alike canvas views which cover the
-- entire view area. Default: "transparent"
CanvasMode:
    | "plain"
    | "transparent"

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.Canvas.Context

Drawing context for a canvas view.

The context is similar to the HTML5 canvas 2d drawing context, with the following differences and limitations:

  • no text drawing: layer a renoise.Views.Text on top of this view instead.
  • no image and pattern drawing: layer a renoise.Views.Bitmap on top of this view, if you need to draw bitmaps in the canvas.
  • no shadow rendering: that would be awful slow
  • colors can be specified as strings or rgba tables in range [0-255]. when specifying strings, only renoise theme colors are supported (e.g. "button_back").
  • to create gradients use the available start_XXX gradient functions instead of creating gradient objects.
  • to set a new fill or stroke color, use the fill_color and stroke_color properties instead of fill/strokeStyle

This canvas implementation is based on 'canvas_ity' by Andrew Kensler https://github.com/a-e-k/canvas_ity

HTML5 Canvas Documentation


Properties

pixel_size : { height : integer, width : integer }

READ_ONLY Size of the render context backend in raw pixel resolution. This is the view ports size, multiplied with the global UI scaling factor. It does not change with transformations.

size : { height : integer, width : integer }

READ_ONLY Size of the render context with transformations applied. This initially will be the view's size. Calls to transform or scale may change the size further.

global_alpha : number

The degree of opacity applied to all drawing operations.

If an operation already uses a transparent color, this can make it yet more transparent. It must be in the range from 0 for fully transparent to 255 for fully opaque. Defaults to 255 (opaque).

global_composite_operation : "source_atop" | "source_copy" | "source_in" | "source_out" | "source_over" | "destination_atop" | "destination_in" | "destination_out" | "destination_over" | "exclusive_or" | "lighter"

Compositing operation for blending new drawing and old pixels.

The source_copy, source_in, source_out, destination_atop, and destination_in operations may clear parts of the canvas outside the new drawing but within the clip region. Defaults to "source_over".

fill_color : RGBColor | RGBAColor | ThemeColor

Set filling to use a constant color and opacity.

Defaults a constant color with 0,0,0,255 (opaque black).

stroke_color : RGBColor | RGBAColor | ThemeColor

Set stroking to use a constant color and opacity.

Defaults a constant color with 0,0,0,255 (opaque black).

line_cap : "butt" | "square" | "circle"

Cap style for the ends of open subpaths and dash segments.

The actual shape may be affected by the current transform at the time of drawing. Only affects stroking. Defaults to "butt".

line_join : "miter" | "bevel" | "rounded"

Join style for connecting lines within the paths.

The actual shape may be affected by the current transform at the time of drawing. Only affects stroking. Defaults to "miter".

line_width : number

The width of the lines when stroking.

Initially this is measured in pixels, though the current transform at the time of drawing can affect this. Must be positive. Defaults to 1.0.

miter_limit : number

Limit on maximum pointiness allowed for miter joins.

If the distance from the point where the lines intersect to the point where the outside edges of the join intersect exceeds this ratio relative to the line width, then a bevel join will be used instead, and the miter will be lopped off. Larger values allow pointier miters. Only affects stroking and only when the line join style is miter. Defaults to 10.0.

line_dash_offset : number

Offset where each subpath starts the dash pattern.

Changing this shifts the location of the dashes along the path and animating it will produce a marching ants effect. Only affects stroking and only when a dash pattern is set. May be negative or exceed the length of the dash pattern, in which case it will wrap. Defaults to 0.0.


Functions

clip(self)

Restrict the clip region by the current path.

Intersects the current clip region with the interior of the current path (the region that would be filled), and replaces the current clip region with this intersection. Subsequent calls to clip can only reduce this further. When filling or stroking, only pixels within the current clip region will change. The current path is left unchanged by updating the clip region; begin a new path to clear it. Defaults to the entire canvas.

Tip: to be able to reset the current clip region, save the canvas state first before clipping then restore the state to reset it.

save(self)

Save the current state as though to a stack.

The full state of the canvas is saved, except for the pixels in the canvas buffer, and the current path.

Tip: to be able to reset the current clip region, save the canvas state first before clipping then restore the state to reset it.

restore(self)

Restore a previously saved state as though from a stack.

This does not affect the pixels in the canvas buffer or the current path. If the stack of canvas states is empty, this does nothing.

fill_rect(self, x : number, y : number, width : number, height : number)

Fill a rectangular area.

This behaves as though the current path were reset to a single rectangle and then filled as usual. However, the current path is not actually changed. The current transform at the time that this is called will affect the given point and rectangle. The width and/or the height may be negative but not zero. If either is zero, or the current transform is not invertible, this does nothing.

stroke_rect(self, x : number, y : number, width : number, height : number)

Stroke a rectangular area.

This behaves as though the current path were reset to a single rectangle and then stroked as usual. However, the current path is not actually changed. The current transform at the time that this is called will affect the given point and rectangle. The width and/or the height may be negative or zero. If both are zero, or the current transform is not invertible, this does nothing. If only one is zero, this behaves as though it strokes a single horizontal or vertical line.

clear_rect(self, x : number, y : number, width : number, height : number)

Clear a rectangular area back to transparent black.

The clip region may limit the area cleared. The current path is not affected by this clearing. The current transform at the time that this is called will affect the given point and rectangle. The width and/or the height may be negative or zero. If either is zero, or the current transform is not invertible, this does nothing.

begin_path(self)

Reset the current path.

The current path and all subpaths will be cleared after this, and a new path can be built.

close_path(self)

Close the current subpath.

Adds a straight line from the end of the current subpath back to its first point and marks the subpath as closed so that this line will join with the beginning of the path at this point. A new, empty subpath will be started beginning with the same first point. If the current path is empty, this does nothing.

move_to(self, x : number, y : number)

Create a new subpath.

The given point will become the first point of the new subpath and is subject to the current transform at the time this is called.

line_to(self, x : number, y : number)

Extend the current subpath with a straight line.

The line will go from the current end point (if the current path is not empty) to the given point, which will become the new end point. Its position is affected by the current transform at the time that this is called. If the current path was empty, this is equivalent to just a move.

fill(self)

Draw the interior of the current path using the fill style.

Interior pixels are determined by the non-zero winding rule, with all open subpaths implicitly closed by a straight line beforehand. If shadows have been enabled by setting the shadow color with any opacity and either offsetting or blurring the shadows, then the shadows of the filled areas will be drawn first, followed by the filled areas themselves. Both will be blended into the canvas according to the global alpha, the global compositing operation, and the clip region. If the fill style is a gradient or a pattern, it will be affected by the current transform. The current path is left unchanged by filling; begin a new path to clear it. If the current transform is not invertible, this does nothing.

stroke(self)

Draw the edges of the current path using the stroke style.

Edges of the path will be expanded into strokes according to the current dash pattern, dash offset, line width, line join style (and possibly miter limit), line cap, and transform. If shadows have been enabled by setting the shadow color with any opacity and either offsetting or blurring the shadows, then the shadow will be drawn for the stroked lines first, then the stroked lines themselves. Both will be blended into the canvas according to the global alpha, the global compositing operation, and the clip region. If the stroke style is a gradient or a pattern, it will be affected by the current transform. The current path is left unchanged by stroking; begin a new path to clear it. If the current transform is not invertible, this does nothing.

Tip: to draw with a calligraphy-like angled brush effect, add a non-uniform scale transform just before stroking.

set_line_dash(self, segments : number[])

Set or clear the line dash pattern.

Takes an array with entries alternately giving the lengths of dash and gap segments. All must be non-negative; if any are not, this does nothing. These will be used to draw with dashed lines when stroking, with each subpath starting at the length along the dash pattern indicated by the line dash offset. Initially these lengths are measured in pixels, though the current transform at the time of drawing can affect this. The count must be non-negative. If it is odd, the array will be appended to itself to make an even count. If it is zero, or the pointer is null, the dash pattern will be cleared and strokes will be drawn as solid lines. The array is copied and it is safe to change or destroy it after this call. Defaults to solid lines.

set_fill_linear_gradient(self, start_x : number, start_y : number, end_x : number, end_y : number)

Set filling to use a linear gradient.

Positions the start and end points of the gradient and clears all color stops to reset the gradient to transparent black. Color stops can then be added again. When drawing, pixels will be painted with the color of the gradient at the nearest point on the line segment between the start and end points. This is affected by the current transform at the time of drawing.

set_stroke_linear_gradient(self, start_x : number, start_y : number, end_x : number, end_y : number)

Set filling to use a linear gradient.
See: renoise.Views.Canvas.Context set_fill_linear_gradient

set_fill_radial_gradient(self, start_x : number, start_y : number, start_radius : number, end_x : number, end_y : number, end_radius : number)

Set filling to use a radial gradient.

Positions the start and end circles of the gradient and clears all color stops to reset the gradient to transparent black. Color stops can then be added again. When drawing, pixels will be painted as though the starting circle moved and changed size linearly to match the ending circle, while sweeping through the colors of the gradient. Pixels not touched by the moving circle will be left transparent black. The radial gradient is affected by the current transform at the time of drawing. The radii must be non-negative.

set_stroke_radial_gradient(self, start_x : number, start_y : number, start_radius : number, end_x : number, end_y : number, end_radius : number)

Set stroke to use a radial gradient.
See: renoise.Views.Canvas.Context set_fill_radial_gradient

add_fill_color_stop(self, offset : number, color : RGBAColor | RGBColor | ThemeColor)

Add a color stop to a linear or radial gradient fill.

Each color stop has an offset which defines its position from 0.0 at the start of the gradient to 1.0 at the end. Colors and opacity are linearly interpolated along the gradient between adjacent pairs of stops without premultiplying the alpha. If more than one stop is added for a given offset, the first one added is considered closest to 0.0 and the last is closest to 1.0. If no stop is at offset 0.0 or 1.0, the stops with the closest offsets will be extended. If no stops are added, the gradient will be fully transparent black. Set a new linear or radial gradient to clear all the stops and redefine the gradient colors. Color stops may be added to a gradient at any time. The color and opacity values will be clamped to the 0.0 to 1.0 range, inclusive. The offset must be in the 0.0 to 1.0 range, inclusive. If it is not, or if chosen style type is not currently set to a gradient, this does nothing.

-- A table of 3 bytes (ranging from 0 to 255)
-- representing the red, green and blue channels of a color.
-- {0xFF, 0xFF, 0xFF} is white
-- {165, 73, 35} is the red from the Renoise logo
-- A table of 4 bytes (ranging from 0 to 255)
-- representing the red, green, blue, alpha channels of a color.
-- {0xFF, 0xFF, 0xFF, 0xFF} is white
-- {165, 73, 35, 0x80} is the red from the Renoise logo, half opaque.
-- The application theme's colors
color:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

add_stroke_color_stop(self, offset : number, color : RGBAColor | RGBColor | ThemeColor)

Add a color stop to a linear or radial gradient stroke.

-- A table of 3 bytes (ranging from 0 to 255)
-- representing the red, green and blue channels of a color.
-- {0xFF, 0xFF, 0xFF} is white
-- {165, 73, 35} is the red from the Renoise logo
-- A table of 4 bytes (ranging from 0 to 255)
-- representing the red, green, blue, alpha channels of a color.
-- {0xFF, 0xFF, 0xFF, 0xFF} is white
-- {165, 73, 35, 0x80} is the red from the Renoise logo, half opaque.
-- The application theme's colors
color:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

See: renoise.Views.Canvas.Context add_fill_color_stop

rect(self, x : number, y : number, width : number, height : number)

Add a closed subpath in the shape of a rectangle.

The rectangle has one corner at the given point and then goes in the direction along the width before going in the direction of the height towards the opposite corner. The current transform at the time that this is called will affect the given point and rectangle. The width and/or the height may be negative or zero, and this can affect the winding direction.

bezier_curve_to(self, control_1_x : number, control_1_y : number, control_2_x : number, control_2_y : number, x : number, y : number)

Extend the current subpath with a cubic Bezier curve.

The curve will go from the current end point (or the first control point if the current path is empty) to the given point, which will become the new end point. The curve will be tangent toward the first control point at the beginning and tangent toward the second control point at the end. The current transform at the time that this is called will affect all points passed in.

Tip: to make multiple curves join smoothly, ensure that each new end point is on a line between the adjacent control points.

arc(self, x : number, y : number, radius : number, start_angle : number, end_angle : number, counter_clockwise : boolean?)

Extend the current subpath with an arc between two angles.

The arc is from the circle centered at the given point and with the given radius. A straight line will be added from the current end point to the starting point of the arc (unless the current path is empty), then the arc along the circle from the starting angle to the ending angle in the given direction will be added. If they are more than two pi radians apart in the given direction, the arc will stop after one full circle. The point at the ending angle will become the new end point of the path. Initially, the angles are clockwise relative to the x-axis. The current transform at the time that this is called will affect the passed in point, angles, and arc. The radius must be non-negative.

arc_to(self, vertex_x : number, vertex_y : number, x : number, y : number, radius : number)

Extend the current subpath with an arc tangent to two lines.

The arc is from the circle with the given radius tangent to both the line from the current end point to the vertex, and to the line from the vertex to the given point. A straight line will be added from the current end point to the first tangent point (unless the current path is empty), then the shortest arc from the first to the second tangent points will be added. The second tangent point will become the new end point. If the radius is large, these tangent points may fall outside the line segments. The current transform at the time that this is called will affect the passed in points and the arc. If the current path was empty, this is equivalent to a move. If the arc would be degenerate, it is equivalent to a line to the vertex point. The radius must be non-negative. If it is not, or if the current transform is not invertible, this does nothing.

Tip: to draw a polygon with rounded corners, call this once for each vertex and pass the midpoint of the adjacent edge as the second point; this works especially well for rounded boxes.

quadratic_curve_to(self, control_x : number, control_y : number, x : number, y : number)

Extend the current subpath with a quadratic Bezier curve.

The curve will go from the current end point (or the control point if the current path is empty) to the given point, which will become the new end point. The curve will be tangent toward the control point at both ends. The current transform at the time that this is called will affect both points passed in.

Tip: to make multiple curves join smoothly, ensure that each new end point is on a line between the adjacent control points.

scale(self, x : number, y : number)

Scale the current transform.

Scaling may be non-uniform if the x and y scaling factors are different. When a scale factor is less than one, things will be shrunk in that direction. When a scale factor is greater than one, they will grow bigger. Negative scaling factors will flip or mirror it in that direction. The scaling factors must be non-zero. If either is zero, most drawing operations will do nothing.

rotate(self, angle : number)

Rotate the current transform.

The rotation is applied clockwise in a direction around the origin.

Tip: to rotate around another point, first translate that point to the origin, then do the rotation, and then translate back.

translate(self, x : number, y : number)

Translate the current transform.

By default, positive x values shift that many pixels to the right, while negative y values shift left, positive y values shift up, and negative y values shift down.

transform(self, a : number, b : number, c : number, d : number, e : number, f : number)

Add an arbitrary transform to the current transform.

This takes six values for the upper two rows of a homogenous 3x3 matrix (i.e., {{a, c, e}, {b, d, f}, {0.0, 0.0, 1.0}}) describing an arbitrary affine transform and appends it to the current transform. The values can represent any affine transform such as scaling, rotation, translation, or skew, or any composition of affine transforms. The matrix must be invertible. If it is not, most drawing operations will do nothing.

set_transform(self, a : number, b : number, c : number, d : number, e : number, f : number)

Replace the current transform.

This takes six values for the upper two rows of a homogenous 3x3 matrix (i.e., {{a, c, e}, {b, d, f}, {0.0, 0.0, 1.0}}) describing an arbitrary affine transform and replaces the current transform with it. The values can represent any affine transform such as scaling, rotation, translation, or skew, or any composition of affine transforms. The matrix must be invertible. If it is not, most drawing operations will do nothing.

Tip: to reset the current transform back to the default, use 1.0, 0.0, 0.0, 1.0, 0.0, 0.0.


Aliases

RGBAColor

{ 1 : integer, 2 : integer, 3 : integer, 4 : integer }

A table of 4 bytes (ranging from 0 to 255) representing the red, green, blue, alpha channels of a color. {0xFF, 0xFF, 0xFF, 0xFF} is white {165, 73, 35, 0x80} is the red from the Renoise logo, half opaque.

RGBColor

{ 1 : integer, 2 : integer, 3 : integer }

A table of 3 bytes (ranging from 0 to 255) representing the red, green and blue channels of a color. {0xFF, 0xFF, 0xFF} is white {165, 73, 35} is the red from the Renoise logo

ThemeColor

"alternate_main_back" | "alternate_main_font" | "automation_grid" | "automation_line_edge" | "automation_line_fill" | "automation_marker_diamond" | "automation_marker_pair" | "automation_marker_play" | "automation_marker_single" | "automation_point" | "body_back" | "body_font" | "button_back" | "button_font" | "button_highlight_font" | "default_color_01" | "default_color_02" | "default_color_03" | "default_color_04" | "default_color_05" | "default_color_06" | "default_color_07" | "default_color_08" | "default_color_09" | "default_color_10" | "default_color_11" | "default_color_12" | "default_color_13" | "default_color_14" | "default_color_15" | "default_color_16" | "folder" | "main_back" | "main_font" | "midi_mapping_back" | "midi_mapping_font" | "pattern_centerbar_back" | "pattern_centerbar_back_standby" | "pattern_centerbar_font" | "pattern_centerbar_font_standby" | "pattern_default_back" | "pattern_default_font" | "pattern_default_font_delay" | "pattern_default_font_dspfx" | "pattern_default_font_global" | "pattern_default_font_other" | "pattern_default_font_panning" | "pattern_default_font_pitch" | "pattern_default_font_unused" | "pattern_default_font_volume" | "pattern_highlighted_back" | "pattern_highlighted_font" | "pattern_highlighted_font_delay" | "pattern_highlighted_font_dspfx" | "pattern_highlighted_font_global" | "pattern_highlighted_font_other" | "pattern_highlighted_font_panning" | "pattern_highlighted_font_pitch" | "pattern_highlighted_font_unused" | "pattern_highlighted_font_volume" | "pattern_mute_state" | "pattern_playposition_back" | "pattern_playposition_font" | "pattern_selection" | "pattern_standby_selection" | "scrollbar" | "selected_button_back" | "selected_button_font" | "selection_back" | "selection_font" | "slider" | "standby_selection_back" | "standby_selection_font" | "strong_body_font" | "tooltip_back" | "tooltip_font" | "valuebox_back" | "valuebox_font" | "valuebox_font_icons" | "vumeter_back_clipped" | "vumeter_back_normal" | "vumeter_meter" | "vumeter_meter_high" | "vumeter_meter_low" | "vumeter_meter_middle" | "vumeter_peak"

-- The application theme's colors
ThemeColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

renoise.Views.CheckBox

A single button with a checkbox bitmap, which can be used to toggle something on/off.

 +----+
 | _/ |
 +----+

Properties

value : CheckBoxBoolean

The current state of the checkbox, expressed as boolean.

  • Default: false

active : ControlActive

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_notifier(self, notifier : BooleanValueNotifierFunction)

Add value change notifier

remove_notifier(self, notifier : BooleanValueNotifierFunction)

Remove value change notifier

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

BooleanValueNotifierFunction

(value : boolean)

CheckBoxBoolean

boolean

The current state of the checkbox, expressed as boolean.

  • Default: false

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.Chooser

A radio button like set of vertically stacked items. Only one value can be selected at a time.

 . Item A
 o Item B
 . Item C

Properties

items : ItemLabels

A list of buttons labels to show in order. Must have more than one item.

value : SelectedItem

The currently selected item's index

active : ControlActive

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_notifier(self, notifier : IntegerValueNotifierFunction)

Add index change notifier

remove_notifier(self, notifier : IntegerValueNotifierFunction)

Remove index change notifier

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

IntegerValueNotifierFunction

(value : integer)

ItemLabels

string[]

A list of buttons labels to show in order. Must have more than one item.

SelectedItem

integer

The currently selected item's index

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.Control

Control is the base class for all views which let the user change a value or some "state" from the UI.


Properties

active : ControlActive

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.MiniSlider

Same as a slider, but without arrow buttons and a really tiny height. Just like the slider, a mini slider can be horizontal or vertical. It will flip its orientation according to the set width and height. By default horizontal.

 --------[]

Properties

active : ControlActive

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

polarity : SliderPolarity

Value polarity of the control. Bipolar controls show the value from the center to left and right or up and down and typically controls a range around zero, e.g. -1 to 1. Unipolar controls show the value from left to right or bottom to top.

  • Default: "unipolar"

min : SliderMinValue

The minimum value that can be set using the view

  • Default: 0

max : SliderMaxValue

The maximum value that can be set using the view

  • Default: 1.0

default : SliderDefaultValue

The default value that will be re-applied on double-click

value : SliderNumberValue

The current value of the view

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_notifier(self, notifier : NumberValueNotifierFunction)

Add value change notifier

remove_notifier(self, notifier : NumberValueNotifierFunction)

Remove value change notifier

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NumberValueNotifierFunction

(value : number)

SliderDefaultValue

number

The default value that will be re-applied on double-click

SliderMaxValue

number

The maximum value that can be set using the view

  • Default: 1.0

SliderMinValue

number

The minimum value that can be set using the view

  • Default: 0

SliderNumberValue

number

The current value of the view

SliderPolarity

"bipolar" | "unipolar"

-- Value polarity of the control. Bipolar controls show the value from the
-- center to left and right or up and down and typically controls a range
-- around zero, e.g. -1 to 1. Unipolar controls show the value from left to
-- right or bottom to top.
-- * Default: "unipolar" 
SliderPolarity:
    | "unipolar"
    | "bipolar"

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.MultiLineText

Shows multiple lines of text, auto-formatting and auto-wrapping paragraphs into lines. Size is not automatically set. As soon as the text no longer fits into the view, a vertical scroll bar will be shown.

by the user.

 +--------------+-+
 | Text, Bla 1  |+|
 | Text, Bla 2  | |
 | Text, Bla 3  | |
 | Text, Bla 4  |+|
 +--------------+-+

Properties

text : TextMultilineString

The text that should be displayed. Newlines (Windows, Mac or Unix styled) in the text can be used to create paragraphs.

selected_text : TextMultilineSelectedString

READ-ONLY The currently selected text, if any. Newlines (Windows, Mac or Unix styled) will use the unix newline format.

paragraphs : TextParagraphs

A table of text lines to be used instead of specifying a single text line with newline characters like "text"

  • Default: []

font : TextFontStyle

The style that the text should be displayed with.

style : TextBackgroundStyle

Default: "body"

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

scroll_to_last_line(self)

When a scroll bar is visible (needed), scroll the text to show the last line.

scroll_to_first_line(self)

When a scroll bar is visible, scroll the text to show the first line.

add_line(self, text : string)

Append text to the existing text. Newlines in the text will create new paragraphs, just like in the "text" property.

clear(self)

Clear the whole text, same as multiline_text.text="".

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

TextBackgroundStyle

"body" | "border" | "strong"

-- Setup the text view's background:
TextBackgroundStyle:
    | "body" -- simple text color with no background
    | "strong" -- stronger text color with no background
    | "border" -- text on a bordered background

TextFontStyle

"big" | "bold" | "code" | "italic" | "mono" | "normal"

-- The style that the text should be displayed with.
TextFontStyle:
    | "normal" -- (Default)
    | "big" -- big text
    | "bold" -- bold font
    | "italic" -- italic font
    | "mono" -- monospace font
    | "code" -- monospace code font

TextMultilineSelectedString

string

READ-ONLY The currently selected text, if any. Newlines (Windows, Mac or Unix styled) will use the unix newline format.

TextMultilineString

string

The text that should be displayed. Newlines (Windows, Mac or Unix styled) in the text can be used to create paragraphs.

TextParagraphs

string[]

A table of text lines to be used instead of specifying a single text line with newline characters like "text"

  • Default: []

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.MultiLineTextField

Shows multiple text lines of text, auto-wrapping paragraphs into lines. The text can be edited by the user.

 +--------------------------+-+
 | Editable Te|xt.          |+|
 |                          | |
 | With multiple paragraphs | |
 | and auto-wrapping        |+|
 +--------------------------+-+

Properties

active : TextActive

When false, text is displayed but can not be entered/modified by the user.

  • Default: true

value : TextMultilineString

The text that should be displayed. Newlines (Windows, Mac or Unix styled) in the text can be used to create paragraphs.

text : TextValueAlias

Exactly the same as "value"; provided for consistency.

  • Default: ""

selected_text : TextMultilineSelectedString

READ-ONLY The currently selected text, if any. Newlines (Windows, Mac or Unix styled) will use the unix newline format.

paragraphs : TextParagraphs

A table of text lines to be used instead of specifying a single text line with newline characters like "text"

  • Default: []

font : TextFontStyle

The style that the text should be displayed with.

style : TextBackgroundStyle

Default: "border"

edit_mode : TextEditMode

True when the text field is focused. setting it at run-time programmatically will focus the text field or remove the focus (focus the dialog) accordingly.

  • Default: false

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_notifier(self, notifier : StringValueNotifierFunction)

Add value change (text change) notifier

remove_notifier(self, notifier : StringValueNotifierFunction)

Remove value change (text change) notifier

scroll_to_last_line(self)

When a scroll bar is visible, scroll the text to show the last line.

scroll_to_first_line(self)

When a scroll bar is visible, scroll the text to show the first line.

add_line(self, text : string)

Append a new text to the existing text. Newline characters in the string will create new paragraphs, otherwise a single paragraph is appended.

clear(self)

Clear the whole text.

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

StringValueNotifierFunction

(value : string)

TextActive

boolean

When false, text is displayed but can not be entered/modified by the user.

  • Default: true

TextBackgroundStyle

"body" | "border" | "strong"

-- Setup the text view's background:
TextBackgroundStyle:
    | "body" -- simple text color with no background
    | "strong" -- stronger text color with no background
    | "border" -- text on a bordered background

TextEditMode

boolean

True when the text field is focused. setting it at run-time programmatically will focus the text field or remove the focus (focus the dialog) accordingly.

  • Default: false

TextFontStyle

"big" | "bold" | "code" | "italic" | "mono" | "normal"

-- The style that the text should be displayed with.
TextFontStyle:
    | "normal" -- (Default)
    | "big" -- big text
    | "bold" -- bold font
    | "italic" -- italic font
    | "mono" -- monospace font
    | "code" -- monospace code font

TextMultilineSelectedString

string

READ-ONLY The currently selected text, if any. Newlines (Windows, Mac or Unix styled) will use the unix newline format.

TextMultilineString

string

The text that should be displayed. Newlines (Windows, Mac or Unix styled) in the text can be used to create paragraphs.

TextParagraphs

string[]

A table of text lines to be used instead of specifying a single text line with newline characters like "text"

  • Default: []

TextValueAlias

string

Exactly the same as "value"; provided for consistency.

  • Default: ""

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.Popup

A drop-down menu which shows the currently selected value when closed. When clicked, it pops up a list of all available items.

 +--------------++---+
 | Current Item || ^ |
 +--------------++---+

Properties

active : ControlActive

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

items : PopupItemLabels

A list of buttons labels to show in order The list can be empty, then "None" is displayed and the value won't change.

value : SelectedItem

The currently selected item's index

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_notifier(self, notifier : IntegerValueNotifierFunction)

Add index change notifier

remove_notifier(self, notifier : IntegerValueNotifierFunction)

Remove index change notifier

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

IntegerValueNotifierFunction

(value : integer)

PopupItemLabels

string[]

A list of buttons labels to show in order The list can be empty, then "None" is displayed and the value won't change.

SelectedItem

integer

The currently selected item's index

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.Rack

A Rack has no content on its own. It only stacks child views. Either vertically (ViewBuilder.column) or horizontally (ViewBuilder.row). It allows you to create view layouts.


Properties

margin : RackMargin

Set the "borders" of a rack (left, right, top and bottom inclusively)

  • Default: 0 (no borders)

spacing : RackSpacing

Set the amount stacked child views are separated by (horizontally in rows, vertically in columns).

  • Default: 0 (no spacing)

background : ViewBackgroundStyle

Setup a background style for the view.

uniform : RackUniformity

When set to true, all child views in the rack are automatically resized to the max size of all child views (width in ViewBuilder.column, height in ViewBuilder.row). This can be useful to automatically align all sub columns/panels to the same size. Resizing is done automatically, as soon as a child view size changes or new children are added.

  • Default: false

style : ViewBackgroundStyle

Deprecated Use background instead.

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

RackMargin

integer

Set the "borders" of a rack (left, right, top and bottom inclusively)

  • Default: 0 (no borders)

RackSpacing

integer

Set the amount stacked child views are separated by (horizontally in rows, vertically in columns).

  • Default: 0 (no spacing)

RackUniformity

boolean

When set to true, all child views in the rack are automatically resized to the max size of all child views (width in ViewBuilder.column, height in ViewBuilder.row). This can be useful to automatically align all sub columns/panels to the same size. Resizing is done automatically, as soon as a child view size changes or new children are added.

  • Default: false

ViewBackgroundStyle

"body" | "border" | "group" | "invisible" | "panel" | "plain"

-- Setup a background style for the view. 
ViewBackgroundStyle:
    | "invisible" -- no background (Default)
    | "plain" -- undecorated, single coloured background
    | "border" -- same as plain, but with a bold nested border
    | "body" -- main "background" style, as used in dialog backgrounds
    | "panel" -- alternative "background" style, beveled
    | "group" -- background for "nested" groups within body

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.RotaryEncoder

A slider which looks like a potentiometer. Note: when changing the size, the minimum of either width or height will be used to draw and control the rotary, therefore you should always set both equally when possible.

    +-+
  / \   \
 |   o   |
  \  |  /
    +-+

Properties

active : ControlActive

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

polarity : SliderPolarity

Value polarity of the control. Bipolar controls show the value from the center to left and right or up and down and typically controls a range around zero, e.g. -1 to 1. Unipolar controls show the value from left to right or bottom to top.

  • Default: "unipolar"

min : SliderMinValue

The minimum value that can be set using the view

  • Default: 0

max : SliderMaxValue

The maximum value that can be set using the view

  • Default: 1.0

default : SliderDefaultValue

The default value that will be re-applied on double-click

value : SliderNumberValue

The current value of the view

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_notifier(self, notifier : NumberValueNotifierFunction)

Add value change notifier

remove_notifier(self, notifier : NumberValueNotifierFunction)

Remove value change notifier

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NumberValueNotifierFunction

(value : number)

SliderDefaultValue

number

The default value that will be re-applied on double-click

SliderMaxValue

number

The maximum value that can be set using the view

  • Default: 1.0

SliderMinValue

number

The minimum value that can be set using the view

  • Default: 0

SliderNumberValue

number

The current value of the view

SliderPolarity

"bipolar" | "unipolar"

-- Value polarity of the control. Bipolar controls show the value from the
-- center to left and right or up and down and typically controls a range
-- around zero, e.g. -1 to 1. Unipolar controls show the value from left to
-- right or bottom to top.
-- * Default: "unipolar" 
SliderPolarity:
    | "unipolar"
    | "bipolar"

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.ScrollBar

A special slider alike control to scroll through some content.

min and max define to the scrollable area's range. pagesize is the currently visible area within that range and value is the offset from min to max - pagestep within the whole scrollable area:

min   value                      max
 |      [xxxxxxxxxxxxxx]          |
        <---pagestep--->
 <---------scroll-area------------>

Note that the minimum offset value is min and the maximum offset value is max - pagestep.

A scrollbar can be horizontal or vertical. It will flip its orientation according to the set width and height. By default it's horizontal.


Properties

active : ControlActive

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

min : ScrollbarMin

Default 0. Minimum offset value.

max : ScrollbarMax

Default 100. Maximum offset value.

value : ScrollbarValue

Default 0. Offset value in range min to max - pagestep.

step : ScrollbarStep

Default 1. Amount the mouse-wheel or additional +/- buttons in the scroll bar move the scrollable area.

pagestep : ScrollbarPagestep

Default 100. Size of the currently visible area.

background : ViewBackgroundStyle

Setup a background style for the view.

autohide : ScrollbarAutoHide

Default: false. When true, view gets automatically hidden when no scrolling is needed

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_notifier(self, notifier : IntegerValueNotifierFunction)

Add offset value change notifier

remove_notifier(self, notifier : IntegerValueNotifierFunction)

Remove offset value change notifier

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

IntegerValueNotifierFunction

(value : integer)

ScrollbarAutoHide

boolean

Default: false. When true, view gets automatically hidden when no scrolling is needed

ScrollbarMax

integer

Default 100. Maximum offset value.

ScrollbarMin

integer

Default 0. Minimum offset value.

ScrollbarPagestep

integer

Default 100. Size of the currently visible area.

ScrollbarStep

integer

Default 1. Amount the mouse-wheel or additional +/- buttons in the scroll bar move the scrollable area.

ScrollbarValue

integer

Default 0. Offset value in range min to max - pagestep.

ViewBackgroundStyle

"body" | "border" | "group" | "invisible" | "panel" | "plain"

-- Setup a background style for the view. 
ViewBackgroundStyle:
    | "invisible" -- no background (Default)
    | "plain" -- undecorated, single coloured background
    | "border" -- same as plain, but with a bold nested border
    | "body" -- main "background" style, as used in dialog backgrounds
    | "panel" -- alternative "background" style, beveled
    | "group" -- background for "nested" groups within body

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.Slider

A slider with arrow buttons, which shows and allows editing of values in a custom range. A slider can be horizontal or vertical; will flip its orientation according to the set width and height. By default horizontal.

 +---+---------------+
 |<|>| --------[]    |
 +---+---------------+

Properties

active : ControlActive

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

polarity : SliderPolarity

Value polarity of the control. Bipolar controls show the value from the center to left and right or up and down and typically controls a range around zero, e.g. -1 to 1. Unipolar controls show the value from left to right or bottom to top.

  • Default: "unipolar"

min : SliderMinValue

The minimum value that can be set using the view

  • Default: 0

max : SliderMaxValue

The maximum value that can be set using the view

  • Default: 1.0

steps : SliderStepAmounts

A table containing two numbers representing the step amounts for incrementing and decrementing by clicking the <> buttons. The first value is the small step (applied on left clicks) second value is the big step (applied on right clicks)

default : SliderDefaultValue

The default value that will be re-applied on double-click

value : SliderNumberValue

The current value of the view

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_notifier(self, notifier : NumberValueNotifierFunction)

Add value change notifier

remove_notifier(self, notifier : NumberValueNotifierFunction)

Remove value change notifier

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NumberValueNotifierFunction

(value : number)

SliderDefaultValue

number

The default value that will be re-applied on double-click

SliderMaxValue

number

The maximum value that can be set using the view

  • Default: 1.0

SliderMinValue

number

The minimum value that can be set using the view

  • Default: 0

SliderNumberValue

number

The current value of the view

SliderPolarity

"bipolar" | "unipolar"

-- Value polarity of the control. Bipolar controls show the value from the
-- center to left and right or up and down and typically controls a range
-- around zero, e.g. -1 to 1. Unipolar controls show the value from left to
-- right or bottom to top.
-- * Default: "unipolar" 
SliderPolarity:
    | "unipolar"
    | "bipolar"

SliderStepAmounts

{ 1 : number, 2 : number }

A table containing two numbers representing the step amounts for incrementing and decrementing by clicking the <> buttons. The first value is the small step (applied on left clicks) second value is the big step (applied on right clicks)

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.Stack

A Stack has no content on its own. It only stacks it's child views. The position of the child views in the stack can be freely set by using the origin property of the views.


Properties

autosize : StackAutoSize

When set to true, the width and height of the stack will be automatically calculated and updated from the stack's child views, to ensure all views fit into the stack. When disabled, the width and height must be set manually.

  • Default: true

background : ViewBackgroundStyle

Setup a background style for the view.

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

StackAutoSize

boolean

When set to true, the width and height of the stack will be automatically calculated and updated from the stack's child views, to ensure all views fit into the stack. When disabled, the width and height must be set manually.

  • Default: true

ViewBackgroundStyle

"body" | "border" | "group" | "invisible" | "panel" | "plain"

-- Setup a background style for the view. 
ViewBackgroundStyle:
    | "invisible" -- no background (Default)
    | "plain" -- undecorated, single coloured background
    | "border" -- same as plain, but with a bold nested border
    | "body" -- main "background" style, as used in dialog backgrounds
    | "panel" -- alternative "background" style, beveled
    | "group" -- background for "nested" groups within body

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.Switch

A set of horizontally aligned buttons, where only one button can be enabled at the same time. Select one of multiple choices, indices.

 +-----------+------------+----------+
 | Button A  | +Button+B+ | Button C |
 +-----------+------------+----------+

Properties

active : ControlActive

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

items : ItemLabels

A list of buttons labels to show in order. Must have more than one item.

value : SelectedItem

The currently selected item's index

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_notifier(self, notifier : IntegerValueNotifierFunction)

Add index change notifier

remove_notifier(self, notifier : IntegerValueNotifierFunction)

Remove index change notifier

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

IntegerValueNotifierFunction

(value : integer)

ItemLabels

string[]

A list of buttons labels to show in order. Must have more than one item.

SelectedItem

integer

The currently selected item's index

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.Text

Shows a "static" text string. Static just means that its not linked, bound to some value and has no notifiers. The text can not be edited by the user. Nevertheless you can of course change the text at run-time with the "text" property.

  Text, Bla 1

Properties

text : TextSingleLineString

The text that should be displayed. Setting a new text will resize the view in order to make the text fully visible (expanding only).

  • Default: ""

font : TextFontStyle

The style that the text should be displayed with.

style : TextStyle

Get/set the color style the text should be displayed with.

color : TextColor

When set, the text will be drawn in the specified color. Set style to something else than "custom" or color to {0, 0, 0} to enable the default theme color for the text again.

orientation : TextOrientation

Setup the texts's orientation (writing direction).

align : TextAlignment

Setup the text's alignment. Applies only when the view's size is larger than the needed size to draw the text

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

RGBColor

{ 1 : integer, 2 : integer, 3 : integer }

A table of 3 bytes (ranging from 0 to 255) representing the red, green and blue channels of a color. {0xFF, 0xFF, 0xFF} is white {165, 73, 35} is the red from the Renoise logo

TextAlignment

"center" | "left" | "right"

-- Setup the text's alignment. Applies only when the view's size is larger than
-- the needed size to draw the text
TextAlignment:
    | "left" -- (Default)
    | "right" -- aligned to the right
    | "center" -- center text

TextColor

RGBColor | ThemeColor

-- When set, the text will be drawn in the specified color.
-- Set style to something else than "custom" or color to `{0, 0, 0}`
-- to enable the default theme color for the text again.
-- A table of 3 bytes (ranging from 0 to 255)
-- representing the red, green and blue channels of a color.
-- {0xFF, 0xFF, 0xFF} is white
-- {165, 73, 35} is the red from the Renoise logo
-- The application theme's colors
TextColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

TextFontStyle

"big" | "bold" | "code" | "italic" | "mono" | "normal"

-- The style that the text should be displayed with.
TextFontStyle:
    | "normal" -- (Default)
    | "big" -- big text
    | "bold" -- bold font
    | "italic" -- italic font
    | "mono" -- monospace font
    | "code" -- monospace code font

TextOrientation

"horizontal" | "horizontal-rl" | "vertical" | "vertical-tb"

-- Setup the texts's orientation (writing direction).
TextOrientation:
    | "horizontal" -- Draw from left to right (Default)
    | "horizontal-rl" -- Draw from right to left
    | "vertical" -- Draw from bottom to top
    | "vertical-tb" -- Draw from top to bottom

TextSingleLineString

string

The text that should be displayed. Setting a new text will resize the view in order to make the text fully visible (expanding only).

  • Default: ""

TextStyle

"custom" | "disabled" | "normal" | "strong"

-- Get/set the color style the text should be displayed with.
TextStyle:
    | "normal" -- (Default)
    | "strong" -- highlighted color
    | "disabled" -- greyed out color
    | "custom" -- custom color

ThemeColor

"alternate_main_back" | "alternate_main_font" | "automation_grid" | "automation_line_edge" | "automation_line_fill" | "automation_marker_diamond" | "automation_marker_pair" | "automation_marker_play" | "automation_marker_single" | "automation_point" | "body_back" | "body_font" | "button_back" | "button_font" | "button_highlight_font" | "default_color_01" | "default_color_02" | "default_color_03" | "default_color_04" | "default_color_05" | "default_color_06" | "default_color_07" | "default_color_08" | "default_color_09" | "default_color_10" | "default_color_11" | "default_color_12" | "default_color_13" | "default_color_14" | "default_color_15" | "default_color_16" | "folder" | "main_back" | "main_font" | "midi_mapping_back" | "midi_mapping_font" | "pattern_centerbar_back" | "pattern_centerbar_back_standby" | "pattern_centerbar_font" | "pattern_centerbar_font_standby" | "pattern_default_back" | "pattern_default_font" | "pattern_default_font_delay" | "pattern_default_font_dspfx" | "pattern_default_font_global" | "pattern_default_font_other" | "pattern_default_font_panning" | "pattern_default_font_pitch" | "pattern_default_font_unused" | "pattern_default_font_volume" | "pattern_highlighted_back" | "pattern_highlighted_font" | "pattern_highlighted_font_delay" | "pattern_highlighted_font_dspfx" | "pattern_highlighted_font_global" | "pattern_highlighted_font_other" | "pattern_highlighted_font_panning" | "pattern_highlighted_font_pitch" | "pattern_highlighted_font_unused" | "pattern_highlighted_font_volume" | "pattern_mute_state" | "pattern_playposition_back" | "pattern_playposition_font" | "pattern_selection" | "pattern_standby_selection" | "scrollbar" | "selected_button_back" | "selected_button_font" | "selection_back" | "selection_font" | "slider" | "standby_selection_back" | "standby_selection_font" | "strong_body_font" | "tooltip_back" | "tooltip_font" | "valuebox_back" | "valuebox_font" | "valuebox_font_icons" | "vumeter_back_clipped" | "vumeter_back_normal" | "vumeter_meter" | "vumeter_meter_high" | "vumeter_meter_low" | "vumeter_meter_middle" | "vumeter_peak"

-- The application theme's colors
ThemeColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.TextField

Shows a text string that can be clicked and edited by the user.

 +----------------+
 | Editable Te|xt |
 +----------------+

Properties

active : TextActive

When false, text is displayed but can not be entered/modified by the user.

  • Default: true

value : TextValue

The currently shown text. The text will not be updated when editing, rather only after editing is complete (return is pressed, or focus is lost).

  • Default: ""

text : TextValueAlias

Exactly the same as "value"; provided for consistency.

  • Default: ""

align : TextAlignment

Only used when not editing.

edit_mode : TextEditMode

True when the text field is focused. setting it at run-time programmatically will focus the text field or remove the focus (focus the dialog) accordingly.

  • Default: false

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_notifier(self, notifier : StringValueNotifierFunction)

Add value change (text change) notifier

remove_notifier(self, notifier : StringValueNotifierFunction)

Remove value change (text change) notifier

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

StringValueNotifierFunction

(value : string)

TextActive

boolean

When false, text is displayed but can not be entered/modified by the user.

  • Default: true

TextAlignment

"center" | "left" | "right"

-- Setup the text's alignment. Applies only when the view's size is larger than
-- the needed size to draw the text
TextAlignment:
    | "left" -- (Default)
    | "right" -- aligned to the right
    | "center" -- center text

TextEditMode

boolean

True when the text field is focused. setting it at run-time programmatically will focus the text field or remove the focus (focus the dialog) accordingly.

  • Default: false

TextValue

string

The currently shown text. The text will not be updated when editing, rather only after editing is complete (return is pressed, or focus is lost).

  • Default: ""

TextValueAlias

string

Exactly the same as "value"; provided for consistency.

  • Default: ""

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.TextLink

Shows a text string which is highlighted when hovering with the mouse, and which can be clicked to perform some action. To create a hyperlink alike text, add a notifier which opens an url via: renoise.app():open_url("https://some.url.com") property.

  *Text, *

Properties

active : ControlActive

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString?

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

text : TextSingleLineString

The text that should be displayed. Setting a new text will resize the view in order to make the text fully visible (expanding only).

  • Default: ""

font : TextFontStyle

The style that the text should be displayed with.

style : TextStyle

Get/set the color style the text should be displayed with.

color : TextColor

When set, the text will be drawn in the specified color. Set style to something else than "custom" or color to {0, 0, 0} to enable the default theme color for the text again.

orientation : TextOrientation

Setup the texts's orientation (writing direction).

align : TextAlignment

Setup the text's alignment. Applies only when the view's size is larger than the needed size to draw the text

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_pressed_notifier(self, notifier : NotifierFunction)

Add/remove text link hit/release notifier functions.

add_released_notifier(self, notifier : NotifierFunction)

remove_pressed_notifier(self, notifier : NotifierFunction)

remove_released_notifier(self, notifier : NotifierFunction)

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NotifierFunction

fun()

RGBColor

{ 1 : integer, 2 : integer, 3 : integer }

A table of 3 bytes (ranging from 0 to 255) representing the red, green and blue channels of a color. {0xFF, 0xFF, 0xFF} is white {165, 73, 35} is the red from the Renoise logo

TextAlignment

"center" | "left" | "right"

-- Setup the text's alignment. Applies only when the view's size is larger than
-- the needed size to draw the text
TextAlignment:
    | "left" -- (Default)
    | "right" -- aligned to the right
    | "center" -- center text

TextColor

RGBColor | ThemeColor

-- When set, the text will be drawn in the specified color.
-- Set style to something else than "custom" or color to `{0, 0, 0}`
-- to enable the default theme color for the text again.
-- A table of 3 bytes (ranging from 0 to 255)
-- representing the red, green and blue channels of a color.
-- {0xFF, 0xFF, 0xFF} is white
-- {165, 73, 35} is the red from the Renoise logo
-- The application theme's colors
TextColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

TextFontStyle

"big" | "bold" | "code" | "italic" | "mono" | "normal"

-- The style that the text should be displayed with.
TextFontStyle:
    | "normal" -- (Default)
    | "big" -- big text
    | "bold" -- bold font
    | "italic" -- italic font
    | "mono" -- monospace font
    | "code" -- monospace code font

TextOrientation

"horizontal" | "horizontal-rl" | "vertical" | "vertical-tb"

-- Setup the texts's orientation (writing direction).
TextOrientation:
    | "horizontal" -- Draw from left to right (Default)
    | "horizontal-rl" -- Draw from right to left
    | "vertical" -- Draw from bottom to top
    | "vertical-tb" -- Draw from top to bottom

TextSingleLineString

string

The text that should be displayed. Setting a new text will resize the view in order to make the text fully visible (expanding only).

  • Default: ""

TextStyle

"custom" | "disabled" | "normal" | "strong"

-- Get/set the color style the text should be displayed with.
TextStyle:
    | "normal" -- (Default)
    | "strong" -- highlighted color
    | "disabled" -- greyed out color
    | "custom" -- custom color

ThemeColor

"alternate_main_back" | "alternate_main_font" | "automation_grid" | "automation_line_edge" | "automation_line_fill" | "automation_marker_diamond" | "automation_marker_pair" | "automation_marker_play" | "automation_marker_single" | "automation_point" | "body_back" | "body_font" | "button_back" | "button_font" | "button_highlight_font" | "default_color_01" | "default_color_02" | "default_color_03" | "default_color_04" | "default_color_05" | "default_color_06" | "default_color_07" | "default_color_08" | "default_color_09" | "default_color_10" | "default_color_11" | "default_color_12" | "default_color_13" | "default_color_14" | "default_color_15" | "default_color_16" | "folder" | "main_back" | "main_font" | "midi_mapping_back" | "midi_mapping_font" | "pattern_centerbar_back" | "pattern_centerbar_back_standby" | "pattern_centerbar_font" | "pattern_centerbar_font_standby" | "pattern_default_back" | "pattern_default_font" | "pattern_default_font_delay" | "pattern_default_font_dspfx" | "pattern_default_font_global" | "pattern_default_font_other" | "pattern_default_font_panning" | "pattern_default_font_pitch" | "pattern_default_font_unused" | "pattern_default_font_volume" | "pattern_highlighted_back" | "pattern_highlighted_font" | "pattern_highlighted_font_delay" | "pattern_highlighted_font_dspfx" | "pattern_highlighted_font_global" | "pattern_highlighted_font_other" | "pattern_highlighted_font_panning" | "pattern_highlighted_font_pitch" | "pattern_highlighted_font_unused" | "pattern_highlighted_font_volume" | "pattern_mute_state" | "pattern_playposition_back" | "pattern_playposition_font" | "pattern_selection" | "pattern_standby_selection" | "scrollbar" | "selected_button_back" | "selected_button_font" | "selection_back" | "selection_font" | "slider" | "standby_selection_back" | "standby_selection_font" | "strong_body_font" | "tooltip_back" | "tooltip_font" | "valuebox_back" | "valuebox_font" | "valuebox_font_icons" | "vumeter_back_clipped" | "vumeter_back_normal" | "vumeter_meter" | "vumeter_meter_high" | "vumeter_meter_low" | "vumeter_meter_middle" | "vumeter_peak"

-- The application theme's colors
ThemeColor:
    | "main_back"
    | "main_font"
    | "alternate_main_back"
    | "alternate_main_font"
    | "body_back"
    | "body_font"
    | "strong_body_font"
    | "button_back"
    | "button_font"
    | "button_highlight_font"
    | "selected_button_back"
    | "selected_button_font"
    | "selection_back"
    | "selection_font"
    | "standby_selection_back"
    | "standby_selection_font"
    | "midi_mapping_back"
    | "midi_mapping_font"
    | "tooltip_back"
    | "tooltip_font"
    | "valuebox_back"
    | "valuebox_font"
    | "valuebox_font_icons"
    | "scrollbar"
    | "slider"
    | "folder"
    | "pattern_default_back"
    | "pattern_default_font"
    | "pattern_default_font_volume"
    | "pattern_default_font_panning"
    | "pattern_default_font_pitch"
    | "pattern_default_font_delay"
    | "pattern_default_font_global"
    | "pattern_default_font_other"
    | "pattern_default_font_dspfx"
    | "pattern_default_font_unused"
    | "pattern_highlighted_back"
    | "pattern_highlighted_font"
    | "pattern_highlighted_font_volume"
    | "pattern_highlighted_font_panning"
    | "pattern_highlighted_font_pitch"
    | "pattern_highlighted_font_delay"
    | "pattern_highlighted_font_global"
    | "pattern_highlighted_font_other"
    | "pattern_highlighted_font_dspfx"
    | "pattern_highlighted_font_unused"
    | "pattern_playposition_back"
    | "pattern_playposition_font"
    | "pattern_centerbar_back"
    | "pattern_centerbar_font"
    | "pattern_centerbar_back_standby"
    | "pattern_centerbar_font_standby"
    | "pattern_selection"
    | "pattern_standby_selection"
    | "pattern_mute_state"
    | "automation_grid"
    | "automation_line_edge"
    | "automation_line_fill"
    | "automation_point"
    | "automation_marker_play"
    | "automation_marker_single"
    | "automation_marker_pair"
    | "automation_marker_diamond"
    | "vumeter_meter"
    | "vumeter_meter_low"
    | "vumeter_meter_middle"
    | "vumeter_meter_high"
    | "vumeter_peak"
    | "vumeter_back_normal"
    | "vumeter_back_clipped"
    | "default_color_01"
    | "default_color_02"
    | "default_color_03"
    | "default_color_04"
    | "default_color_05"
    | "default_color_06"
    | "default_color_07"
    | "default_color_08"
    | "default_color_09"
    | "default_color_10"
    | "default_color_11"
    | "default_color_12"
    | "default_color_13"
    | "default_color_14"
    | "default_color_15"
    | "default_color_16"

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.Value

A static text view. Shows a string representation of a number and allows custom "number to string" conversion.

 +---+-------+
 | 12.1 dB   |
 +---+-------+

Properties

value : SliderNumberValue

The current value of the view

font : TextFontStyle

The style that the text should be displayed with.

align : TextAlignment

Setup the text's alignment. Applies only when the view's size is larger than the needed size to draw the text

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_notifier(self, notifier : NumberValueNotifierFunction)

Add value change notifier

remove_notifier(self, notifier : NumberValueNotifierFunction)

Remove value change notifier

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

NumberValueNotifierFunction

(value : number)

SliderNumberValue

number

The current value of the view

TextAlignment

"center" | "left" | "right"

-- Setup the text's alignment. Applies only when the view's size is larger than
-- the needed size to draw the text
TextAlignment:
    | "left" -- (Default)
    | "right" -- aligned to the right
    | "center" -- center text

TextFontStyle

"big" | "bold" | "code" | "italic" | "mono" | "normal"

-- The style that the text should be displayed with.
TextFontStyle:
    | "normal" -- (Default)
    | "big" -- big text
    | "bold" -- bold font
    | "italic" -- italic font
    | "mono" -- monospace font
    | "code" -- monospace code font

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.ValueBox

A box with arrow buttons and a text field that can be edited by the user. Allows showing and editing natural numbers in a custom range.

 +---+-------+
 |<|>|  12   |
 +---+-------+

Properties

active : ControlActive

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

min : ValueBoxMinValue

The minimum value that can be set using the view

  • Default: 0

max : ValueBoxMaxValue

The maximum value that can be set using the view

  • Default: 100

steps : SliderStepAmounts

A table containing two numbers representing the step amounts for incrementing and decrementing by clicking the <> buttons. The first value is the small step (applied on left clicks) second value is the big step (applied on right clicks)

value : SliderNumberValue

The current value of the view

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_notifier(self, notifier : NumberValueNotifierFunction)

Add value change notifier

remove_notifier(self, notifier : NumberValueNotifierFunction)

Remove value change notifier

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NumberValueNotifierFunction

(value : number)

SliderNumberValue

number

The current value of the view

SliderStepAmounts

{ 1 : number, 2 : number }

A table containing two numbers representing the step amounts for incrementing and decrementing by clicking the <> buttons. The first value is the small step (applied on left clicks) second value is the big step (applied on right clicks)

ValueBoxMaxValue

number

The maximum value that can be set using the view

  • Default: 100

ValueBoxMinValue

number

The minimum value that can be set using the view

  • Default: 0

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.ValueField

A text view, which shows a string representation of a number and allows custom "number to string" conversion. The value's text can be edited by the user.

 +---+-------+
 | 12.1 dB   |
 +---+-------+

Properties

active : ControlActive

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

min : SliderMinValue

The minimum value that can be set using the view

  • Default: 0

max : SliderMaxValue

The maximum value that can be set using the view

  • Default: 1.0

value : SliderNumberValue

The current value of the view

align : TextAlignment

Setup the text's alignment. Applies only when the view's size is larger than the needed size to draw the text

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_notifier(self, notifier : NumberValueNotifierFunction)

Add value change notifier

remove_notifier(self, notifier : NumberValueNotifierFunction)

Remove value change notifier

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

NumberValueNotifierFunction

(value : number)

SliderMaxValue

number

The maximum value that can be set using the view

  • Default: 1.0

SliderMinValue

number

The minimum value that can be set using the view

  • Default: 0

SliderNumberValue

number

The current value of the view

TextAlignment

"center" | "left" | "right"

-- Setup the text's alignment. Applies only when the view's size is larger than
-- the needed size to draw the text
TextAlignment:
    | "left" -- (Default)
    | "right" -- aligned to the right
    | "center" -- center text

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.View

View is the base class for all child views. All View properties can be applied to any of the following specialized views.


Properties

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added


Functions

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead


Aliases

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

renoise.Views.XYPad

A slider like pad which allows for controlling two values at once. By default it freely moves the XY values, but it can also be configured to snap back to a predefined value when releasing the mouse button.

All values, notifiers, current value or min/max properties will act just like a slider or a rotary's properties, but nstead of a single number, a table with the fields {x = xvalue, y = yvalue} is expected, returned.

 +-------+
 |    o  |
 |   +   |
 |       |
 +-------+

Properties

active : ControlActive

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

midi_mapping : ControlMidiMappingString

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

visible : ViewVisibility

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

origin : ViewOrigin

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

width : ViewDimension

Deprecated. Use property size instead.

height : ViewDimension

Deprecated. Use property size instead.

size : ViewSize

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

tooltip : ViewTooltip

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

cursor : ViewCursorShape

The cursor cursor for this view which apears on mouse hover. Using a "none" shape will use use underlying view's cursor or the default cursor.

views : renoise.Views.View[]

READ-ONLY Empty for all controls, for layout views this contains the layout child views in the order they got added

min : XYPadMinValues

A table of allowed minimum values for each axis

  • Default: {x: 0.0, y: 0.0}

max : XYPadMaxValues

A table of allowed maximum values for each axis

  • Default: {x: 1.0, y: 1.0}

value : XYPadValues

A table of the XYPad's current values on each axis

snapback : XYPadSnapbackValues?

A table of snapback values for each axis When snapback is enabled, the pad will revert its values to the specified snapback values as soon as the mouse button is released in the pad. When disabled, releasing the mouse button will not change the value. You can disable snapback at runtime by setting it to nil or an empty table.


Functions

add_view(self, child : renoise.Views.View)

Add a new child view to this view.

remove_view(self, child : renoise.Views.View)

Remove a child view from this view.

swap_views(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Swap position of two child views in this view. With a series of swaps views can be moved to any position in the parent.

add_child(self, child : renoise.Views.View)

Deprecated. Use add_view instead

remove_child(self, child : renoise.Views.View)

Deprecated. Use remove_view instead

swap_childs(self, child1 : renoise.Views.View, child2 : renoise.Views.View)

Deprecated. Use swap_views instead

add_notifier(self, notifier : XYValueNotifierFunction)

Add value change notifier

remove_notifier(self, notifier : XYValueNotifierFunction)

Remove value change notifier


Aliases

ControlActive

boolean

Instead of making a control invisible, you can also make it inactive. Deactivated controls will still be shown, and will still show their currently assigned values, but will not allow changes. Most controls will display as "grayed out" to visualize the deactivated state.

ControlMidiMappingString

string

When set, the control will be highlighted when Renoise's MIDI mapping dialog is open. When clicked, it selects the specified string as a MIDI mapping target action. This target acton can either be one of the globally available mappings in Renoise, or those that were created by the tool itself. Target strings are not verified. When they point to nothing, the mapped MIDI message will do nothing and no error is fired.

SliderMaxValue

number

The maximum value that can be set using the view

  • Default: 1.0

SliderMinValue

number

The minimum value that can be set using the view

  • Default: 0

SliderNumberValue

number

The current value of the view

ViewCursorShape

"busy" | "change_value" | "crosshair" | "default" | "drag" | "drop" | "edit_text" | "empty" | "erase" | "extend_bottom" | "extend_bottom_alias" | "extend_left" | "extend_left_alias" | "extend_right" | "extend_right_alias" | "extend_top" | "extend_top_alias" | "marker" | "move" | "nodrop" | "none" | "pencil" | "play" | "resize_edge_diagonal_left" | "resize_edge_diagonal_right" | "resize_edge_horizontal" | "resize_edge_vertical" | "resize_horizontal" | "resize_vertical" | "zoom" | "zoom_horizontal" | "zoom_vertical"

-- The cursor cursor for this view which apears on mouse hover.
-- Using a "none" shape will use use underlying view's cursor or the default cursor.
ViewCursorShape:
    | "none"
    | "empty"
    | "default"
    | "change_value"
    | "edit_text"
    | "pencil"
    | "marker"
    | "crosshair"
    | "move"
    | "erase"
    | "play"
    | "drag"
    | "drop"
    | "nodrop"
    | "busy"
    | "resize_vertical"
    | "resize_horizontal"
    | "resize_edge_vertical"
    | "resize_edge_horizontal"
    | "resize_edge_diagonal_left"
    | "resize_edge_diagonal_right"
    | "extend_left"
    | "extend_right"
    | "extend_top"
    | "extend_bottom"
    | "extend_left_alias"
    | "extend_right_alias"
    | "extend_top_alias"
    | "extend_bottom_alias"
    | "zoom_vertical"
    | "zoom_horizontal"
    | "zoom"

ViewDimension

string | integer

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size for example vb:text { width = "80%"}. The percentage values are relative to the view's parent size and will automatically update on size changes.

ViewOrigin

{ 1 : ViewPosition, 2 : ViewPosition } | { x : ViewPosition, y : ViewPosition }

The position of a view within its parent view. Only the stack layouts allows to freely position child views. Other layout views will automatically set the origin, but the origin then still can be read in for example mouse handlers.

ViewPosition

integer

Horizontal (x) or Vertical (y) position of a view within its parent view.

ViewSize

{ 1 : ViewDimension, 2 : ViewDimension } | { height : ViewDimension, width : ViewDimension }

The dimensions of a view has to be larger than 0. For nested views you can also specify relative size, for example vb:text { size = { width = "80%", height = 20}}. The percentage values are relative to the view's parent size and will automatically update when the parent view's size changes.

ViewTooltip

string

A ViewTooltip text that should be shown for this view on mouse hover.

  • Default: "" (no tip will be shown)

ViewVisibility

boolean

Set visible to false to hide a view (make it invisible without removing it). Please note that view.visible will also return false when any of its parents are invisible (when its implicitly invisible).

  • Default: true

XYPadMaxValues

{ x : SliderMaxValue, y : SliderMaxValue }

A table of allowed maximum values for each axis

  • Default: {x: 1.0, y: 1.0}

XYPadMinValues

{ x : SliderMinValue, y : SliderMinValue }

A table of allowed minimum values for each axis

  • Default: {x: 0.0, y: 0.0}

XYPadSnapbackValues

{ x : number, y : number }

A table of snapback values for each axis When snapback is enabled, the pad will revert its values to the specified snapback values as soon as the mouse button is released in the pad. When disabled, releasing the mouse button will not change the value. You can disable snapback at runtime by setting it to nil or an empty table.

XYPadValues

{ x : SliderNumberValue, y : SliderNumberValue }

A table of the XYPad's current values on each axis

XYValueNotifierFunction

(value : XYPadValues)

Lua Module Extensions

debug


Functions

start()

Shortcut to remdebug.session.start(), which starts a debug session: launches the debugger controller and breaks script execution. See "Debugging.md" in the documentation root folder for more info.

stop()

Shortcut to remdebug.session.stop: stops a running debug session

Global


Functions

tostring(pattern_line : renoise.PatternLine)

->string

Serialize a line.

ripairs(table : <T:table>)

->fun(table: [], i?: integer):integer, , <T:table>, i : integer

An iterator like ipairs, but in reverse order.

examples:

t = {"a", "b", "c"}
for k,v in ripairs(t) do print(k, v) end -> "3 c, 2 b, 1 a"

objinfo(object : userdata)

->string[]

Return a string which lists properties and methods of class objects.

oprint(object : userdata)

Dumps properties and methods of class objects (like renoise.app()).

rprint(value : any)

Recursively dumps a table and all its members to the std out (console). This works for standard Lua types and class objects as well.

class(name : string)

->function

Luabind "class" registration. Registers a global class object and returns a closure to optionally set the base class.

See also Luabind class

examples

---@class Animal
-- Construct a new animal with the given name.
---@overload fun(string): Animal
Animal = {}
class 'Animal'
  ---@param name string
  function Animal:__init(name)
    self.name = name
    self.can_fly = nil
  end
  function Animal:show()
    return ("I am a %s (%s) and I %s fly"):format(self.name, type(self),
      (self.can_fly and "can fly" or "can not fly"))
  end

-- Mammal class (inherits Animal functions and members)
---@class Mammal : Animal
-- Construct a new mamal with the given name.
---@overload fun(string): Mammal
Mammal = {}
class 'Mammal' (Animal)
  ---@param name string
  function Mammal:__init(name)
    Animal.__init(self, name)
    self.can_fly = false
  end

-- show() function and base member are available for Mammal too
local mamal = Mammal("Cow")
mamal:show()

type(value : any)

->string

Returns a Renoise class object's type name. For all other types the standard Lua type function is used.

examples:

class "MyClass"; function MyClass:__init() end
print(type(MyClass)) -> "MyClass class"
print(type(MyClass())) -> "MyClass"

rawequal(obj1 : any, obj2 : any)

Also compares object identities of Renoise API class objects. For all other types the standard Lua rawequal function is used.

examples:

print(rawequal(renoise.app(), renoise.app())) --> true
print(rawequal(renoise.song().track[1],
renoise.song().track[1]) --> true
print(rawequal(renoise.song().track[1],
renoise.song().track[2]) --> false

io


Functions

exists(filename : string)

->boolean

Returns true when a file, folder or link at the given path and name exists

stat(filename : string)

->result : Stat?, error : string?, error_code : integer?

Returns a table with status info about the file, folder or link at the given path and name, else nil the error and the error code is returned.

chmod(filename : string, mode : integer)

->result : boolean, error : string?, error_code : integer?

Change permissions of a file, folder or link. mode is a unix permission styled octal number (like 755 - WITHOUT a leading octal 0). Executable, group and others flags are ignored on windows and won't fire errors


Structs

Stat

return value for io.stat


Properties

dev : integer

device number of filesystem

ino : integer

inode number

mode : integer

unix styled file permissions

number of (hard) links to the file

uid : integer

numeric user ID of file's owner

gid : integer

numeric group ID of file's owner

rdev : integer

the device identifier (special files only)

size : integer

total size of file, in bytes

atime : integer

last access time in seconds since the epoch

mtime : integer

last modify time in seconds since the epoch

ctime : integer

inode change time (NOT creation time!) in seconds

math


Functions

lin2db(n : number)

->number

Converts a linear value to a db value. db values will be clipped to math.infdb.

examples:

print(math.lin2db(1.0)) --> 0
print(math.lin2db(0.0)) --> -200 (math.infdb)

db2lin(n : number)

->number

Converts a dB value to a linear value.

examples:

print(math.db2lin(math.infdb)) --> 0
print(math.db2lin(6.0)) --> 1.9952623149689

db2fader(min_dB : number, max_dB : number, dB_to_convert : number)

->number

Converts a dB value to a normalized linear fader value between 0-1 within the given dB range.

examples:

print(math.db2fader(-96, 0, 1)) --> 0
print(math.db2fader(-48, 6, 0)) --> 0.73879611492157

fader2db(min_dB : number, max_dB : number, fader_value : number)

->number

Converts a normalized linear mixer fader value to a db value within the given dB range.

examples:

print(math.fader2db(-96, 0, 1)) --> 0
print(math.fader2db(-96, 0, 0)) --> -96

os


Functions

platform()

->``"LINUX" | "MACINTOSH" | "WINDOWS"

Returns the platform the script is running on:

return #1:
    | "WINDOWS"
    | "MACINTOSH"
    | "LINUX"

currentdir()

->path : string

Returns the current working dir. Will always be the scripts directory when executing a script from a file

dirnames(path : any)

->paths : string[]

Returns a list of directory names (names, not full paths) for the given parent directory. Passed directory must be valid, or an error will be thrown.

filenames(path : string, file_extensions : string[]?)

->paths : string[]

Returns a list file names (names, not full paths) for the given parent directory. Second optional argument is a list of file extensions that should be searched for, like {".wav", ".txt"}. By default all files are matched. The passed directory must be valid, or an error will be thrown.

mkdir(path : string)

->boolean?, string?

Creates a new directory. mkdir can only create one new sub directory at the same time. If you need to create more than one sub dir, call mkdir multiple times. Returns true if the operation was successful; in case of error, it returns nil plus an error string.

move(src : string, dest : string)

->boolean?, string?

Moves a file or a directory from path 'src' to 'dest'. Unlike 'os.rename' this also supports moving a file from one file system to another one. Returns true if the operation was successful; in case of error, it returns nil plus an error string.

tmpname(extension : string?)

->string

Changed in Renoises: Returns a temp directory and name which renoise will clean up on exit.

clock()

->number

Replaced with a high precision timer (still expressed in milliseconds)

exit()

Will not exit, but fire an error that os.exit() can not be called

table


Functions

create(t : table?)

->table | tablelib

Create a new, or convert an exiting table to an object that uses the global 'table.XXX' functions as methods, just like strings in Lua do.

examples:

t = table.create(); t:insert("a"); rprint(t) -> [1] = a;
t = table.create{1,2,3}; print(t:concat("|")); -> "1|2|3";

is_empty(t : table)

->boolean

Returns true when the table is empty, else false and will also work for non indexed tables

examples:

t = {};          print(table.is_empty(t)); -> true;
t = {66};        print(table.is_empty(t)); -> false;
t = {["a"] = 1}; print(table.is_empty(t)); -> false;

count(t : table)

Count the number of items of a table, also works for non index based tables (using pairs).

examples:

t = {["a"]=1, ["b"]=1}; print(table.count(t)) --> 2

find(t : table, value : any, start_index : integer?)

->key_or_nil : string | number?

Find first match of value in the given table, starting from element number start_index.
Returns the first key that matches the value or nil

examples:

t = {"a", "b"}; table.find(t, "a") --> 1
t = {a=1, b=2}; table.find(t, 2) --> "b"
t = {"a", "b", "a"}; table.find(t, "a", 2) --> "3"
t = {"a", "b"}; table.find(t, "c") --> nil

keys(t : table)

->table

Return an indexed table of all keys that are used in the table.

examples:

t = {a="aa", b="bb"}; rprint(table.keys(t)); --> "a", "b"
t = {"a", "b"};       rprint(table.keys(t)); --> 1, 2

values(t : table)

->table

Return an indexed table of all values that are used in the table

examples:

 t = {a="aa", b="bb"}; rprint(table.values(t)); --> "aa", "bb"
 t = {"a", "b"};       rprint(table.values(t)); --> "a", "b"

copy(t : table)

->table

Copy the metatable and all first level elements of the given table into a new table. Use table.rcopy to do a recursive copy of all elements

rcopy(t : table)

->table

Deeply copy the metatable and all elements of the given table recursively into a new table - create a clone with unique references.

clear(t : table)

Recursively clears and removes all table elements.

Lua Builtin Types

any

A type for a dynamic argument, it can be anything at run-time.

boolean

A built-in type representing a boolean (true or false) value, see details

function

A built-in type representing functions, see details

integer

A helper type that represents whole numbers, a subset of number

lightuserdata

A built-in type representing a pointer, see details

nil

A built-in type representing a non-existant value, see details. When you see ? at the end of types, it means they can be nil.

number

A built-in type representing floating point numbers, see details

self

A type that represents an instance that you call a function on. When you see a function signature starting with this type, you should use : to call the function on the instance, this way you can omit this first argument.

local object = SomeClass()
object:do_something(123)

string

A built-in type representing a string of characters, see details

table

A built-in type representing associative arrays, see details

unknown

A dummy type for something that cannot be inferred before run-time.

userdata

A built-in type representing array values, see details.