Renoise Forum
How to create a Lua script to initialize a song?
So I am trying to write a script that initializes a song with 16 tracks, a specific set of effects on each one and does midi mapping on my controller, setting up lights, listeners, etc.
It seems like this should be simple enough, but even when working with GPT, I’m getting confounded by the API and how to look up device names and how to insert them. For reference, the below is the broken script I’m working with, and it fails immediately on trying to insert an effect on a track with the error
failed to instantiate the device ‘Audio Effects/Gainer’. the device is either unknown, or an error happened while initializing it.’
I have zero idea how to start troubleshooting this. For reference, I’m an professional c++ dev and experienced renoise user, but I don’t have Lua experience or experience with the API. It seems like this should be doable ???
– Number of Tracks and Controllers
local NUM_TRACKS = 16
local MIDIMIX_CONTROLLERS = { “MIDImix 1”, “MIDImix 2” } – Adjust names if needed
– Plugin Names (the names we use to later search within a track)
local GAIN_NAME = “MIDIMIX_MUTE_GAIN” – Our renamed gainer
local FILTER_NAME = “Analog Filter”
local SEND_1_NAME = “Send 1”
local SEND_2_NAME = “Send 2”
function ensure_send_tracks()
local song = renoise.song()
local send_count = 0
– Count existing send tracks (they are part of song.tracks)
for _, track in ipairs(song.tracks) do
if track.type == renoise.Track.TRACK_TYPE_SEND then
send_count = send_count + 1
end
end
– Add send tracks if fewer than 2 exist
while send_count < 2 do
song:insert_track_at(#song.tracks + 1)
local new_track = song.tracks[#song.tracks]
new_track.type = renoise.Track.TRACK_TYPE_SEND
new_track.name = "Send Track " … (send_count + 1)
send_count = send_count + 1
end
end
function initialize_tracks()
local song = renoise.song()
– Make sure send tracks exist before modifying our track devices
ensure_send_tracks()
– Create regular tracks if there aren’t enough
while #song.tracks < NUM_TRACKS do
song:insert_track_at(#song.tracks + 1)
end
– Set up each regular track (first NUM_TRACKS tracks assumed to be regular)
for i = 1, NUM_TRACKS do
local track = song.tracks[i]
track.name = "MIDIMIX Track " … i
track.prefx_volume.value = 1.0 – Full volume
end
end
function map_midi_controls()
local song = renoise.song()
for midimix_index, device_name in ipairs(MIDIMIX_CONTROLLERS) do
for i = 1, 8 do – 8 channels per MIDIMix
local track_index = (midimix_index - 1) * 8 + i
if track_index > NUM_TRACKS then break end
local track = song.tracks[track_index]
end
end
initialize_tracks()
map_midi_controls()
renoise.app():show_status(“MIDIMix Setup Complete!”)
1 post - 1 participant
Assigning a Param to Inst Automation
Is there a way to more quickly assign a plugin parameter to a slot in a Inst Autionation module?
For example, instead of having to search it in the dropdown, is there a way to tweak the parameter in the plugin to get it to show up like in other daws? If not, it would be a nice feature
1 post - 1 participant
Please help me figure out mapping parameters
2 different fm synth vst’s. Both can play 4 operator sounds but one can’t load sysex files so I want to map their shared parameters together to see if I can roughly recreate the sounds. I.e matching the operator 1 ratio.
I can view all the appropriate parameters in Renoise/Ableton but I can’t figure out linking 2 params together, preferably with formulas involved where necessary. The ideal goal would be that I load a sysex preset in one synth and all the shared parameters ping into place on the other synth. Converting preset hex files was above my paygrade and I fear the workaround is too…
Any thoughts or advice?
1 post - 1 participant
Changing global UI scaling does not update width of Lua API text widgets
This is relatively easy to test. In a window tool just type text with
vb:text { text = “the text bla bla bla” }
Try it with different envelopes (row, horizontal_aligner…), you will see that it does not affect.
What happens is that when changing the scale (Renoise: Edit / Preferences / GUI / Global / User interface scaling) , the envelope box of vb_text does not adapt correctly to the width of the written text. It seems that in most cases the width is a little reduced. This causes the “. .”, when it should not happen. As I understand it, the problem is in vb:text{}, and not in other wrappers.
For example, a text like this:
today is a good day
will appear something like:
today is a good d . .
If the text is longer it seems like you could remove more letters.
If after this happens, you can run “Tools / Reload all tools” this issue disappears, and it is displayed correctly.
2 posts - 2 participants
Linux: Crackling in Renoise V3.5.0 b2, but not in 3.4.4
Sorry for posting another possible plugin issue (not sure yet), but it’s not present in Renoise 3.4.4.
Here’s a small Renoise file that uses the TAL G-Verb Plugin (TAL Software) and the TAL Bassline VST, which I bought and which are both registered. When looping the first two patterns there’s an occasional crackling (quite subtle, but visible also in the in-built spectrum analyzer). The crackling is also present without the reverb, but it is much more obvious (or just stronger?) when using the reverb.
I replaced the TAL Reverb with mpReverb and it’s also crackling.
It seems more frequent directly after loading the project. Keep it running for some loops otherwise you might miss it. When I close Renoise it’s also weirdly crackling.
In Renoise 3.4.4 there’s no such crackling in the same project. Of course I tried all VST options:
test_crackle.xrns (88.9 KB)
Hope it’s reproducible. When rendering the project it sounds fine.
5 posts - 2 participants
Automation recording based on ticks
Would be possible (without changing a lot of code) if Renoise starts recording parameters changes based on ticks, not lines? Only in drawn automation mode, not when automation is saved as commands of course.
2 posts - 2 participants
Preventing sample slot from being renamed
Is it possible to drag samples into sample slots without renaming the slot to the new sample name?
I have a GM drum template and want to keep the original labels, not the newly imported sample’s names.
1 post - 1 participant
Quick way to implement "device parking" maybe
Bitwig has that very helpful functionality for device parking, so the device is completely disabled and no pdc is added anymore. This is very helpful e.g. for PDC intense mastering processors, which you do not need while composing and mixing (while low latency and cpu usage matter a lot).
Maybe such a mechanism actually could be quite easy added:
If the plugin identifer was some kind of an “observable”, Renoise could append a prefix to the identifier like “sleeping_”, and the device wouldn’t be found anymore (it actually would have to reinitialize/reload). I think this logic already is already at least partly implemented, it is the same as a plugin was not installed. Then Renoise does not loose any automation and settings of the plugin and uses a placeholder.
So the only addition would be that reloading / reinitalization and changing of the plugin identifer. The data structure could stay untoched. Reloading might be helpful for the sandbox, too. If a plugin crashed in the sandbox, it simply can be reloaded (even automatically), just like in Bitwig. I actually don’t know if this is already the case in Renoise, since I never use the sandbox…
What do you think?
1 post - 1 participant
How to route a midi input or track notes to 2 vstis?
I wonder if it would be somewhat possible to have one track with notes, which then plays two vstis…
Let’s say there was a MIDI VSTi generator plugin which simply passes thru midi, could this midi generator used by multiple instruments then?
2 posts - 1 participant
Live recording on two assignable tracks at the same time from a MIDI keyboard
I’ve been thinking about this for a long time because I consider it essential for piano composition.
I would like to know if there is a way to do the following (I’ll give a concrete example):
-
Use an 88-key USB MIDI keyboard
-
Assign 2 tracks somewhere, track L and track R
-
Assign a centered cutoff note somewhere, for example C-4.
-
Record live in the normal way only one instrument, for example a VSTi or a native piano instrument.
-
Have the live recording cumulatively deposit from note C-0 to note B-3 on track L and from note C-4 to note B-9 on track R.
Is there any possible way to do this?
Points to consider:
- The native Renoise configuration.
- The API and your MIDI input.
- The API and your OSC.
In short, I think composers should have a method to be able to do this, to be able to split our physical piano and record live playing with two hands.
This is very useful because it allows us to separate the notes into 2 tracks according to 2 frequency ranges (at least) and treat them separately. For example, if you want to modify the left hand accompaniment melody to make it much more complex, this would allow you to do so.
If all the notes are recorded live on one track, we have the note recording completely mixed together and this is impossible. Remember that Renoise has a peculiar way of recording notes live, accumulating them in the leftmost note column that is free. The idea would be to achieve the same thing but with at least 2 tracks at a time.
I am working on a post-performance function that can separate the notes in some way, but it is tedious and I think if direct recording on multiple tracks was possible it would be great.
Does anyone know if this is already possible and I am missing something?
If this is not possible I would like to formally request this capability for a future version of Renoise. I am surprised that as a tracker these things are not possible.
1 post - 1 participant
Bug: "Remove" is not findable on Key Bindings
so here i am, trying to set backspace to be “Remove”, instead, it’s not Remove, it’s… Delete Selected?
so after i set Backspace for Delete Selected, suddenly “Remove” is selected.
could some of the matching menu entries match the naming of what the shortcut is named as, if there’s a shortcut for it?
1 post - 1 participant
Suggestion: Automate-able Sample Looping points (Start/End)
Something Ive wanted to control over for a long time is sample Looping points via automation.
I am pretty certain some artists like Aphex Twin were doing this in the 90s using whatever crazy tools he had. Most samplers let you change the Sample Start, Loop Start and end points, but those parameters are not exposed for automation/control over time. The first one ive seen that lets us do this Amigo by PotenzaDSP, and Im not even sure it was intentional at first. It would be awesome if Renoise could exposed Sample Start, Loop Start point, Loop End point and Sample End points to Automation. Or make a way for us to bind them to Macros.
This allows for some very interesting results over time that we can’t quite do with the usual tracker setup, nor most other DAWs as far as I know. Its just kind of hilarious, I don’t think most people realize we can finally do this using Amigo, or the potential of it and its awesome. Please bring this to Renoise too so we can do it using the built-in sampler as well with all of its tracker features
[edit]:
To add to this, I can see that it could pose an issue when it comes to using many slice markers, but if even with Amigo, this really shines when using individual drums/samples, not full breaks with slice markers. So i could see there being some limitations to this.
3 posts - 2 participants
Peak indicator on every channel, inside the post mixer device
Hi,
this little peak indicator on the master channel is very helpful:
Could this be placed on every channel into the post volume device, too? This would be quite helpful I think. The gainer device would profit from this, too.
What do you think?
1 post - 1 participant
Omnisphere Crack 94fbr PC Software Download Latest 2025
Omnisphere Crack 2025 is a precise wave function solution that is usually integrated with various numbers that you can interrupt to recover the available performance. Show off the flagship spectrum synthesizer and individual power in utilizing essential sources. The task is versatile here, it shows exceptional sound enhancement that creates inspiration. Different aspects of sound near the same stage where important conduct on sound settings was performed, found an accessible resource with amazing results for this.
Download Link
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1 post - 1 participant
Frequent Redux crashes in REAPER
Hello:
I have been getting frequent crashes while using Redux in REAPER for many months now. I’m not able to reproduce it, as I don’t notice any specific action that causes it. IIRC, it has occurred while loading instruments, editing samples, and while not directly interacting with the Redux GUI at all.
Below are the details of 2 Windows Event errors that occurred when REAPER/Redux crashed.
This first error occurred immediately after loading an XRNI and playing a note or two:
Faulting application name: reaper.exe, version: 7.3.3.0, time stamp: 0x679fbd84
Faulting module name: ntdll.dll, version: 10.0.19041.5007, time stamp: 0x688f8c4b
Exception code: 0xc0000005
Fault offset: 0x00000000000a6d42
Faulting process id: 0x2e80
Faulting application start time: 0x01db78f048d1bcf7
Faulting application path: C:\Program Files\REAPER (x64)\reaper.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Report Id: 57532b60-c0b3-41b2-8483-eb39005c1464
Faulting package full name:
Faulting package-relative application ID:
Then I tried setting the REAPER option “Run as > Separate Process” for Redux.
I tried to make Redux crash again by playing aggressively with the Redux controls and loading many different instruments. It took probably ~30 minutes to make this crash happen.
I think this occured when the Redux window was closed and playing a sample, and I was removing a different effect from the FX Chain of the REAPER track that also contained Redux. This time REAPER didn’t crash, but Redux stopped playing audio and the GUI disappeared.
Here is the error from the Windows Event Viewer:
Faulting application name: reaper_host64.exe, version: 0.0.0.0, time stamp: 0x679fbb50
Faulting module name: ntdll.dll, version: 10.0.19041.5007, time stamp: 0x688f8c4b
Exception code: 0xc0000374
Fault offset: 0x00000000000ff3c9
Faulting process id: 0x1a50
Faulting application start time: 0x01db78f3cf712dac
Faulting application path: C:\Program Files\REAPER (x64)\Plugins\reaper_host64.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Report Id: 0437595f-4c11-4826-9d45-bdf73f231112
Faulting package full name:
Faulting package-relative application ID:
I will also attach the Redux log file. A few days ago, installed a new hard drive and reinstalled my OS so there aren’t many entries. I believe the 2 errors discussed above would be the last two entries to the log file.
Log.txt (13.5 KB)
MY SYSTEM SPECS:
Redux version: 1.3.5 (Dec 21 2023)
Reaper version: 7.33/win64 (has also happened with earlier versions of REAPER)
Operating System: Windows 10 Home 64-bit (10.0, Build 19045) (19041.vb_release.191206-1406)
Processor: Intel(R) Core™ i7-4770 CPU @ 3.40GHz (8 CPUs), ~3.4GHz
Memory: 8192MB RAM
DirectX Version: DirectX 12
User DPI Setting: 96 DPI (100 percent)
DirectX Database Version: 1.0.8
Graphics:
Card name: Intel(R) HD Graphics 4600
Display Memory: 2160 MB
Dedicated Memory: 112 MB
Shared Memory: 2048 MB
Current Mode: 1366 x 768 (32 bit) (60Hz)
1 post - 1 participant
Scrolling to top in the pattern matrix and starting play leads to repetition
Using a mac and a apple trackpad, if you scroll to top in the pattern matrix (while mouse pointer is above the matrix) and then quickly replaying the song, the first pattern will be repeated (e.g. if its length is only 16 lines). The faster you replay, the more often the pattern will be replayed. It feels like Renoise still tries to scroll up, deaccelerating the scroll-animation or something. But such an acceleration curve is not required in this case, if you reach the end or start of the matrix, the scrolling then abruptly stops and acceleration buffer should be reset.
1 post - 1 participant
ESC cancels Sample Recorder recording or - if not recording, then closes the Sample Recorder
Steps to replicate:
- Open Sample Recorder2.
- Press ESC
Expected: Edit Mode is turned on ,Sample Recorder stays
Currently: Sample Recorder gets closed.
Steps to replicate:
- Open Sample Recorder
- Start recording.
- Press ESC
Expected: Edit Mode is turned on ,Sample Recorder stays open and keeps recording
Currently: Sample Recorder stops recording and cancels the recording = data loss.
please please please.
How to stop Sample Recorder Dialog from closing on Esc? ← 2018
Configurability so that ESC does not shut down Sample Recorder during recording(!) Ideas & suggestions i’ve lost so many recordings by pressing esc to toggle edit_mode = on → there it is, sample gone. any chance we could decide which shortcut closes the dialog? API-solution? How to stop Esc from closing Sample Record Dialog? Renoise Tool Development Hi, I’m wondering, how could I absolutely, and once and for all, stop Esc from closing the Sample Record Dialog? Do I need to have some sort of GUI window open that relays Esc only to the pattern editor or…? How to detect if Sample Recorder is recording? Beginners Lua API Sandbox Hi, is there some way of detecting if the Sample Recorder is recording or not? I use Esc for edit mode on/off, but Esc also cancels (!) and hides the sample recorder. How would I go about detecting that if the Sample Recorder is recording, then either stop recording, or at least don’t hide the sample recorder dialog. EDIT: what i’m seeing is / are: -- Dialog for recording new samples, floating above the main window. renoise.app().window.sample_record_dialog_is_visible -> [boolean] -- Sta…1 post - 1 participant
macOS: Error with SixSines VST3
Hi,
Do a rescan. The below message will appear (I guess due to an error in the nightly build). The problem is now, if you press [OK], Renoise will force quit. I think that should not happen. Also the message is a bit vague, and I already did a rescan.
2 posts - 1 participant
Bad render when using Phrases
Hello, long time Renoise user here.
I decided to write, because it’s probably the first time I noticed such annoying bug (feature?).
When using combo of:
- Instrument with set Phrase
- Oxx effect
- Offline rendering
The render comes out bad. It’s like, when the note is triggered, you can hear previous note right before it.
Try it for yourself
test.xrns (5.0 KB)
1 post - 1 participant