[done] "Detatch From Timeline"-Mode When Rewire Slaved

I have been playing around with rewire and renoise for a while. One way to use renoise in this way is to use it as rewire slave, generating loops and longer sections, to be recorded and further processed in the host. For example say that you are using ableton live as master. You could then create a loop in renoise, record that into a clip, repeat that a couple of times, and then arrange the loops using live. Or you could use the new pattern functions in renoise to improvise and record that improvisation into reaper or cubase.

This would be easier to do if there was a way to detatch renoise from the host timeline. Of course this would be feature that you could turn on and off, preferably with a keyboard command. Renoise would still sync itself to the host, so that both programs start at a new bar at the same time. However if you started renoise at bar x and host at bar y using this setting they would just sync up the bar and then continue playing. Loop points in renoise and host would be independent.

This would make it possible for example to have a loop set up a long way into a song in the host, say 16 bars bars long. Then set up a one pattern song in renoise (say 4 bars). Have these two loops going while recording into the host, muting and unmuting tracks in renoise and changing filters etc.

I dont know how hard this would be, since I dont know how the rewire protocol works, but if its easy to do then it would be a pretty nice feature.

Yes, just like MIDI clock as slave in Renoise woks now.

The biggest problem I see here, is that this may cause a lot of headaches when you accidentally detach from the timeline. We’ve got the same problem with for example the chord mode button in Renoise.
Right now you can nothing do wrong, its always synced, whatever you do, which makes things very easy. If we now add a detach button somewhere (this could for example be the small button next to the BPM in Renoise), then you easily get confused by what control who/where/why.
Not sure it that feature is really worth the troubles. There will be lots of people who will never want that to be enabled. And the only thing you gain would be that you have to stop/reposition Ableton while preparing your loops in Renoise.

That would be good, yeah. +1

I imagine it being a monstrous task though…

If Renoise is in the wrong position then you would have to switch to Ableton everytime you want to start playback. Also it is impossible to have a long loop in Ableton, shorter loop in Renoise. This especially applies if you want to improvise a long section by tweaking a pattern in Renoise, the host would jump back in time on every loop restart.

Thanks for implementing this. Tried it out in Reaper 3 and it seems to work, altough it always takes about a bar to sync it up, will try it more later.

One way to get around this problem: Forget about syncing to ‘bar’ and instead sync to beat. What a beat is is well defined in both Renoise and host. Have start/stop linked. So the user can position the edit cursor in Renoise on the beat where the user thinks that a ‘bar’ should start, and the postion cursor in the host to the start of a bar, and then just press play in either appliction.

Well, the good thing of a bar is that, whenever you start playing in Renoise, it will always seek up and sync correctly. Thats more or less foolproof and will even work when you’re drunken ;)
If we would use beats, you would have to press play at exactly the right beat, and if you’ve missed that one, hit stop and start again and again…
But yes, linking start/stop would solve that, but also remove the live playing alike ability. You can now load new songs in Renoise while slaved, without stopping the master.

If you have start/stop linked between Renoise and host, then you can postition the Renoise cursor at the beat where you want a bar to start, and press play in either application. This should always give the same result.

Yeah, thats a problem.

Tonight I’ve tested the “BPM & Bar” sync mode with Cakewalk’s Sonar as master. Frankly, I can’t really see the real value of that feature at all. It’s just messing things up and adds confusion for me. Maybe it might be useful for live purposes, or as a way to layer melodies etc on an existing arrangement/sequence – sort of testing them out on-the-fly. Although I’d probably never enable that sync mode. To me the full transport sync mode seems far more useful and logical.

To explain it in a more simple way: The idea is to sync renoise to a sequencer, just like you would sync up a drum machine via midi clock to a sequencer.

Yes, a drum machine in pattern mode is a good example.

Probably its really the missing start/stop behavior that makes the free mode a bit strange right now. I hoped a bit that we can use this new mode for Live sessions. Thats why starting/stopping is also decoupled right now. Let me show a few start/stop behaviors and their usabilities regarding “live sessions”:

{A} Drum machine alike start/stop mode

  • Starting stopping from the master always also starts/stops the slave (Renoise)
    At which position should we start then? At the current loop start + bar offset the master starts playing at? or when no loop is set, the current pattern + bar offset the master?

  • Starting/Stopping from Renoise never stops the master.

This allows to play, stop & load songs in Renoise, while the master is always running. As soon as you stop the master (for example to load a new song), this would also stop Renoise.

{B} “Semi” Drum machine alike Start/Stop mode

  • Starting stopping from the master always also starts/stops the slave (Renoise)
  • Starting/Stopping from Renoise also stops the master

The only difference to the full sync mode is that you can freely navigate Renoise in its own timeline & loop.
Playing Live sessions is only possible if you never load new songs - cause loading songs in Renoise or the master would stop the master and Renoise.

{C} Current “free” Start/Stop mode

  • Starting stopping from the master never starts/stops Renoise
  • Starting/Stopping from Renoise never starts/stops the master

