Delay column and pattern fx commands

I was under the impression (don’t know why) that the pattern fx column(s) was applied always at the start of a line irrespective of any delay column value applied to the start of a note. Is that really the case though?

I’m going to use the ‘CXY’ cut pattern fx command. I’ll use a 1 second +1ve sample:

I’m going to render this sample out on a line at 120BPM / 4LPB / 12TPL:

00 C-4 00 .. -- -C00

I get:
Seems ok. [There you get the infamous no user control ‘anti-click’ when it cuts.]

Now let’s apply a delay to the note:

00 C-4 00 .. 10 -C00

I get on rendering:
Hmm ok(ish)?? It has delayed the note, I’m interested though that it has also applied a cut.

Let’s increase the delay to:

00 C-4 00 .. 80 -C00

Render line out:
Ok, delay correct, but get the feeling that Renoise is really trying to figure out what to do there.

Let’s increase the delay further:

00 C-4 00 .. E0 -C00

Render out:
Ok, delay correct and we are back around a 1 tick ‘body’ before fade/cut/anti click.

Finally with that delay value I’m going to increase the tick length by 1 before cut with:

00 C-4 00 .. E0 -C01

Render out:
Exactly the same sample/output as the previous one(?)

With the fx ‘cut’ command IDK. I’ll let you decide how much of a ‘edge case’ all this is. A post to consider what should really happen with a note delay and pattern effect on a line :thinking:

Oh that’s weird.

1 Like

Mmh maybe offtopic, but is global groove enabled? Can you share an example project?

Nah, no global groove enabled.

Should be enough info for people who want to take some of their time to sit down and think about the software they use.

Well, maybe it is a conceptional or normal bug?

Did you try LPB 8, does it half the imprecision? Or even TPL 16? Maybe 12 is not a good divider or something :laughing:

Or maybe the TPL limit could be raised to 32.

It most likely sounds as fx is bound to just occur on ticks? Rounded to the closest tick to where it would occur if calculated?

(For myself, if it began to cause me problems i would render it out and the delay the result instead.)

Yes, you are probably both right it is just a mathematical TPL rounding thing. We have a 1/256 division against a 1/12 (TPL) division of each line.

So I’ll say that looking at this line in isolation:

00 C-400 .. 80 -C00

One way in which to interpret that line from a musicians (not from a software/math/rounding) point of view is delay striking the C-4 note by half a line and then apply a 1 tick delay cut to zero volume. I now know that that isn’t necessarily what you get on output.

I found interesting these two examples:

00 C-400 .. E0 -C00


00 C-400 .. E0 -C04

Mathematically ‘quirpy’ that both render out exactly the same sample here even though the latter has a 4-5 tick delay before a cut to zero volume.

Let me just take a look at something maybe even taking into account TPL rounding when the cut effect is applied…

Let’s take this line:

00 C-400 .. -- -C00

Song set at 120BPM / 4LPB / 12TPL

Render the line I get:
That to me is correct for that line. A 1 tick delay (around 15 ms) and ‘anti click’ cut.

Now this line:

00 C-400 .. 80 -C00

Putting a delay value of 80 hex which is exactly half way in between the line. If it is half way the ‘tick’ at that point would be half of the songs TPL. In my case I have 12 TPL so that note should strike at exactly ‘tick’ 6 of that line.

On rendering I get:

Half way along now the line sample the note strikes. Correct. But now we get a fairly immediate cut off. We get no 1 tick (around 15ms) delay.

The result I expected from rendering that line would look like:

Maybe I’m wrong but I still feel there is something not quite right in the calculation when it comes to applying ‘cut’ and a note delay.

But why you did not try it with TPL 16 / LPB 8?

Same result with TPL 16 or 8 or 4. Different result with say odd TPL’s (but that is to be expected as the delay value would have to change to strike directly on a ‘tick’ (other than the very first ‘tick’.)) I can tell that to me it still isn’t what I expect to happen.

No effect in the effect columns does apply note delays. Also 0C is more an FX than a note stop command. It ramps down the volume to 0 without killing the note and resets it to 1 on tick 0 - the start of the line when repeating. This has historical reasons, worked like this in MOD trackers already, and can be used to archive a stutter alike effect:

Try this with a simple sine wave:

C-4 01 0C01
--- .. 0C01
--- .. 0C01
--- .. 0C01
--- .. 0C01

If you want to stop a delayed note, use the 0C command in the volume or pan columns instead:

C-4 01 C1 ----

There it will apply a Note Cut NNA instead of simply lowering the volume to zero and also apply the note delay.


Okey cokey :slight_smile:

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.