
Changes file for the 2020 series

This reflects changes to MMA since the release of version 20.02 (February 2020).

Fixed several spelling errors in the man pages. Thanks to Dennis Braun.

Fixed major problem with plugins crashing with Python3. Easy fix :)

Changed the default behaviour of Plectrum tracks: they no longer turn off
  all sounding strings when a groove is changed. This can be restored via
  the Tweaks PlectrumDoRest=True or Off setting.

Fixed minor problem with keysigs always being "#" in a MIDI file.
  Thanks to Jason Crane.
	
Released 20.02b - April 6/2020
------------------------------

The recursion levels for include/use files are now checked to stop
 a possible runaway overload.

Fixed bug that prevented the use of a predefined sequence in Trigger. Also
 fixed some debug info in Trigger.

Fixed AFTER so that it behaves as expected in * bar sequences.

Enhanced Tempo to accept the Restore=Measures and Offset=Measures options.

Fixed $_Tempo macro to reflect current setting, not future ones.

Added $_MidiAssigns system macro. Reports the current MIDI channel assignments
 with their channels. Useful in debugging MIDI overflows.

A number of functions creating temporary files have been changed to use the
 library function tempfile.mkstemp() instead of my open (dumb) version using
 the pid of mma.

Released 20.02c - May 5/2020
----------------------------

Fixed mispelling in drum tones. OpenSudro should read OpenSurdo. Changed refs in
 the casio lib files as well.

Fixed a bunch of stuff in the AFTER code. Mainly, it now works in a
 repeat (*) loop. Thanks for the pushes on this, Johan.

Added: You can now set a default drum kit for use with a drum track.
 See the manual tweaks section. And, you can also use the drumkit
 names in the VOICE command.

String slicing: The empty operator ( [] ) now returns the length of argument.

Added: -xGrooves. This will list all grooves in the database. You can use an
  argument and all grooves matching that name will be listed. The names are
  all presented in extended groove notation so you can cut/paste these into
  the -V option.

Released 20.02d - June 1/2020
-----------------------------

Fixed yet another mispelling in drum tones. MuteSudro should read MuteSurdo.

Fixed a number of minor "oversights" in the stdlib: Some grooves did not show in
  the docs dues to missing documentation strings and JazzGuitar3 definition
  was clobbered.

Added a -Djs command line option. This gathers all the groove information parsed
  by MMA and prints it to stdout as a json string.

Harmony: Added TOP, ROOT (and variants); randomized selection of harmonies;
  cleaned up docs; optimized code.


Released 20.02e - June 1/2020
-----------------------------

The main caller, mma.py, has been modified so that the standard python library
  locations are checked for the mma modules.

The mmarc search path now includes $HOME/.config/mma/mmarc.

Added env variables MMA_PLUGPATH and MMA_LIBPATH. These are comma separated lists of
 additional directories. The are inserted into the default paths.

Added: -xPRINT var1 var2 ... Print out the values of various system variables
  at initialization.


Released 20.02f - November 16/2020
----------------------------------

Added env variable MMA_INCPATH (see MMA_LIBPATH above).

Changed location of call to process MMA_LIBPATH, MMA_PLUGPATH and
 MMA_INCPATH so that directives like -I and -V on the command
 line now work with the additional paths. NOTE: if you want multiple
 paths you MUST use the OS dependent separator, this is a ':' in
 Linux/Mac and a ';' in Windows. To verify open a python session and type:
    import os
    print(os.pathsep)
 It will print the correct character.

Added the env variable MMA_HOME. Read more about this is the
 Enviroment Variables section of the fine manual ... but this
 makes it "easy" to have non-standard installations.

Released 20.12 - December 8/2020
----------------------------------