The song in Renoise or the master never stops, so you can load songs in both applications. But when loading a new song in the master, routings from Renoise will break (you have to setup how Renoise is routed into the master with ReWire) and the BPM might jump out of a sudden.

As already said in the “ReWire Renoise to Renoise to Renoise” topic: Again this looks like it could work, but it doesn’t. Looks like we need something else for this purpose. And if thats true, whats left usability wise from the new mode? I mean, for what is this good then, why should we keep it?
The only thing I can think of is that you want to use Renoise as source for new drum patterns in the master. But then the full sync mode already works fine as soon as you only use one pattern in Renoise. Renoise will repeat this pattern over and over again, while the master plays back its whole song.

Ok, as I see it there are three different things that we want to be able to do:

  • Songmixing: To be able to load two different Renoise songs and play them at the same time, for example as a way to make transitions in a live set.

  • Live playing: To be able to remix a song by triggering patterns in new order, looping sections, reprogramming patterns while looping them, muting/unmuting parts, etc. I think this can be useful even without songmixing ability. Think about how Ableton live works, there is no way to load a new live set without stopping playback. What you can do is prepare a lot of material by loading it into one song.

  • Using Renoise as source of drum patterns.

My suggestion is to make the detatch mode work like this: Start/stop is fully linked both ways. We always sync to beat which is well defined both for Renoise and host. When starting from Renoise playback is started from the first full beat after the edit cursor (or at the edit cursor if its placed exactly on a beat), and playback from host is started from first full beat after position cursor. Same thing when starting playback from the host. This way Renoise does not need to guess how long a bar is, but this can instead be defined by the user. Also Renoise and host would sync instantly.

So looking at the three things above again:

  • Live playing: With detatch mode you can play live in this way, recording into the host, without being restricted by the playback position of the host. The new live pattern triggering could also be used in rewire mode this way.

  • Renoise as drum patterns source: Yes this could be done using only one pattern. A problem is that if you start playback from Renoise you will always jump to the beginning of the song in the host.

  • Songmixing: To be able to do this you will always need to have two instances of Renoise running. I think the simplest way to do this is to: Allow more than one instance of Renoise to be slaved to a host. Set up the host with two rewired Renoise instances, which are detatched. Make it so that Renoise does not signal stop when loading a new song, instead just mutes itself, and then syncs itself from start when the song is loaded. If one wants to do this with only Renoise, one could start a Renoise master instance which is used only as a mixer, and then two Renoise slave instances.

Actually now that I think about it some more, Drum machine alike start/stop is not so bad, but then you would also need a keycommand to start Host and Renoise from within Renoise. Because when you are working on a pattern in Renoise that you want to hear together with audio from host, it is annoying to have to switch to host to start playback.

Yes, that might work, but will not really be obvious for everyone. Lets do another try, with synced start/stop, but free loops & repositioning. If this also doesn’t work we should let the free mode RIP.

Only using beats won’t work. As soon as you’ve edited something while stopped - repositioned, you will have to manually set Renoise to a beat that will match the masters current beat in the bar. So basically you have to set/adjust the position in both applications first, then start playing. I don’t think thats going to be fun.

But as said above: Lets try out the synced start/stop in the next beta (Beta 4) then talk about the details and decide what to do with this…

Is it already possible to have 2 instances of renoise to be rewire slave?
I tried it with Ableton: Starting Ableton (6.0.5), then first instance of Renoise. Renoise asks to be a slave; clicked yes and BPM+BarSync mode in the Preferences. But when I am starting second instance of Renoise, Renoise do not ask anything and there is no rewire option at all in the Preferences.
In Ableton is also only one Renoise instance visible.

This would be really great; as Cortex said, it would open up the possibility to play in a usable way live with renoise I think. Mixing Renoise instance1 and 2 with Ableton (e.g. crossfade), and in each instance playing the patterns with the “live-pattern-sequence” mode, and muting the tracks for each song. After one song was faded out, load the next song, synch to master and fade it in again!

This is actually a limitation of how the ReWire engine should operate.
It is not impossible to change this, but i guess without code-change, very hardly.

I tried to mess with the ReWire entry settings in the registry to be able to get something like this done.
On Windows this is:
\HKLM\SOFTWARE\Propellerhead Software
Clone the Renoise entry and clone the ReWireEngine dll (copy it to another location)

I still have to reboot windows, so far making this change does not work. (I could also not find any specific ID in the .dll that leads to Renoise)
I’ll get back…

Please let us not mess around with this “as workaround” please. Rewireing Renoise to Renoise is explicitly disabled, its not a limitation. http://www.renoise.com/board/index.php?s=&…st&p=155640

This was actually about slaving another instance of the same slave-host to one master (which is not the same host as the slave).
But you are right, if this involves messing around with files internally:that is a border i do not cross.
As far as the test goes without having to disect files internally:don’t bother, it does not work. Perhaps for other hosts, but not for Renoise.