by
xperior » Sun Jan 05, 2025 3:35 pm
Hi all,
I recently found a simple but perfect solution (for me) to get adjustable global groove quantization in lmms without any extra tools. As far as I know, nobody (even not MusikBear) did this before to make lmms groove/shuffle/swing.
I'm flashed and need to share this with you right now:
Imagine your song tempo is 140 BPM and all your notes are quantized to 1/16. Now add an automation track, CTRL-click on the tempo and drag it into your automation track. In the automation editor choose discrete progression and set quantization to 1/16.
Now, for the first 1/16 of the beat set a tempo of 120 BPM and for the second 1/16 set a tempo of 168 BPM. Repeat 7 times until the whole beat is filled (looks like a square wave). Leave the automation editor and in the song editor copy this beat so it is repeated for the whole length of your song. And you're done.
This works pretty well, even my Venom VB-303 (VSTi) is now grooving! Every echo delay set to 1/16 will also be affected by these tempo changes. Notes that are played on the 1/32 beat will still sound good. I thought this method to be a bit rude but at least in my linux environment (a simple debian old-stable) it seems to work flawlessly. Even the arpeggiator of lmms WOULD work wonderful if it wouldn't restart its sequence on every tempo change. So you have to build your arpeggios by hand in the piano-roll.
To find the amount of groove/shuffle/swing your beat sounds best with, you should play a short loop of your beat while adjusting the two tempos in the automation editor. Listen what sounds best.
If the original tempo of your beat is b0 = 140 BPM
you can set the tempo of the first 1/16 to everything between 140 BPM (0% Groove) and 140/2 = 70 BPM (100% Groove). Let's say b1 = 128 BPM.
The tempo of the second 1/16 needs to be calculated, otherwise you would change your original tempo. The formula is:
b2 = b1 * b0 / (2 * b1 - b0)
so you get: b2 = 128 * 140 / (2 * 128 - 140) = 154.48 BPM = 154 BPM
Because lmms only allows the tempo value to be an integer, in this example the original tempo will slightly be changed a little bit. You can't hear it, but a very long sample (or a sample-track) will slowly move out of the beat.
Most beats sound better when the "unimportant notes" are slightly delayed, but if you want them to be played earlier (aka negative groove value), just switch the tempos of b1 and b2.
For the wishlist: I would like lmms to have this simple method as a "global groove"-knob besides the tempo-meter with values from -99% to +99%. A thing that MusikBear thought to be impossible with the current lmms.

Now, only thing you need is to make tempo a float value. I don't care if the tempo-meter is flickering every 1/16 beat. The fact that all VSTs and even the echo delays are globally grooving, would be an outstanding feature.
Greets XP