# How to apply swing to triplets with delay commands?

Very good! You seem to know how it works.

To get the number of ticks - take the delay value, divide it with 256 and multiply by number of ticks in line. so (delay/256)*tpl - just use the delay value in each line. You also have to round some values…and like danoise said, it is possible to choose to have the notes late or early, it can make subtle differences.

And I have something very nice for you.

Yes I have been naughty and have also sampled hihats, in renoise by itself, playing with the groove sliders. It is really boring to have to place so many slice markers by hand. But it was worth the hassle. I found how the groove sliders delay notes.

Each is for delaying the 2nd, 4th, 6th and 8th 16th note in your tune, individually. To get straight swings like in other drum machines, just set them all to the same value.

As you noticed, the percents work other than the 50%-75% stuff. They quasi go in their range 0…100 from 50%-83(1/3)%. So maximum shift is not just one half (0.5), but rather 2/3 (0.666666666…) and all that withing 0…100%…

conversion:

percent = 25renoise(0.666666…/0.5)/100+50

renoise = (percent-50)*(0.5/0.666666…)*100/25

shorter:

percent = (renoise+150)/3

*renoise = (percent - 50)3

Sorry, I’m very tired right now, and cannot longer keep up my attention to test these formula. Interested to hear what you experience, if you try to match renoise and other programs with them. Maybe they match, maybe I made mistakes in them. Maybe even triplets will match, but maybe the positions in between could be different from software to software.

Edit, fixed the formulas

…Seems like the straight timings between the results of your prog and renoise match, if you use the formulas in above post.

But unfortunately triplets seem different, or I am too stupid to get them timing the right way. Maybe I have done it wrong, you might want to test. but also could be triplets being swung in a different way…

Renoise dev’s take on the topic:

It’s not vitally important to understand the exact technical details here, since groove is about adding a feeling to the beats. The best way to get a feel for the settings is to just play around with them. To make it easier to hear what’s going on when you do, try adding something like a steady hi-hat line, which will be triggered fast and often.

Oh mighty shit, we are doing it wrong.

Thats all true if you are only using renoise. In that case it should be easy to swing triplets or anything ( qunituplets using phrase etc. ) by using the global groove device.

The issue I have is that I really want to understand how the roger linn swing variations work, as they were based on only 48ppqn ( 12tpl, 4lpb ) so that I can use milkytracker and sunvox with swing and swung triplets while travelling or getting outside at the park, then sample what i’ve done into renoise when I get back to the computer, having all the swings and swung triplets all aligned perfectly.

It seemes like a much more difficult thing to work out than I had anticipated.

The swing variations are no problem, its the swung triplets that are giving difficulty.

( There is still the question of whether roger linn rounded up or down for a few of the swing variation though )

I am starting to think that G-stomper also has the 256ths of a line resolution inside its sequencer when I look at the percentages it yielded for swung straight rhythms ( 16ths, 32nds, 64ths ). The percentage was 61.9140625 for the 32nds and 64ths ( @32BPM ). For the 16ths I gots a slightly different percentage ( 61.962890625 ). I think this must have been due to placing the slice marker slightly off, or maybe the rendering put a tiny tiny bit of ‘air’ at the beginning of the rendered 16ths hihat pattern. I think If G-stomper swing was based on the old linndrum style resolution ( 48ppqn ), the 62% should have been more like 62.5%.

What I really want is a more direct way to work out swung triplets in ticks. Maybe a tool in which I could put in one of the 16ths swings ( using delay by ticks commands ) and it would output the various possible swung triplets ( fast, medium, slow ). Unfortunately I have no lua skills at all.

I think there were slight innacuracies using the render slices to phrase technique.

I got a few FF’s here and there which clearly werent supposed to be there.

If phrase extraction from sample ( and conversion from delay column units to ticks ) is really the only way to work out these swung triplets perhaps I need to use a sample with a harder attack like a single cycle of a square wave, maximum amplitude ( not looped )…then the slice marker can only go in the correct place when zoomed in fully in the sample editor and I will be able to tell if the rendering of the pattern from G-stomper leaves a tiny bit of ‘air’ at the beginning of the sample or not. Hi hats maybe have some room for error when rendering ( the waveform is actually pretty complex when zoomed right in )…I need a test blip.

I just noticed this tool :

https://forum.renoise.com/t/new-tool-3-0-groove-control/42858

Looks awesome and should be a swifter way to find these swing variations ( for compatibility with sunvox, milkytracker delay by ticks ).

All I have to do is convert the delay column to -Qxx commmand.

Shit…I am tired I forgot, that will still leave me with the swung triplets problem.

Alright, finally I have the answer to this problem!

