Emulating plucked instruments: Plectrum Tracks
Keywords: mma

Subsections

- Tuning
- Capo
- Strum
- Articulate
- Patterns
- Shape
- Fret Noise

#
Emulating plucked instruments: Plectrum Tracks

PLECTRUM11.1tracks are designed to let MMA create tracks that sound, remarkably, like real, strummed instruments (guitars, mandolins, banjos, etc).

As mentioned earlier in this document, the biggest difference between PLECTRUM and other tracks is that a duration is not used. This means that each string (note) in PLECTRUM patterns continue to sound until they are changed (a new note) or muted.

When creating a PLECTRUM pattern or sequence you simply set an offset, strum duration and volumes for each string of the “instrument”.

To aid in debugging, a special DEBUG option PLECTRUM is provided. When enabled this will display chord shapes for generated chords. See here for information to enable/disable this option.

PLECTRUM tracks work with chord shapes. Guitar players11.2 will be very familiar with chord shapes, for that is essentially what a guitar chord is. It is the placement of the fingers on the strings, and this defines the notes that will sound. For example, a simple E major chord is usually played using the following shape:

        E | - - -   => E
        B | - - -   => B
        G | * - -   => G#
        D | - * -   => E
        A | - * -   => B
        E | - - -   => E

With a standard guitar tuning E A D G B E (bottom to top), the sounding notes will be E B E G# B E.

When a chord is played using a PLECTRUM track, MMA will calculate a shape for this chord using a simple but effective algorithm. For an E major chord this will be the shape shown above. In fact, most chord shapes that MMA calculates for simple chords will look like the familar chords from a guitar book.

There are a couple of ways to influence the notes that will sound for a given chord. First, you can change the tuning of the instrument with a PLECTRUM TUNING command (for details, see below). For example, for an E major chord on a D A D G A D tuned guitar MMA will calculate the following shape:

        D | - * -   => E
        A | - * -   => B
        G | * - -   => G#
        D | - * -   => E
        A | - * -   => B
        D | - * -   => E

The sounding notes will be E B E G# B E.

Another way is to use the PLECTRUM CAPO command (again, details are below). This changes the tuning of all the strings by the same amount. For example, a capo on the second fret on a guitar:

        E | - $ - * -   => G#
        B | - $ - - *   => E
        G | - $ - * -   => B
        D | - $ - - -   => E
        A | - $ - - -   => B
        E | - $ - * -   => G#

The “$” denotes the capo postion. MMA has calculated a different shape so the notes generate an E major chord: G# B E B E G#.

Guitar players who expected to hear a F# major chord should take a look at the MMA TRANSPOSE command (detailed here).

# Tuning

By default the PLECTRUM tracks are set to a standard guitar. However, it's very easy to change with with the TUNING command. This command requires a note setting for each string in the instrument. For example, to duplicate the default:

Plectrum Tuning e- a- d g b e+

In this case we have set six strings. The first string is a low “e”, the second a low “a”, etc.

Similarly, you could define a tenor banjo with:

Plectrum Tuning g- d a e+

Only one TUNING setting can be set for a sequence. It applies to all bars in the current sequence. It is saved and restored in GROOVEs.

If you change the TUNING for a PLECTRUM track after setting a SEQUENCE you must ensure that the number of strings in the PATTERN and TUNING are the same. A mismatch will generate an error. However, setting a different TUNING with the same number of strings is just fine.

# Capo

A “capo” is small bar which is placed on the neck of a guitar, banjo or other stringed instrument to raise its pitch. They are quite useful when a song is in a pitch too low for a singer ... a capo placed on the guitar raises the pitch of each played chord. Much easier for a player than having to change (raise) each chord in the song. In MMA the use of a PLECTRUM CAPO setting is a bit different: it doesn't change the chord pitches. A “C Major” chord remains a “C Major” chord. However, the actual note assignments to the different strings on the instrument can (and most likely) changes. Depending on the tuning of the “instrument” a “C” chord with a CAPO 2 will be created as a “B” chord shape played above the second fret. In most cases a chord with a positive CAPO value will have a higher tonality.

To change the CAPO value:

Plectrum Capo 2

In addition to raising the pitch of the instrument, you can use negative values ... in a real instrument you would need to stretch the neck for similar results! There are no limits on the capo values. Very high or low values will have no different effect over moderate ones since the generated notes will always be in the MIDI range of 0 to 127.

Only one CAPO setting can be set for a sequence. It applies to all bars in the current sequence. It is saved and restored in GROOVEs.

It is also possible to change the pitch or tonality for individual chords with the “barre” chord name extension (detailed here).

Yet another way to change the pitch is to use the OCTAVE settings here.

Remember: unlike a real instrument, neither CAPO or barre chords change the pitch (transpose) the chord in MMA . The same chord is played, but with a higher tonality.

#
Strum

By default, all PLECTRUM patterns calculate their STRUM offsets (delays) from the first string. In most cases this will sound just fine (remember, we don't have a real guitar here! It's a virtual model which is not meant to be the same). There are cases when you might want to modify the order. Use the STRUM option to change the default to “Start”, “Center” or “End”. Example:

Plectrum Strum center

will force the strumming offsets to be calculated from the center string.

The PLECTRUM STRUM command permits only one keyword.

#
Articulate

When the a pattern changes, strings need to be muted. By default, this is done at the same point as the new strings are sounded. However, you can adjust this with the ARTICULATE command. The command takes single values representing the number of MIDI ticks to move the off action back.

For example:

Plectrum-Jazzy Articulate 40

would subtract 40 MIDI ticks from the normally determined offset. You can use any value from 0 to 500 in this command.

Generally speaking, the use of this option will give a more staccato feeling to your track.

A value of 0 will restore the setting to its default (off). The use of large values is not recommended; however, the OFF point will never be before the ON so you'll just end up with very short sounding chords. Remember that 192 MIDI ticks is equivalent to a quarter note.

Just like in ARTICULATE for other tracks (see here for full details) you can increment or the current settings:

Plectrum Articulate -5 +5

You can have different settings for each bar in your sequence.

# Patterns

Setting a pattern for a PLECTRUM track is similar to that of other tracks: you simply set the offset and volumes for the different strings. In addition you must specify a “strum” value (used as a delay between strings). The formal definition for a PLECTRUM pattern is:

Offset Strum Strings Velocity [...Strings Velocity]

where:

Offset
  A beat or offset into the bar. This is used in the same manner as in all the other MMA patterns.

Strum
  The strumming delay between hitting each string. Use a positive number for a downward strum and negative number for an upward strum and use zero for all the notes to be played together. “3” is a fast downward strum and “-10” is a slow upward strum.

Strings
  The string or strings that are to be plucked. Details below.

Velocity
  The MIDI velocity (loudness) for each string. “127” is the maximum volume, A value of zero is used to mute the string or strings. Guitarists often mute the strings with the side of their hand when strumming.11.3

For a basic strumming guitar you might use:11.4

Begin Plectrum-Strumming Voice NylonGuitar Volume m Sequence { 1.0 +5 120 120 120 120 120 100; \ 2.0 +5 90 80 80 80 80 80;\ 2.5 -5 - - 50 50 50 50;\ 3.0 +5 90 80 80 80 80 80;\ 3.5 -5 - - 50 50 50 50;\ 4.0 +5 90 80 80 80 80 80;\ 4.5 -5 - - 50 50 50 50; } End

This gives eight strums per bar. Note the strum values at beats 2.5, 3.5 and 4.5: using a negative strum value causes the strum to run in the opposite (high to low) direction.

Also, notice the use of “-” values for certain strings. A “-” lets that string continue to vibrate until the next pattern. If you want to disable (mute) a string use a “0” for the volume.

Another example shows how to set up a finger picking pattern:

Begin Plectrum-FingerPicking Voice NylonGuitar Volume m Sequence { 1.0 0 - 100 - - 90 -;\ 1.5 0 - - - 90 - -;\ 2.0 0 - - 90 - 90 -;\ 2.5 0 - - - 90 - -;\ 3.0 0 - - - - - 90;\ 3.5 0 - - - - 90 -;\ 4.0 0 - - - 90 - -;\ 4.5 0 - - 90 - - -; } End

