Better error messages needed, esp in cases like this:

	Cm
	Goove foobar
	...
	
Here the mispelling of Groove is reported as an unknown chord.

Another error reporting problem comes with this:

	Groove Bass-Foe Somegroove
	
If the user intended Bass-Foo (not Foe) there is no error reported.

---> Not sure if the parsing routines will permit anything better.

-------

Need to check all functions for debug hooks.

--------

Look at the cresc code. It changes volume(s) at the end of each bar, and
it would be nice to change this to beats. I think some table driven code
will work here... just a have a list of volumes for each track and pop off
a value after every beat...


---------

Specify chord notes manually? Might be nice to create a 'custom' chord
from time to time ...

	C C6 Cm(c g e&+) Cm
	
In this case the 3rd chord would be called a Cm (we'll still need a name
for certain routines) but the notes will be as specified. In this case
we've just taken the 3rd (the minor tone) and put it up an octave.


-----------------

The '/' is reserved in groove names. In the future we'll write code so that a groove can specify a groove in a specific file. Example:

	Groove bvrhumba/rhumba
	
would load the 'rhumba' groove from the file 'bvrhumba.mma'.

----------

Extended voicing? With lots of synths offering more than GM voices we might want to have a bank/voice in addition to just voice. I'm thinking that to extend the current voice command all would be needed is to change to have an optional BANK appended to the voice with a comma. So:

	Voice 66,52
	
would select voice 66 from bank 52. The only problem with all this is that it will create MIDI files quite specific to a synth, and I'm not sure I want to do that or do I want to stick with GM?

This might be covered at this point with the MIDIVoice. I think this item can be deleted!

----------

LYRIC: attach each single word to a (SOLO-)note (resp. its timing)
	like:  { 4g[what]; 4e[if]; 8e[the]; 8g[lyrics]; }
	
-----------


Modify the MIDISEQ syntax to allow for a range of beats/values. Perhaps something like:

   MDEFINE Wow  1 Modulation 10-50,10,3
   
which would end up inserting 10 modulation events with value 10 to 50
(10, 14, 18 ... 40) at beats 1 to 3 (1, 1.2, 1.4 .. 3). Syntax is
awkward here, but it's the general idea to have:
		
		<beat> <ctrl> <value range>,<steps><final beat>
		
		
-----------

HARMONY: A few more forms would be nice. Some might like:

	8above - just add the same note, up an octave
	8below - add same note, down an octave
	16above,16below ...
	some combinations of current plus octaves?
	   
-----------------

More options for the SCALE track. Perhaps an INTERVAL command which would
let the user pick out notes from a scale to use:

	INTERVALS=1,3,5,6
	
which, assuming a Cmaj chord, would loop though the notes C, E, G, A.
Enhancments to the syntax might include: '+', '-' to change the octave
and 'b/&' and '#' to select an accidental:

	INTERVALS=1,3&,5,1+
	
would do: C1, Eb, G, C2


-------------

Extend the chord tables to include scales for each chord. A Major chord would have the sequence for a (c) major scale; a Minor chord would have the same scale with 3rd flat; etc. All have 7 notes. These scales will be used in bass and walk tracks for notes. Also, the bass pattern will have any value from 1-7 as the note offset.

--------------

TIMESIG: add to groove def and have it set each time we call up a groove. To avoid too many duplicate timesigs in the midi file track the setting (always in META) and skip if it's a duplicate.


