In jazz and swing music there is a convention to apply special timing to eighth notes. Normally, the first of a pair of eights is lengthened and the second is shortened. In the sheet music this can is sometimes notated as sequences of a dotted eighth followed by a sixteenth. But, if you were to foolish enough to play the song with this timing you'd get a funny look from a jazz musician who will tell you to ``swing'' the notes.
The easiest way to think about swing eighths is to mentally convert them to a triplet consisting of a quarter note and and eighth.
In the above music the first and second bar are both played as in the third.
MMA can handle this musical style in a number of ways, the control is though the SWINGMODE command and options.
In default mode MMA assumes that you don't want your song to swing.
To enable automatic conversions, simply set SWINGMODE to ``on'':
SwingMode On |
This directive accepts the value ``On'' and ``Off'' or ``1'' and ``0''.
With SWINGMODE enabled MMA takes some extra steps when creating patterns and processing of SOLO and MELODY parts.
Important: when defining patterns and sequences remember that the adjustment is made when the pattern is compiled. With a DEFINE command the arguments are compiled (and swing will be applied). But a SEQUENCE command with an already defined pattern will use the existing pattern values (the swing adjustment may or may not have been done at define time). Finally, if you have a dynamic define in the sequence the adjustment will take place if needed.
SWINGMODE has an additional option, SKEW. This factor is used to create the ``81'' and ``82'' note lengths (see here). By default the value ``66'' is used. This simply means that the note length ``81'' is assigned 66% of the value of an eight note, and ``82'' is assigned 34%.
You can change this setting at any point in your song or style files. It will take effect immediately on all future patterns and solo lines.
The setting:
SwingMode Skew=60 |
will set a 60/40 setting.
If you want to experiment, find a GROOVE with note lengths of ``81'' and ``82'' (``swing'' is as good a choice as any). Now, put a SWINGMODE SKEW=VALUE directive at the top of your song file (before selecting any GROOVEs). Compile and play the song with different values to hear the effects.
If you want to play with different effects you could do something like this:
SwingMode On Skew=40
... Set CHORD pattern/groove SwingMode Skew=30 ... Set Drum-1 pattern/groove SwingMode Skew=whatever ... Set Drum-2 |
This will give different rates for different tracks. I'll probably not enjoy your results, but I play polkas on the accordion for fun.
The complete SWINGMODE setting is saved in the current GROOVE and can be accessed via the $_SwingMode built-in macro.
The easy (and ugly and unintuitive) way to handle swing is to hard-code the value right into your patterns. For example, you could set a swing chord pattern with:
Chord Define Swing8 1 3+3 80; 1.33 3 80; 2 3+3 80; 2.33 3 80 ... |
We really don't recommend this for the simple reason that the swing rate is frozen as quarter/eighth triplets.
If you refer to the table of note lengths (here) you will find the cryptic values of ``81'' and ``82''. These notes are adjusted depending of the SWINGSKEW value. So:
Chord Define Swing8 1 81 80; 1+81 82 80; 2 81 80; 2+81 82 80 ... |
is a bit better. In this case we have set a chord on beat 1 as the first of an eighth note, and a chord on the off-beat as the second. Note how we specify the off-beats as ``1+81'', etc.
In this example the feel of the swing will vary with the SWINGSKEW setting.
But, aren't computers supposed to make life simple? Well, here is our recommended method:
SwingMode On
Chord Define Swing8 1 8 80; 1.5 8 80; 2 8 80; 2.5 8 80 ... |
Now, MMA will convert the values for you. Magic, well ...almost.
There are times when you will need to be more explicit, especially in SOLO and MELODY tracks: