Multiple Renoise instances running as ReWire slaves

I often slave Renoise to another DAW, using 64-bit ReWire. The thing is that the DAW can only register one Renoise instance as a ReWire object, while Renoise itself can be opened in several instances.

What I’d like to suggest is that Renoise gets compiled into several locations on the HDD, with some kind of independent ReWire object, so that essentially we get:

Renoise #1
Renoise #2
Renoise #3

…etc.

I don’t know the technical limitations here, but since the host can slave several ReWire objects (Renoise, Reason, Melodyne, etc) running at the same time, I started to wonder if it wouldn’t be possible to somehow “trick” the system into thinking that several Renoise instances would be treated as different ReWire clients/slaves.

Why this would be so great and useful?

Because then we have a dedicated Renoise instance for e.g. drums, and have the possibility to just swap the entire .xrns on the fly. This would make it possible to have a faster workflow when Renoise is used in conjunction with another DAW.

ReWire itself has some limitations so i suspect that there aren’t ways to circumvent those.
I had done a proposal for allowing to slave Renoise to Renoise but there already starts the limitation.
Perhaps if Renoise would install multiple ReWire hooks and checks which of them is already used…

Audio-routing wise i figured out you can achieve a lot using Jackd (because you can patch everything into eachother) and using midi virtualisation you could use this for synchronisation.
Current misfortune is that the actual version (1.9.9.5) of Jackd for Windows doesn’t connect with Renoise 64-bit for some reason (i suspect Jackd doesn’t understand colons in the hostname assignment). I have no idea how the Mac version does.
Renoise 32-bit works without problems.

was hoping this would Just Work with GarageBand, but i don’t see any evidence of GB acting as a ReWire host (regardless of the order in which i start things).

so far the closest i’ve been able to get is

  1. one renoise running as master, outputting midi start/stop and song position (NOT clock) to the IAC driver (enabled in audio MIDI setup, with “midi test” mode disabled or i couldn’t enable it)

…a.) audio input device of a virtual device setup by Loopback2 (think: soundflower)

…b.)audio output of whatever, my headphones or Default or etc.

…c.) with a Line-In device on the renoise Master channel, listening to that Loopback2 thingy

  1. N renoise midi slaves

…a.) each listening to the IAC driver for MIDI in

…b.)each outputting to that same Loopback2 virtual Device

the slaves pay attention to start/stop and song position just fine, so if i setup a blank “song” in the master and set my pattern lengths and BPM/Speed right, i can control all the replay from the master.

my use-case is i’m trying to make a mix of several of my tracks but without doing the “render each one to .wav and then mix those after the fact” dance. setting up the patterns and timing (if you ZTxx ZLxx in one renoise, you have to do the same in the others too – sending MIDI clock is just way too sloppy and all the echo effects sound like crazy pants and not “Original”) is cumbersome, and having N renoises open is going to run me up against a CPU wall pretty quick (given that all are “playing” simultaneously, so i’m having to do a little extra work zeroing things out and disabling DSPs in tracks that are not actively playing), but …

it works.

one big thing that i’m missing in this turbo hacky setup is i wish Renoise would not have the concept of One And Only One [audio] Input Device. it would be swell if i could setup an individual/discrete Loopback2 virtual device for each separate renoise instance and then use individual/discrete Line-In DSPs for each of those. at least then i could have some sort of A|B mix instead of them being dumped onto one ‘bus’.

but again, it works.

i know that the wishlists are already huge and renoise is more a labor of love than a way for the developers to become billionaires over-night. but one wish i have is for renoise to have the baked-in concept that “you might want to run more than one instance of this application at once and have them play with each other”.

(either that, or if i had the ability to chain-load tracks into the editor, like you can do with .MID files, where the newly loaded one doesn’t replace anything but just gets appended to the existing song, that would give me exactly the ability to do what i want (mix my tracks)).

thanks again everyone.