In previous chapters you were shown how to create a PATTERN which becomes a part of a SEQUENCE. And how to set a musical style by defining a GROOVE.
These predefined GROOVEs are wonderful things. And, yes, entire accompaniment tracks can be created with just some chords and a single GROOVE. But, often a bit of variety in the track is needed.
The RIFF command permits the setting of an alternate pattern for any track for a single bar-this overrides the current SEQUENCE for that track.
The syntax for RIFF is very similar to that of DEFINE, with the exception that no pattern name is used. You might think of RIFF as the setting of an SEQUENCE with an anonymous pattern.
A RIFF is set with the command:
Track Riff Pattern |
where:
Following is a short example using RIFF to change the Chord Pattern:
Groove Rhumba
1 Fm7 2 Bb7 3 EbM7 Chord Riff 1 4 100; 3 8 90; 3.666 8 80; 4.333 8 70 4 Eb6 / Eb 5 Fm7 |
In this case there is a Rhumba Groove for the song; however, in bar 4 the melodic pattern is emphasized by chording a quarter-note triplet over beats 3 and 4. In this case the pattern has been defined right in the RIFF command.
The next example shows that RIFF patterns can be defined just like the patterns used in a sequence.
Drum Define Emph8 1 0 128 * 8
Groove Blues 1 C 2 G Drum-Clap Riff Emph8 3 G 4 F Drum-Clap Riff Emph8 5 C |
Here the Emph8 pattern is defined as a series of eighth notes. This is applied for the third and fifth bars. If you compile and play this example you will hear a sporadic hand-clap on bar 3. The Drum-Clap track was previously defined in the Blues GROOVE as random claps on beats 2 and 4--our RIFF changes this to a louder volume with multiple hits.
The special pattern “z” can be used to turn off a track for a single bar. This is similar to using a “z” in the SEQUENCE directive.
A few things to keep in mind when using RIFFs:
Mset CRiff
Begin Scale Define Run 1 1 120 Riff Run * $SSpeed Voice AltoSax Volume f Articulate 80 Rskip 5 End MsetEnd Groove Blues 1 C Set SSpeed 8 $CRiff 2 G 3 G Set SSpeed 12 $CRIFF 5 C |
RIFFs can also be used to specify a bar of music in a SOLO or MELODY track. Please see Solo and Melody.
The above examples show how to apply a temporary pattern to a single bar--the bar which follows the RIFF command. But, you can “stack”7.1 a number of patterns to be processed sequentially. Each successive RIFF command adds a pattern to the stack; these patterns are then “pulled” from the stack as successive chord lines are processed.
Recycling an earlier example, lets assume that you want to use a customized pattern for bars 4 and 5 in a mythical song:
Groove Rhumba
1 Fm7 2 Bb7 3 EbM7 Chord Riff 1 4 100; 3 8 90; 3.666 8 80; 4.333 8 70 Chord Riff 1 2 100; 3 8 90; 4 Eb6 / Eb 5 Fm7 |
In this example the first Chord Riff will be used in bar 4; the second in bar 5. For an example of this see the sample file egs/riffs.mma.
I often use this feature when creating a SOLO line.
In the above section we discussed the creation of RIFFs. In addition to being fun and useful in a specified track, they can easily be duplicated between similar tracks with a single command:
Solo DupRiff Solo-1 Solo-2 |
will copy any pending RIFF data in the SOLO track to the SOLO-1 and SOLO-2 tracks.
A few rules:
The use of the DUPRIFF makes it very easy to manage data for solos with multiple instruments. For example:
Begin Solo-1
Voice Flute HarmonyOnly Open End Begin Solo Voice Clarinet Begin Riff 2g+; f+; 2e+; d+; End End Solo DupRiff Solo-1 |
The above example creates two SOLO tracks. SOLO-1 will
only play the harmony notes; SOLO will play the melody. Without
DUPRIFF you would need to duplicate the note data in both
tracks, either line by line or with a macro. Using DUPRIFF is
much simpler.