How can I get exactly the same 16th-based percentage swing variations, with the swings applied to triplets properly by using delay by ticks commands in sunvox, milkytracker and renoise, so that I can work across all three softwares with interoperability of swing?

The way to do it is to choose a swing variation based on 12 lines per beat and apply the swung sixteenth note delay commands in all tracks.

My swing variations are here ( scroll down to the second set, I did swung 8ths instead of swung 16ths for the first set ) : https://forum.renoise.com/t/swing-variations-of-50-54-58-60-62-66-70-and-75-as-commands/48546

Here is an example of triplets with a 62.5% swing applied ( which will work the same in all three trackers; milkytracker, sunvox and renoise ) :

TPL-12 LPB-12 ( 144ppqn, 72 ticks per 8th note )

62.5% ( 1st 16th note - 45 ticks / 2nd 16th note - 27 ticks )

( These are swung sixteenths, with 62.5% swing )

00 C-4 00 – ----
01 — – -- ----
02 — – -- ----
03 C-4 00 – -Q09
04 — – -- ----
05 — – -- ----
06 C-4 00 – ----
07 — – -- ----
08 — – -- ----
09 C-4 00 – -Q09
10 — – -- ----
11 — – -- ----
( repeat )

This is how slow triplets with the same swing applied look :

00 C-4 00 – ----
01 — – -- ----
02 — – -- ----
03 — – -- -Q09
04 — – -- ----
05 — – -- ----
06 — – -- ----
07 — – -- ----
08 C-4 – -- ----
09 — – -- -Q09
10 — – -- ----
11 — – -- ----
12 — – -- ----

13 — – -- ----

14 — – -- ----

15 — – -- -Q09

16 C-4 – -- ----

17 — – -- ----

18 — – -- ----

19 — – -- ----

20 — – -- ----

21 — – -- -Q09

22 — – -- ----

23 — – -- ----

This is how medium triplets with the same 62.5% swing applied look :

00 C-4 00 – ----
01 — – -- ----
02 — – -- ----
03 — – -- -Q09
04 C-4 – -- ----
05 — – -- ----
06 — – -- ----
07 — – -- ----
08 C-4 – -- ----
09 — – -- -Q09
10 — – -- ----
11 — – -- ----
12 C-4 – -- ----

13 — – -- ----

14 — – -- ----

15 — – -- -Q09

16 C-4 – -- ----

17 — – -- ----

18 — – -- ----

19 — – -- ----

20 C-4 – -- ----

21 — – -- -Q09

22 — – -- ----

23 — – -- ----

This is how fast triplets with the same 62.5% swing applied look :

00 C-4 00 – ----
01 — – -- ----
02 C-4 – -- ----
03 — – -- -Q09
04 C-4 – -- ----
05 — – -- ----
06 C-4 – -- ----
07 — – -- ----
08 C-4 – -- ----
09 — – -- -Q09
10 C-4 – -- ----
11 — – -- ----
12 C-4 – -- ----

13 — – -- ----

14 C-4 – -- ----

15 — – -- -Q09

16 C-4 – -- ----

17 — – -- ----

18 C-4 – -- ----

19 — – -- ----

20 C-4 – -- ----

21 — – -- -Q09

22 C-4 – -- ----

23 — – -- ----

This is how extra-fast triplets with the same 62.5% swing applied look :

00 C-4 00 – ----
01 C-4 – -- ----
02 C-4 – -- ----
03 C-4 – -- -Q09
04 C-4 – -- ----
05 C-4 – -- ----
06 C-4 – -- ----
07 C-4 – -- ----
08 C-4 – -- ----
09 C-4 – -- -Q09
10 C-4 – -- ----
11 C-4 – -- ----
12 C-4 – -- ----

13 C-4 – -- ----

14 C-4 – -- ----

15 C-4 – -- -Q09

16 C-4 – -- ----

17 C-4 – -- ----

18 C-4 – -- ----

19 C-4 – -- ----

20 C-4 – -- ----

21 C-4 – -- -Q09

22 C-4 – -- ----

23 C-4 – -- ----

apply the swung sixteenth note delay commands in all tracks.

Tip: You can put the Qxx delay commands on the master track to affect all tracks simultaneously, if that’s what you’re going for.

This is how slow triplets with the same swing applied look :
(…)
This is how medium triplets with the same 62.5% swing applied look :
(…)
This is how fast triplets with the same 62.5% swing applied look :
(…)

Not sure if it was just a typo, but in these three examples the Qxx delay commands will have no effect, since they do not actually line up with any notes.

If you are in fact hearing some swing being applied here, double check the master track to see if you’ve accidentally enabled some groove settings.

Tip: You can put the Qxx delay commands on the master track to affect all tracks simultaneously, if that’s what you’re going for.

Thanks. That should work nicely.