To make creation of volume tables a bit easier, you can shorten the notation by setting a range and volume. This is done by using “n-m:v” where n is the start string number and m is the end string number and v is the volume. Please note that the strings are numbered in “reverse” order, just like a guitar. The last string (the bottom and usually the highest pitch) is string “1”, the first string (assuming 6 strings) is “6”. So,

- “1.0 0 2:50” is the same as “1.0 0 - - - - 50 -”
- “1.0 -5 2-4:80” is the same as “1.0 -5 - - 80 80 80 -”

It is not possible to mix range and individual string settings. So, you cannot do:

- “1.0 0 2:50 90” ¡¡Wrong!!

Missing volume settings are expanded just like in CHORD tracks. So, assuming a 6 string guitar:

- “1.0 0 90 ” is the same as “1.0 0 90 90 90 90 90 90”

However, do note that you must specify either one or all the strings if you are not using a range. Again, you cannot do:

- “1.0 0 80 90” ¡¡Wrong!!

Please note that the following options have no effect in a PLECTRUM track: ARTICULATE, VOICING, MALLET and DIRECTION.

#
Shape

Guitar players often talk about “chord shapes” when referring to chords. Simply put, a “shape” is a chord fingering which (mostly) can be moved to other positions on the fretboard to generate other chords. MMA doesn't work that way ... well, not without some magic. As a matter of fact, the way MMA works can be quite foreign to a guitar player, especially when using the BARRE and CAPO commands ... these commands in MMA do not change the actual chord sounded, only the position of the chord on the fretboard.

