Renoise Forum
A categorized (and biased) list of tools (3.4)
Hey, everyone.
It’s been a while since me and @moloko started gathering different Renoise tools and compiling them into a list. However, we were doing it in a Notion page - and as much as I love it… not accessible for everyone. With this in mind, I decided to transport the list to this forum.
Yes, you can find tools in individual threads and the Renoise tools page, but I just don’t like how things are categorized. Some threads are forgotten, some tools are under older versions but still working, etc…
So my intention is to make it easier to reinstall Renoise or even transport these in my USB stick while also having direct access to the original and updated versions, no headaches and no endless scrolling through dozens of pages.
This list will not contain all possible working tools. It’s highly based on my own preferences, but I guess it can be useful for some people. Lastly, no commercial tools will be included - only free and “pay what you want” ones.
TLDR: Just click one of the following:
Note & Pattern processing (click for more details) Sample & Audio processing (click for more details) Generators (click for more details) Quality of life (click for more details) Others (click for more details)Special thanks to every developer mentioned in this thread.
Suggestions are appreciated. If you want your tool taken down from this thread, please send me a message!
Disclaimer: I’m not the developer of any of these tools and take no credit for anything.
10 posts - 5 participants
Realtime Slicing
Hi, on the SP404 I can play a loop and insert slice marker at the play-head location by hitting a pad, while it’s playing. It gives the slices a more natural feel and groove.
In Renoise, I can only manually add “Add Slice Marker”, by moving the cursor to that point?
Thanks,
Monib
2 posts - 2 participants
Is anyone willing to give me feedback on this script?
Hi all!
I’m working on a simple tool right now, the basic idea is that it can be assigned to a track, and whenever that track plays a note the value and effect column value are sent to an external server where I do other stuff. My impression is that there’s a way to set a callback for a track’s notes which achieves this, but I’m having a little trouble figuring out how to actually do this.
Right now I’m trying something like this:
local function monitor(index) local song = renoise.song() for pos, column in song.pattern_iterator:lines_in_track(index) do -- Not sure what to do here, the idea is to add a notifier to every note in -- the selected track so that when a note plays the on_note callback is -- called with that note as an arg do_something_with_column(column) -- ??? end endI’m also not 100% on what the best way to get an integer channel number in the range 0…8 and a 32/64 bit float from a note, and then (this is more me not being great @ lua) convert them to their byte representation.
Would anyone be willing to take a look at my script? It would be deeply appreciated
github.com FayCarsons/Renoise-ES9-controller/blob/main/lua/main.lua -- Instantiate UDP client singleton if not already instantiated if not _G.ES9_sender then local connection_timeout = 2000 local client, socket_error = renoise.Socket.create_client( "127.0.0.1", 8080, renoise.Socket.PROTOCOL_UDP, connection_timeout ) if socket_error then renoise.app():show_warning("CANT INITIALIZE SOCKET " .. socket_error) else _G.ES9_sender = client end end local client = _G.ES9_sender -- Function to convert an integer to a byte string local function int_to_bytes(value) local bytes = {} for i = 8, 1, -1 do This file has been truncated. show original7 posts - 4 participants
Getting Impulse Tracker Shortcuts?
Hi! I’ve been using IT for years (also moved to Schism Tracker), done stuff with Ableton, and would like to try out using a tracker again. I have a questionl, I’ve been reading the forums, and there was someone who made keyboard IT shortcuts for Renoise, but I have no idea how to import them into Renoise.
Is there any1 here that could help, would really appreciate it
5 posts - 3 participants
Renoise with permut 8 or stutter edit trigger
Hi,
I want to use permut 8, stutter edit in Renoise.
How can I switch the programs via keys?
Thanks in advance
6 posts - 2 participants
Hacked account - Please disregard all recent posts by me
I received some notifications for replies to posts I didn’t make so am assuming someone got into my account. I have reset my password and am going through all the posts I didn’t make and deleting them. The posts themselves were pretty non-sensical but I haven’t posted here for ages so anything that was posted by me within the last few months wasn’t me.
5 posts - 4 participants
"Standard" Pattern Length for Larger LPBs?
I’m still coming to grips with Renoise but after some checking it seems like an easy way to work with 16th note triplets in the program is to use 12LPB, or 6 at the bare minimum. Initially I ran into a spot of trouble with resizing my pattern (expand… expand… nope, gotta rewrite lol) but thankfully I only had one to deal with. Along with increasing the LPB, I increased the pattern length to 192 lines. The math checks out for a 4 bar pattern, but that seems a little long- not to mention far less clean than 64, a power of 2.
That got me thinking, are there any relatively standard pattern lengths that get used for larger LPBs/LPBs that aren’t powers of 2? In that regard, if I wanted to keep the pattern length down, is it better to use the note delay column or the Fractional Notes tool? Additionally, are there any benefits to using one of these methods over the other?
Cheers and thank you for any replies.
8 posts - 6 participants
Renoise *.fxp files
There is this wonderful vst samper from SOnic charge called cyclone (yamaha tx16w emulator )
I’ve sampled hundred of instrumetns in it and always save these as fxp presets from the renoise dialogue .
This basically reloads the machine instanlty and works flawleslly
I just discovered that I can also save and load the machine state directly from the plugin with a dialogue that reads load machine state ( .fxb ) or write machine state (.fxb )
The issue is that apparently the .fxp files created with the renoise dalogue are not compatible with the ones made directly from cyclone and vice versa .
What’s even more weird is that since recenly , windows somehow called the .fxp files a VST patch .
3 posts - 2 participants
Sample loading hangs Renoise
Every time after starting Renoise, trying to load a sample—any sample of any size—takes a really long time and makes Renoise hang, typically for at least 15 seconds. Sample pre-hearing does not cause this, this still works normally, but just the act of loading the sample into an instrument causes the hang. Subsequent loads work fine for the most part, except sometimes randomly the hang still occurs after a while even after Renoise has been running for a while.
This started happening some time in the past year, under one of the 3.4 versions, not sure which one exactly, but it does happen with the latest release. I’m running up to date Windows 10 (22H2), and I don’t have any Antivirus installed. Tried disabling Windows Defender too just to make sure, but doesn’t make a difference.
Demonstration below. Note that every time it started, the first sample load hangs badly, but works fine after that.
https://files.catbox.moe/g429yv.mp44 posts - 2 participants
I bought a used copy Reason 10 ..lol
A long long time ago …( 2005-2006 ) I ‘ve used a not so legalcopy of reason , and curiosity got the most of me so I bought a second hand license of reason 10 , for fun right ?
SO …surprise , you need to be online to launch the program ., ffs ,every time you launch it , let that sink in for a second .
Other then that ,most of the devices haven’t aged soo well and it doesn’t bring me anything that I can’ to in reakotr or pure data or any other decent program -vst .
So a gentle reminder , we as renoise users are so spoiled with the simple registration process .
ONline when launching a program , the fucktards : ) , thank god I got it for a modest price of 75 euro
Rant over
3 posts - 2 participants
Processing DSP FX on Sample
Is it possible to get a progress count in % on this in the status field?
I sometimes use Renoise for processing tape audio recordings with a chain of VST effects. So then I use the TFX-button in the waveform editor - works great but can sometimes take a while to process.
As I’ve seen % on other actions (like rendering a song or previewing a sample) maybe it could be implemented here too?
1 post - 1 participant
Marbles, Microwaves & Vibrating lines
Freeze Track Snippet
@esaruoho had a question and problem rendering a track, in order to “freeze” it.
Here’s a snippet on how this could work. Maybe this helps others too. I think this has been done in other tools as well:
-- Define render state (initialized when starting to render) local render_context = { source_track = 0, target_track = 0, target_instrument = 0, temp_file_path = "" } -- Callback function to load the rendered file into a sample buffer -- of the first sample of the first instrument function rendering_done_callback() local song = renoise.song() song:describe_undo("Freeze Track") local source_track = song:track(render_context.source_track) -- Turn All Render Track Note Columns to "Off" for i=1,source_track.max_note_columns do source_track:set_column_is_muted(i, true) end -- Collapse Render Track source_track.collapsed = true -- Unsolo Source Track source_track:solo() -- Insert New Track Next to Render Track local target_track = song:insert_track_at(render_context.target_track) song.selected_track_index = render_context.target_track -- Rename New Track using Render Track Name target_track.name = (render_context.source_track .. " Rendered") -- Insert C-4 + Rendered Instrument number to Rendered Track local target_pattern = song:pattern(1):track(render_context.target_track) local target_note_column = target_pattern:line(1):note_column(1) target_note_column.note_string = "C-4" target_note_column.instrument_value = render_context.target_instrument - 1 -- Create New Instrument local target_instrument = song:insert_instrument_at(render_context.target_instrument) target_instrument.name = target_track.name -- Load the rendered audio file into the sample buffer local target_sample_buffer = target_instrument:insert_sample_at(1).sample_buffer target_sample_buffer:load_from(render_context.temp_file_path) os.remove(render_context.temp_file_path) end function freezeTrack() local song = renoise.song() song:describe_undo("Freeze Track") -- Set render context render_context.source_track = song.selected_track_index render_context.target_track = render_context.source_track + 1 render_context.target_instrument = #song.instruments render_context.temp_file_path = os.tmpname(".wav") -- Solo Source Track local source_track = song.tracks[render_context.source_track] if not source_track.solo_state then source_track:solo() end -- Render Selected Track local render_options = { sample_rate = 44100, bit_depth = 32, interpolation = "precise", priority = "high", } -- Start rendering with the correct function call local success, error_message = song:render( render_options, render_context.temp_file_path, rendering_done_callback) -- Handle possible errors during the render initiation if not success then renoise.app():show_error("Rendering failed: " .. error_message) end -- Rest is done when rendering finished end freezeTrack()1 post - 1 participant
How to define start_pos end_pos for render
how do i set start_pos + end_pos to be “the selection in track”? or how to define “the whole song”?
-- Optionally, set start_pos and end_pos if you want to render a specific part of the song1 post - 1 participant
Released my 2nd VST3 plugin! Anyone willing to give it a spin?
Hi!
This is sort of a follow-up to Released my first VST3 plugin / beta testers needed.
The new project is over here https://www.kvraudio.com/product/firefly-synth-by-sjoerdvankreel and here GitHub - sjoerdvankreel/firefly-synth: Semi-modular synthesizer and FX plugin for Windows, Linux and Mac, VST3 and CLAP..
With a bugfix in Renoise 3.4.4 (Possible (probable?) bug w.r.t. vst3 parameter flushing - #9 by ffx) firefly synth should now run fine in renoise as long as you stick to a single version of the plugin. Although I still cannot “officially” support renoise untill this Saved automation data does not respect VST3's parameter id is resolved or I find a workaround myself.
Major changes wrt the previous project (InfernalSynth):
- Win/Lin/Mac support
- FM support
- Distortion module
There’s some Renoise-specific demo material over here: firefly-synth/demos/demo at main · sjoerdvankreel/firefly-synth · GitHub.
Thanks to all who helped me out last year, and any feedback welcome on the new project.
-cheers, Sjoerd
1 post - 1 participant
Linux system realtime performance tuning
Hey people. I’ve just come around another thread, and found info on how to make a Linux system ready for realtime audio performance a bit lacking.
I don’t know what audio optimizied distros preconfigure in this regard. But you can make many other distributions realtime ready with a few tunings.
There are already some rather nice pages on this like https://wiki.linuxaudio.org/wiki/system_configuration, but I think it’d be cool to have a more simple guideline on what methods to try to make a machine ready for stable realtime renoise action.
Here’s what I do on Ubuntus and it probably applies well to other distos, as well. Some steps are straighforward to give more stability, others only work when you have specific hardware problems.
Each step can have the potential to make the system a little more realtime stable. I think I will write them in the order that you may apply them or try applying them when tuning a system until you’re satisfied. You should test your performance i.e. with cyclictest after applying more specific steps each time you change something in your system.
The first 3 steps I’d always apply first are:
-
stop all background (user or decorative) programs you don’t need. You can run other tools, but try to avoid unnecessary candy or other ressource-intensive programs.
-
Activating the RT priorities, rtprio+memlock, this is distro specific i.e. with dpkg reconfigure or manually in limits.conf or with another package manage, or sometimes it can be done while installing things like jack
-
The next vital step is turning off CPU frequency stepping. Each time the CPU switches, the realtime audio can get corrupted due to the delay. I use the command cpupower frequency-set -g performance (or cpupower frequency-set -g powersave to disable), and put it into a suoders enabled script that is executed before starting the jack server (and another one after closing it down to reset the tuning). Take care with this step, only do it on a system that is safe to run at thermal load. You may have to or want to use other programs that cpupower, or use different frequency mode names. On older systems of Ubuntu it may have been necessary to disable a daemon in Ubuntu that would reset the CPU to ondemand or powersave, you can do such things in the same script.
-
The third seems to be file system/sata driver related, on many systems I need to put the mount options of the system drives and other drives the system is using during audio load to “noatime”, else the system will have a lot of dropouts.
-
General tuning means not allowing intensive jobs running in the background of the computer. Uninstall or stop automatic tasks that eat your CPU or do background processing. You can do this (turning on and off) like I do in the script that would switch CPU scaling when starting the audio server. I of use my PC and internet for other tasks or to assist tracking while running renoise, but it’s better not to let it do other demanding things at the same time.
After this tuning, I’d test the system, it should already be much more stable. The next steps depend on what kind of system you are using and your hardware or kernel. Sometimes these things only make sense, when you’re sure of what you’re doing and when you’re doing it right.
- Use a tuned kernel, lowlatency or realtime…sometimes it will help very much, sometimes, if the culprit is some odd hardware misconfiguration or incompatibility it may seem that it doesn’t help, at first
- You can always try disabling certain devices like wifi or bluetooth, especially external dongles or connected devices if you are using an USB sound card. Howerver the next step can address issues coming from this while still allowing other devices being used
- The rtirq script is something very good when you configure it right, and it can become even more powerful if you use a proper lowlatency or realtime kernel that would support such action. You need to put your sound card interrupt high up above the priority list, and put anything nonvital related to hardware to sound processing below the audio threads of the sound program and also below the audio server (jack…). If using USB, you may have to tweak and poke a little, even disabling devices, to find that magic USB jack that is not jammed up by other devices and that you could individually priorize to get a stable sound
- maybe you can also have performance gains if you configure even more aggressive file system tunings like disabling journaling or using alternate file systems. I find noatime usually already cuts this well. You’ll see if you monitor latency, when a lot of file system related tasks break the realtime audio you need to do more about it.
- graphics drivers often come in multiple flavors, i.e. proprietary and open source. If you find you have the choice to use either without drawbacks, or have problems with one of them, you might find that using the other one can give you a better realtime performance. Also there may be different graphics driver options that can affect the realtime performance, so this is also a place to investigate if the driver makes problems.
- You can try to disable further CPU speed stepping or sleep modes, to reduce the amount of lag due to CPU spikes. Somtimes this can be done in the bios, or with special tools. Take much care with this what you do, so you don’t mess up your CPU scaling or overheat devices not cooled well enough. Even if you use a system of full throttle with audio only giving it a low load, there may suddenly come situations where all cores are maxed for a while (rendering etc.), and then you need a pc that keeps cool. Keep checking the lm-sensors!
So this is what I found are the most vital steps to try. For troubleshooting when unexpected problems occur (xruns keep rolling in despite all rteasonable tunings done), then you need tools to investigate the problem.
The latencytop, cyclictest and hwlatdetector, and similar are way better than just starting jack and looking for the xrun counter, or even just using alsa and listening for gaps. If you know a hardware/system latency by long term realistic measurements in µs, i.e. 1200 or 260, then you know that there will be a possibility for hardware dropouts as long as that number of microseconds, i.e. there will be 1.2ms dropouts, or 0.26ms. This is the numbers that tools like cyclictest or hwlatdetector spit out. This means, i.e. for a latency of 5ms, you have to assume that the CPU can only handle so much load until the operation would be interrupted by a stray or regular latency dropout that is i.e 1.2 or 0.26 ms long. So the lower the measurement, the better the system is and the lower your latency can go.
Cyclictest measures how well your audiothread can process. Hwlatdetector measures if there are system calls (SMI) from the BIOS, which the operating system cannot see. This is stuff you cannot interrupt, so if you have long SMIs, then you have to either tweak the BIOS, or you have to swap the hardware or use a different system, if the SMIs make it too unstable and when you cannot resolve them. This is why some machines can be better for realtime load than others, i.e. workstation computers might fare better than some cheap consumer gear. Somtimes you have odd situations where it’s the other way around, then a cheap PC is really good, while an expensive one decides to calculate lots of system optimizations in BIOS that break your realtime performance…
tools like latencytop then again can help you finding certain tasks that jam up your system, i.e. when you find some “jdb” threads blocking everything, then you may know that the file system driver is jamming things up and you need to tune or disable atime or journalling, or it may be a thread related to another user space process locking the system for too long.
The last and ultimate rabbit hole when you cannot find the culprit is stuff like ftrace/trace-cmd or perftools i.e. perf sched. This is stuff you need deep knowledge for, but if nothing helps, it may help you debug the kernel and find the kernel/driver module/thread that locks up the interrupts for too long so your sound gets jammed up (and cyclictest will show you by how much…). Sometimes it’s literally individual drivers, and changing options, the driver, or disabling or reconfiguring some hardware can help things. Sometimes it’s and upgrade or downgrade, or you need to fix it with kernel command line options enabling or disabling the culprit. Stuff like this already helped me fixing it by identifying file system tasks (atime) and graphics driver issues as culprit for bad latency stability. I don’t know how many people would go as far as baking their own kernel to fix a problem, I already did this to enable options that would help identifying the problem (ftrace options).
So this has still become a quite lengthy post, but I hope it can help others to make their system more realtime stable. I think you can drive renoise down to 5-8ms latency in jack, but then renoise itself can make problems and cause xruns. You can definitely get a system down to like 1 or 2 ms if you tweak it hard enough and the audio software you are using is not too intensive and optimized well (renoise is not fit for this yet, I believe…). This goes especially for recording or realtime effects applicatoins. I’d rather stay withing 4-8ms to stay safe, because else you need a really stripped down system and still risk hickups when you use more intensive recording software. The lower you go in latency, the more CPU the audio processing will eat. That’s the price of having a low latency.
If you have some experience with tuning your system and want to brag how low it gues, when you know other vital steps to do or consider, or other tools or methods to help tuning or identifying culprits, please post up here. Linux systems tweaked right can give you this solid ship that never breaks and that drives sound like a rocket. A linux system will not do random junk in the background, and even if it does, you’ll be able to find out how to disable this. Keep it rocking!
1 post - 1 participant
Renoise hard crash
Had a hard crash,cant really remember what i was doing.This is the log file
CrashLog: Handling Exception! Code : C0000005
CrashLog: 000000014062AEF7: l9_ippsLn_32f_A21 +25D407
CrashLog: 000000014062AF24: l9_ippsLn_32f_A21 +25D434
CrashLog: 000000014062AF24: l9_ippsLn_32f_A21 +25D434
CrashLog: 000000014062AF24: l9_ippsLn_32f_A21 +25D434
CrashLog: 000000014062AF24: l9_ippsLn_32f_A21 +25D434
CrashLog: 000000014062AF24: l9_ippsLn_32f_A21 +25D434
CrashLog: 000000014062AF24: l9_ippsLn_32f_A21 +25D434
CrashLog: 000000014062AF24: l9_ippsLn_32f_A21 +25D434
CrashLog: 0000000140631061: l9_ippsLn_32f_A21 +263571
CrashLog: 000000014074C6A3: l9_ippsLn_32f_A21 +37EBB3
CrashLog: 0000000140733A5E: l9_ippsLn_32f_A21 +365F6E
CrashLog: 000000014044482A: l9_ippsLn_32f_A21 +76D3A
CrashLog: 0000000140444765: l9_ippsLn_32f_A21 +76C75
CrashLog: 000000014056665A: l9_ippsLn_32f_A21 +198B6A
CrashLog: 00000001407AABF0: l9_ippsLn_32f_A21 +3DD100
CrashLog: 000000014087CAA8: l9_ippsLn_32f_A21 +4AEFB8
CrashLog: 000000014087CC26: l9_ippsLn_32f_A21 +4AF136
CrashLog: 00000001407ACFBA: l9_ippsLn_32f_A21 +3DF4CA
CrashLog: 000000014070C5A2: l9_ippsLn_32f_A21 +33EAB2
CrashLog: 000000014072C63D: l9_ippsLn_32f_A21 +35EB4D
CrashLog: 0000000140768C72: l9_ippsLn_32f_A21 +39B182
CrashLog: 000000014076855C: l9_ippsLn_32f_A21 +39AA6C
CrashLog: 000000014072C63D: l9_ippsLn_32f_A21 +35EB4D
CrashLog: 000000014071FEF4: l9_ippsLn_32f_A21 +352404
CrashLog: 0000000140763058: l9_ippsLn_32f_A21 +395568
CrashLog: 000000014071AAB6: l9_ippsLn_32f_A21 +34CFC6
CrashLog: 000000014071FD26: l9_ippsLn_32f_A21 +352236
CrashLog: 00000001403FD6E3: l9_ippsLn_32f_A21 +2FBF3
CrashLog: 00000001403F8840: l9_ippsLn_32f_A21 +2AD50
CrashLog: 00000001403FDFD6: l9_ippsLn_32f_A21 +304E6
CrashLog: 0000000140DE7E43: l9_ippsLn_32f_A21 +A1A353
CrashLog: 00007FF86C427344: BaseThreadInitThunk +00014
Application: Caught an unhandled fatal exception (Thread: GUI)!
Application: Saving a backup…
CrashLog: Handling Exception! Code : C0000005
CrashLog: 000000014062D5B0: l9_ippsLn_32f_A21 +25FAC0
CrashLog: 000000014062D5DD: l9_ippsLn_32f_A21 +25FAED
CrashLog: 000000014062D5DD: l9_ippsLn_32f_A21 +25FAED
CrashLog: 000000014062D5DD: l9_ippsLn_32f_A21 +25FAED
CrashLog: 000000014062D5DD: l9_ippsLn_32f_A21 +25FAED
CrashLog: 000000014062D5DD: l9_ippsLn_32f_A21 +25FAED
CrashLog: 000000014062D5DD: l9_ippsLn_32f_A21 +25FAED
CrashLog: 000000014062D5DD: l9_ippsLn_32f_A21 +25FAED
CrashLog: 000000014062D1AC: l9_ippsLn_32f_A21 +25F6BC
CrashLog: 0000000140C14B21: l9_ippsLn_32f_A21 +847031
CrashLog: 00000001403F7438: l9_ippsLn_32f_A21 +29948
CrashLog: 000000014071F3E8: l9_ippsLn_32f_A21 +3518F8
CrashLog: 00000001407203D6: l9_ippsLn_32f_A21 +3528E6
CrashLog: 000000014071AD42: l9_ippsLn_32f_A21 +34D252
CrashLog: 000000014071FD3D: l9_ippsLn_32f_A21 +35224D
CrashLog: 00000001403FD6E3: l9_ippsLn_32f_A21 +2FBF3
CrashLog: 00000001403F8840: l9_ippsLn_32f_A21 +2AD50
CrashLog: 00000001403FDFD6: l9_ippsLn_32f_A21 +304E6
CrashLog: 0000000140DE7E43: l9_ippsLn_32f_A21 +A1A353
CrashLog: 00007FF86C427344: BaseThreadInitThunk +00014
CrashLog: 00007FF86D0E26B1: RtlUserThreadStart +00021
1 post - 1 participant
Idea: A Visualization Tool for Learning Renoise Keybindings (Shortcuts)
Renoise keybindings are powerful but difficult to memorize, so I am creating a tool that reads the configuration file and visualizes it on a keyboard layout. I’m not sure if there is any demand for this, so I would like to share the idea here.
I will show you the prototype source code and screenshots.
GitHub GitHub - sdmkun/com.renoise.KeybindVisualizer.xrnxContribute to sdmkun/com.renoise.KeybindVisualizer.xrnx development by creating an account on GitHub.
Current features:
- Reads KeyBindings.xml and visualizes it on a keyboard layout
- Displays keybindings when modifier keys (Ctrl, Shift, Alt) are pressed
Features to be added:
- Support for general keyboard layouts (currently only Japanese layout)
- Automatic loading of currently applied keybindings
- Changing and saving keybindings within the tool
- Display of the numeric keypad
- Improved visibility (e.g., iconizing keybinding categories)
Feel free to share any feedback.
1 post - 1 participant