This chapter will serve as a container for questions asked by some enthusiastic MMA users. It may make some sense in the future to distribute this information as a separate file.
I've keyed in a song but some of the chords sound way too high (or low).
When a real player plays chords he or she adjusts the position of the chords so that they don't “bounce” around between octaves. One way MMA tries to do the same is with the “Voicing Mode=Optimal” setting. However, sometimes the chord range of a piece is too large for this to work properly. In this case you'll have to use the octave adjustments in chords. For more details go here.
How can one define parts as part “A”, part “B” ... and arrange them at the end of the file? An option to repeat a “solo” section a number of times would be nice as well.
Using MMA variables and some simple looping, one might try something like:
Groove Swing
// Set the music into a // series of macros mset A Print Section A C G endmset mset B print Section B Dm Em endmset mset Solo Print Solo Section $Count Am / B7 Cdim endmset // Use the macros for an // "A, A, B, Solo * 8, A" // form $A $A $B set Count 1 label a $solo inc COUNT if le $count 8 goto A endif $A |
Note that the “Print” lines are used for debugging purposes. The case of the variable names has been mixed to illustrate the fact that “Solo” is the same as “SOLO” which is the same as “solo”.
Now, if you don't like things that look like old BASIC program code, you could just as easily duplicate the above with:
Groove Swing
repeat repeat Print Section A C G If Def count eof Endif Endrepeat Print Section B Dm Em Set Count 1 Repeat Print Solo $Count Am Inc Count Repeatending 7 Repeatend Repeatend |
The choice is up to you.
It's easy to get lost in what lines are being processed. Use the “-L” command line option for a commentary. You must have each line numbered for this work!
I really think that MMA is a cool program. But, it needs a GUI. Are you planning on writing one? Will you help me if I start to write one?
Thanks for the kind comments! The author likes MMA too. A lot!
Some attempts have been made to write a number of GUIs for MMA . But, nothing seemed to be much more useful than the existing text interface. So, why waste too much time? There is nothing wrong with graphical programming interfaces, but perhaps not in this case.
But, I may well be wrong. If you think it'd be better with a GUI ... well, this is open source and you are more than welcome to write one. If you do, I'd suggest that you make your program a front-end which lets a user compile standard MMA files. If you find that more error reporting, etc. is required to interact properly with your code, let me know and I'll probably be quite willing to make those kind of changes.
Yes,this manual needs an index. I just don't have the time to go though and do all the necessary work. Is there a volunteer?