As per #11 , MMA supports only a subset of slash chords, those where the bass note exists in the scale of the chord.
In order to support chromatic bass notes, this PR handles slash notes differently:
A new Slash plugin is given a slash chord and defines a new MMA chord (via DefChord) where the bass note is explicitly set below the tonic (i.e., a negative interval)
MMA is patched to allow for negative intervals in the chord / scale definition
The XSL transformation detects slash chords and does 2 things:
Invokes Slash plugin with found slash chords
Replaces slash chords with their redefined name so that MMA uses the desired voicing
As per #11 , MMA supports only a subset of slash chords, those where the bass note exists in the scale of the chord.
In order to support chromatic bass notes, this PR handles slash notes differently:
Slash
plugin is given a slash chord and defines a new MMA chord (viaDefChord
) where the bass note is explicitly set below the tonic (i.e., a negative interval)Slash
plugin with found slash chords