Emulating plucked instruments: Plectrum Tracks

PLECTRUM11.1 tracks 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.


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.


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.


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.


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.


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]


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

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.

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

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.2

For a basic strumming guitar you might use:11.3

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;

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 - - -;

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,

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

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

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

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

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

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=192 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:

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

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.

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.

The virtual strings to which the fret noise is applied are, by default, numbers 6, 5 and 3.11.4 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.

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.

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''.

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:


The concept and code base for the Plectrum track was developed by Louis James Barman <louisjbarman at googlemail dot com>. Send compliments to him!
... strumming.11.2
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.3
These examples use BEGIN/END shorthand notation. This is explained in the ``Begin/End Block'' chapter here.
... 3.11.4
This assumes a 6 string guitar. If there are fewer strings the numbers will be different.
... etc.11.5
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.
Bob van der Poel 2017-03-25