The PLECTRUM SHAPE command lets you emulate a real guitar (it can help predict the notes sounded on different strings which cannot be done using MMA 's internal algorithmic routines).

For example:

Plectrum Shape D 5 5 4 2 3 2

defines the following shape:

        E | - * - - -   => F#
        B | - - * - -   => D
        G | - * - - -   => A
        D | - - - * -   => F#
        A | - - - - *   => D
        E | - - - - *   => A

With a standard guitar tuning the sounding notes will be A D F# A D F#.

With a different tuning you get different notes, e.g., with D A D G A D tuning,

        D | - * - - -   => E
        A | - - * - -   => C
        G | - * - - -   => A
        D | - - - * -   => F#
        A | - - - - *   => D
        D | - - - - *   => G

A PLECTRUM SHAPE only applies to the chord name specified in the setting, no other chords are affected. Chords with and without BARRE are considered different chords; for example, a specific shape defined for “E” will not be applied to “E:2”. You can define a different shape for “E”, “E:2” and even “E:0” if you really want.

Negative values are permitted. Yes, that means you can make a guitar neck longer than it is.11.5

Notes:

- Be careful when defining a shape: MMA does not check to see if the notes generated are actually part of the chord. Also, be aware that other tracks (Bass, Chord, etc) are totally unaffected by any shape settings.

- The CAPO setting is ignored for chords with a defined shape.

# Fret Noise

The noise made by a performer's fingers leaving a string position, particularly on heavier wire-bound strings, can be emulated in a plectrum track. The success (or lack thereof) is dependent on the following settings and the selection of the voice used to emulate this.

Fret noises generated by the plectrum track are stored in a BASS track selected by the user.

When this option is enabled, MMA enters a special routine when a new chord (pattern) is started. A tone is then generated based on the currently ending note for the each string. Note, the noise is only generated if the string is currently sounding.

Enabling fret noise is a two step process. First, you should create a BASS track. In the following example we set a number of parameters, but only the VOICE selection is really necessary (unless you want a piano sound for the fret noise, in which case you can even omit that).

Begin Bass-Noise Voice GuitarFretNoise // pretty much required Volume mf // up to the user RVolume 40 // adds some variety RTime 50 // changes start point of noise Delay -8 // moves noise back from the beat Rskip 10 // skip 10% of the noise End

Second, you need to set the options in the PLECTRUM track using the FRETNOISE command. A complete command line duplicating the defaults (excepting TRACK and assuming 6 strings) would be:

PLECTRUM FretNoise Track=BASS-NOISE Duration=192t Octave=0 Strings=6,5,4 Max=1 Beats=All Bars=ALL

The various options are set using an OPTION=VALUE format. Each option is described below:

Track
  This specifies the track used to store the generated fret noise. It must be given. The track must be a BASS track (using any other type of track will generate an error). For example:

  Plectrum-Noisy FretNoise Track=Bass-Fretty

Duration
  The duration of the fret noise note. This is specified in standard note duration. A quarter note would be “4”, sixteenth “16”, etc. You can also specify MIDI tick values by adding a single “T”. Please note that the duration value reported in debug or in the $_PLECTRUM_FRETNOISE macro is specified in MIDI ticks. By default a duration of a quarter note is used.

Octave
  As noted earlier, the note generated for the fret noise is the same as previously ending note. Its octave can be raised or lowered via the OCTAVE setting. Any value between -8 and 8 is valid. Please note that the octave setting in the associated bass track is completely ignored. By default an adjustment of “0” is used.

Strings
  The virtual strings to which the fret noise is applied are, by default, numbers 6, 5 and 3.11.6 You can reset this to any strings you wish. Use comma separated values. Any strings not set by this command will not have fret noise applied to them.

Max
  By default, fret noises will only occur once per chord release/start (Max=1). However, using this option you can change this to more strings, up to the size of the virtual instrument's string count. The strings are checked for changes (and possible noising) from the bottom up (6 is checked first, etc). Once a string is “noised” the loop is exited. Caution: More strings will generate an awful lot of noisy fret sounds.

Beats
  By default, fret noise will apply to each pattern in your sequence. Using the BEATS option you can restrict this to only specific beats. For example, BEATS=1,3 will restrict noise generation to patterns starting on beats 1 and 3. To duplicate the default you can use the special value “All”.

Bars
  By default, fret noise will apply to each bar in your sequence. You can restrict this to specific bars in your sequence. For example, assuming a SEQSIZE of 8 the setting BARS=1,4 will generate fret noise only on bars 1 and 4 in a sequence. To duplicate the default you can use the special value “All”.

To disable fret noise in a track you can use an empty command or the single keywords “None” or “Off”:

Some points to note:

- You cannot have different settings for bar sequences, only limit them with the BARS option. If you need, for example, an specific fret noise in the first bar, and a different one in the third, simply make a copies of the track, set the sequence for the first track's bars so that you have an empty first track; set the second track's sequence to compliment and set the fret noise, etc.11.7

- Changing the number of strings or tuning (PLECTRUM TUNING) deletes all current Fret Noise settings.

- Empty option strings (e.g., BEATS= ) are not permitted.

- Depending on the synth you are using the octave you are using can make a huge difference in the sounds used. If the sounds are very displeasing, try a very high (or low) octave setting.

- The duration of the sounds also makes a difference. Again, this is completely depends on your synth.

- Although this is designed to use fret noise, there is no reason you cannot do creative things by using different voice settings.

- Strings are numbered from 1 to the number of strings in the virtual instrument. Note that, just like a real fretted instrument, string 1 is the highest (closest to the ground).

- The associated BASS track should not have a SEQUENCE! However, you can use the track to generate interesting patterns with a TRIGGER or RIFF. In these cases sounds will not be generated by the PLECTRUM track settings.

#### Footnotes

...PLECTRUM11.1
  The concept and code base for the Plectrum track was developed by Louis James Barman (louisjbarman@googlemail.com). Send compliments to him!
... players11.2
  The same principles apply to other fretted stringed instruments including banjo, mandoline, ukulele, etc. When we refer to “guitar” in this document feel free to substitute your favorite name in its place.
... strumming.11.3
  The PLECTRUM track differs from other MMA tracks as the duration of each note is not given but instead like a real guitar the note on the string will continue to sound until either it is muted by using a velocity of zero or until another note is played on the same string.
... use:11.4
  These examples use BEGIN/END shorthand notation. This is explained in the “Begin/End Block” chapter here.
... is.11.5
  Values must be in the range -127 to 127. Note that even “small” values can push notes outside of the MIDI range, in which case they are normalized to still sound.
... 3.11.6
  This assumes a 6 string guitar. If there are fewer strings the numbers will be different.
... etc.11.7
  This is a deliberate departure from the normal MMA syntax. It's quite unlikely that you would want more that one fret noise setting in a sequence, but quite likely that you'd only want a setting to be applied to a certain bar in the sequence.