In my quest for flexible and easy ways to deal with the specifics of fingerpicking guitar I think I may have reached a point that my findings may be of interest for other MMA guitar players (if any?).
One of the basic issues to tackle is that fingerpicking requires different patterns for different chords. For example, an E chord would have a bass on the 6th (E) string and then picks strings 4, 3 and 2. An A chord would have bass on the 5th (A) string and pick strings 4, 3 and 2, while a D chord would have bass on the 4th (D) string and pick strings 3, 2 and 1. Traditionally patterns are tied to grooves, so my first approach was to define a groove for each of the patterns and switch grooves.
Groove G4A
10 Am * 2
Groove G4EE
12 F G
Groove G2AA
13 C G
Groove G4E
14 F
and so on. This works, but makes it hard to use grooves of other kind of accompagniment.
Fortunately MMA is capable of switching patterns within grooves, which leads to a second approach: define macros that switch the picking patterns in the active groove. For example, a macro PPE sets the Plectrum pattern to a specific fingerpicking pattern (with bass E). PPA sets another pattern (with bass A). This makes things slightly easier:
$PPE
1 Em
$PPA
2 Am
3 B7
$PPE
4 Em
Carrying this one step further by introducing macros that call subroutines:
DefCall PPE Chords
Plectrum Sequence PPE
1 $Chords
EndDefCall
Set PPE Call PPE
then the song becomes a bit more compact:
$PPE Em
$PPA Am
B7
$PPE Em
(even though we loose line numbers... not a big deal)
But wait! MMA is a very good guitar player, much better than I am. Why? Because MMA has very long fingers

. So instead of defining different patterns I now define a
single pattern and
change the chord shapes to go with the pattern. MMA has no problems with this:
Begin Plectrum Shape
// B x x x bass on 6, pick 4,3,2
Em 0 2 2 0 0 0
Am 5 0 2 2 1 0
B7 7 2 1 2 0 2
D 10 0 0 2 3 2
End
The song becomes:
$PP1 Em
Am
B7
Em
The call to $PP1 is only necessary when changing to a new groove -- which is usually infrequent.
Attached two boiletplates for the sequence switching approach. Comments welcome.