Not sure if it was just a typo, but in these three examples the Qxx delay commands will have no effect, since they do not actually line up with any notes.

If you are in fact hearing some swing being applied here, double check the master track to see if you’ve accidentally enabled some groove settings.

Dont the Qxx commands delay a line even with no note event on that line?

The global groove is disabled but it still sounds like it is all swung properly.

There are no problems that I can hear.

Is there a way I can attach the song file?

Not sure if it was just a typo, but in these three examples the Qxx delay commands will have no effect, since they do not actually line up with any notes.

If you are in fact hearing some swing being applied here, double check the master track to see if you’ve accidentally enabled some groove settings.

I’ve had a chance to look into this probem briefly once again.

I would like to point out that what is stated in the renoise manual is that delay column delay commands can only delay ‘notes’ and ‘note offs’, whilst the ‘Qxx’ delay commands can delay the whole line even with no note or event present. Therefore, the swung triplets by Qxx commands in the master track technique outlined above should still work. Its a shame that it was not possible to do it without using 12LPB.

-Qxx - Delay playback of the line by xx ticks (00 - TPL).

00-FF - The delay column can only be used to delay a note or Note-Off

By using 12LPB in renoise, milkytracker and sunvox it will be possible to achieve interoperability of swung triplets across all three softwares. Writing swung triplets stuff whilst out and about on milkytracker ( PDA ) and sunvox ( android tablet ), later rendering those parts to sample then using them in renoise. It should be possibe to do these 12LPB swung triplets in LittleGameParkTracker for PSP as well, but it will be a total mindphuq of line counting and HOP commands.

I would also like to bring attention to the fact that in the global groove, the sliders all go to 100%.

This is wrong.

I’ve had a chance to look into this probem briefly once again. (…)

When we say ‘line’ in reference to the Qxx command we mean ‘any note on that line’, it does not mean that Qxx will interrupt the timing behaviour of the entire playback engine and allow you to temporarily delay everything (even empty space) by xx ticks.

Generally speaking, pattern commands that are intended to somehow affect the behaviour of a note (or notes) can only work when they are triggered in direct correlation to the actual note data, not on some other empty line.

That’s simply how the playback engine operates internally: Note commands must be paired with actual note data that can be processed by those commands, using command values that are actually within valid ranges, otherwise the commands are basically ignored.

If you do want a command that can delay the entire playback engine, try this one:

ZDxx - Delay (pause) pattern playback by xx lines.

It goes without saying that this will of course screw with the ‘true’ BPM of your song, since you are forcing playback to halt temporarily.

Speaking personally, I think the more important point to raise here is: who actually cares if the timing does not precisely match that of SomeHardwareX or SomeTrackerY?

How much time and energy is being wasted worrying about the minutiae of the playback engine, or stressing about timing percentages that are not ‘accurate’ (compared to SomeOther…) down to the Nth decimal place?

“Oh no! When I bring my render into an audio editor and compare the note timings with samplerate accuracy, my groove seems to be off by 0.037% compared to my favourite drum machine from the 80s!”

Seriously… Worry about how your music actually sounds to the listener, not how the pattern data looks or what the decimal places in your calculator tell you.

Just Make Funky Music™

Just Make Funky Music™

If Qxx can only delay a note or note off ( same as delay column delay commands ), then it seems trackers in general have a problem with swinging triplets, except for renoise that is, because it has global groove. This messes with interoperability of swung stuff or makes it difficult to sample out of other trackers if I wanted to swing triplets the same as in renoise anyway.

I dont really want to use the ZDxx command, because as you said it will mess with the BPM.

The global groove can be used to swing triplets accurately if the LPB is 12, because at 12 LPB delay commands do not need to be used for triplets…I’m assuming that if triplets were made with the use of delay commands at other LPBs ( 4LPB, 8 LPB ) then they would not be swung properly by the global groove.

How does the global groove swing the triplets nice at 12LPB?

Two quick questions…

The global groove sliders go to 100%, most other hardware and software will have maximum 75% swing.

How can I translate renoise groove slider values into normal groove slider values?

I want to use a lot of swing and triplets in general and sample from other software.

If the rendered samples with swing dont line up properly with the renoise swing it sounds all hoofclod, like flams.

Thats why I care about the details of how swing in renoise works with regard to triplets ( maybe later other tuplets as well ).

Swing and tuplets arguably make for more funkiness in music patterns.

Of course if I use no swing at all then I can sample patterns with tuplets from other trackers no problem, plus with the use of the phrase editor it is possible to create crazy other tuplets…nonuplets, tredecuplets. However, no swing sounds quite lifeless, somewhat robotic.

Does global groove apply its swing to phrases used in a song too? Phrases might use different LPB. Will the swings of phrases with different LPB align with swings in pattern editor?