Repeater persistence is broken?

The behavior of repeaters when disabling and enabling while the mode is set to something other than “Off” has changed. Now disabling and enabling resets the sampled audio, where before it didn’t.

REPRODUCTION:

  • Open Renoise 3.1.0 b4.

  • Open the attached project file.

  • Play.

EXPECTED BEHAVIOR (Behavior as of 3.0.1):

Snares sound from pattern line 48 (hexadecimal) onward.

ACTUAL BEHAVIOR (as of 3.1.0 b4):

Snares do not sound from pattern line 48 (hexadecimal) onward.

I think you’ve actually managed to reveal a bug in the old Repeater device (or some old DSP device handling in general), rather than a bug in the new Renoise.

Just to describe the intended behaviour a little bit…

When the Repeater device is enabled in the DSP chain, and you activate it by changing its Mode parameter from “Off” to one of the available timing modes, it will simultaneously begin to capture and repeat the audio playing in the current track. In other words, any time you enable/activate the device, there must be some audio playing in the track at that moment, otherwise it will simply capture and repeat total silence.

When you disable/bypass the Repeater device in the DSP chain, it will flush its internal audio buffers (erasing/silencing anything that was previously captured) in preparation for the next time the device will be enabled. Likewise, when you deactivate it by setting the Mode parameter to “Off”, it will reset and re-arm its internal state in preparation for the next time you activate it.

In your example XRNS you are disabling the Repeater (which flushes its internal audio buffers) on line 0x3C, and then re-enabling it on line 0x48, but on line 0x48 there are no notes or sounds playing in the track. With no audio playing in the track at that time, the Repeater simply captures and repeats total silence from that point onwards. The fact that it did work in previous versions of Renoise is actually a bit surprising to me (since I designed the device itself), because it shouldn’t have been working that way in the first place.

Anyway…

To fix the problem in this basic example, you can simply insert a snare note on line 0x48 when the Repeater is activated and then it will produce sound, hopefully as you intended.

I’ve tweaked your example to show the fix, and also a few other use cases:
6257 Repeater Test Fixed.xrns

In most situations where you have some constant audio playing on the track (a full beat mix, for example), you may prefer to activate/deactivate the Repeater by automating its Mode parameter, and simply leaving the DSP device itself enabled the whole time. Internally, the device is designed to handle the Mode change transitions a bit better than turning the entire device on/off, but it does depend on the situation and audio content a little bit.

In your example you were showing off a basic snare roll. If this is all you wanted to achieve by using the Repeater (I doubt it, but you never know!), then I’ve also included an alternate pattern which simply performs the snare roll using notes alone, with no Repeater device required.

The fact that it did work in previous versions of Renoise is actually a bit surprising to me (since I designed the device itself), because it shouldn’t have been working that way in the first place.

That comes as a fair shock to me. :stuck_out_tongue: I’d always assumed that having a way to bypass the repeater without clearing the buffer was a feature.

As you guessed, I wasn’t using it just for snare rolls. In the project I noticed the change in, I was using it for the transition effect at 0:53 or so.

EDIT: The weird shaking here is some faulty automatic stabilization Youtube Capture did.

…if it really was a bug, then a buffer lock/temporary bypass feature on the repeater would be pretty useful for cases like this.