Hello,
I'd like to give an update on my progress here: after trying a number of approaches, including the ones suggested in this thread, I've found a simple solution but that unfortunately requires patching MMA code. Here is the relevant code
https://github.com/infojunkie/musicxml-mma/pull/17, and I'll try to explain here:
- I wrote a "Slash" plugin which, given a slash chord, defines a new MMA chord (via DefChord) where the bass note is explicitly set below the tonic (i.e., a negative interval)
- For this to work, I had to patch MMA to accept negative intervals in the chord / scale definition
- The XSL transformation that converts MusicXML to MMA 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
The reason I am not using a SOLO track is because
a) my converter already converts the melody to the SOLO track, and I need to differentiate between those tracks (e.g. for muting / eq purposes, etc.)
b) the regular CHORD / BASS tracks would be playing the regular tonic bass over the bass defined in the SOLO track
I can imagine there are workarounds for those limitations, but I was wondering if there's a specific reason why negative intervals are not allowed in chord definitions.
Thanks!