yoshimi 2.0

2021-3-1 Will
* Master window stays in view with resolution changes.
* Added extra error check in CLI BPM ratio entry.
* Added extra comments in various files.
* Final doc updates.
* Set release version 2.0

2021-2-27 Will
* Enabled LFO BPM ratios in CLI.
* Unified CLI and GUI BPM reporting.
* Allowed delay in scripts up to 30 seconds.
* Made filer window location independent of source.

2021-2-25 Will (additional)
* Fixed regression: Named instrument load shows time again.
* Swapped order of filerfave and fileradd
* Doc updates
* Set version as 2.0 rc5

2021-2-25 Will
* Now includes new filer updates and additions.
* Removed Miscellany/Images directory.
  It's redundant. All images appear in usr guide.
  Significant ones are also on the website.
* Set version as 2.0 rc4

2021-2-19 Will
* A few more instrument type changes.

2021-2-17 Will
* Had to revert some bank changes.
  This was resulting in multiple copies with
  slightly different filenames :(
* Refinements to instrument types.

2021-2-16 Will
* Revised all remaining banks.
  Internal/file names consistent
  Many now properly typed.

* Small improvement to patchset instrument names.
  Now keeps a copy of the source file leafname
  stored in the info section.
* Doc updates.
* Set version as 2.0 rc2.

2021-2-15 Will
* Cleaned out a lot of redundant code.
  Mostly commented out test print.
* More doc updates
* set version as 2.0 rc1.

2021-2-14 Will
* Increased MIDI-learn list limit to 400 lines.
  Added 10mS sleeps every 32 lines on loading.
  Still less than 1S for a full list and estimate
  less than 200uS for actioning ones at the end.
* Doc updates.
* Moved audio/midi defaults from CMakeLists.txt to globals.h
* Changed both defaults to Alsa.

2021-2-13 Will
* Aftertouch saved in Yoshi instruments and patchsets.
* Panning law saved in patchsets and states.
* Disabled automatically pushing main window to top.
  It hid startup warning messages.
* Disabled printing of tooltip sizes 'tipset'.
* Echo exit warnings to CLI if set for console window.
* Started updating docs.
* Set min config to 2.0
* Set version as 2.0 prev

2021-2-12 Will
* Revised GUI for AddSynth Voice.
* BugFix: Generating new bank root not updating GUI.

2021-2-11 Will
* Disabled call toe Gui thread messages in UI/MiscGui
  Now redundant
* BugFix: AddSynthModuator gui state of sync.
* Further work on completely new bank roots.
  Still not updating Gui till rebooted.

2021-2-9 Will
* All remaining 'SetSystemValues' made non threadmessage type.

2021-2-8 Will
* Revised messaging for bank root add/remove.
* Started changing 'SetSystemValues' to non threadmessage type.
* Reinstated and updated list in docs 'NRPN_System_Settings.txt
  Corrected control numbers.
  It hasn't supported list displays for some time.

2021-2-7 Will
* Improved search for user guide.
* BugFix: new GUI files not copied to LV2 cmake.txt

2021-2-6 Will
* CLI no longer directly handles bank removal.
* CLI no longer uses gui thread message for bank root access.
* Improved handling of missing bank roots.

2021-2-4 Will
* Properly integrated adding a new bank.

2021-2-2 Will
* Another attempt to resolve standalone lock up issue.

* Removed (commented out) engine colour enable code.
  This is now *required* for other functions.
  Also updated file dates.

2021-2-1 Will
* BugFix: Panel window not handling part group changes
* Commented out some redundant routines.
  These will be removed once sure they are redundant.
* Small simplification in new checkbox resize.

* Properly integrated adding root paths.
  still not quite correct for empty dirs

2021-1-30 Will
* recoded formatTextLines() in FormatFuncs.h
  can now handle embedded newlines correctly.
* Revised the following banks:
    Will_Godfrey_Collection
    Will_Godfrey_Companion
* Improved layout of part Edit window.

*Merged improved FLTK widgets from Jesper
 and adjusted to fit laterst build


2021-1-29 Will
* aftertouch window can be opened from part edit window
  right click close reopens correct parent.

2021-1-28 Will
* Another attempt to resolve LV2/Main conflicts.

2021-1-27 Will
* Reverted startup to threadmessage style.

2021-1-26 Will
* Converted logging various switches to report on/off.

2021-1-25 Will
* Swapped masterU wincheck() and read_updates().

2021-1-24 Will
* Moved process messages from LV2 and main to misc_gui
* 1st trial of direct instance start from main.

2021-1-23 Will
* BugFix: used invalid type offset (-1)
  goes into endless loop
* Moved console log read from LV2 and main to misc_gui
  also cleaned up code
* Disabled some redundant threadmessage code.

2021-1-23 Will
* Revised the following instrument banks:
    Choir and Voice
    Misc
    Plucked
* Modified main->GUI refreshes.
  corrects high GUI CPU load from previous change.

2021-1-21 Will
* Small code cleanups

2021-1-20 Will
* BugFix: failed to check CLI after code change!
* Revised timing for GUI updates.
  Should resolve LV2 crash.
* Moved GUI process messages in main to be per instance.
  seems to resolve long-standing VU corruption
* Unified CLI instrument type lists.
* GUI unified for instrument type lists.
* Instrument types are now extendable.
  added following types:
    Bells and Chimes
    Single Voice
    Choir
    Wind (other)
    Warm Pad

2021-1-19 Will
* Improved end of text lists ID.
* Revised CLI and Data2text for BPI reporting.
  Setting CLI input as ratio still to do.
* CLI code for setting ratios in place (disabled)
  Don't yet know how to convert to actual value

2021-1-18 Will
* Merged in MIDI LFO sync from Kristian.
* GUI: Small Adsynth voice adjustments.
* GUI: Voice resonance enable now resizes.
  it had been completely forgotten :(
* BugFix: no LFO delay.
  lfoelapsed increment too big
* Further work on handling occasional LV2 crash

2021-1-17 Will
* Cleaned up ConsoleUI
* Disabled YoshiWin code
* Possible fix for LV2 first startup crash

2021-1-16 Will
* Merged in new denormal code.
* BugFix: attempt to access nonexistent window.
  DynFilter internal filter window

2021-1-15 Will
* Revised the following instrument banks:
    Pads
    Strings
    Synth
  Internal & filenames match
  Instrument type specified

2021-1-14 Will
* Revised the following instrument banks:
    Bass
    Brass
    Drums
    Guitar
    Organ
    Reed and Wind
    Rhodes
  Internal & filenames match
  Instrument type specified
* Made instrument/ban list frames bigger.
  clicking near edges not always recognised

2021-1-13 Will
* Minor update to GUI.
* Updates to docs.

2021-1-12 Will
* Started revision of part effects window.
  Now uses sanity check
* GUI part effects dynfilter fully integrated.
  Nothing now uses YoshiWin, but if the header link
  is removed from ConsoleUI it fails to compile.
  I have no idea why!

2021-1-10 Will
* BugFix: GUI Part effects text not resizing
  when changing effect type
* BugFix: GUI oscsize/bufsize not seeing lowest setting.
  As these are always powers of 2 it was simpler to
  just use bitFindHigh and make an offset adjustment.

2021-1-10 Will
* Removed ring mod sideband code.
  Proved to be unnecessary.
* Fixed spelling errors!

2021-1-7 Will
* Improved GUI sanity check.
* Removed some redundant code from Interchange.
  it was doing nothing but still being processed

2021-1-6 Will
* Unison Invert made dynamic.
* Oscil phase random now label resizes.
  missed these earlier :(
* Small AddSynth position adjustments.
* Suppressed invalid history group warning.
  called as filer opens but don't know how
* Stop Preset dirs creating just '/'

2021-1-5 Will
* Merged in resize branch
* Corrected date below

2021-1-5 Will
Temporarily disabled ring mod sideband feature.
Skipped over missing build numbers.
Set release version 1.7.4

2020-12-27 Will
Added recommendation to set inst. type when saving.

2020-12-23 Will
BugFix: secondary instance banks not fiding local dir.

2020-11-15 Will
BugFix: GUI not setting kit item names.

2020-10-29 Will
*Updated docs.
* Set release as 1.7.3 (mantenance)

2020-10-27 Will
* BugFix: base func mod not enabled for triangle wave.

2020-10-25 Will
* BugFix: Failing to load some .scl files.
  Microsoft format text generating blank lines.

2020-10-24 Will
* Bugfix: Voice enable not recognised from voice list.

2020-10-8 Will
* BugFix: Addsynth Global detune type range wrong.

2020-9-20 Will
* BugFix: Indirect vector not being called.
  Copy and paste error :(

2020-9-20 Will
* Removed very old commented out WidgetPdial code.
  It was a bit hacky and was long since superceded.

2020-9-16 Will
* Split out engine processes from commandSendReal.
* Found and replaced 2 magic numbers.
  Don't understand how sustainPedalEnable can ever be
  relevant in addVoice! (InterChange.cpp line 1969);
* Split indirectMain out of indirectTransfers.
* Cleaned up indirectMain.
* Split indirectBank out of indirectTransfers.
* Split indirectConfig out of indirectTransfers.
* Split indirectPart out of indirectTransfers.
* Split indirectScales out of indirectTransfers.
* Spilt indirectVector & indirectMidi from indirectTransfers.

2020-9-11 Will
* Fixed some confusing CLI info typos.
* Corrected CLI anomaly with instrument default copyright.
  It was possible to set it outside the part context
  and sometimes this only worked for part 1.

2020-9-6 Will
* Major revision of virtual keyboard.
  Controller values match existing settings.
  Displayed values updated when changing channel.
  RH button defaults recognised.
* Updated Docs.

2020-9-4 Will
* Slightly increased splash times and moved timeout point.
* Moved Interchange Init to end of Synth Init.
  Ensures everything set before Interchange threads run.
* Disabled all parts at start of default setting.

2020-9-2 Will
* Simplified GUI code for button 3 use.
* Temporary fix to virtual keyboard default controller.

2020-8-25 Will
* Click on mixer volume clears all overloads on that column.
  But overload warning only set for currently visible row.
* Small clarifying change to part send text in main window.

2020-8-24 Will
* Enabling part kit items now goes through indirect transfers.
  Stops Xruns, but part is now silenced during this.
* First time enabling of PadSynth applies parameters.
  Has to silence the part in the process.

2020-8-19 Will
* Commented out 'Warnings as errors' in CMakeLists.txt
  Was causing problems for less experienced builders.

2020-8-19 Will
* Reverted removal of lv2ext/programs#Interface
  Needed by Carla to identify banks.
* Ensured last fix was applied to both yoshimi & yoshimi-multi

2020-8-18 Will
* Bugfix: Segfault on LV2 due to untested thread join.
* Cleaned up some warnings from lv2lint test program.
  Two warnings remaining. Also one fail I don't understand :(

2020-8-16 Will
* Final doc updates.
* Set release version 1.7.2

2020-8-16 Will
* Doc updates - no code changes.

2020-8-12- Will
* Merged in pull reqeuest for Kristian.
  Completes SubSynth frequency correction for all
  detune cases.
* Further bank startup enhancement and enabled.
  Copies new default instruments into .share
* Set latest Advanced guide.


2020-8-11- Will
* BugFix: GUI kitmode entries updating wrong items.
* Started work on Banks enhancement.
  Currently disabled.

2020-8-10- Will
* Provisional fix for SubSynth frequency bug.

2020-8-8 Will
* Removed references to Jack in LV2.
  Used time_t instead of jack_nframes_t
* Applied patch from Hubert.
  Removed jack reference from LV2 cmake file.

2020-8-2 Will
* Clarifed CLI 'solo' controls.
* Further refinements to 'solo' NRPNs
* Updated docs.

2020-7-30 Will
* BugFix: NRPN 'Solo' not working. Changed actual control numbers.
* Revised NRPN recognition, particularly shortform ones.
* Updated docs.
* Started ODF format of full list of CCs and NRPNs (in docs).

2020-7-26 Will
* Merged following fixes from Kristian
  Avoid out-of-bounds phase when moving the phase slider of live
   voice.
  Fix unison phase randomness not being respected in sub voices.
  Optimize: Avoid running a full note update when only one part
   has changed

* Reverted union for 'value' in command block.
  Not using the int version, and seems unnecessary.

2020-7-18 Will
* CLI can now restore full key range for part and kit mode.
* Unison enable button now correct when set from CLI.
* Updated docs.

2020-7-16 Will
* Updated user guide to include latest changes.
* Changed AddVoice delay slider to not show boxed value.
  It makes the track longer and it's already in the tooltip.

2020-7-16 Jesper
* Added dynamic tooltips for AddSynth phase offset sliders,
  waveform editor per-harmonic phase offset and magnitude
  sliders, and SubSynth per-harmonic magnitude sliders.
* Changed direction of per-harmonic phase offset slider in
  the waveform editor to make it consistent with other phase
  offset controls.

2020-7-14 Will
* Manual correction NRPN History MSB

2020-7-8 Will
* Updated Advanced User Manual 1.7.1 +.
  Still carries 1.7.1 version in the filename.

2020-7-6 Will
* Corrected dynamic tooltip for engine level pan controls.
* Implemented dynamic tooltip for pan width controls.
  Repurposed the (now redundant) panningRandom type.
* Framed and highlighted engine level Vol/Pan control groups.
  They now look like the stock inserts.
* BugFix: Messed up voice selection with above changes :(

2020-7-5 Will
* BugFix: Part edit SubSynth button showing wrong colour.
* BugFix: EQ effect not showing correct controls active.
  Particularly when loading patch/instrument.
* Default bank ID correction.
* Doc Updates.

2020-7-2 Will
* System Effect Enable now MIDI-learnable.
* Part Effect Bypass  now MIDI-learnable.
* Unified all float to bool conversions.
* Some minor style cleanups.

2020-6-20 Will
* BugFix: New stand-alone startup crashing on some window managers.
  Now using a different (non-threaded) structure.
* Small bank cleanups.

2020-6-19 Will
* Moved bank refresh thead message from SynthEngine to main.
  doesn't seen relevant for LV2.
* Moved NewSynth thread message to end of startup code.
* Moved Fl::lock to early in main().
* Early start message now in detached thread.

2020-6-18 Will
* BugFix: banks doing unnecessary rewrites to local/share
  A minor banks issue also seen - to be fixed.

2020-6-12 Will
* Applied patches from Marco for additional LFO types.

2020-6-10 Will
* Further work on random pan for compatibility.
  Should be complete now!
* Found some magic numders used for 'type' :(

2020-6-8 Will
* AddVoice Listitem now sees mod oscilator.
  Not yet fully updated.
* Fixed regression: listitem freq slide now correct.

2020-6-7 Will
* Random pan width enabled for CLI.
* Unified CLI panning controls.
* Updated docs.

2020-6-6 Will
* Trial of PadSynth random width control done.
* Trial of SubSynth random width control done.
* Added forgotten PadSynth random load and save :(
* Trial of AddVoice random width control mostly done.
  Voice list not included yet.

2020-6-5 Will
* Added line in AddNote.cpp ring mod code for amp mod.
  Commented out, but there for trials.
* General cleanups and removed reduntant code.
* BugFix: Request for invalid root reports, but still sets it!

2020-6-4 Will
* First trial of AddSynth Gobal random width control.
  Has partial legacy compatibility.

2020-6-3 Will
* Unified random panning, with variable position and width.
  Fixed values until parameter setup and control done,
  but follows pan law.

2020-5-30 Will
* CLI only shows GUI sys/ins effect changes when visible.
  Updates the settings but doesn't change selection shown.

2020-5-27 Will
* GUI and CLI fully in sync for Add, Sub, Pad enables.
  Includes correct action for kit mode.

2020-5-20 Will
* Separated out CLI SubSynth and PadSynth overtones.
* Separated out CLI de-pop and punch.
* Separated remaining CLI controls and deleted partCommon

2020-5-19 Will
* Fixed regression CLI not enabling PadSyth.
* Separated out CLI engine detune controls.

2020-5-17 Will
* Moved CLI part specific controls from Common to Part.
  Don't know why they were in Common anyway.
* Changed CLI kit mode Disable to Normal.
  Clearer, and less chance of confusion.

2020-5-16 Will
* Separated out part, engine, kit enable controls.
  This actually slightly reduces the code, and reduces
  complexity significantly.
  There may be some GUI anomalys when CLI controlled.

2020-5-15 Will
* Separated out CLI engine level volume, pannning, velocity.
  This results in doplication but less complexity, and
  less chance of control additions causing problem,

2020-5-14 Will
* BugFix: Reverb type to bandwidth not resetting BW control.
* Corrected some controls still using direct numbers.
* Note On/Off fully respects multiple same note in Poly mode.
* Added 'Cracked Chimes' to Companion bank.
* Moved '.config/yoshimi/yoshimi.history' to:
  '.local/share/yoshimi/recent'
  This is for XDG compliance, as it is not a config file.

2020-5-13 Will
* Reverted PART_POLIPHONY and POLIPHONY to single limit.
* Refactored noteoff code.
* Refactored and changed setnotelimit to enforcenotelimit.
  This still isn't corrected when changing the key limit
  downwards by more than one as it only removes the oldest.
* enforcenotelimit now loops to remove all older notes :)
* BugFix: GUI Part volume control not working.
  It was still using direct numeric entry so failed when the
  recent change of control values.


2020-5-9 Will
* Merged GUI fixes from Kristian.
* Reinstated ocsillator window saving.
  Fault was due to missing window test in PadSynth UI :(

2020-5-9 Will
* BugFix: Disabled oscillator window saving caused segfaults.
* Reorganised several enable control values for consistency.
* Doc updates.

2020-5-4 Will
* BugFix: CLI not responding to engine on/off.
  Caused by aftertouch controls shifing part enable.
  Temporarily fixed by swapping the list order.
  Need to sort out properly so CLI uses correct controls.

2020-5-2 Will
* Added waveform to remembered window positions.

2020-5-1 Will
* BugFix: new highlight not recognised for higher numbers.
  Loss of precision.
* Removed highlight from MIDI - possible race.
* Added switch in config to enable/disable highlighting.
  Default is 'off'.

2020-4-30 Will
* Latest instrument now recognised by CLI.
* Saving to bank also recognised as latest.
* More refinements to BankUI.

2020-4-29 Will
* Initialisation and memory leak fixes found by Stefaan.
* Reverted hidden buttons in instance > 0 bank windows.
  It was causing confusion especially for LV2 users.
* Added bold highlight for last instrument load from bank.

2020-4-26 Will
* Further work on incompatible file recognition.

2020-4-23 Will
* Confirmed Modulator improvements from Kristian.
* Started recognition of default and changed zyn files.

2020-4-20 Will
* Added Resonance to managed windows.
  Forgotten earlier :(
* Final doc updates.
* Set release version 1.7.1

2020-4-19 Will
* Includes GUI SysEf Send GUI bugfix from Jesper.
* Reinstated aftertouch modulation.
* Fixed foldback at zero for channel.
  Might not be correct at zero for key.
* Added tooltips to aftertouch controls.
* Set version as 1.7.1 rc5

2020-4-18 Will
* BugFix: Segfault due to change in commit
  817fbc6ea91a064839eebae1f54efc20753cb927
  Only seen by 1 person so far.
* Trapped rogue dir in file list for directory copy.
* Confirming Bugfixes.
* Further doc updates.
* Set version as 1.7.1 rc4

2020-4-17 Will
* Changed PART_POLY to PART_NORMAL.
  It could be confused with PART_POLIPHONY.
* Changed POLIPHONY - 20 to PART_POLIPHONY.
* Moved default poliphony for parts from Part.cpp to globals.h
* Yet more doc updates!
* Set version as 1.7.1 rc3

2020-4-15 Will
* Minor correction to AddSynth Voice/List window position fetch.
  They were refetching last saved position even when moved.
* Removed some redundant code.
* Cleared pedantic error/warning traps in CMakeLists.txt
* Further doc updates.
* Set version as 1.7.1 rc2

2020-4-13 Will
* Doc updates - no code changes.

2020-4-11 Will
* Aftertouch Modulation temporarily hidden.
  Not satisfied with it's operation.
* Set version as 1.7.1 rc1

2020-4-9 Will
* Adding new bank roots will offer to create them if missing.
  Not CLI yet.

2020-4-8 Will
* Corrected Part panning range.
  Didn't quite reduce extreme left to zero.

2020-4-7 Will
* Corrected direction of Pan Law Boost.

2020-4-6 Will
* Added presets broweser to remembered positions.
* Disabled aftercouch emulation.
* Added Stefaan to Yoshimi_Helpers.

2020-4-2 Will
* More refimentments to the text messaging and actions.
  Not yet available to the CLI.
* Added Volume to channel aftertouch.

2020-4-2 Will
* BugFix: MIDI-learn initialsing killing GUI startup warnings.
* Imroved first time startup messages and bank actions.

2020-3-31 Will
* fftw3.h now only included in DSP/FFTwrapper.h
  All other uses refer back to this.
* Fixed sample step size now only calculated in one place.
  Previously done in many places requiring two indirect
  fetches and a division. Now just one indirect fetch.
* sent_all_buffersize_f renamed to fixed_buffersize_f
  The previous name was confusingly incorrect.
* Applied similar optimisations to oscllator code.

2020-3-30 Will
* Completed transfers to improved GUI windowing.
  Some tidying yet to do.

2020-3-29 Will
* Fixed regresssion. Loading MIDIlearn not displaying.
* MIDIlearn and Vector added to improved GUI windowing.
* Mixer, Banks, VertKeyb added to improved GUI windowing.
* Console, Scales added to improved GUI windowing.
* ADnote, PADnote, Subnote added to improved GUI windowing.

2020-3-28 Will
* Merged in panning law control.
* Added 'Yet Another Flute" to 'Companion' bank.
* Temporarily disabled hiding engine type colours.
  Related code will be removed later if no objections.
* Unified GUI numbering of config window files.
* First trial of improved GUI window positioning.
  Only controller windows so far.
* Create GUI window directory!
* Moved panning law from config to patch sets.

2020-3-26 Will
* Aftertouch fully MIDI-learnable.
  Also blocks normal control action by default.
* AT GUI follows standard right button close practice.
* Updated docs.

2020-3-22 Will
* Added Filter Q to aftertouch.
* Re-enabled negative filter cutoff.
* Updated docs.
* Made channel AT emulation in MusicIO.cpp configurable.

2020-3-21 Will
* Enabled CLI access to aftertouch.
* Updated docs.

2020-3-20 Will
* Move aftertouch CC selection fully into 'part'.
  This enusres all parts independently see it.

2020-3-19 Will
* Stop state file opening an empty MIDI learn window.

2020-3-18 Will
* Merged in revised legato code from Iain.
* Implemented Channel aftertouch.
  More to do on this.
* Completed Channel aftertouch.
* Second attempt at completion :(

2020-3-17 Will
* Implemented Modulation PolyAT.

2020-3-15 Will
* Created GUI for PolyAT.
  Can't yet run two effects at the same time.
* PolyAT saved in patch sets.
* Temporarly hid PolyAT negative filter cutoff.
  It doesn't work at all well :(
* Both PolyAT effect can now be run together.

2020-3-12 Will
* Small refinements to PolyAT.

2020-3-10 Will
* Merged in first trial of PolyAT.
  Currently fixed as filter cutoff.
* Corrected Mixer channel colours for Solo.
* PolyAT can do lowering as well as raising filter cutoff.
* Defined some PolyAT types in globals.h

2020-3-7 Will
* Installed full placeholder for key pressure detection.
* Provided emulator for key pressure in MusicIO.cpp.

2020-3-6 Will
* Patched in additional Solo type 'Channel' from Matthew.
  Made a few minor corrections.
* Applied some optimisations to Solo Channel mode.
* Updated docs.

2020-3-4 Will
* Revised Solo switch selection for performance and clarity.

2020-3-3 Will
* Merged in various fixes from Iain.
* BugFix: not closing directories after use :(
* Revised file/directory copying.
  Options are now: always write, only missing, only newer

2020-3-1 Will
* Improved code for spacing new bank IDs.
* BugFix: LV2 not updating MIDI-learn GUI.
  Reinstated original window control, but now with
  correct action being set!

2020-2-17 Will
* Implemented Hyperbolic Secant Waveform option.
* Converted waveshape numbers to labels.
* Adjusted some CLI text.

2020-2-14 Will
* If no banks are found at startup a new one is generated.
  This will be in the .local directory and will contain one
  subsynth instrument.

2020-2-13 Will
* BugFix: MIDI-learn crash if accessing non-exisitent effect.
  This need more work to correctly report to the CLI.
* Suppressed test message in filterUI.
* Updated docs.

2020-2-11 Will
* Corrected MIDI-Learn save title bar.
* New bank structure almost complete.
  There is a workround for an anomaly where
  startup seems to create phantom empty banks.

2020-2-9 Will
* More revision of banks code.
  Still some startup anomallies.
* Provisional fix for CLI part setting oddity.
  Need to do more on this.

2020-2-8 Will
* Corrected CLI not setting bank from top level.
* Further improvements to missing root/bank handling.
* Transfer of default banks to .local in place.
  Still some corner cases to be sorted.

2020-2-6 Will
* .local/yoshimi now changed as /local/share/yoshimi
* Copyfile can now copy only if newer.
  Also passed through copydir.
* Copying defaults to .local/share/yoshimi uses 'newer'

2020-2-4 Will
:rebank: Basic structure mostly complete.
:rebank: Testing for defects and redundant code.
:rebank: Removed considerable redundant code.
:rebank: Define bank root at strartup restored.
    This appears to have been lost some time ago.

* Completed merge of rebank.
* Found and removed aditional redundant code.

2020-2-3 Will
:rebank:  basic structure now in place.

2020-2-2 Will
:rebank: started new root/bank structure.

2020-2-1 Will
* Building bank root uses new listDir(
* Revised bank and file permissions.
* Revised & simplified fresh population of banks.
* Removed redundant code.
* Revised and sinplified loadbank(
* Further revision of bank population.

2020-1-31 Will
* Changed .bankdir references in Bank( to validBank label.
* Added 1st version .bankdir file to all default banks.
* importbank, loadbank use new listDir(
* BugFix: Segfault changing LFO type.
* Set bugfix version as 1.7.0.1

2020-1-30 Will
* Added std::list for directories in file manager.
  This will mostly be used by Bank(

2020-1-29 Will
* Started pulling direct file access out of Bank(

2020-1-28 Will
* Created new presets dir in .local/yoshimi
  This will be populated from non-writable
  default directories, and new build ones.
* Doc updates.

2020-1-25 Will
* BugFix: GUI 'Save External' using wrong name.

2020-1-23 Will
* Revised essential config parameters.
  Main no longer needs complex saved hidden files.

2020-1-21 Will
* Unified xml pointer names.
  Makes code a bit easier to follow.

2020-1-20 Will
* BugFix: AddVoice GUI update not right from CLI/MIDI.
* Combined definition of sizes in Bank.h with globals.h

2020-1-19 Will
* New master mute system now in place.
* Moved location of Fl::Lock() in LV2
  As suggested by Rob to resolve odd CLI output.
* Some minor adjustments in indirectTransfers.
  Gets rid of magic number.

2020-1-18 Will
* Added explanatary comments to code.
* Doc updates.
* Set release version 1.7.0

2020-1-15 Will
* GUI no longer changes part when changing bank.
* Removed redundant bank code.
* CLI now tracks part number when set elsewhere.
* Set version as 1.7.0 rc8

2020-1-13 Will
* Mod. oscillator warning number out of field.
* Fixed compiler warning from PadSynth.

2020-1-10 Will
* Final doc updates ready for release.
* Set version as 1.7.0 rc7

2020-1-9 Will
* Corrected jack autoconnect.
* Updated user manual.

2020-1-8 Will
* Fixed regression. Some startup arguments not seen.
* Other refinements to config files.
* Set version as 1.7.0 rc6

2020-1-7 Will
* More MIDI_learn refinements.
* Corrected wrongly reported NRPN values.
* Set version as 1.7.0 rc5

2020-1-6 Will
* BugFix: Editing MIDI-learn lost NRPN status.
* Removed legacy NRPN detection.
* Revised MIDI-Learn internal data blocks.
  Uses resolveAll function, not embedded text.
* Removed redundant MIDI-Learn code.
* Set version as 1.7.0 rc4

2020-1-6 Will
* BugFix: State load not updating MIDI_learn GUI.
* Removed legacy min/max double check.
  It created a corner case error when
  min/max are reversed.
* Set version as 1.7.0 rc3

2020-1-2 Will
* Merged in filter bugfix.
* BugFix: M-learn window not auto opening.
* Included new user guide.
* Set version as 1.7.0 rc2

2020-1-1 Will
* Updated copyright notices
* Updated local copy of advanced user manual
* Set version as 1.7.0 rc1

2019-12-31 Will
* Made slider knobs respond to mouse clicks.
  Why was this missed for so long?
* Added names to Yoshimi Control Numbers.ods
* Doc updates.

2019-12-28 Will
* Removed modal from instrument search window.
  Should never have been set! No need to block.

2019-12-23 Will
* Resolved warnings given by GCC V8.
* Corrected appdata errors reported by debian.

2019-12-21 Will
* Small adjustment to User manual.
* Updated ToDo list.
* Set version as 1.6.1 M

2019-12-15 Will
* Minor text/info corrections and updates
* Changed Anote, Afreq to refNote, refFreq
  saved XML label NOT changed!
* Set release version as 1.6.1

2019-12-10 Will
* Updated documentation.
* Reinstated undocumented "zread" CLI time test.

2019-12-02 Will
* yoshimi.state auto-moved to yoshimi-0.state.
* Updated local copy of user manual.
* Set version as 1.6.1 rc1

2019-12-01 Will
* Found way to defer UUid message after setup.
* Some final? cleanups to session management.

2019-11-29 Will
* State fully integrated in session management.
* Jack session almost completly done.
  Seem to have broken saving :(
* Temporary fix for Jack session save.

2019-11-28 Will
* Began state machine for all session managment.
* Default state done with lockin prevention.

2019-11-27 Will
* Added version numbering to the banks file.
  This will be relevant with coming changes.
* Reinstated instance control of Sample Rate.
* Reinstated instance control of Buffer Size.
* Reinstated instance control of Osc. Size.
  These are actually needed for Jack session
  control and startup state.
* Rationalised state/session files.
  Still not correct though :(
  Placed too late in the startup sequence but
  segfaults if put in the 'logical' place.

2019-11-26 Will
* Updated local copy of User Guide.
* Removed test messages from ALSAEngine.cpp

2019-11-25 Will
* Performed major reoganisation of config files.
  yoshimi.config only has base parameters
  there is a new yoshimi-o.instance file
  no instance files include base parameters
  no state files include base paramters
* Removed extra redundant config code.
* Further refinements to startup config.
* Fixed potential memory leak.
* Small code cleanups.
* Doc updates.

2019-11-23 Will
* ALSA search connects to all ports, not just 0.

2019-11-23 Will
* Implemented search feature for ALSA MIDI input.
* Updated docs.
* Updated local copy of User Guide.

2019-11-21 Will
* Removed redundant code.
* Improved CLI bank info.

2019-11-20 Will
* CLI code refinements.

2019-11-19 Will
* Revised text reporting of on/off values.
* Revised text reporting of integer/float values.
* Further reporting improvements.
* More CLI named entries (not PadSynth yet).
* Updated local copy of user guide.

2019-11-18 Will
* Corrected some minor errors in CLI lists.
* Updated local copy of user guide.
* Removed redundtant CLI command.
* Further updates to user guide.

2019-11-15 Will
* Applied experimental optinisations to OscilGenUI.
* Minor correction to CLI info lists.
* Further small adustment to OscilGenUI.
  Confirmed OK on Raspberry Pi.
* Revised CMakeLists.txt NEON changed to RasPi4.
  (it never worked before anyway!)
* Disabled all references to fl_line_style.
  Now always solid lines, can't see dots and dashes
  anyway, and they slowed down the raspberry pi.

2019-11-13 Will
* Revised CLI part controllers code and messages.

2019-11-12 Will
* Confirmed mxml fix for LV2.
* Set bugfix version 1.6.0.3

2019-11-10 Will
* Fixed forced shudown failure from GUI in ALSA.
  It's rather a hack in UI/MasterUI.fl
  Look for 'if (force)' for details.

2019-11-8 Will
* Mixer Panel format can be changed from config.
  This alows control form typical 7in displays.
* GUI suppress change warning on force exit.

2019-11-7 Will
* Proposed fix for mxml 3.1 failure with LV2.

2019-11-4 Will
* Code cleaups after merging in locks branch.

2019-11-2 Will
* Finding bank name needs specific root ID.
* Revised CLI bank removal code.
* Query message goes to current destination.
* Reverted 'A' note limits and corrected terminology.
  Note range is now 24 to 84.
  Frequency range 30Hz to 1.1 kHz.
* Added more labels for new bank commands.
* CLI reports Ref. note and numbers.
* CLI reports on/off for scale switches.
* CLI can read scale name and description.

2019-11-1 Will
* NRPN can shutdown with exit value 16.
* Updated docs.

2019-10-29 Will
* Restored original ALSA audio thread.
  We need these messages for Raspberry Pi.

2019-10-23 Will
* Further CLI test list revision.

2019-10-22 Will
* Instant (forced) exit also available from GUI.
  Hit ctrl with menu exit, just before with WM exit.
  This will not save any pending changes.

2019-10-21 Will
* Revised CLI lists for consistency.
* Added 'CMakeListsOLD.txt'
  Done in case of unexpected issues with merge
  from Iain -  cmake has a bad rep for that :(
* Forced CLI exit from Yoshimi returns 16 instead of 0

2019-10-18 Will
* BugFix: segfault changing scale name or description.
* Added instant close of all instances to CLI exit command.
* Improved CLI description for scale/keymap imports.
* Set bugfix release 1.6.0.2
  (includes Kristians oscillator fixes)

2019-10-16 Will
* Missing include in main.cpp when compiling headless.
* FLTK ref. in Misc/config.cpp when compiling headless.
* Changed CliFuncs readPartPeak to allow left/right.
  Not currently in use.

2019-10-15 Will
* Revised SubSynth and Oscillator Harmonics GUI.
  Central numbering and wider subsynth spacing.

2019-10-14 Will
* Ensure report to stdout when running headless.
* CLI can now save to banks slot.
* Revised instrument save to bank.
* Updated docs.
* Removed redundant labels in globals.h
* Corrected docs.
* Small revision to BankUI instrument control.
* Replaced all refs to "Simple Sound" and "No Title"
  with constants.

2019-10-12 Will
* CLI can now change bank instrument names.
* Revised GUI bank instrument names.
  Previously a rename performed a complete
  bank refetch. Now set the name in place.
* Corrected accidental variable name change.
* Revised example presets.
* Further small refinements to CLI.
  Also added comments to globals.h

2019-10-11 Will
* Minor corrections for headless build.

2019-9-26 Will
* Refined data2text to clarify structure.
* BugFix: CLI not selecting which kit item effect
  from the three part effects.
  It was changing the actual effect instead.

2019-9-25 Will
* Reverted cmake change from Iain
  With GCC it breaks on readline :(
* Reverted change to 'data2Textfrom Iain
  In the CLI kit items > 1 don't report the
  waveform as text.

2019-9-24 Will
* All CLI effects correctly reporting.
* Corrected anomaly CLI with sys/ins send.

2019-9-22 Will
* Most CLI effects switches reported as text.
* Updated docs.

2019-9-21 Will
* Further refinements to listing / text lists.
* Rationalised detune type values.
  No more shuffling between CLI, GUI and engines.
* Updated docs
* CLI reports LFO text instead of number.
* BugFix: CLI alienwah missing random entry.
  This could cause a segfault.

2019-9-20 Will
* BugFix: CLI detune type inconsistencies.
* CLI reports waveform text instead of number.
* CLI filter category/type also reports text.

2019-9-19 Will
* Improved CLI bank controls and lists.
* Removed requirement for CLI 'read' suffix.
  Some contexts can now give useful information
  with a simple 'read'.

2019-9-18 Will
* CLI can now set bank names.
* Converted GUI bank name controls.
* Updated docs.

2019-9-17 Will
* CLI conversion done for select bank & root.
  Listing not done.
* Activated CLI bank lisiting for defined entries.
* Converted GUI entries for bank & root selection.
* Implemented change root ID for CLI.
* Converted GUI entry for change root ID.

2019-9-16 Will
* Started revision of bank controls.
  Some CLI stuff not yet done properly.
* Updated docs.

2019-9-11 Will
* Forgot CLI 'return' for default copyright :(

2019-9-10 Will
* CLI can now set copyright field.
* CLI can now load/save default copyright.
* Corrected config list values.
  part and channel numbers off by 1.
* Updated docs.

2019-9-9 Will
* ALSA can autoconnect to multiple MIDI inputs :)
  Now uses a comma separated list.
* Moved Jack MIDI aoutconnect to correct place.
  It doesn't work (in either location), but nor
  does V 1.4.1 where it used to, and was first
  implemented.
* BugFix: Config.cpp orphaned cout, cerr, endl
  when 'using' changed in header.
* BugFix: Config.cpp orphaned to_string
  when 'using' changed in header.
* Improved CLI part instrument type controls.

2019-9-8 Will
* BugFix: Loading files failed with mxml V 3.1 :(
* Set version as 1.6.0.1
* CLI can now set instrument comments.

2019-9-7 Will
* CLI can now set instrument type.
* Removed outdated 'Yoshimi Control Numbers.txt'
* Updated 'Yoshimi Control Numbers.ods'

2019-9-6 Will
* A corrupted config file no longer aborts.
  A message is given stating defaults are used.

2019-9-1 Will
* Final doc updates.
* Set release version as 1.6.0
* Merged in bugfix for BSD.

2019-8-30 Will
* Small GUI correction for AddSynth.
* Manual Updates.
* Set version as 1.6.0 rc5

2019-8-24 Will
* Doc updates.
* Minor correction to CLI test list.

2019-8-24 Will
* BugFix: CLI effects out of sync with GUI (and actual)

2019-8-23 Will
* Fixed resonance regression (not recognising point 255)
  Found by Jesper, caused by clash of numeric control
  numbers. 'parameter' now used for point number.
* Improved effects handling/reporting for CLI.
* Set version as 1.6.0 rc3
* BugFix: Crash when cancelling part >1 effect bypass.
* Added missing CLI effect bypass control.
* Set version as 1.6.0 rc4

2019-8-22 Will
* Fixed effects regression (not midi-learning)
  Found by Jesper, and caused by the change from numeric a
  value for the learn fag being changed to an enum with a
  different value.
* Identified midi-learn GUI message control number.
* BugFix: CLI not setting resonance point 1.
  Further resonance issues to resolve.
* Set version as 1.6.0 rc2

2019-8-19 Will
* Added shortcut and ellipsis to GUI Instruments/Search entry.
* Improved CLI instrument group comments.
* Added error check for CLI bank/root CC selection.
* Set version as 1.6.0 rc1
  Yay :)
* Set and updated manual version.
* Updated docs and metadata.

2019-8-18 Will
* Implimented formal calls for instrument Engine/Type checks.
* Implemented CLI access to instrument Engine/Type checks.
* Updated docs.

2019-8-17 Will
* CLI osc and mod types show names not internal values.
* Cleanups around CLI mod types.
* Added missing merge reference to this file.
* BugFix: segfault on CLI attempt to change modulator panning.
  It doesn't exist!

2019-8-16 Will
* Merged extensive refactoring from Hermann into master.

2019-8-15 Will
* Doc updates
* Updated Miscellany/Images

2019-8-12 Will
* Updated Miscellany/Images/PartEdit.png
* Removed incorrect attribution in Effects/Reverb.cpp
* Corrected wrong CLI reporting of voice oscillator.
* Updated docs.

2019-8-9 Will
* Added Rainer to people list in GUI.
* Updated dev_notes.

2019-8-6 Will
* Further refinements to ring buffer code.

2019-8-4 Will
* Reinstated Cormi_Sound bank.
  This seems to have been lost at some point.
* Revised specimen presets.
* Updated user guide.

2019-8-2 Will
* Created new CLI directory.
  Moved main command line files there
  ready to split them up.
* Moved buffered read and write from CmdInterface to MiscCLI.
* Most utility functions moved from CmdInterface to MiscCLI.

2019-8-1 Will
* Adjusted new instrument group controls to Yoshi standard.
* Implemented CLI access to group controls.
* Moved static lists from CmdInterface.h to TextLists.h
* Moved reply enums into dedicated namespace.

2019-7-31 Will
* Small bank refinements.
* Bank search window first starts with Piano.
* BugFix: Part not setting instrument labels.
* Updated Miscellany/Images
* Added protection against overlength lines in CLI.
  Max size is set to 252 chars but longest Yoshim1 command
  is less than 180.
* Disabled bank search window if not showing engine types.
* Added warning if no entries in bank search window.
* Re-enabling system effects does a cleanup first.
  this is so you don't get any stale data sounding.
* Cleanup also done when clearing bypass.

2019-7-30 Will
* Applied work-round so paste updates GUI effects.
* Small optimisation in mediate.
* Implemented bank search by type.

2019-7-29 Will
* GUI offset added to collect_readData.
* GUI offset added to collect_data.
* GUI offset added to fetchData.
* BugFix: Memory overrun in ring buffer.
* Moved envelope 'X' from miscmsg to offset.
* Updated docs.
* Corrected date.
* Moved formant vowel from miscmsg to offset.
* Updated docs.

2019-7-28 Will
* Copy-paste cleanups.
* Started separating miscmsg from other controls.
* Renamed all GUI par2 labels as miscmsg.
* Fixed regression CLI off by 1 history list loading.
* All CLI changes complete.

2019-7-27 Will
* Moved (now common) preset lists to base parameters.
* Considerably re-factored copy-paste.
* Added preset error reports to GUI.
* Enabled management of old and new preset types.

2019-7-26 Will
* Managing preset roots now use standard Yoshimi calls.
  Not yet accessible to CLI.
  Add root failure not yet reported to GUI.
* Updated docs.

2019-7-23 Will
* Corrected preset store save - was wiping out others :(
* Added placeholders for better preset directory controls.
* Corrected date of last changelog entry!

2019-7-22 Will
* Preset directories now unified across instances.
  Selectable without re-ordering but a lot of code
  cleanup still needed.
* Updated manual.

2019-7-21 Will
* Failed to actually add manual to commit :(
* Preliminary ideas for preset roots.
* Converted envelope type numbers to labels.

2019-7-19 Will
* Temporary install of provisional 1.6.0 manual
  but named as 1.5.12

2019-7-15 Will
* Made more bank calls require root and bank.

2019-7-14 Will
 * Revised LV2 code Re. buffer sizes.
 * Included corrected full explanation in code.
 * Made more bank calls require root and bank.
 * Further bank refinements and removed redundant code.
 * Partially resolved LV2, Carla/Ardour now consistent.
 * Updated /Miscellany/Images.

2019-7-10 Will
* Implimented formal calls to read current root and bank.
* All instrument name bank calls now require root and bank.
  current values no longer assumed.
* Applied minor buffer size optimisation.
  Size could have been needlessly greater than incoming.

2019-7-9 Will
* NRPN for load from history now includes MIDI learn.
* Found more magic numbers to convert in Resonance.
* Improved Resonance CLI responses.

2019-7-8 Will
* Resolved potential ambiguity in GUI switch switch exit.

2019-7-1 Will
* Implemented non-destructive system effect on/off.
* Updated docs.
* Some code cleanups.
* Replaced more numbers with labels.
* Added 0059 Rich Bass to Companion bank

2019-6-27 Will
* BugFix: GUI not exporting banks.
  CLI was working fine.
* Improved some bank error reports.
* Made most filemanager methods static.
  Used static calls instead of class in bank.
* Most calls to bank now require implicit bank/root.

2019-6-27 Will
* Removed remaining bank message transfer conversions.

2019-6-26 Will
* Added in missing new files :(
* Refinements to data->text conversions.
  Specifically so that MIDI-learn text doesn't include
  the current value or such as 'on/off' responses.
* Removed some bank message transfer conversions.
  These are now entirely within one low priority context
  so there is no need to use miscMsg functions.
* Added copyright notices to Data2Text files.

2019-6-25 Will
* Moved data->text conversions to new file 'Data2Text'.

2019-6-24 Will
* Swapped menu entry Yoshimi/MIDI Learn ~ button-Reports.
* Improved MIDI-Learn internal links.
* Partially separated text replies from respondents.
* BugFix: voicelist enable calling MIDI_learn.

2019-6-22 Will
* Clarifed system mute controls.
  Also added extra sanity checks.
* Implemented new NRPN for load from history.
  Not MLearn yet and Instruments only 16 parts.
* Updated NRPN docs.
* Improved history NRPNs.
  Easier to use and greater flexibilty.
* Updated docs (again!).

2019-6-21 Will
* Revised message handling in indirectTransfers(
  More compact and easier to adjust.

2019-6-20 Will
* Implemented recent file history locking.
  Currently CLI only.
* Improved string list searches.
* Completed locking including GUI controls.
* Modified indirect controls for direct reads.
* Updated docs.

2019-6-18 Will
* Extended 'CommandBlock'
  Changed value to union of float F & int32_t I
    i.e.
    union{
        float F;
        int32_t I;
    } value;

2019-6-17 Will
* BugFix: instances loading wrong default state on reset.
* Refined FLTK locking in UI/MiscGui.cpp
* Added recognition of files seen this session.
  Currently only applied for enhanced Instrument save
  protection but likely to be extended.

2019-6-16 Will
* Unified XML and history types.

2019-6-10 Will
* Corrected actual ringbuffer sizes.
  It was still multipying by blocksize after previous
  correction to size calculation.

2019-6-4 Will
* Completed CLI bank slot deletions.
  Also integrated GUI controls.

2019-6-3 Will
* CLI can now delete bank slot instruments.
  Notifications not complete yet.
* Updated docs.

2019-6-3 Will
* Applied modulation patch from Kristian.
* BugFix: Message list clearing was too agressive.
  This prevented state loads from including mide-learn
  control names.
* BugFix: Load instrument by name failed for yoshi type.
  Unless there was also a zyn type.

2019-6-1 Will
* Corrected ringbufer size calculation.

2019-5-31 Will
* Merged in bank and program improvements.
  Separated out:
  Load instrument by name
  Load instrument from bank
  Set current root or bank
  Updated docs
* Additional code and doc cleanups.

2019-5-29 Will
* BugFix: Several bad integer types for BSD
* BugFix: CLI not seeing MIDI program changes.

2019-5-27 Will
* BugFix: Start message lockup only on Gnome or KDE

2019-5-26 Will
* BugFix: CLI load MIDI-learn list from history failed.
* Moved some parameters out of par2.
* Updated docs.

2019-5-25 Will
* Enabled part level sound cutoff instead of -40db.
* Doc updates in dev_notes.

2019-5-22 Will
* BugFix: Midi CCs not updating GUI.

2019-5-21 Will
* Fixed regression not muting when loading patch sets.
* Resolved spurious EQ setting message when loading.
* Rearanged 'type' bits removing doubling up.
  This also permitted streamlining of much of the code.
* Remove or commented redundant test routines and info.

2019-5-20 Will
* GUI updates almost complete.
* Corrected date of previous commit.
* Fixed regression effects preset colour not changing.
* Updates completed :)
  'parameters' no longer doubles up for routing.

  'type' no longer carries sources.
  It currently has three spare bits but they will be
  used to remove the doubling up of some functions.

  'source' has up to 14 unique IDs + all and none.
  It also now carries routing information and has
  one spare bit.

  The control block has three spare bytes.
  One will be used for misc messages, separating
  them from par2.
  Another may be used as scratch space for private
  controls applying only to specific sources.

2019-5-19 Will
* Some minor corrections to transferred controls.
* Completed conversion for CLI.
* Almost completed conversions for GUI.
  Still to do UpdateAfterSet and returns detection
  of gui source - fiddled for now.
* Applied New Modulation patch from Kristian.
  Corrects several mistakes.

2019-5-18 Will
* Low prio and Loopback transferred in Interchange.
  Copied across in CLI and GUI.
* MIDI, CLI, GUI transfered from type to source.

2019-5-17 Will
* Started transfering Low prio and Loopback
  from control block parameter byte to source byte

2019-5-16 Will
* Added CLI access to extended modulator control.
* Added CLI access to Spot noise.
* Updated docs.

2019-5-12 Will
* Moved hidden filenames from globals to main.
  Only place they ever need to be identified.
* Moved instance start out of loop.
  Slightly improves timing.
* Added extra message when loading manual.
* Edited docs.
* Set release as 1.5.11
* Added missing Manual :(
* Set release as 1.5.11.1
* Merged in Foward commits.
* Made Instance control and Spot noise permanent.

2019-5-11 Will
* Further work to improve multi-instance.
* Additional changes to thread code.
  Also removed some poorly performing ideas.

2019-5-10 Will
* Final tweaks to code.
* Applied rough fix to startup overloads.
  Only applies to secondary instances.
* Updated docs for release.
* Updated meta-info.
* Set version as 1.5.11 rc4

2019-5-9 Will
* Added code to ensure hidden gui enable is in sync.
* Moved some mallocs to prevent memory leaks.
  Would only occur under abort conditions.

2019-5-8 Will
* Trial of startup display
  Currently disabled.
* Some cleanups.
* Corrected previous changelog message.
* Startup display now working.
* Set version as 1.5.11 rc3

2019-5-7 Will
* Further improvements to instance behaviour.
  Time delays are almost entirely due to GUI
  slow startup. This has been an issue for
  a very long time.
* Put Autostart back on direct call.
  Still problems with GUI when threaded.
* Set version as 1.5.11 rc2

2019-5-6 Will
* Improved new/multi instance behaviour.
  There is still an issue with the gui causing
  occasional crashes :(
* Set version as 1.5.11 rc1

2019-5-5 Will
* Completed padSynth parameter conversions.
* Enumerated history lists.
* Improved history list internal structures.
* Moved most additions from synthEngine to Interchange.
  This was done so that loading (say) a state file
  didn't falsely update/corrupt other history lists.

2019-5-4 Will
* Added CLI access to spot noise.
* Linked spot noise appearance to single master feature.
* Rationalised interchange parameters for setpadparams.
* Updated docs.

2019-5-3 Will
* BugFix: Primary definition of singlePath in wrong file.
* 'Enable Single Master' now always hidden for LV2.
  It's not relevant to it at all.
* CLI can now handle single master control.
* Updated docs.
* First trial of spot noise.

2019-5-1 Will
* All Interface files have no 'using namespace std'
* All MusicIO files have no 'using namespace std'
* Single master instance now properly accessed.
  Not CLI yet.

2019-4-30 Will
* Single master instance now switchable from GUI.
  Also made some refinements to code allowing this
  to be hidden until certain it's safe.
* BugFix: Crashes on some systems when opening the GUI.
* Refined instance startup tests in main()

2019-4-25 Will
* Added PART_POLIPONY to globals
  It had been defined numerically in two places!
* Added PART_POLY, PART_MONO, PART_LEGATO, MIDI_LEGATO
  MIDI_NOT_LEGATO to globals
  These had been set numerically in multiple locations.
* More transfers from 'using namespace' to 'std::'

2019-4-24 Will
* Added tooltips to master and part VU meters.
* Single main instance now seems correct.
  A first start double-click will still start two
  separate instances, but all other combinations
  will start just one, without risk of a crash
  through tring to start multiple instances at
  the same time.

2019-4-23 Will
* Removed redundant 'detach' thread element.
* Started entering 'std::' not 'using namespace'.
  This removes potential ambiguities, especially
  as we are now using local namespaces heavily.
* Some code cleanups.

2019-4-22 Will
* Internal 'no action' moved to new source byte.
* Adjustments to new placeholders.

2019-4-21 Will
* Set placeholders for new type/source bytes.
* Applied warning patch in main.cpp from Hermann.
* Doc updates
* Click on mixer part VU now cleared limit warning.

2019-4-20 Will
* BugFix: Adnote voice modulator damping incorrect.
* Further work on auto single main instance.
* Changed control block from 12 to 16 bytes.
  This will enable us to split source from type
  and miscMsg from par2. Also gives 2 spare bytes.

2019-4-19 Will
* Implemented separate L/R part VU metering.
* Removed some direct calls from VU GUI to synth.
* Added new miscMsgClear() function.
  Called on major resets in case of message leaks.
* Some code cleanups and doc updates.

2019-4-18 Will
* Made 'A' frequency entry box wider.
* Master VU now fully cleared at startup.
* Removed fake peak indication from disabled parts.

2019-4-15 Will
* Added first time start info window.
* Further small CLI refinements.

2019-4-15 Will
* Implemented CLI MIDI controllers.
  This had been forgotten :(

2019-4-14 Will
* CLI part common control text copied to sections.
  Being separate was confusing in some situations
  and not particularly helpful generally.

2019-4-11 Will
* Fix 'A' note range as 329 to 660 Hz.
* Added note info to /doc

2019-4-9 Will
* BugFix: CLI not setting effect numbers.
* Added named effects controls replacing some numbers.
* CLI now shows a '?' for changed effect presets.
* Some doc updates.

2019-4-8 Will
* Removed /Misc/FileListItem.h
  It was never called, referenced or included.
* A few minor cleanups.

2019-4-6 Will
* Disable GUI Analog Phaser controls when not set.
* Revised Gui Layout to make this more obvious.
* Further adustments - Phase disabled for Analog.
* Re-ordered controls.
* L/R also disabled for Analog.

2019-4-3 Will
* Converted Bank root control to MSB, LSB, OFF.
* Undated docs.

2019-4-1 Will
* Added more informative tooltips.

2019-3-27 Will
* Completed GUi updates for effect controls.
* Implemented master mono/stero switch.
* Resets and state/patch loads clear mono/stero switch.

2019-3-26 Will
* BugFix: MIDI-learn now learn correct effect numbers.
  GUI still not updated correctly yet.

2019-3-23 Will
* Corrected code indentation and missing bracket
  in UI/MiscGui.cpp

2019-3-22 will
* Further adjustments to suppress GCC7 warnings.
  Some global enums changed to const unsigned char.
  CmdInterface/helplist() changed to char.
* Added more warning/error traps to CMakeLists.
* Removed some switch case dropthroughs.
* Final GCC7 warnings suppressed?

2019-3-21 Will
* Bugfix: Insert effect part list out of step.
* Sorted out potential GCC7 build warnings.

2019-3-20 Will
* Dynfilter insert done for local changes.
  No idea how to set for patch loads :(

2019-3-19 Will
* Most effect warnings now correct.
  Still incorrect when loading :(
* All part warnings correct.
* Sys/Ins warnings done too.
  CLI not done though!
* BugFix: Error loading instrument effects.
  Preset and parameter in wrong order.

2019-3-18 Will
* More work on effect warnings.
  Still more to do
  CLI test messages in place

2019-3-17 Will
* Temporarily disalbled Hi Res LFO.
  It will change!

2019-3-16 Will
* Effect change recognises intstrument loads.
* BugFix: CLI distortion not seing preset change.
* Effect change sets now sets colour of field.
  Still some corner cases to correct.

2019-3-15 Will
* LFO conversion done
  but CLI/GUI entries need improvenment.
* Corrections in LFO conversions.
* Effect change warning in place
  but not yet exposed to GUI and CLI.

2019-3-14 Will
* Initial conversion of LFO speed toint32_t.

2019-3-12 Will
* Waveform window now warns of lower voice edit.
  Doesn't yet say which one!
* Voice and Modulator warnings done.

2019-3-10 Will
* BugFix: Limits default wrong on DynFilter.
  System/Insert volumes reversed.
* Set up label for lower voice oscillator warning.
  Not yet in use. Need to work out how.

2019-3-8 Will
* Small improvement to CLI 'list' command.

2019-3-4 Will.
* Updated docs.
* Set release as 1.5.10.2

2019-3-3 Will
* Applied mxml patch from Adam.
* Temporarily disabled startup instance control
  for bugfix release.
* BugFix: Instrument window not showing controls
  only first instance and called from bank window.

2019-3-2 Will
* Moved gzipped loading from XMLwrapper to FileMgr.
  Used pointer to string to return error reports.

2019-3-1 Will
* Added endian check for PadSynth export.
* Revised ALSA endian check.
* Made (obvious) improvement to endian detection.
* Moved gzipped saving from XMLwrapper to FileMgr.
  This also fixed memory leak if saving failed.
* Found several memory leaks in XML code
  all triggered by file errors.
* Improved gzipped saving.

2019-2-28 Will
* Added data block saving to Filemanager
* Revised PadSynth export.
  WaveFile.cpp is now redundant.

2019-2-26 Will
* MasterUI now only references files in widow code.
* Removed file extension references in MicrotonalUI.
* Removed file extension references in MidiLearnUI.
* Removed file extension references in VectorUI.
* Removed file extension references in config.cpp

2019-2-25 Will
* No more direct file access in 'Cmdinterface'.
* New string parser in 'MiscFuncs'.
* Improved 'XMLwrapper'.
* Most file extension definitions now standardised
  but fltk filer calls still fixed strings :(
* No more direct file access in 'Microtonal'.

2019-2-24 Will
* All direct file access removed from 'Bank'
  except two directory scans.

2019-2-23 Will
* Installed placeholder FileMgr in /src/Interface
  This will eventually handle all actual file operations
  for consistency and simlifying porting to other systems.
* Started moving file functions from MiscFuncs to FileMgr.
* Completed transfers from MiscFuncs to FileMgr.
  Other calls to find in other files :(

2019-2-20 Will.
* Added missing LFO intensity control description to CLI.
* Adjusted CMakeLists.txt for better 'native' recognition.
* Copied in Rob's FLTK fix.
* Moved cairo tests inside fltk build option.

2019-2-14 Will
* Now only the main instance can change bank structure.
  Others can read/change their current selected ones.
* Updated dependencies.

2019-02-10 Rob
* put FLTK sources & libs back in old places in CMakeLists -- tacking
  the libs on at end of the list sometimes broke linker command line.
  It's an empty string when GUI_FLTK=0, anyway.

2019-02-10 Rob
* put FLTK sources & libs back in old places in CMakeLists -- tacking
  the libs on at end of the list sometimes broke linker command line.
  It's an empty string when GUI_FLTK=0, anyway.

2019-2-6 Will
* Almost completed GUI detachment for headless.
* Applied patch from Rob - completes headless builds.

2019-2-1 Will
* Enabled headless build (Not LV2).
  Not fully tested.

2019-1-27 Will
* Enabled full CLI start sequence .state .xmz .xiz .xly
  but can be either jack session or state not both.

2019-1-24 Will
* Complex float rounding towards zero now just int(n).
  Rationale: This in most cases restores the original
  Zyn 2.2.1 method. Also, the assembler hack used to get
  faster performance is not portable across CPU types.
  These conversion were all for positive only values so
  there is no +- zero issue and the int+truncf combination
  is *much* slower than just int, yet does exacly the same.

2019-1-23 Will
* Removed all remaining mutex references.
  Already almost entirely commented out.

2019-1-22 Will
* BugFix: missing 'else' so CLI filter not seeing L1/H1.
* Implemented loading MIDI learn fro CLI.
  Currently it seems you can only set one command line
  argument. Observed priority is .state .xmz .xiz .xly
  Need to see if this can be made recursive.
* Minor adustments to startup handover.

2019-1-20 Will
* Sending SIGUSR2 to running Yoshimi starts new instance.
* Yoshimi hands over startup if there's a running instance.

2019-1-13 Will
* Confirmed previous fix and set release as 1.5.10.1

2019-1-12 Rob, Will, Hermann
* BugFix: Changes to CMakeLists.txt failed fedora build.
  Directly setting CMAKE_CXX_FLAGS overwrote previously
  defined flags the distro package required. We now add
  our settings as a prefix to existing CMAKE_CXX_FLAGS
  so the distro values take priority.
* Changed Examples/synth_prelude files to link to original.
  Done to avoid possible licensing issues.
* Added new warning file to dev_notes about spelling errors.
* Set bugfix release as 1.5.10.1 rc1

2019-1-6 Will
* Modified 'main' to remove stand-alone/LV2 build contention.
* Bank.h, Config.h, Config.cpp no longer different builds.
* Added warning about XML names in dev_notes.

2019-1-3 Will
* Fixed regression - Resonance deactivated 'Close' button.
* Added 'Multi Rushes' instrument to 'Will Godfrey Collection'.
* Corrected some file dates.
* Final updates to docs.
* Set release version as 1.5.10

2019-1-2 Hermann
* Refactored the PRNG code into a class.
* Extracted the source code of the random_r() function
  from C standard lib, which Yoshimi relied on previously.
* Simplified and adapted this code to our usage, verified
  it produces exactly the same random numbers as Glibc 2.24
* re-integrated all further float->int optimisations done
  by Will while reworking the PRNGs.

2018-12-22 Will
* Frequency LFO regresion fix from Rob.
* Set version as 1.5.10 rc3

2018-12-21 Hermann
* While RC testing, spotted subtle sonic changes
  to some complex layered instruments.
* Investigation indicates a different fluctuation patterning
  of the Jenkins PRNG algo as reason, while, on average,
  both the new and the old PRNG algos perform similar.

2018-12-18 Will
* Changed PRNGs to specifically use uint32_t
* Updated most docs for release.
* Set version as 1.5.10 rc2

2018-12-9 Will
* Some minor code cleanups.
* Doc updates.
* Set version as 1.5.10 rc1

2018-12-6 Will
* Fixed GUI regression Resonance Apply button
  inoperable when resonance disabled!
* Added 'Echo Multimod' to Will_Godfrey_Companion.
* Also added 'Cathedral Pipe organ'.

2018-12-5 Will
* Added CLI warning when insEffect is unrouted.
* Fixed CLI regression. Set part program blocked
  if part was not enabled - should auto-enable.

2018-12-3 Will
* BugFix: CLI Solo not accessing twoWay mode.
* Doc updates.

2018-12-2 Will
* BugFix: readAllData() not returning indirect value.
* More details available in CLI list part.

2018-12-1 Will
* CLI List part gives detailed current status.
  It gives further details if in part context.

2018-11-30 Will
* Prng behaviour now confirmed and reseeds removed.
  Quite unnecessary. Needs many hours of continuous
  playing to begin to get anywhere near pattern repeat.

2018-11-28 Will
* Inplemented a new prng with no external libraries
  based on "A small noncryptographic PRNG"
  by Bob Jenkins

2018-11-27 Will
* Randomness can now be disabled for test purposes.
  Enabe #define NORANDOM in globals.h
  This makes subSynth and padSynth sound strange :o
* A bit more work on unified presets placeholders.

2018-11-25 Will
* Moved all static CmdInterface strings from .cpp to .h
* Corrected some CLI EQ text.
* Changed CLI internal names to avoid potential clashes.

2018-11-24 Will
* BugFix: Limits tests not finding dynfilter-filter.
* Completed CLI access to dynfilter. Phew!
* Some extra CLI code cleanups.

2018-11-23 Will
* All CLI effects help lists done.
* CLI EQ controls done.
  (band and stages don't update GUI yet)
* Some code cleanups.
* CLI dynfilter mostly done.
  Not the actual filter editor.

2018-11-22 Will
* Revised CLI effects code.
* BugFix: SysEff 'send' returned wrong value.
* CLI help effect lists complete to distortion.
* No top level CLI help data when calling by name.

2018-11-21 Will
* CLI Reverb and Echo controls completed.
  and created new help lists for these.
* Added help list of all effects (by name).

2018-11-20 Will
* Small adjustments to NRPN effects in synthEngine.
* Started defining CLI effect controls.

2018-11-18 Will
* Created placeholders for unified presets system.

2018-11-17 Will
* Changed CLI formant filter formant number for clarity.
* Improved CLI filter help list.
* Added CLI display of filter's current vowel/formant.

2018-11-11 Will
* Improved CLI kit mode controls.
* Added CLI min to last note and max to last note.

2018-11-10 Will
* CLI fine tuning.
* Added dummy Part entries in limits for text entries
  that have no 'value' to prevent errors when tested.
* Changed CLI Velocity 'Offset' to 'Level'.
  This prevents a clash with ON/OFF commands.
* More CLI adjustments and conversion to sendNormal().
  This provides better error checking and reporting.
* Corrected CLI Voice Modulator type message.
* BugFix: CLI Voice number blocked if current disabled.
* CLI kitmode is now a pseudo context level.
  It emulates normal 'back' actions.

2018-11-9 Will
* All CLI part contexts checked for enable.
* Substantially revised CLI part level controls.
  No need for KMode, KItem as names unique and
  numbers assumed to be kit items in this mode.
  Effect and Name no longer need 'K' prefix.

2018-11-8 Will
* Further revision to CLI AddVoice controls.
* BugFix: CLI waveform change only setting voice 1.
* Improved CLI waveform selection.
* CLI checks part enabled before other controls.

2018-11-7 Will
* Added missing controls to CLI voice modulator.
* Simplified CLI voice modulator type setting.
* Revised CLI common controls.
  Detune types now names, not numbers.
* BugFix: limits test not seeing AddSynth Modulator.

2018-11-4 Will
* Completed all CLI waveform controls.
 I think!
* Adjustments to CLI minimum abbreviations.

2018-11-3 Will
* Added CLI waveform access for modulators.

2018-11-2 Will
* Completed CLI AddVoice controls :)

2018-11-1 Will
* Enabled formal CLI access to AddVoice Modulator.
  Envelope inserts and common controls not done.

2018-10-31 Will
* Fixed regression - disappearing waveform Mag Type.
* Removed Harmonic Shift Reset.
  It's function is performed by a right click on the
  Harmonic Shift up or down button.
* Implemented CLI voice unison controls.
* Implemented CLI remaining voice controls.
  Not modulator ones.

2018-10-30 Will
* CMakeLists.txt improvement from Hermann.
* GUI waveform deactivation adjustments:
  harmonic randomness.
  waveshape.
  spectrum adjust.
  filter.
  modulation.
  adaptive harmonics.
  base type parameter.
  base modulation parameters.
* Further adjustments to GUI waveform deactivation.

2018-10-28 Will
* PadSynth GUI 'apply' button updates when exporting.
* Added 'wait' command to CLI scripts.
* Added read/write part kit item name to CLI.
* Properly resolved PadSynth segfault.
  Due to invalid error check!
* Minor adjustments to CLI PadSynth text.
* Added ID for context level for AddSynth Voice Modulator.

2018-10-27 Will
* BugFix: GUI segfault exporting padsyth samples.
  Only on kit items > 0 and fix is temporary hack :(

2018-10-26 Will
* Implemented CLI PadSynth Controls.

2018-10-25 Will
* Found missing PadSynth overtones option.
* Deactivate PadSynth overtones if set as harmonic.
* Small revision to PadSynth GUI.
* Deactivate SubSynth overtones if set as harmonic.

2018-10-24 Will
* Deactivate PadSynth amp group if Multiplier off.

2018-10-23 Will
* Started defining CLI PadSynth Controls.

2018-10-21 Will
* Implemented proper resonance limits.
* Corrected 2 AddSynth tooltips.

2018-10-20 Will
* Added Lorenzo's synth_prelude to examples.
* Possibly cured occasional GUI corruption.
* Completed CLI AddSynth base controls.

2018-10-19 Will
* Most #defines in globals.h changed to const.
* BugFix: CLI not reading resonance points.
* Completed initial trial of CLI resonance entry.

2018-10-18 Will
* Some cleanups to Resonance GUI.

2018-10-17 Will
* Deactivate resonance GUI if not enabled.
* All mutex code now commented out.
  Will eventually be removed if no problems.

2018-10-15 Will
* Minor code cleanups.
* Doc updates.

2018-10-14 Will
* BugFix: wrong defaults for resonance.
* Resolved more magic numbers.
* Set max buffersize to 8192.
* Revised and unified MIDI controllers.
* Moved CC definitions to globals.h

2018-10-13 Will
* Created global YOSH namespace.
* Implemented common F2B (float to bool) function.
* Updated docs.

2018-10-12 Will
* Converted remaining truncf calls to FR2Z2I.
  Behaviour is now entirely consistent.
* Temporarily disabled assembler FR2Z2I code.
  It screws up in LV2 :(
* Unified DynFilter Filter/Effect controls.

2018-10-2 Will
* Changed F2I to FR2Z2I to clarify behaviour.
  i.e. float round to zero to integer.

2018-10-1 Will
* Completed F2I adjustments.
* Started populating with new F2I.

2018-9-30 Will
* BugFix: AddSynth FM mod was cogging notes.
  Only that mod and at notes close to sample rate.
* Improved note/mod oscillator frequency calculations.
* Reinstated a more advanced version of F2I.
  Some misinformation earlier :(

2018-9-27 Will
* Accepted typo checks from debian.
* Some doc corrections.

2018-9-24 Will
* Bugfix voice list out of sync with voice editor.
* Copied in new user guide.
* set new README.txt
* Set version as 1.5.9 release

2018-9-23 Will
* BugFix: CLI not setting midilearn mute.
* Enabled comments in CLI script.
  Also added more error checks.
* Typo corrections:(
* Corrected CLI 'expand' info.
* Updated docs.
* Added Sub Choir to Will_Godfrey_Companion.
* Set version as 1.5.9 rc3

2018-9-19 Will
* BugFix: Failed older manual if current missing.
* Revised CLI status to compress line length.
* Set version as 1.5.9 rc2

2018-9-18 Will
* Most important parts of CLI waveform done.
* Set version as 1.5.9 rc1

2018-9-17 Will
* Started work on CLI waveform controls.

2018-9-16 Will
* Added contributors list to About window.
* Made some startup entries stdout only.
* Removed some instance startup dublication.
* CLI envelope freemode done.
  Some reporting errors and missing checks.
* Improved CLI filter help list.
* Corrected CLI freemode reporting.
* Added CLI freemode error checks.
* Improved CLI envelope help list.

2018-9-15 Will
* Completed CLI scripts.
* Implemented CLI context report control.
* Further CLI clean-ups.
* Implemented CLI formant filter controls
  but needs more testing.

2018-9-14 Will
* Refactored CLI internal messaging.
* Implimented CLI scripts.

2018-9-13 Will
* Set up CLI list entries for formant filter.
  Not implemented yet.

2018-9-12 Will
* Added CLI placeholder for formant editor.
* Added filter category to prompt.

2018-9-11 Will
* Added CLI placeholder for freemode envelopes.
* Added freemode status to prompt.

2018-9-10
* CLI lfos & envelopes remember last type used.
  amplitude, frequency, filter bandwidth
* CLI prompt now shows type and status of these.

2018-9-9 Will
* Optimised some CLI selection routines.
* Improved CLI prompt information.
* Further refinements to CLI controls and messages.
* CLI LFO & Envelope enables inplemented.
* Simplifed ON/OFF controls in CLI lists.
  Can still actually use any of:
  ENable, ON, YEs or DIsable, OFf, NO
* Corrected wrong CLI kitmode help entry.

2018-9-8 Will
* Added CLI placeholders for LFOs and filters.
* Completed CLI controls for LFOs.
* CLI filters done except formant editor.

2018-9-7 Will
* Found and mitigated cause of major memory leak.
  In XML - needs more work to resolve completely.
* Startup now counts banks and instruments seen.
* All instances now use a single bank file.
  They can still get out of sync per session but
  there is no longer a risk of bank corruption.

2018-9-6 Will
* Bugfix: Occasional segfaults starting new instances.
  Caused by call crossing threads :(
* Moved currentRoot and currentBank from Bank to Config
  Where they always should have been :@)

2018-9-5 Will
* BugFix: Reverb type not updating bandwidth control.
  Thanks to Jesper for finding the cause.
  Also some GUI effect 'switches' not set by CLI.
* BugFix: (ancient) Reverb bandwidth control *value*
  GUI not set to default when enabled.

2018-9-4 Will
* BugFix: instances not showing correct root list.
  GuiThreadMsg for banks in wrong place.
  May have caused crash when opening instances.

2018-9-3 Will
* BugFix: Crash if instrument name just 4 digits.
  Thanks to Kristian for the hint :)

2018-9-1 Will
* BugFix: GUI not setting resonance points.

2018-8-31 Will
* Added CLI SubSynth bandwidth envelope.
* Adjusted help lists.
* Added more CLI error reporting.

2018-8-30 Will
* Added common envelope controls to CLI.
  Not freemode yet.
* Updated help lists.

2018-8-29 Will
* Made CLI help lists more consistent.
* Added CLI overtones entries for sub and pad.
* Added pad 'apply' control to CLI.
* Updated query lists.
* Completed CLI SubSynth main controls.
  Not envelope/filter inserts.


2018-8-28 Will
* Completed CLI part common controls.
* Moved Voice enable down to 8 for compatibility.
* Moved Voice amplitude envelope enable down to 7.

2018-8-27 Will
* Improved CLI fault and context sensitivity.
* Aded more info on CLI prompt.
* Some settings now checked on each CLI loop.
  Will be for checks against external changes.
* Implemented new part 'common' controls list.
* Updated ? lists to include subsynth.
  Also more flexible for later additions.
* Changed NRPN 7 bit command to remove ambiguity.

2018-8-26 Will
* More refinments to CLI command structure.
* Added common stereo, octave, detunes.
* subSynth CLI harmonic anp and bandwidth done :)

2018-8-25 Will
* Identified engines and kit mode in CLI prompt.
* All CLI kit mode controls active.
* Extended CLI parts help to include new controls.
* Improved many enable/disable settings.
* Revised and simplified CLI Mlearn section.

2018-8-24 Will
* Temporary fix to banks selection anomally
  The whole of bank needs review.
* More work on CLI part level controls.

2018-8-20 Will
* Implemented CLI placeholder function fo AddSynth.
* Implemented CLI placeholder function fo SubSynth.
* Implemented CLI placeholder function fo PadSynth.
* Implemented CLI placeholder function fo AddVoice.
* Implemented main CLI kit mode controls.
  Enable engines, kits and kit engines, not AddVoice.
* Implemented CLI Volume, Pan, Velocity for engines.
  Includes kit engines but not AddVoice.

2018-8-19 Will
* Added GUI warning when active part disabled.
* Removed some redundant test code.
* Added "Simple Bass" and "Hollow Ghost Ensemble
  to "Will Godfrey Companion" bank.
* Set up enums for further CLI control levels.
* Improved high bit detection in MiscFuncs.cpp
* Added high bit clearing to MiscFuncs.cpp
* Revised CLI sys, ins, part effect settings.
* Revised naming for CLI context levels.

2018-8-18 Rob
* Initialise and freshen MasterUI->activePart.

2018-8-18 Will
* Improved patch load behaviour crossing CLI / GUI.
* Started work on CLI kitmode.
* BugFix: Saving to bank not updating GUI.

2018-8-17 Will
* Implemented read most CLI min, max, default
  for formally defined ones.
* Implemented most CLI Mlearn initialisation
  for formally defined ones.
  Can't cancel from CLI though and non-learnable
  ones appear to learn.
* Added CLI help info to new controls.

2018-8-16 Will
* BugFix: CLI not setting some values
  and not reading any :(
* Started on CLI for reading min, max, default.

2018-8-15 Will
* All GUI default requests now set by limits.
  This is a major refactoring, considerably
  reducing the duplication in the GUI and adding
  more functionality.
  Some switches don't yet update, but are correct.

2018-8-14 Will
* Added missing conversions in FilterUI.fl
* Added missing conversions in EnvelopeUI.fl
* BugFix: EffUI.fl updates incomplete :(
* Added missing conversions in LFOUI.fl

2018-8-13 Will
* Separated system and insert control names.
* Updated docs.
* Added missing conversions in EffUI.fl

2018-8-12 Will
* Reorganised and combined XML & history types.
  History lists now identified by name.
* More 'type' and 'control' conversions in CLI.
* Small GUI updates/corrections.

2018-8-7 Will
* BugFix: Corrected wrong operator use.
  Was || when it should have been |
* Envelope limits done.

2018-8-6 Will
* Found more missing conversions :(

2018-8-5 Will
* Updated addSynth limits.
* Updated padsynth limits.
* Updated subSynth limits.
* Updated controller limits.
* Completed sys/ins control change.
  Envelope defaults still to do.

2018-8-4 Will
* BugFix: MIDI-learn Cancel.
  It was only pretending to :(
* Updated Microtonal.cpp limits.
* MicrotonalUI.fl converted to enums.
* Updated SynthEngine.cpp limits.
* MasterMiscUI.fl converted to enums.
* MasterUI.fl mostly converted to enums.
  Still some control values for MIDI,
  System and Insert effects to do.
* ConfigUI converted to enums.
* BankUI converted to enums.
* All MIDI controls now done.
  Effects still not complete.

2018-8-3 Will
* OscilGenUI.fl converted to enums.
* Completed limits in Synth/OscilGen.cpp
* PartUI.fl converted to enums.
* Some minor cleanups.
* VectorUI.fl converted to enums.
* Vector limits now same format as others.
* ResonanceUI.fl converted to enums.


2018-8-2 Will
* ADnoteUI.fl converted to enums.
* More clarifcations in MiscGui.cpp
  Also found more missing conversions :(
* SUBnoteUI.fl converted to enums.
* PADnoteUI.fl converted to enums.

2018-8-1 Will
* Partly implemented envelope limits.
  Not defaults.
* MIDI-learn test now using limits and
  not the GUI version.

2018-7-31 Will
* Implemented filter limits.
* Added MIDI-learn to filter limits.

2018-7-30 Will
* Implemented LFO limits.

2018-7-29 Will
* More work on Limits.
* Converted limits error checks.
* Updated limits doc.
* Improved encoding in UI/MiscGui.cpp
* More work on limits.
* Picked up a few more stragglers.

2018-7-28 Will
* Cleaned up some missing conversions.
  Also corrected previous date!
* More identification of anonymous 255s.
  e.g. NO_MSG, UNUSED, NO_ACTION
* Converted bank controls to enums.
* More missing conversions :(
* Started identifying types and sources.
* Still more missing conversions!
* Rationalised limits in Interface/CmdInterface
* Started converting limits to enums.

2018-7-27 Will
* Converted effect type controls to enums.
  More work needed :(

2018-7-26 Will
* Converted envelope controls to enums.

2018-7-25 Will
* Converted MIDIlearn controls to enums.

2018-7-24 Will
* Revised enum namespace terminology.
  No intrinsic code changes.
* Converted resonance controls to enums.
* Converted LFO controls to enums.
* Converted filter controls to enums.

2018-7-23 Will
* Converted oscillator controls to enums.

2018-7-22 Will
* Converted main addSynth controls to enums.
* Converted addVoice controls to enums.
* BugFix: CLI not setting GUI Bypass GobalFilter.
* Revised build dependencies.

2018-7-21 Will
* Completed scales enum conversion.
* Converted subSynth controls to enums.
* Converted padSynth controls to enums.

2018-7-20 Will
* Completed vector GUI enum updates.
* Updated docs and images.
* BugFix: scales CLI keymap entry wrong controls.
* Started enum conversion of scales.
* BugFix: scales CLI keymap not updating GUI.

2018-7-10 Will
* Corrected GUI Vector/Part/Mixer/Bank anomaly.
  This whole area needs a *major* refactor :(

2018-7-9 Will
* Started conversion of Vectors.

2018-7-5 Will
* Separated common main/part controls.
  Makes enums properly independent.

2018-7-3 Will
* Improved fade/mute/loopback isolation.
* Added 'muted' enums.
* Changed some names to improve clarity.
* Restored lost main control conversions :(
  Too many local branches?

2018-7-1 Will
* Caught more missing conversions :(

2018-6-30 Will
* Added some missing enum conversions in 'interchange'.
* Implemented control routes as enums.

2018-6-29 Will
* GUI config controls converted to enum.
* Defined 'insert' enums, and converted all occurrences.

2018-6-25 Will
* BugFix: GUI mixer controls not setting part window.
* Forgot section changes in resolveReplies.
* Interchange config controls converted to enum.
* CLI config controls converted to enum.

2018-6-24 Will
* GUI part controls converted.
* GUI main engine controls converted.
* Further work on addVoice/addMod controls.
  These no longer need to be fixed values.

2018-6-23 Will
* Added engines to globals.h
* Further work on Interchange.cpp
* CLI Part level mostly converted.
* Corrected multiple commit/merge failures :(
* Further adustments to Interchange.cpp

2018-6-22 Will
* Moved CommandBlock from MiscFuncs'.h to globals.h
* Set up part level controls enum in globals.h
  Converted actual commands in Interchange.cpp
* Implimented small optimisation for reads.
* Minor doc updates.
* Completed part controls move in  Interchange.cpp

2018-6-21 Will
* Instruments can now be swapped between banks and roots.
* Small doc updates.
* Created new globals.h file.
  Transfered definitions from CMakeLists.txt

2018-6-13 Will
* Small optimisation in 'zread'.
  Also shortened read loop usleep time to 10uS.

2018-6-13 Will
* implimented 'zread' CLI test for command structure.

2018-6-11 Will
* Bugfix: Wasn't reloading solo-twoway.
  Saved OK, but reloaded as loop.
* Formalised manual search and opening.
  GUI now only calls via command block.


2018-6-5 Will
* BugFix: Clearing kitmode key ranges was resetting.
* BugFix: Bank renaming now working across roots.
  Disabled instrument swapping across these for now.
* Improved banks swap error checks.
* Added gzipped manual patch from Hermann.
* Set as 2nd bugfix release :(


2018-6-1 Will
* Set as bugfix release.

2018-5-31 Will
* Corrected GUI handling of part saves.
  Also improved label colour handling.
* Corrected Envelope freemode delete point.

2018-5-28 Will
* Changed lstat to stat in MiscFuncs.cpp
* Finalised code and docs.
* Set release version as 1.5.8

2018-5-24
* Re-implemented autoloading instances.
  Seems completely correct now states corrected.
* Set version as 1.5.8 rc5

2018-5-24 Will
* Revised Config.cpp so instances get base config.
  Previously they had the system defaults.
* Corrected anomally with loading saved states.
  Loaded the wrong one under some circumstances :(
* Set version as 1.5.8 rc4

2018-5-23 Will
* Corrected minor anomally in channel switcher.
* Solo modes except column use blue for highlight.
  This is in the mixer window and easier to identify.
* Set version as 1.5.8 rc3

2018-5-19 Will
* Cleaned up 'solo' interaction between CLI & GUI.
* Fixed regression: GUI not exporting banks.
* Code optimisations between Interface & Bank.
* Set version as 1.5.8 rc2

2018-5-18 Will
* Implemented universal bank swaps.
* Banks no longer private to SynthEngine.
  Too much access from Interchange needed and was
  getting silly always routing via SynthEngine!
* Updated docs.
* Improved banks swap error reporting.
* Temporarily disabled auto instance loading.
  it wasn't stable enough for release :(
* Set version as 1.5.8 rc1

2018-5-17 Will
* Changed Solo choice name 'Recoil' to 'TwoWay'.
* Reduced debounce time to 60mS.
* Improved CLI reporting.
* Improved instrument swap error messages.
* Updated docs.

2018-5-11 Will
* Completed universal instrument swaps.
* Partially updated docs.

2018-5-9 Will
* BugFix: GUI swap instrument with bank now ignored.
  Would segfault previously.
* Preparing for universal instrument swaps.
  From any root/bank to any root/bank :)

2018-5-7 Will
* Non relevant GUI settings now deactivated for LV2.

2018-5-5 Will
* CLI can now clear a part.
  set 'clear' instead of an instrument number.
* Bugfix: GUI failing to clear correct part.

2018-5-4 Will
* Added 250mS de-bounce to solo loop and recoil options.

2018-5-3 Will
* Added 'recoil' mode to channel switcher (Solo).
  Incomming CC value:
  0         ignore
  1 to 63   decrement active part MOD 16
  64 to 127 increment active part MOD 16
* Updated docs

2018-5-2 Will
* Further improvements to CLI handling of instances.
* Started preparation for possible singluar set of banks.
* Minor cosmetic update to main GUI.
* Updated docs.

2018-5-1 Will
* Improved CLI handling of instances.
* Fixed regression: Had killed LV2 again :(

2018-4-29 Will
* CLI can now close instances.
* Minor improvements to CLI instance controls.

2018-4-28 Will
* BugFix: Mixer Panel 'Edit' right click sometimes fails.
  Should open part editing window.
* Transferred instance generation to new controls.
* Added Instance generation to CLI.
* Updated docs.
* Formally implemented CLI current instance swapping.
  Still can't yet delete them.

2018-4-27 Will
* BugFix: External instrument load always went to part 1.

2018-4-26 Will
* Almost all part-level changes check for "Simple Sound".
  Just *entering* the editors doesn't now.

2018-4-25 Will
* Code cleanups.
* Added error checking and limits to scales (microtonal).
* Enabled MIDI-learn for some scales settings.
* Doc updates and corrections.
* Added highlights to learnable controls.

2018-4-22 Will
* 'autoInstance' disabled by default, set in config.
* Default state files handled correctly.
* BugFix: Build 1287 had broken LV2 :(

2018-4-19 Will
* Second attempt at autoloading :(
* Corrected changelog.
  Previous two were one commit.
* Still not handling user state files correctly :(

2018-4-18 Will
* First trial of autoloading other instances.
* Started refinements to MiscMsg.

2018-4-8 Will
* Minor code cleanups.
* Enabling a part now always makes it current.
  Disabling doesn't change which is current.
* Mixer Edit button now always opens the part window.

2018-4-1 Will
* BugFix: SubSynth detune type off by one error.
  GUI only, CLI was correct.
* Corrections to 'Note_Envelopes.txt'.
* BugFix: Base Func Parameters not updating RH graph.
  Actions were correct though.
* Corrected a bad reset :(

2018-3-30 Will
* Included 'AddSynth Morph' instrument in companion bank.
* Added 'Note_Envelopes.txt' to docs.

2018-3-27 Will
* Improved reading text values (especially for CLI).
* Updated docs.

2018-3-25 Will
* Direct access can now set/read part and kit names.

2018-3-21 Will
* Final Updates.
* Manual import and update.
* Doc updates.
* Set release version as 1.5.7

2018-3-19 Will
* Corrected dates again :(
* Improved Add, Sub, Pad click response when not enabled.
* Changed 'Mod. Oscilator' to 'Local Oscillator'.
* Updated docs.

2018-3-18 Will
* Improved scales error checking.
* Improved instrument renaming.
* Set version as 1.5.7 rc5

2018-3-17 Will
* Improved detection of user guide.
* Code cleanups - Compiler warning suppression.
* New 1.5.7 features list added to doc.
* Remaining warnings suppressed.

2018-3-16 Will
* Implemented Tabbed AddSynth Voices.
* Changed layout as workround for bottom edge bug.
  Needs sorting for contol knobs anywhere :(
* Set version as 1.5.7 rc4

2018-3-12 Will
* Bugfix: Ext voice and modulators editing wrong.
  GUI still not completely correct - never was!
* Set version as 1.5.7 rc3

2018-3-11 Will
* Fixed regression. AddVoice modulator not changing.
* Clarified GUI voice and modulator selection.
* Set version as 1.5.7 rc2
* Bugfix: Sometimes setting the wrong XML doctype.
* Added Voice/Modulator info to docs

2018-3-10 Will
* Reverted incorrect change to DynamicTooltip.cpp
* Renamed overloaded show( to dynshow(
* Completely revised copyFile( function.
* All part areas now show kit status, number and names.
* Set version as 1.5.7 rc1

2018-3-9 Will
* Refined Window title names.
* GUI correct when MIDI volume and expression disabled.
* Vector UI tracks changed number of available parts.

2018-3-8 Will
* BugFix: Vector control not working.
  Off by one error :(
* Improved Vector GUI behaviour.
* BugFix: Config GUI was getting out of date.
  New switches and controls not updated with state.

2018-3-4 Will.
* CLI direct access can now read VU levels.

2018-3-3 Will
* Quieted some unused code till it's developed.
* Small improvements to Add and Pad GUIs.

2018-3-2 Will
* Small change to shortcuts.
* Added entry point for dynamic subnote harmonic change.
  No idea how to actually change it though :(

2018-2-28 Will
* Implemented defaults for part author and copyright.
  Normal left button loads, Ctrl + left button saves.
* Implmented shortcuts for add, sub, pad editors.
  Left key - only if enabled.
  Right key - enables and opens.
  Individual voices not done yet.
* Implmented shortcuts for part kit and effects.

2018-2-26 Will
* Added missing attributions to previous commit :(
* Optimised part compute.
  Removed unnecessary memory clearing and made per-part
  temporary allocations general ones.
* Minor code cleanups.

2018-2-25 Will + Kristian
* Merged in effects interpolations from Kristian.
* Changed instrument name font to Helvetica (not bold).

2018-2-23 Will
* Reverted LV2 buffer size change pending investigation.
  was commit: cf7c6e746239e90069a599a966aecbd5ba4f9f6e
* Distortion and Alienwah limits now track preset number.
* Remaining effects limits now track preset number.

2018-2-21 Will
* Implemented note on/off test routines.

2018-2-18 Will
* BugFix: Dynfilter presets not updating GUI :(
* Small adjustment to 'Modular Sines'.
* Further refinements to Dynfilter limits.
* Changed all occurrences of p_buffer to sent_buffer.
  More descriptive and easier to follow in the code.

2018-2-16 Will
* Added 'Modular Sines' to Companion bank.
* Further adjustments to EQ effect controls.

2018-2-15 Will
* Minor tweaks to banks.

2018-2-13 Will
* BugFix: EQ GUI frequency wrongly zeroed.
* Phaser and EQ effect limits done.
* Some effect limits cleanups.
  (more work needed on CLI access)

2018-2-12 Will
* Alienwah and Dynfilter effect limits done.
  (not filter insert for dynfilter)
* BugFix: Phaser d/y wrongly reducing default insert level.

2018-2-11 Will
* Improved bank import error reporting.
* Implemented bank export.
* Chorus and Distortion effect limits done.

2018-2-8 Will
* Started major upgrade to effects limits.
  Reverb completed others begun.
* Code cleanups surrounding effects limits.
* Echo completed.
* BugFix: Segfault on creating new bank (empty string).
* Some small GUI improvements.

2018-2-7 Will
* Some small improvements to 'reads'.
* Corrected wrong dates in Changelog!
  The dangers of copy-paste :(

2018-2-4 Will
* Merged in new limits code.
* Considerable updates to dev_notes.
* BugFix: Importing keymap not updating GUI.
* Further refinements to data read function.
* Small improvements to master reset behavour.
* More doc updates.

2018-2-3 Will
[LIMITS] First refactoring of this.
         Quite a few ommisions.
         Seems to be correct for MIDI-learn
         but may still be some errors.
[LIMITS] Made some corrections and optimisations.
[LIMITS] Last? optimisations.

2018-2-1 Will
* PadSynth 'busy' also reported to the GUI.
* Removed redundant 'apply' code from Part.
* Doc updates.

2018-1-31 Will
* Applied extra safety features when changing PadSynth.
  Attempting to read or write to it at this time gives:
  "Part [n] busy"

2018-1-30 Will
* Master Reset and Stop! now clear the VU meters.
* MIDI buffer full reports to selected destination.
* Some doc updates.

2018-1-29 Will
* BugFix: Part effects not MIDI-learned correctly :(
  This is a quick 'n dirty fix. The whole of the
  limits structure needs refactoring!

2018-1-28 Will
* Made VU still read if very slow part load blocks.
  Need to improve this :(

2018-1-27 Will
* Rationalised PadSynth calls.

2018-1-26 Will
* Removed no longer needed VU ring buffer.
* GUI VU meter display now fully detached :)
* Updated docs.

2018-1-25 Will
* Corrected VU meter update for multi-instance.
* Enabled reading from CLI (direct).
* Detached update system from GUI.

2018-1-24 Will
* Improved VU behaviour - better attack/decay.
  Adjustments no longer made in GUI and will be
  easier to be made available to the CLI.

2018-1-23 Will
* Removed incorrect reference to MIDI event 0xff.
* Padsynth apply no longer uses flags.
* Part clear no longer uses flags.
* Code tidyups.

2018-1-21 Will
* BugFix: CLI abort if query on top list.
* Refinements to thread safe async read.
* Part reads in CLI no longer change GUI part.
* Further refinements to thread safe async read.

2018-1-20 Will
* Minor bank optimisations.
* Started new thread safe async read.

2018-1-19 Will
* Cosmetic changes to panel window.
  Improves clarity and consistency.

2018-1-17 Will
* Added range checks on kits, engines and voices.
* Started work on change current root/bank.

2018-1-13 Will
* Rationalised use of file extensions.
  Especially in Banks.cpp
* Minor doc updates.

2018-1-7 Will
* Removed redundant direct setting GUI LFO frequency.

2018-1-4 Will
* Corrected message for unknown MIDI event.
  Also now as hex and obeys 'Log incomming events'

2017-12-31 Will
* Removed some redundant threadmessage code.
* Listed proposed new root & bank commands.
* Last 2017 bugfix! MIDI-learn block didn't :(

2017-12-30 Will
* Moved all key shifts out of RBP thread.
* Moved master fine detune out of RBP thread.
* Removed (now redundant) RBP thread.
* Updated docs.

2017-12-29 Will
* Revised old config warning.
  Now centred on master window an only
  recognises config files.
* Moved other use of message window to master ui.
* BugFix: MIDI-learn init was killing message window.

2017-12-28 Will
* Reinstated safe version of localpath().
* Applied PATH_MAX patch from debian maintainer.

2017-12-27 Will
* Refactored bank removal code.
* Improved bank import reporting.
* Updated docs.
* Master reset can now clear MIDI-learn.
* Moved panic stop out of RBP thread.
  This will eventually be cleared completely.

2017-12-26 Will
* Removed dependency on PATH_MAX
* Removed inclusion of local path in banks/presets.
* Removed redundant localPath function from MiscFuncs.
* Improved response time finding/displaying manual.
* Completed CLI bank import.
* Moved build number to ConfBuild.h
* Corrected and added instructions to INSTALL.
* More doc updates - I was bored!

2017-12-21 Will
* Implemented import of complete banks.
* Updated docs.
* BugFix: duplicate entry test in wrong place :(
  Wiping out paired .xiz and .xiy in exiting banks.
* More doc updates.

2017-12-16 Will
* Included current manual.
* Yoshimi now looks for specific manual version.
* Set release version 1.5.6

2017-12-15 Will
* Tidied up microtonal reporting.
* Improved MIDI part/channel decoding.
* Implemented breath control enable switch.
* Set version as 1.5.6 rc1.

2017-12-14 Will
* Merged in BSD bugfixes from Tobias
* Changed source location of user manual.
  Separate lines in CMake no longer needed.
* MIDI-learn now has a threshold setting for switches.
* BugFix: More missing GUI messages found :(
* BugFix: CLI not updating scale name or description.

2017-12-13 Will
* BugFix: argp return still wrong for HURD :(
  Tried casting the return int to error_t instead.
* Applied better resolution of splash timeout.
* Bugfix: Importing scales was not updating GUI.

2017-12-12 Will
* Bugfix: argp return type was error_t should be int
* Bugfix: Missing #include <cmath> in WaveShapeSamples.h
* Bugfix: Missing #include <stdlib.h> in CmakeLists.txt
* Possible resolution of splash screen problem.

2017-12-11 Will
* Set max MIDI-learn lines to 200.
* Included current Advanced User Guide.
* Added wildcard for .xiy and .xiz files in FLTK.
* Updated docs.
* Set release version 1.5.5

2017-12-10 Will
* Bugfix: Some loads and saves were leaking MiscMsg.
* Banks Instrument ops now recognise new format.
  Tested for load, save, delete, swap, rename.
* Set version as 1.5.5 rc7.

2017-12-9 Will
* Further refinement to legato fade.
* Improved splash screen behaviour.
* Revised bank slot saving.
  Still some details to correct :(
* Enabled CLI direct access bank slot saving.
* Set version as 1.5.5 rc6.

2017-12-8 Will
* Resolved anomalies with new instrument type.
  GUI name colour reverts to black when cleared.
  GUI name colour updated on saves as well as loads.
  Bank structure identifies .xiy if either/both there.
  Bank entry instrument colours update.
  Loading instruments always looks for .xiy first.
* Set version as 1.5.5 rc5.

2017-12-7 Will
* Made GUI Settings windows consistent.
* .xiy doctype changed to Yoshimi.
* GUI now shows .xiy parts with mid-blue text.
* Set version as 1.5.5 rc4.

2017-12-6 Will
* Implemented extended (.xiy) Instrument saves.
* Set version as 1.5.5 rc3.

2017-12-5 Will
* Reverted change in Cmake linker for tests.
  This may affect BSD so this availability will not
  be mentioned in notes for next release.
* Set version as 1.5.5 rc2.

2017-12-4 Will
* Bugfix: CLI program change not updating GUI.

2017-12-3 Will
* Set version as 1.5.5 rc1.

2017-12-2 Will
* Improved legato fade behaviour.
* BugFix: History not removing files when list full.

2017-11-30 Will
* BugFix: long standing silent legato note :)
  This is an interim solution needs improving.
* Further improvments to legato mode.
  Another old bug found (not fixed yet) :(
* Bugfix: Drum mode not clearing legato.

2017-11-29 Will
* BugFix: Channel switch not loading correctly.
* Added specific older X86 CMake build options.

2017-11-28 Will
* GUI legato mode turns red if drum mode.
* Master reset reloads the saved default state
  if it exists and is set in config.

2017-11-26 will
* Refined legato/keymode code.
* Part code cleanups.
* Minor optimisation for mono/legato renote.
* Removed redundant code from part NoteOn
  and VirKeyboardUI.

2017-11-25 Will
* Improved protection for channel switch.
* Implimented CC 68 - Legato pedal.
* BugFix: CC 68 brace in wrong place :(

2017-11-24 Will
* Channel switcher was activated by Ardour!
  Temporary fix in place.

2017-11-23 Will
* Improved internal message system.
  Now possible to send plain non-blocking
  messages, such as warnings, to CLI & GUI.
* Updated docs.
* Fixed regression. Mixer not updating :(

2017-11-22 Will
* Further refinements to history lists.
  Instruments now included.
* CLI instrument load can use '@' history.

2017-11-20 Will
* Improved GUI & CLI instrument saving.
* Updated docs.
* BugFix: Failed right click on bank window.

2017-11-20 Will
* Small improvement to history lists.
  Ready to include instruments.

2017-11-19 Will
* Simplified history lists.
  Last used is now always top of its list.
* All main file loads/saves offer last used.

2017-11-18 Will
* Note on/off swap now in MusicIO.
* Resolved channel switch Gui issues.
* Consolidated SetSystemValues as NRPN only.
  Still not completely thread safe.
* Updated docs.
* More refinements to CLI.
* Tidied up some MIDI-learn messages.

2017-11-17 Will
* Added error reports to several I/O ring buffers.
* Revised channel switcher.
  Still some GUI anomalies to sort out :(

2017-11-16 Will
* BugFix: New Vectors weren't being saved.

2017-11-15 Will
* Finalised jack part destination changes.
  Vector control now sets these correctly!

2017-11-14 Will
* Refactored indirectTransfers.
  Was 'transfertext' but used for much else.
* Improved jack part destination changes.

2017-11-13 Will
* NRPN direct part control now threadsafe.
  Only NRPN system values to do :)

2017-11-12 Will
* Corrected Vector GUI anomalies.
* Improved CLI part channel change.
* Started work on NRPN direct part access.

2017-11-11 Will
* BugFix: GUI Insert effects failed to update.
* NRPN effect changes now threadsafe.
  Some GUI anomalies to sort out.
* Code cleanups.
* Rationalised system value ranges.
* Updated docs.

2017-11-10 Will
* Code cleanups around incomming MIDI.

2017-11-9 Will
* GUI copy/paste now threadsafe
  but needs much improvement.
* Removed sse from 'BASIC' compiler build options.
* In SynthEngine the build defaults to NOLOCK.
  This means *all* mutex locks are disabled.

2017-11-8-Will
* CLI effects code cleanups.

2017-11-7 Will
* All remaining CLI writes thread safe :)
  but some effect controls don't update GUI
  and code tidying needed.
* Doc updates.

2017-11-6 Will
* Vector GUI writes now thread safe :)

2017-11-5 Will
* Significant re-factor of vector control.
  Stable, but some details to be improved.
* Further refinements to vector control,
  and improved error handling.
* BugFix: MIDI zero velocity not sent to noteoff :(
* Running vectors now correctly update GUI.

2017-11-4 Will
* Vector CLI controls fully thread-safe.
  Some GUI and MIDI ones to complete.
* Corrected JACK / ALSA GUI selections.

2017-11-3 Will
* Restored MIDI volume GUI action.
* Some more Vector controls now thread safe.

2017-11-2 Will
* Major split up of midi controls from audio thread.
* Unification of CC from any source.
* More on unified root/bank/program.

2017-10-31 Will
* Further inprovments to unified root/bank/program.
* Added 'Root_Bank_Program.txt' to dev_notes.
* Corrected anomally with GUI bank list entries.

2017-10-30 Will
* MIDI controllers done for CLI  direct access
  but disabled until rest of system done.

2017-10-29 Will
* Unified root/bank/program change complete
  for CLI direct access.

2017-10-28 Will
* MIDI note on/off routing much simplified.
* Further work splitting up MIDI routing.
  NRPNs partially separated out
* NRPNs can now be completely ignored.

2017-10-26 Will
* Corrected GUI panel anomally when changing parts.
* Started implimenting unified root/bank/program change.
* Applied mutex lock corrections suggested by 'blubee'.
* Corrected implied cast in jackengine.

2017-10-24 Will
* Revised parameters for direct midi controls.
* Virtual keyboard now uses these, so threadsafe.
* Updated control numbers.

2017-10-23 Will
* GUI improvements to mixer panel.
* Direct access to NoteOn, NoteOff, SetController.
* Updated dev_notes/Yoshimi Control Numbers.ods

2017-10-22 Will
* Improved GUI behaviour on part changes.
* More doc updates.

2017-10-21 Will
* Minor adjustments to musl patch from newbluemoon.
* Further code cleanups.
* Doc updates.

2017-10-20 Will
* Doc updates.
* Added missing limits.h include to MiscFuncs.

2017-10-16 Will
* Finalised and cleaned up bugfix code.
* Rationalised GUI updates (only one Fl::check() call).
* set as V 1.5.4.1 release.

2017-10-14 Will
* Bugfix: Main part controls were responding to all
  remote input channels but upper panel rows weren't.
* set as V 1.5.4.1 rc2

2017-10-13 Will
* BugFix: Instrument loading now synchronised.
* CLI enable/disable now updates panel.
* set as V 1.5.4.1 rc1

2017-9-27 Will
* Merged in noboost branch. So no dependency on boost.
  Resolves a long standing very rare segfault.
* A few more tidy ups.
* Included "Yoshimi Advanced User Manual" as a PDF.
  Can be launched from the 'Yoshimi' dropdown menu.
* Set Version 1.5.4 release.

2017-9-24 Will
* Removed orphaned and disabled code.
* Unified coding style
* set as V 1.5.4 rc1

2017-9-23 Will
* Improved part change display behaviour.
* CLI part enable state can now be read as well.
* Changing part enable state updates all of part
  section in main window.

2017-9-22 Will
* Updated cmake policies.

2017-9-21 Will
* BugFix: MusicIO was passing LV2 MIDI to ring buffer.
* Improved example build instructions.

2017-9-19 Will
* Further CLI conversions and code cleanups.

2017-9-17 Will
* Mute now uses the same structure as partonoff.
  Only a few mutex locks left!
* Paste no longer locks, but audio loop lock needed.

2017-9-16 Will
* Removed redundant mutex from OscilGenUI.
* Added check for old config file.
* Improved Bank/Instrument window stacking.

2017-9-14 Will
* Reinstated and improved ALSA MIDI ring buffer.
* Started converting Vectors.

2017-9-13 Will
* BugFix: reset not clearing master bandwidth.
* Master bandwidth added to MIDI controls.
* Master bandwidth now MIDI-learnable.
* Docs updated.
* Corrected MIDI controls tooltips.

2017-9-11 Will
* Improved AddSynth Voice controls code.
* Corrected 'minus' tooltip.

2017-9-10 Will
* Envelopes converted.

2017-9-9 Will
* Corrected NRPN wrong displayed values.
  Actual values were quite correct.
* Replaced splash screen png with svg version.
* Finally got envelope graphs under control.
  Tidying up and full conversion tomorrow :)

2017-9-8 Will
* Most of envelopes transferred.
  Only graph points to do.
* Improved add/delete point controls.
* Updated docs.

2017-9-7 Will
* Completed filter transfer.
* Improved formant tooltips.

2017-9-5 Will
* Corrected last three dates here :(
* Created noboost branch.
[noboost] reverted note-offs to delete.
[noboost] removed all references to boost.

2017-9-4 Will
* Effects transferred to lock free.
  Noticed long-standing anomally with some dynfilter
  control only working on release.
* Filters mostly transferred to lock free.
  Some formant controls not done yet.

2017-9-1 Will
* BugFix: Oscillator phase was screwed up :(
* Removed redundant code from PadSynth UI.
* Preparing Filters for conversion.

2017-8-31 will
* Cleaned up Sys/Ins controls.
* Added cleanup when Ins destination set to 'off'.
* Yet more doc updates :P

2017-8-30 Will
* BugFix: Disabling a part was resetting all controllers.
* Doc updates.
* Sys/Ins effect controls now transferred to lock free.
  But could be improved.

2017-8-29 Will
* All rotary controllers now MIDI learnable.

2017-8-28 Will
* CLI can now save PadSynth sample sets.
* Failure to save PadSynth sample sets now reported.
* Updated docs.
* Removed reundant code.
* Removed unnecessary mutex lock in Pad apply.
* Fixed regression 'apply' in GUI oscillator.
* Oscillator converted to lock-free (phew!)
  Alse corrected ancient anomally where base
  function wasn't changed with 'Use as base".

2017-8-26 Will
* Adjusted logging on memory error merge from Iurie.

2017-8-25 Will
* Removed duplicated effects command from GUI.
* PadSynth conversion completed.
* Fixed regression - AddVoice bend adjust not working.

2017-8-24 Will
* Corrected GUI value for CLI resonance centre freq.
* Resonance converted to lock-free.
* Preparing PadSynth for conversion.

2017-8-22 Will
* More speeling chucks :(

2017-8-21 Will
* Final clean-up.
* Final doc updates.
* Set Version 1.5.3 release.

2017-8-20 Will.
* Improved state saving extension checks.
  This whole area needs looking at.
* Set Version 1.5.3 rc4

2017-8-19 Will.
* Further minor updates to CLI - mostly messages.
* Set Version 1.5.3 rc3

2017-8-17
* Minor correction to CLI vector level.
* CLI now updates most of envelope graph.
  freemode still to do.
* Revised CLI MIDI learn for own context level.
* GUI test reports are now specific to button 2 & 3.
* Set Version 1.5.3 rc2.
* Further small updates to CLI.

2017-8-17 Jesper
* Don't crash when autoconnect "fails" due to preexisting connections.

2017-8-16 Will.
* Doc updates.
* Set Version 1.5.3 rc1.

2017-8-15 Will.
* Updated appdata and moved to metainfo.
* Other doc updates.

2017-8-13 Will + Rob
* GUI DynFilter updates and learns correctly.
* Learn bug sorted properly!
* Code cleanups.
* Doc updates.

2017-8-12 Will
* Added shortform NRPN to shutdown Yoshimi.
  CC 99 & 98 both set to 68 (0x44).
* BugFix: CTRL pressed *after* any mouse click learned.
* Doc updates.

2017-8-11 Will
* Implimented CLI naming of vectors.
* Corrected some CLI help entries.

2017-8-10 Will
* Further improvements to command test list values.
  Hex and Dec shown, and in columns again.
* Expanded CLI DynFilter control to include sys/ins
  but not currently active.

2017-8-9 Will
* Most of DynFilter updates on CLI direct access call.
  Just the filter window itself to do. Difficult :(
* Command test list values now hex and just 2 lines.

2017-8-7 Will
* Part effects now display on CLI direct access call.

2017-8-5 Will
* Master reset no longer needs threadmessage function.
* Further cleanups and doc corrections.
* Started revising sys/ins effects & replacing callbacks.
  This will help make CLI and GUI consistent.

2017-8-4 Will
* Properly integrated all patchset saves.
* Improved patchset load operations & messaging.
* BugFix: segfault if CLI load with garbage filename.
* Fixed regression. LV2 not loading patch sets.
  These are now properly contained, but I forgot to
  update (LV2 only) putalldata :(
* Patched in Jesper's improved Console scroll behavoir.
  New entries now at bottom and always visible unless
  scroll bars moved.

2017-8-3 Will
* BugFix: Insertion effects were always on.
* Minor date corrections etc.
* Removed redundant internal part mute.
  Never activated and partonoff more sophisticated.
* A few more cleanups.

2017-8-2 Will
* Small add/sub memory allocation optimisation.

2017-8-1 Will
* Removed mutex locks from patchset save.
  No longer needed, so patch sets and states
  now save silently.
* Fixed regression. Vectors update 'recent' again.
* Added 'Microtonal Ratio Scale' to examples.

2017-7-31 Will
* Improved config save operations & messaging.
* Minor doc corrections & speeling chocks :)

2017-7-30 Will
* Corrected minor XML LV2 anomaly.
* Optimised 'returnsDirect' access.
* Loading scales from GUI now updates it!
* Added microtonal demos to 'Examples'.
* Console window now monospaced font.
* Scales can now be loaded from histories.
* Doc updates.
* Improved scales load & save operations & messaging.
* Further restructuring of Vectors.

2017-7-29 Will
* Improved vector saving management.
* Reset & state load now update Vector name :p

2017-7-28 Will
* Refactored vector data structure.
* It hasn't been purely nrpn based for a long time!
* Further vector refactoring for overall consistency.
* Updated docs.
* Bugfix: Missing 'break' stopped patchset loads :(
* Vector name now editable and saved internally.

2017-7-27 Will
* Improved state save error reporting for GUI & CLI.
* Tidied master GUI code.
* Bugfix: Reports button not correctly responding.
* doc updates.
* Improved vector loading management.
* Started making vector name editable.

2017-7-26 Wiil
* Resolved Vector display issues.
* More refinements to Vector controls.
* Improved messaging with state loads.
* Fixed non-fatal XML warning messages.

2017-7-25 Jesper
* Bugfix: Fixed segfault from edge cases when float->int
  conversion was very close to zero in formant filter
  transition calculations.
* New formant filter editing tools - visual parameter
  manipulation on the frequency graph, primarily
  mouse-driven.
* New tooltips for the formant filter control knobs and
  amended related tooltips in filter envelopes/LFO's
  to show the differences between formant filters and
  the other types.

2017-7-24 Will
* Started refining loads and saves (state first).

2017-7-22 Will
* Minor optimisations and clarifications.
* Updated man page.

2017-7-21 Will
* Removed some redundant code.
* State load is now 'silent'.
* Implemented lock-free state load & save.
* Fixed potential memory leak in session save.
* Doc updates - of course :)

2017-7-20 Will
* Improved CLI handling of delays from slow actions.
  Has a switch that only releases when action completes.
* More doc updates and corrections.

2017-7-19 Will
* transfertext() now checks GUI exists before sending.

2017-7-18 Will
* Bugfix: Bank dropdown list was showing wrong entry
  on bank root change but actual contents correct.

2017-7-16 Will
* Refinements to CLI.
* Direct access to loading and saving scales done.
  More enhancements planned.
* Updated docs.

2017-7-15 Will
* Completed conversion of CLI config controls.
* Reorganised CLI code.
* Config GUI also converted.
* Reformatted config GUI code.
  It was getting very untidy :(

2017-7-14 Will
* Created new 'config' CLI submenu.
* Converted some 'normal' CLI config controls.

2017-7-13 Will
* All Config limits defined.
* Updated docs.

2017-7-12 Will
* Values can now be corrected for range by the CLI.
* Controls can be set to defaults by the CLI.
* CLI can now test and report 'occupied' CC ranges.
* doc updates.

2017-7-4 Will
* Resolved GUI to CLI miscMsg problem. Back on course :)
  Was due to CLI reporting blocking some 'Resolves' that
  use miscMsg to return text messages.
* Adjusted saved keymap to retain compatibility.
  Internally now starts from zero.

2017-7-3 Will
* Temporarily disabled Jack/Alsa GUI to CLI IDs.
  Cause of strange MiscMsg behaviour :(

2017-7-2 Will
* Config conversion almost done.
  Still some non-fatal anomalies to clear up.
* Updated docs.

2017-7-1 Will
* Config switches converted.
* Config jack & alsa converted.
  Discovered odd behaviour from the GUI with miscMsg.
  Not a disaster but needs to be sorted.

2017-6-29 Will
* Bugfix: CLI history was not being updated.
* Removed empty virtual keyboard menu choice.
* Started conversion of config for direct access.

2017-6-27 Will
* Fixed regression GUI can load full scales again.
* Simplifed GUI scale loading code.

2017-6-25 Will
* Transferred scales to new controls.
* Scale name now the leafname for .scl loads.
* Changed scale 'Comment' to 'Description'.
  matches Scala format better.
* Doc updates.
* Further code refinements.
* Added new scales info in the doc directory.

2017-6-24 Will
* More revisions of CLI help lists.
* Implemented all CLI microtonal functions.
* Updated docs.

2017-6-23 Will
* Added delay to CLI return so most ops complete first.
* Small improvement to Crossfade smoothness.
* Removed redundant & commented out code in PartUI.fl.
* Improved range checks in Part.cpp.
  Also removed redundant kit range checks.
* Fixed key range regression caused by last commit :(

2017-6-22 Will
* Fixed regression kitmode effect select works again.
  Also improved numbering.

2017-6-21 Will
* Revised CLI help menu for greater clarity.
* Implemented CLI list tuning and keymap.

2017-6-19 Will
* CLI can now write or load tunings and keymaps.

2017-6-18 Will
* Tuning error reporting completed.
* Keymap error reporting completed.
* Updated docs.
* Scales code cleanups and optimisations.

2017-6-16 Will
* Added loopback for low priority functions into 'returns'.
* Direct access writing now possible for all scale data.
* Improved scales error reporting.
  More to do.
* Updated docs.

2017-6-12 Will
* Further refinements to scales accuracy
  (no longer needing doubles)
* Full XML float compatibility with ZynAddSubFX.

2017-6-11 Will
* Improved scales compatibility with old files/ versions.

2017-6-9 Will
* BugFix: miscMsgPop wasn't checking index range.
* Loading patch sets always zeros 'Solo' channel number.

2017-6-8 Will
* BugFix Loading scales wasn't updating name/comment.
* Direct access - more scales controls available.
* Direct access scale loading in place.

2017-6-7 Will
* Scales no longer suffer from cumulative errors :)
* Removed some (now unnecessary) mutex locks.
* Direct access tunings and keymaps now CSV,
  and reformatted to standard scales.

2017-6-5 Will
* Improved accuracy of scale number<=>text conversions.
* Added "Musical Scale.odf" to 'doc'.

2017-6-4 Will
* Tunings and Keyboard map implemented.
* Most Scales controls now available to direct access.
* Added new Scales.txt doc to 'dev_notes'
* Updated Yoshimi Control Numbers.ods file.

2017-6-3 Will
* Made Invert center key status clearer.
* Identified more scales controls ready for direct access.
* More doc updates.

2017-6-1 Will
* More part map optimisations.
* Part maps now double buffered.

2017-5-31 Will
* Reorganised part map setting to remove multiple calls.
* BugFix: Reverse scale centre was being set as type bool.
* BugFix: Scale ratio values were limited to 127.

2017-5-30 Will
* Improved error traps and reporting.
* Set default full XML saving to 'off'.
  Done for previous consistency.

2017-5-28 Will
* Revised Scales GUI layout.
* Added sane limits to key maps.
* Discovered XML saving anomaly so created new Config switch.
  Forces *all* data to be saved when set.
* dev_notes updates.

2017-5-26 Will
* Started implementation of CLI scales access.
* BugFix: neither .scl or .kbm were checked for no file :(

2017-5-24 Will
* BugFix: LV2 state restore was not setting partmaps.
* Yoshi can now work with both CLI and GUI disabled.
* Doc updates.

2017-5-12 Will
* Merged in Robs SubSynth Overtones/Legato fix.
* Finalised all code and docs for release.
* Set version 1.5.2

2017-5-11 Will
* Reset all controllers now clears the portamento switch.
* Added SubnoteUI correction from Rob.
* Minor change to saved Midi-learned files.
  Supresses artificial top bit when saving, making file more
  understandable, but loading restores it for learn comparisons.
* More AddSynth Voice & SubSyth switches learnable.
* Updated docs.

2017-5-9 Will
* BugFix: Modulator amplitude envelope wasn't enabling.

2017-5-8 Will
* Made Add Voice & Sub filter enables learnable.
  Now labelled as 'On'.
* Removed unnecessary Gui checks from Add & Sub.

2017-5-7 Will
* Improved Midi-learn loading behaviour.
* Gui Updates no longer called from synth.
* Midi-learnable switches now have colour IDs.
* Set master as 1.5.2 rc2
* Updated docs.

2017-5-5 Will
* More 'switches' Midi-learnable:
  AddVoice enable and modulator selection.
  All engine stereo and octave.
* Set master as 1.5.2 rc1
* Updated docs

2017-5-4 Will
* Small alteration to Andrew's State Changed patch.
  This catches controls that still write direct.

2017-5-2 Will
* Fixed Gui anomally when loading states with Midi-learn.
  The way we fetch Gui updates needs improving greatly.
  Currently we use the VU timer and call across from synth.
* LV2 state now includes Midi-learn data.

2017-5-1 Will
* State load now correctly updates main window title.
* More float -> int range adustments
  especially Midi-learn limits and conversions.

2017-4-30 Will
* Improved float -> int conversions.
* BugFix: some of the new controls had the wrong limits.

2017-4-29 Will
* Corrected some Gui engine enable/colour anomalies.
  Needs more work to rationalise duplications.
* Enabled engine switches for Midi-learn.
* Enabled some controllers for Midi_learn.
  pan width
  bandwidth depth
  pitchwheel range
  portamento time
  portamento time stretch
  portamento threshold
  proportional rate
  proportional depth
* Updated limits
* Small adjustment to controllers window.

2017-4-28 Will
* Fixed dynamic tooltip margins at 3 for all FLTK 1.3.x.
  May reinstate the margin setting at a later date.
* Small change to crossfade example.

2017-4-23 Will
* Reverted Midi-learn Gui change again
  It was just moving the problem to any window that was open :(

2017-4-22 Will
* If State file has Midi-learn data it closes the window.
  This evades the issue rather than solving it :(
  However no other load source shows the problem.

2017-4-21 Will
* Reverted Midi-learn Gui change - caused other problems.

2017-4-20 Will
* Improved handling of Vectors in state load
* Loading large Midi-learn lists was overloading Gui
  so reduced Gui update rate.
* Misc image updates.

2017-4-18 Will
* Corrected AddSynth sound/noise display.
* Included AddSynthVoiceList in new controls method.
* Midi-learn data added to saved state file.

2017-4-17 Will
* Implemented Gui change can redraw *after* command set.
* Transferred AddSynthVoice to new control method.
* Updated docs.
* Transferred SubSynth to new control method.
* Fixed regression - scroll wheel had stopped responding.
* More doc updates.

2017-4-16 Will
* Part 'kit' is no longer ORed with 32 for some controls
  instead 'insert' is set to 32 for these.
* Added more error checks and warnings.
* Updated docs.
* Increased max buffersize to 4096 frames.
* Fixed regression - Cli had lost part effect control :(

2017-4-15 Will
* Implemented Gui access to 7 bit NRPNs.
* Revised Midi-learn window.
* Corrected some Cli numbering.

2017-4-14 Will
* Revised Gui new instance selection.
  Only 1 menu entry needed now.
* Revised Midi-learn min/max - now percentages.
  Resolution is now 0.5% :)

2017-4-13 Will
* Revised Cli access to Midi-learn.
* Implemented 7bit NRPNs (not Gui changeable).
* Updated docs.
* Bugfix: Loading Midi-learn files was setting learn mode.
* Bugfix: CLI error when changing Midi-learned channels.

2017-4-9 Will
* Bugfix: Wrong size buffer used for jack audio
  causing overwrites if internal < nframes.
* Set version 1.5.1.1

2017-3-30 Will
* Finalised all code and docs for release.
* Set version 1.5.1

2017-3-29 Will
* Edited ccmake option names for more logical sequence.
* Created INSTALL_CUSTOM info file.
* Removed unused, and commented-out code.
  No fuctional changes.

2017-3-26 Will
* Corrected anomaly with some float to bool conversions.
  Changed varable in 'interchange' to make this clearer.
* Activated Midi-learn for portamento enable & rate.
* Set master as 1.5.1 rc5

2017-3-22 Will
* Doc updates and moves ready for release.
* Added two new instruments to Will_Godfrey_Companion
* New splash image included in Utils.
* Merged in jack latency fixes from Rob.
* Re-instated '03' Neon ccmake option.
* Doc updates - again!
* Set master as 1.5.1 rc4
* It's ohh three not zero three !!!
  Now done right.

2017-3-22 Jesper
* Master window: Added subclassed Fl_Menu_Bar which only draws the bottom border.
  Now it is not necessary to use negative coordinates to hide the edges.
* VUMeter no longer swallows all shortcut/keyboard events.
* Added missing hotkeys/mnemonics and fixed conflicting ones.

2017-3-21 Will
* Added correction for startup part connection status from Rob.
* Set master as 1.5.1 rc3
* Readjusted main menubar.
* Removed '03' from Neon ccmake options.

2017-3-21 Jesper
* SubSynth ui: persistent margins for the harm. sliders + non-clipped labels
  Adjusted some misaligned/off-center widgets and added forceH tooltip

2017-3-20 Will
* Bugfix: setExtension got one case wrong.
* Bugfix: State load wasn't setting partmaps.
* Small adjstment to Insertion Effects tab.
* Set master as 1.5.1 rc2

2017-3-20 Jesper
* Reverted min/max button style and relative positions
* Reverted mistakes: wrong tab selected, perceptual spinner size
  and moved button grid one pixel down to huge effect.

2017-3-19 Jesper
* Bugfix: stored window positions were read with wrong buffer size
* Visual: menu bar positioned left of window + overlap by frame beneath
* Even alignment and distribution of widgets in MasterUI & PartUI
  Exact centering required resizing effects windows by 1 pixel
* Tooltip fixes in MasterUI and PartUI
  one inconsistent description and some inconsistent capitalisation.
* Renamed m-R-M to Set-R-Set and placed the buttons next to their spinners

2017-3-19 Will
* Bugfix: Rotary controls were making pairs of calls.
* Installed new splash screen and updated notices.
* Set master as 1.5.1 rc1

2017-3-18 Will
* BugFix: Direct access Eq.T. dial deactivated in error.
* Implemented forgotten direct access subsynth bend and offset.
* Updated docs.

2017-3-17 Jesper
* AddSynth gui - sync voice list when changing detune type
* AddSynth section labels now consistent with the other synths.
* Minor graphical corrections - overlapping margins etc.
* Bugfix: Sliders behaved incorrectly when min>max
  specifically when using control-mousewheel to change value

2017-3-17 Will
* Part naming now goes through ring buffers.
* BugFix: Recent state loading failed
  due to missing lines in ParametersUI.fl
* Small adjustments to messageing.
* State reload now clears all parts before loading new ones.

2017-3-16 Will
* Bugfix: part volume was not being activated on load
  but only if the saved value was 95! There was a similar
  less important issue with panning.
* Small optimisation in Gui freemode enable switch.

2017-3-15 Will
* Added correction from Jesper to tooltips code.
* Direct access now enables envelope freemode in Gui
  but still doesn't do redraws.

2017-3-14 Will
* Updated auto window position control.
* Removed some auto window opens due to conflicts.

2017-3-13 Will
* Enabled Gui updates for dynfilter controls 7,8,9.
* Doc updates.

2017-3-12 Will.
* Updated /dev_notes/Effect_Inserts.txt
* Removed boost dependency based on ideas from Rob.
* Made EQ reporting more human-readable :)
* Corrected EQ band selector reporting/adjustment.
  It's not a parameter.
* Reverted boost change pending further investigation.

2017-3-12 Jesper
* Bugfix: Segfault from tooltip text handling in slider
  when creating new instances of yoshimi.
* Bugfix: All dials on the EQ effects can now be midi-learned.

2017-3-12 Will
* Added more reliable way of detecting Midi-learn NRPNs.
* Bugfix: Splash was ignoring switch settings :(

2017-3-11 Will
* Splash timeout is longer and doesn't block user.
* Fixed regression - exit was always claiming config changed.
* Fixed regression - wrong font sizes in 'settings'.
* BugFiX: Cli wasn't seeing value for freemode X offset.
* Bugfix: Midi-learn led didn't work if channel set to all.
* Version colour in Splash window now defined as RGB.

2017-3-10 Will
* Monitoring incoming CCs switch now saved in config.
* Implimented 'Open learned editor window' switch.
  Also saved in config.

2017-3-9 Will
* Improvements to Cli part limits.
* Successful Midi-learn now opens editing window.
* PadSynth limits done.
* Reduced internal multiplier for all limits.
  Just one went over short int size :(
* Small optimisation in Controllers limits.
* Updated docs.

2017-3-6 Will
* Cli limits now report the full name as well as the values.
* Bugfix: Cli Add/Sub text not identifying bend & offset.
* AddSynth limits done.
* Doc additions and corrections.
* SubSynth limits done.
* Corrected wrong AddSynth coarse detune type.
* Added 'solo' to limits.
* Optimised limits code in SynthEngine.

2017-3-5 Will
* Controller & Midi control limits done.
* Complete limit definitions for main & part include type.
  i.e. integer/float & whether midi learnable.
* Doc updates.
* Bugfix: missed a couple of 'break' statements in a switch.
* Added a special case for enable default on part 1.

2017-3-4 Will
* Merged in Jesper's latest tooltip improvements.
* Voice list panning now syncs random LED in main window.
* Updated direct access doc.
* Corrected last few dates in this file :(

2017-3-3 Will
* Changed confusing naming referring to voice list vibratto.
  Also improved comment.
* Improved float/int and float/bool casts in interchange.
* Gui Addsynth base parameters now go through ring buffers.
* Reinstated Addsynth base random pan button behaviour.
* Reinstated random pan button behaviour to all others.

2017-3-2 Will
* Main part limits done (not controllers)
* Master limits done.
* Bugfix: Gui changing available parts requered two clicks.
* Fixed new regression. Cli was never just reading values.
* Gui LFOs now go entirely through ring buffers.

2017-3-1 Will
* Started identifying default and limit values for part.
  Cli direct access uses "lim" instead of value and type.
* Small adjustment to part label display.

2017-2-26 Will
* Fixed instrument background colours.

2017-2-24 Will
* Added ARM options to CMakeLists.txt
* Restored commented out AdNote cubic interpolation
  for future examination (currently would segfault).
* Updated copyright notices and dates in various files.

2017-2-23 Will
*Merged in Rob's live LFO controls.

2017-2-21 Will
* Merged  in Jesper's latest tooltip additions.
* Minor change to freemode Envelope text to remove overlaps.

2017-2-20 Will
* Remaining Cli inputs converted.
  I hope!

2017-2-19 Will
* Bugfix: Midi-learn wasn't reloading the correct ranges.
* Found more Cli numbers to adjust :(
* Started changing Cli *input* numbers to match Gui ones.
* Got as far as 'commandPart'.

2017-2-18 Will
* Vectors now soft-load :)

2017-2-17 Will
* Cli effect presets now numbered from 1.
* Improved Cli listing of effects/presets.
* Bugfix: Solo wasn't seeing 'Loop' when reloading.
* Bugfix: Mute not cleared if patchset load failed.
* Cli can load patchsets and vectors from list numbers.
* Cli loading vectors updates the Gui.

2017-2-16 Will
* Improved readline behavour.
  Still needs more work - sometimes multiple prompt lines!
* Converted reported Cli numbers to match Gui ones.
  May have missed some :(
  Entries still zero based.

2017-2-13 Will
* Spash screen onptimisations.
* Small Fadeout improvement.
* Doc updates.

2017-2-12 Will
* Separated out temporary Gui Write -> Read per section.
  This enables us to do conversions section by section.
* Improved Cli messaging.
* Re-implemented silent panic stop.
* Re-implimented soft master reset. Hopefully all OK now.

2017-2-11 Will
* Reverted unsafe changes from build 952.
* Small optimisation in main audio loop partonoff read.
* A few Gui tidy-ups.
* Mixer as well as main window now show current patchset.
* Cautious 2nd attempt at just soft patchset change.

2017-2-9 Will
* Global and part keyshifts now go through ringbuffer.
* Code tidy-ups and improved comments.
* Bugfix: Part kitlist wasn't deactivated on start.
* All sources now use ringbuffer to load patchsets.
* Bugfix: Segfault if reset from CLI while GUI running.

2017-2-8 Will
* Commented out redundant code from LV2.
* Added mlock to all ring buffers.
* Ensured all locked pages unlocked on exit.

2017-2-7 Will
* First trial of async MIDI buffer.
* Changed miscMsg from mutext to semaphore.
* Bugfix: miscMsg buffer not being cleared.
  Only when no GUI. That was supposed to get them!
* Bugfix: Return messages killed for CLI when disabled
  for Gui.

2017-2-4 Will
* Changed interpolation for part volume and pan
  so no more zipper noise.
* Removed unused and commented out code.
* Corrected code copyright and 'Modified' dates.
* Bugfix: FLTK choice windows gave "yes" on Escape.
* Bugfix: Regression when loading vectors from CLI
  would crash if no channel given :(
* Bugfix: GUI not updated on loading vector file.

2017-2-3 Will
* Applied AddSynth Voice tooltip patch from Rob.
* Main volume now interpolated. No zipper noise :)

2017-2-2 Will
* Midi learn files now include the text of the
  command name for each line.
* Removed remaining forced 'part enable' except in part.
* Improved and extended partonoff options.
* 'Set part to default' now uses new method.
  Direct CLI access and the GUI now do this silently.
* Updated docs.

2017-2-1 Will
* Corrected NRPN warning message.
  nHigh had always been reported wrongly :(
* Corrected GUI activity light error.
* Midi-learn can now operate in place for LV2.
* Updated docs.

2017-1-31 Will
* Small clean-up in GUI panel controls.
* Removed unnecessary callback in GUI part kitlist.
* Midi-learn NRPN's done, but some non-harmful GUI
  activty light errors.

2017 - 1 30 Will
* Initial prep for midi-learn NRPNs :)

2017-1-29 Will
* Bugfix: Some limits wrongly set for midi-learn.
          Revised defaults settings.
* Bugfix: More wrong limits :(

2017-1-28 Will
* Merged in Jesper's edit button in AddSynth voice list.
* Adjusted positions/sizes to match general style.
* Made other style adjustments to AddSynth GUI.
* Set right click closures in bank GUI - long overdue.
* Changed highly confusing code window names in bank GUI
  so they match up with everything else!
  bank -> instrument
  root -> bank
  path -> root

2017-1-27 Will
* Transferred most CLI main and part level controls to
  new method and added in 'solo' and 'detune'.
* Changed resolve thread's timer to 60uS.
* Corrected GUI max parts display anomaly.
* Added missing 'c8' in GUI voice list :(

2017-1-26 Will
* Modified splash screen creation utility and files and
  made them formally available in a new 'Util' directory.
* Another attempt at error checks for attempt to access
  kit when not in kit mode. Think it's right now :)
* Commented out some redundant code.

2017-1-23 Will
* Channel switcher/Solo now ignores zero in loop mode.
  It responds to an on/off pedal press but not release.
* Added instrument "Smooth Organ" to "Companion" set.
* Added error checks for attempt to access kit when not
  in kit mode.
* Reverted new error check - it was wrong :(

2017-1-20 Will
* master: pulled in corrections and upgrades from
  (no longer) brokenReset :)
* Corrected dates in this file!

2017-1-20 Will
* brokenReset: CLI stop and reset now use direct access.
* Improved CLIresolvethread flag system.
* All master resets now handled via CLIresolvethread.
* Set up proper Init function for InterChange.cpp
  Threads could fail to start if poor general init.

2017-1-19 Will
* brokenReset: removed 'UpdateConfig' from 'resetAll'
  This seems to conflict with 'UpdateMaster'.
* Clearing config tab 4 now integrated into
  'update_master_ui' at GUI level.

2017-1-18 Will
* Temporarily made key pressure do channel pressure.
* Made minor improvement to pitch wheel handling.
* Transferred master GUI controls to new method.
* Improved direct CLI to GUI Pad params apply.
* If audio thread muted incoming Midi now ignored.

2017-1-15 Will
* Updated app-data file.
* Added French translation to yoshimi.desktop.in
  from Olivier.
* More general doc updates/corrections.

2017-1-14 Will
* Corrected Midi noteon velocity zero action and made
  noteoff command more obvous!
* Implemented Midi controlled system reset.
* CC 1/11/71/74 now update Midi controls window.

2017-1-13 Will
* First experiment unifying alsa/jack/lv2 Midi input.

2017-1-12 Will
* Improved reliability of window positioning.
* Midi learn window now remembered.
* Midi learn messages now placed by relative control.
* AddSynth voice and voice list now fully in sync :)

2017-1-11 Will
* Improved GUI part label and colours sync.

2017-1-10 Will
* Improved GUI part/mixer synchronisation.
* Added error check for out of range part numbers.
* Updated docs.

2017-1-8 Will
* Transferred main GUI part controls to new method.
* Enabled GUI control of Modulation, Expression etc.
* Updated 'Controllers' tooltip.

2017-1-7 Will
* Bugfix: CLI direct access not setting audio destination.
* Bugfix: Mixer GUI returning wrong part numbers if > 16.
* Bugfix: Mixer GUI volume & pan controls not responding
  to CLI when displaying different parts to main control.

2017-1-5 Will
* Removed redundant startup messages from splash screen.
* Exposed the following to Midi learn and direct access.
  Modulation
  Expression
  Filter Q
  Filter cutoff
* Created new GUI window for these.
* Updated docs.

2017-1-4 Will
* Bank tag (.bankdir) now aways contains the Yoshimi
  version number from when the most recent instrument
  was saved to it, or when the bank was created.

2017-1-3 Will
* Added part number to invalid kititem  warning.
* Midi now recognises channel aftertouch.
* Prep for NRPN Midi learn.
* LFO titles no longer overlap C/P.

2017-1-2 Will
* Enabled MIDI learning of pitchwheel.
  Comes in as CC 640 but seen as 128.
* Optimised Midi learn editing to reduce line moves.

2016-12-30 Will
* Improved layout of Filters GUI insert.

2016-12-27 Will
* doc updates and corrections.
* set version to 1.5.0 M - no code changes.

yoshimi 1.5.0

2016-12-17 Will
* Added warning for undefined kits in Midi learn.
* Finalised all code and docs for release.
* Set version 1.5.0

2016-12-16 Will
* Changed Midi learn spinboxes to number entries.
* Adjusted Midi learn window dimensions.
* Corrected tooltips, spellings and acromyms.
* Set version to 1.5.0 rc5

2016-12-15 Will
* Changed virtual keyboard key map labels and tooltips.
* More doc updates.
* Set version to 1.5.0 rc4

2016-12-13 Will
* Midi learn can now be cancelled.
* Set Yoshimi (instance) in midi-learn message windows.
* Corrected tooltip for oscillator harmonic randomness.
* More doc updates.
* Set version to 1.5.0 rc3

2016-12-12 Jörn
* More tooltips updates.
  Distortion
  Phaser
  Chorus
  Reverb
  Echo
  System sends
* Set version to 1.5.0 rc2

2016-12-12 Will
* Doc updates.

2016-12-11 Will
* Implemented message window for midi learning.
* Corrected GUI access to midi-learn general opps.
* Set version to 1.5.0 rc1

2016-12-10 Will
* Bugfix: CLI was trapping the wrong midi-learn control.
* CLI now change midi-learn mute, limit, block switches.
* Added load/save messages to midi-learn.

2016-12-9 Will
* Bugfix: CLI load midi-learn from list had missing return.
* Implemented CLI midi-learn line & list removal.
* CLI can now list individual midi learn lines in detail.
* Sent midi-learn general ops through ring buffer.
* CLI can now change midi-learn CC, chan, min, max.

2016-12-8 Will
* Implemented 'activity' LED for midi-learn.
* CLI history lists now numbered.
* Implemented CLI midi-learn load & save.
* Updated docs.

2016-12-7 Will
* Added new file to dev_notes: System_Values.txt
* Added list file leafname to midi-learn window title.
* Updated docs.

2016-12-6 Will
* Started implementing CLI access to midi-learn.
  Also replaced 'changeLine(' with 'generalOpps(' as it
  is more appropriate now.

2016-12-5 Will
* Small optimsation in crossfade.
* Tidied up code in Interchange and MIdilearn.
* All sliders/knobs mid-learnable except 'Controllers'.

2016-12-5 Jörn
* More tooltips updates.

2016-12-5 Will
* Bugfix: midi-learn scroll bar wasn't working.
* Most sliders/rotary controls now available to midi-learn.

2016-12-4 Will
* Implemented full midi-learn save, load/recent.
* Set windows of vectors and midi-learn to Yoshimi defaults.
* Simplified history type selection in parameters window.
* Bugfix: segfault clicking empty parameters window :(
* Updated docs.

2016-12-3 Patch from : Alexander
* Bugfix: state load wasn't setting keyshifts.

2016-12-2 Will
* Started defining a standardised limits routine.
  This will return min, max, default for any control.
* Bugfix: LV2 was trapping unknown CCs instead of allowing
  them to be passed on to midi-learn!
* More work on limits.

2016-12-2 Merge from : Jörn
* Extensive tooltip upgrade dynamically giving real values.
* Some code style consistency adjustments.

2016-11-30 Will
* First draft of midi-learn saving.
* Bugfix: Had to remove fltk midi-learn warning.
  It goes into a loop on spinboxes :(
* midi-learn load and save both working with default name
  "testmidi" in /home/{user}.

2016-11-29 Will
* Corrected anomaly when changing midi-learn channel numbers.
* Changed 'doublefreqtrack' to 'freqtrackoffset'.

2016-11-28 Merge from : Jörn
* Added button to filter tracking, offsetting range for 0 200%.

2016-11-27 Will
* midi-learn menu changed to buttons.
* midi-learn clear all implemented.
* Running learned controls can now go 'in_place' for LV2.

2016-11-26 Will
* Small midi-learn / Interchange optimisations.
* Direct access global fine detune now goes through ring buffer
  to stop Xruns - particularly with midi-learn.
* Enabled midi-learn of part effect sends.
* BugFix: reinstated direct control of effects.
  GUI not updated :(
* Enabled midi-learn of effects.
* Effects GUI now updated for all except some dynfilter knobs.

2016-11-25 Will
* Implemented the 'delete' function in midi-learn.
* More doc updates!

2016-11-24 Will
* Enabled all midi-learn editors except CC and channel.
* All midi-learn editors now working :)
* Bugfix: Odd control combinations segfaulted - cured.
* Bugfix: Curing old bug in direct access that segaulted on
  invalid kit access stopped all access to kits. Now done.
* Doc updates.

2016-11-23 Will
* Adding new learned lines now fully updates to the Gui.
* Removed test button.
* Number of lines temporarily limited to 128.

2016-11-22 Will
* Enabled midi-learn from CLI direct access.
* Normal CLI can also list current learned lines.
* Implemented (forgotten) AddSynth direct -> gui envelopes
  but still not freemode.
* Updated docs.

2016-11-21 Will
* Partially set up routing for midi learn messages.
* BugFix: Wrong ID for kits allowed part messages to drop
  through causing a segfault.
* Some optimisations in Interchange.cpp
* Filters and envelopes can now be midi-learned but envelopes
  don't update the GUI.

2016-11-20 Will
* Midi learn window now accessible but non-functional.
* Midi learn Gui now has some internal test structure.
* Updated docs.
* Resolved issue with learned controls not all updating :)

2016-11-19 Will
* Made a few corrections and extensions to midi learn.
* Started documenting this.
* Bugfix: reverted change that had killed midi learn :(
* More midi learn refinements.
  Tested limits & status (but no interface yet).
* Created potential GUI based on part kits.

2016-11-18 Will
* Started midi learn. Basic entries in place - not active.
  LV2 behaviour not tested yet.
* Bugfix: Vector window wasn't updated on part change.
* Many controls now midi learnable - can't be deleted.

2016-11-16 Will
* Added 'CoolSound' demo vector definition file to examples.
* Small change to ID GUI controls as MIDI-learnable.
* Updated docs.

2016-11-13
* Direct -> gui filter done (not dynfilter).
* Direct -> gui envelope basics done (not freemode).
* Updated and corrected docs.

2016-11-12 Will
* Bugfix: direct filter gain was changed by wrong control.
* Started direct -> gui filter control.
* Updated docs.

2016-11-11 Will
* Finalised CMake ncurses correction from Giovanni.
* Add more explanatory detail to earliar changes made to
  Bank/Program change in MusicIO.cpp
* Re-instated 'in place' for jack freewheeling. Wasn't in use
  when program load issue arose :(
* Small optimisation to drum mode note base frequency.

2016-11-7 Will
* Improved crossfade dynamics.
* More docs.
* Added 'CrossFade.xiz' instrument to 'examples' files.
  Included 'CrossFade.txt' description.
* Added compiler switch for Note-On time reporting.
  Needs 'Log Load times' checked in settings.

2016-11-6 Will
* Enhanced part onoff control for internal routines.
    0 = off
    1 = on
    2 = inhibit and store last
    3 = restore last
* Direct -> gui LFOs done.

2016-11-5 Will
* Direct -> gui part kits done.
* Direct -> gui part system sends done.
* Direct -> gui resonance graph done.
* Corrected errors in docs.

2016-11-4 Will
* Direct -> gui oscllator done.
* Bugfixes: some oscillator direct access errors :(
* Updated docs.
* Direct -> gui resonance mostly done (not points).
* Minor direct access optimisations.

2016-11-1 Will
* Cmake fix: nucurses now compulsory, but ncursesw optional.

2016-10-30 Will
* Implemented kit item crossfades (in pairs).
* A couple of small bugfixes on the new crossfade.
* Docs updated.

2016-10-29 Will
* Microtonal GUI now only needs 'Apply' button on text fields.
* Setting an invalid root now leaves root and bank unchanged.
* First time bank root IDs now start at 5 spaced 5 apart.
* Added '*' to current root/bank in CLI lists.

2016-10-28 Will
* Separated key shift from main tuning.
* Oops - got that wrong :(
* Microtonal optimisation using a key map table - better!

2016-10-27 Will
* Direct access Bugfixes:
  Oscillator waveshape parameter read returned wrong result.
  Addsynth voice would crash if addsynth GUI not seen.
  Subsynth hamonics GUI slider move reversed.
* Revised GUI data sending to allow reads as well as writes.

2016-10-26 Will
* Started separating out CLI replies from main direct entries.
* Completed separation up to voice level.
* All done!

2016-10-24 Will
* Implemented mising direct modulator 440Hz switch.
* Completed direct -> gui addsynthvoice.
* Updated docs.

2016-10-23 Will
* Bugfix: direct -> gui 440Hz wasn't correct for sub/pad.
* direct -> gui addsynthvoice done apart from modulators.

2016-10-22 Will
* Added Loop mode to Solo feature.
* direct -> gui padsynth completed.
* Updated docs.

2016-10-21 Will
* direct -> gui part kit mode & drum mode done.
* direct -> gui addsynth main completed.
* direct -> gui subsynth completed.
* Updated docs.

2016-10-16 Will
* Completed direct gui system/insert effects.
* More done on direct gui part.
* Gui tooltip correction.

2016-10-15 Will
* Changed GUI channel switcher name to 'Solo'.
* Corrected GUI anomalies with channel switcher.
* New Solo.txt in doc.

2016-10-14 Will
* Moved vectors entry to its own button.
* Rearanged icons.
* Added channel switcher to 'Patch Sets' files.
* Moved Channel switcher GUI control from config to Mixer Panel.
* Added channel switcher controls to direct access.
* Updated docs.

2016-10-13 Will
* Direct gui part base controls mostly done.
* Doc updates.

2016-10-12 Will
* Completed direct gui main controls.
* Starting to populate direct gui part level controls.
* Updated docs.
* Direct gui Add, Sub, Pad vol/vsense/pan controls done.

2016-10-11 Will
* Proved direct gui updates correct for main & part controls :)

2016-10-10 Will
* Ringbuffer size corrections.
* Docs punctuation corrections.
* Started to implement direct access -> gui updates.

2016-10-9 Will
* Gave direct access CLI & GUI independent 'from' ring buffers.
* Improved direct access data transfers.
* Small correction to Vector GUI.
* Improved simple message system.

2016-10-8 Will
* Direct vector access almost complete.
* Updated docs.


2016-10-7 Will
* Small corrections to GUI.
* More work on direct Vector access.
* Updated docs.

2016-10-4 Will
* Started implementing direct access to Vectors.

2016-9-28 Will
* Added more info to /dev_notes and /doc.
* Added three new instruments to "Companion"
* No code changes.

2016-9-26 Will
* Bugfix: AddSynth Mod Amp Env enable now works.
* Applied Jespers batch to make scripts bash/dash compatible.
* Corrected and updated docs.

2016-9-25 Will
* Temporarily reverted actual splash screen to original.

2016-9-24 Will
* Merged splash updates from Jesper.

2016-9-23 Will
* Removed duplicate enable Freq Filter command.
* Bugfix: All AddSynth osc commands were going to the modulator.
* Upgraded and tested build instructions.
* Updated docs.

2016-9-22 Will
* Bugfix: direct access SubSynth Freq Env En was quite wrong :(
* Updated docs.

2016-9-21 Will
* Implemented direct access for AddSynth (not fully tested).
* Setting direct access type bit 0 now only echos byte stream.
* Updated docs.

2016-9-19 Will
* TEMPORARY fix: pad apply parameters wasn't working headless.
  Should probably use a list, not single integer.

2016-9-18 Will
* Implemented Oscillator direct access.
* Updated and corrected docs.
* Small correction to Resonance.
* Minor code optimisations.

2016-9-17 Will
* CLI now strips trailing spaces.
* Implemented PadSynth direct access base controls.
* Updated docs.
* Implemented Resonance direct access.

2016-9-15 Will
* Bugfix: direct access wasn't updating SubSynth overtones.
* Replaced HTML version of control numbers with text version.
* Bugfix: GUI wasn't sending kit number on envelope freemode.
* Optimised some direct access code.

2016-9-11 Will
* Further updates to docs
* New HTML copy of "Yoshimi Control Numbers".
* No code changes.

2016-9-10 Will
* Completed direct access envelope free mode. Oh what fun :(
  Switching from fixed to free and back still to be finalised.
* Revised docs.

2016-9-9 Will
* Revised direct access, now needs 8 unsigned chars.
* Implemented envelope direct controls (not free mode yet).
* Updated docs.
* Implemented LFO direct controls.
* Direct access now recognises floating point 'value'.
* Updated docs.

2016-9-8 Will
* Applied spelling patch from Jaromír Mikeš
* Added warning to dev_notes/Direct_Access.txt
* Now identifies SubSynth bandwidth envelope.

2016-9-5 Will
* Setup for next master version.

yoshimi 1.4.1

2016-9-5 Will
* Changed three instrument patches to the Gzip compressed form.
* If readline can't read its history file an empty one is created.
* Finalised all code and docs for release.
* Set version 1.4.1

2016-9-4 Will
* Added two new sounds to Will_Godfrey_Companion,
  Thin Trem Pipe & Pulse Reed.
* Updated docs for next release.
* No code changes.

2016-9-3 Will
* Regression: Part volume knob sent mixer slider in opposite direction.
* Removed redundant code from Config.
* Removed Tests directory.
  There are much more sophisticated test files now!
* Set version to 1.4.1 rc7
* Bugfix: Listing banks from CLI was enabling all possible ones :(

2016-9-2 Will
* Rationalised max & min key limits to remove overlap - and silence!
* Removed redundant threadmessage tests.
* Minor optimizations to threadmessage process.
* Reporting GUI commands now a build option.
* Set version to 1.4.1 rc6

2016-9-1 Will
* Bugfix: Threadmessage was issued at startup (SynthEngine defaults)
  before threadmessage routine fully initialsed.
* Set version to 1.4.1 rc5

2016-8-29 Will
* Changed priority settings so that adjustment is specific to LV2.
* Pushed program loads out of RT prio completely.
* Added CLI to channel switcher control.
* Updated docs.
* Set version to 1.4.1 rc4

2016-8-28 Will
* Bugfix: Parts failed to load from Bank window if part MIDI
  number was not the same as the part number (MOD 16).
* Vectors now fully obey channel switcher in 'Row' mode.

2016-8-27 Will
* Bugfix: If Startup had to change MIDI or audio engines it didn't
  set configChanged, so change was made permanent without warning.
* Commented out unused code in Config.
* Bugfix: 'Reset' wasn't clearing channel switcher GUI.
* Made channel switcher and vectors play nice - mostly!
* Set version to 1.4.1 rc3

2016-8-26 Will
* Bugfix: GUI was being disabled on close with multiple instances.
* Corrected settings messages for higher instances.
* Revised shortform NRPNs for channel select.
* Implemented channel select setup via GUI.
* Set version to 1.4.1 rc2

2016-8-25 Will
* First time startup now correctly sets current bank.
* Updated short guide.
* Set version to 1.4.1 rc1

2016-8-24 Will
* Moved current root and current bank to instance config files.
* GUI button numbers no longer shown in direct access.

2016-8-23 Will
* Separated out instance settings from main config file.
* Added GUI and CLI enable/disable to 'Switches'.
* Pushed gzip, splash, GUI enable & CLI enable into base params.
* Base params now hidden in secondary instances.

2016-8-22 Will
* Sample rate, buffer size, oscillator size now settable by first
  instance only (but visible to others).

2016-8-21 Will
* Commented out Config::showQuestionOrCmdWarning(
  never seems to be called.
* More doc updates and clarifications.

2016-8-20 Will
* Bugfix: Part change was calling for gui update before loading had
  completed :(

2016-8-18 Will
* Bugfix: If part kit items were enabled but the whole kit was 'off'
  the items were correctly saved, but not reloaded.
* Added 'Pad Kit' to 'Will_Godfrey_Companion'.
* Added missing copyright notice to some instrument patches.

2016-8-16 Will
* Loading untitled instruments now uses the filename.
* Loading "Simple Sound" changes the name to "No Title".
* User prevented from changing name *to* "Simple Sound".
* Bugfix: xml minimal had been set for patch set saves.

2016-8-15 Will
* Removed redundant (duplicated) part number settings.
* Improved vector control consistency.
* Vector data now stored in patch sets and saved state.

2016-8-14 Will
* Moved buffer size, oscillator size, sample rate into
  config BASE_PARAMETERS.

2016-8-13 Will
* Moved LV2 root/bank/program change into ringbuffer and adjusted RT
  priorites for best results when loading *huge* instrument patches.

2016-8-12 Will
* Inproved direct access to filters - Only dynfilter to do now!.
* Updated docs.
* Completed direct filter implementation.
* Updated docs (again).

2016-8-11 Will
* Bugfix: CLI wasn't loading upper set instruments (128+).
* Tidied up NRPN vector control.
* Added more error messages to 'non fatal' category.
* Implemented most of the direct access for filters.
* Updated docs.

2016-8-10 Will
* Implemented simple internal text messaging system.
* Added autoload state to CLI and NRPNs.
* Added instrument load time to CLI and NRPNs.
* Updated docs.

2016-8-9 Will
* Slow program load no longer freezes GUI
* Bugfix: Very obscure! Made some program load ops fail if number was
  less than 4 digits and there was a space in the name where the first
  character would otherwise be.
* Updated LV2 for new MiscGui files.

2016-8-8 Will
* Defined direct commands for 'set default' and 'MIDI learn'.
* Activated CLI ID.
* Updated docs.

2016-8-7 Will
* Created src/UI/MiscGui.h to become only link between synth & GUI.
* Bugfix: Effects 'home' on right click had failed.
* Bugfix: AddSynth resonance wasn't showing on GUI button 2.

2016-8-6 Will
* Started actual direct control of filters.
* Added root and bank load times but in uS!
* minor doc updates.

2016-8-4 Will
* Bugfix: At startup all enabled parts were registering direct O/P
  when not actualy directed to part/both.
* Load time reporting now has its own switch.
* Added 'Switches' tab to Config window and moved them from 'Main'.

2016-8-4 Will
* Added load time (mS) to instrument load message.
* New feature: Auto-load default state.

2016-8-2 Will
* Applied gentoo build patches.
  (doesn't seem to make any difference to other distros)

2016-7-31 Will
* Updated docs - no code changes.

2016-7-30 Will
* Optimised parameter handling in direct access.
* Updated docs.

2016-7-28 Will
* Implimented direct access to effect inserts, but not the actual filter
  (sub) insert in dynfilter.
* Added 'Effect_Inserts' file to dev_notes.
* Updated other direct access docs.

2016-7-27 Will
* Bugfix: System effect sends wasn't reporting scroll wheel use.
* Added system and insertion base effect controls to direct access.
* Updated docs.

2016-7-24 Will
* Bugfix: Direct access reading harmonic values returned the wrong result.
* Added missing direct access part controls. Dunno how I missed them :(
* Updated docs.

2016-7-23 Will
* Completed Subsynth controls (not the inserts).
* Corrected doc errors :(

2016-7-22 Will
* Started implementing direct access to SubSynth controls.

2016-7-20 Will
* Minor doc corrections - no code changes.

2016-7-15 Will
* Bugfix: hadn't included new Interface files in LV2 :(

2016-7-14 Will
* Changed virtual keyboard roller to slider.

2016-7-5 Will
* Small doc updates - no code changes.

2016-7-1 Will
* Small format change in GUI access reports.
* doc updates, including new file /dev_notes/Direct_Access.txt

2016-6-29 Will
* Implimented direct access to part controllers and up to Kits.
* Updated docs.
* Completed kit level direct access.
* Revised some control values.

2016-6-28 Will
* Adjusted some GUI engine numbers so they all match.
* Implimented direct access to main and basic part controls.
* Bugfix: Ring buffer count was wrong.

2016-6-27 Will
* Created new Interface directory.
* Created new InterChange file in Interface directory.
* Moved GUI ID files from SynthEngine to InterChange.
* Moved CmdInterface to Interface directory.
* Implemented direct CLI access to some part controls.
* Implemented ring buffer between interchange and final sound.

2016-6-26 Will
* Added GUI warnings when audio or midi not availalble.
* Corrected and improved new user guide.

2016-6-25 Will
* Created new quick guide as ODF in doc directory.
* Updated notes.
* No code changes.

2016-6-18 Will
* Implemented missing 'home' function in formant filter controls.
* Minor adjustments to formant filter GUI layout.

2016-6-17 Will
* Added format test to CMakeLists.txt - commented out on pushes.
* Reinstated identification of controls.

yoshimi 1.4.0.1

2016-6-16 Will
* Bugfix: missing format string in VectorUI :(

yoshimi 1.4.0

2016-6-13 Will
- Set version to 1.4.0 for release.
- Implemented shortform NRPN channel change.
- Bugfix: Vector X CC didn't enable lowest part.
- Added extra sanity checks to vector control.

yoshimi 1.4.0 rc6

2016-6-10 Will
- Bugfix: 'home' on some controls updated the GUI but didn't send.
- Bugfix: Missing 'includes' in LV2 CMakeLists.txt :(

yoshimi 1.4.0 rc5

2016-6-10 Will
- Bugfix: Subsynth & Oscillator harmonics fundamental homed wrongly.
- Bugfix: Virtual keyboard controler showed wrong home setting.
- Made all forms of vector incoming CC initialising consistent.
  Available parts incremented if necessary & parts enabled.
- Setting GUI incoming CC only set to 14 if a lower value entered.
- More adjustments to knobs and sliders.
- Modified '64ft Organ'. Sounds the same but Extreme LF balanced.
- Modified 'Tomita Whistle'. Attack time was too short.

yoshimi 1.4.0 rc4

2016-6-7 Will
- Brought in extended slider controls from Rob's ideas.
- Modifed knobs for similar mouse wheel behaviour.
- Bumped rc version.
- Added existence check when saving vectors.

yoshimi 1.4.0 rc3

2016-6-7 Chris
- Replaced buggy file extension test.

2016-6-4 Will
- Effects knobs home correctly.
- Removed now unnecessary reset buttons.
- CLI histories reporting now includes vectors.
- Added fix from Frank for c++11 issues with older compilers.
- Bugfix: default l/r cross for Echo and Distortion effects.

2016-6-3 Will
- All knobs 'home' on right mouse click except effects.

yoshimi 1.4.0 rc2

2016-6-2 Will
- Bugfix: vector 'Clear' was removing all vector names.
- Added 'Clear All' to vector options.
- Forgot to ID the mixer panel controls :(

yoshimi 1.4.0 rc1

2016-6-1 Will
- Completed implementation of pitch bend adjust and offset.
- Corrected wrong opening tab in PadSynth window.
- Vector window now fully in sync with rest of GUI.
- Voice list controls identified.
- Docs updated.
- Master version set for rc1.

2016-5-31 Will
- Reviewed instrument name boxes to make them clearer.
- Partial implementation of pitch bend adjust and offset.
- Vector name box always now has text.
- Updated tooltips.

2016-5-30 Will
- Bugfix: Default resonance was showing 30dB but was actually 20dB.
- All horizontal sliders now home on a right click.
- Made GUI sliders clearer and more consistent.
- More doc updates.
- Added brackets to some code to remove possible ambiguity.
- Vector instruments now have the engine colours.

2016-5-29 Will
- Implemented Zyn. compatible AddSynth modulator fixed frequency.
- Updated some docs.
- Implemented Zyn. compatible PWM modulator.
- Bugfix: MORPH modulator is now correct.

2016-5-28 Will
- Vector control 'Clear' implemented.
- Improved Vector GUI structure.
- Identified vector controls.
- Updated docs.

2016-5-27 Will
- Mixer sliders now right click to home position.
- All vector options implemented except 'Clear'.

2016-5-26 Will
- Initial implementation of GUI vector control.

2016-5-25 Will
- Refinements to system and insertion effect selectors
- Updated docs
- Added auto build update.

2016-5-24 Will
- System sends now identified :)

2016-5-23 Will
- Added aftertouch recognition to LV2 (not actually used yet)
- Identified part to system effect sends.
- Identified insert and system effect controls (not system sends)
- More adjustment to control ID numbers.
- Yoshimi now has a build number :)

2016-5-22 Will
- Bugfix: Kit level IDs were wrong.
- Updated docs.

2016-5-21 Will
- Effects controls now mostly identified.
- Yoshimi now only sets a single client if jack is both midi & audio

2016-5-20 Will
- Rearanged some control values.
- Corrected amp/freq lfo anomaly.
- Changed engine numbers.
- Updated docs.
- Started Identifying effects controls.
- Reviewed files to remove GCC6 warnings.

2016-5-19 Will
- Completed moving controls ID text from GUI to main code.
- Corrected dev-notes/Yoshimi Controller Numbers.ods
- Completed Envelope control IDs.

2016-5-18 Will
- Started moving controls ID text from GUI to main code.
- New sound Pad Organ :)

2016-5-17 Will
- Identified controls in Part Controllers.
- Updated dev-notes/Yoshimi Controller Numbers.ods

2016-5-16 Will
- Updated some tooltips
- Documentation now covers all implemeted controls.
- Identified top level controls.
- Adjusted some control numbers for conformity.

2016-5-15 Will
- Changed Resonance interpolation control to clarify two types
  and reorganised layout of neighboring controls for uniformity.
- Bugfix: Filter control had wrong ID
- Bugfix: LFO had wrong insert parameters.
- Bugfix: Got interpolation button names the wrong way round :(
- Documented most of the defined controls in dev-notes
- Bugfix: SubSynth wrong control ID.
- Bugfix: PadSynth missing control ID

2016-5-14 Will
- All Identifed data now passed to synthengine in uniform manner.
- Bugfix: Right click on mod oscilator didn't close AddVoice window.
- Mostly Identified Envelopes (not fee mode).
- Identified most of basic part controls.

2016-5-13 Will
- Identifed Resonance controls.
- Moved max resonance points definition to CMakeLists.txt
  and changed to more obvious name. In future we want to check
  this size outside immediate resonance code.

2016-5-12 Will
- Identified AddSynth & PadSynth oscillator controls.
- Included Adsynth Voice & Modulator controls.

2016-5-11 Will
- Improved SubSynth ID code.
- Corrected swapped controls in filters.
- Identifed AddSynth global controls.
- Identifed PadSynth controls.

2016-5-10 Will
- All of SubSynth identified (except embedded envelopes).

2016-5-9 Will
- Bugfix: Different versions of CMake require different ways of
  specifying C++11

2016-5-8 Will
- Filter params complete.
- Small improvement to the way we return control values.

2016-5-7 Will
- Yoshimi now requires C++11
- All parts of LFO now respond to test.
- Filter params mostly responding to test.

2016-5-6 Will
- Tests slightly improved and will now display in the GUI or CLI
  whichever is selected.

2016-5-5 Will
- Added GUI recognition tests (displayed in the CLI)
  Volume button on any Addsynth Voice
  Freq button on any LFO

2016-5-4 Will
- Bugfix: offset could be uninitialsed in history saving routine.

2016-5-3 Will
- Implemented setting jack autoconnect status in both GUI and CLI.

2016-5-1 Will
- Completed right click to and from resonance
- First-time startup now opens the virtual keyboard.
- Fixed master and part key shift range limits to +-36 semitones.
- Implemented master, part & channel NRPN key shift.

2016-4-30 Will
- Implemented right click on child window button closes parent
  and right click on child close button opens parent.
  To and from resonance yet to do.

2016-4-29 Will
- Bugfix: file not added to end of history list if copy had
  just gone over the maximium, so was still technically there
  but wouldn't have been saved.
- Reinstated missing XML instrument parameters, although never used.

2016-4-28 Will
- Implemented CLI read/get for vectors.
- Improved CLI vector listing.
- Improved sync between CLI and GUI for effects.
- Removed temporary 'test' command from CLI.

2016-4-27 Will
- Code cleanups.
- History optimisations.
- Made history variable names consistent.
- More work on CLI read/get.

2016-4-26 Will
- Refactored 'history' so only one common file is created.

2016-4-23 Will
- Added 'get' alias to the 'read' command.

2016-4-22 Will
- Started to implement CLI read values.
- Rationalised some error messages.
- Detached some direct part access from gui.

2016-4-8 Will
- Bugfix: CLI vector Y fetures now correctly set.

2016-4-5 Will
- Extra CLI error check when loading vectors.

2016-3-30 Will
- Improved CLI error checks when setting vectors.

2016-3-29 Will
- Rationalsed allowable sizes for sample rate and Oscilsize so all
  input routes have the same limits.

2016-3-28 Will
- Bugfix: Min Oscilsize is 256 but would allow less at CLI resulting
  in a segfault. GUI seemed to accept 128 but silently changed it :(

2016-3-27 Will
- Bugfix: Setting default preset path was being indicated in the GUI
  but wasn't being actioned :(

2016-3-26 Will
- Added "Ignore reset all controllers" to MIDI config.

2016-3-25 Will
- Added error check for invalid vector files.
- Bugfix: if jack not running and ALSA not available yoshimi
  sometimes segfalted.
- Splash screen can now be disabled.
- Added 'Tomita Whistle' instrument patch.

2016-3-23 Will
- Implemented CLI Vector save and load.
- Minimum CLI abbreviations capitalised.
- Reorganised CLI vector features setting.
- Giving no channel number for vector load now loads to the same
  channel as it was saved from.
- Now ensures the channel numbers are correct for all four parts.

2016-3-21 Will
- Bugfix: All file loads incorporating scales now correctly tuned.
- CLI can now load and save scales.
- Small adjustment to scales window.

2016-3-20 Will
- CLI can now load and save states.
- Whenever scales are loaded via GUI tunings are also now applied.

2016-3-19 Will
- Reorganised startup so that bank and history loading
  doesn't slow down intial stand-alone display, as this
  had made some users think it had failed, so tried again.
  LV2 startup as before.
- CLI can now list recent histories.

2016-3-18 Will
- Patched CMakeLists.txt to make it more distro agnostic.

2016-3-16 Will
- Fixed regression: LV2 gui now displays correctly again.

2016-3-13 Will
- Minor doc corrections and updates.

2016-3-10 Will
- Reorganised CMakeLists.txt files for better integration with
  different distros, and to recognise LV2_PATH.

2016-3-8 Will
- Bugfix: CMakeLists.txt now recognises both ncurses and ncursesw.
- Bugfix: Default presets were only being set if there were none in
  the .config file, but not if there was no config file!
- Max preset directories set to 128 (same as roots and banks).

2016-3-5 Will
- Console now adds entries at the start.
- matchWord now case insensitve to reference word as well as input.
- More messages can be suppressed.

2016-2-28 Will
- Updated docs.

yoshimi 1.3.9

2016-2-28 Will
- Effect preset number is now included in prompt.
- Removed duplicate instrument "0085-old_pad.xiz from Mysterious bank.
- Set version to 1.3.9 for release.

2016-2-26 Andrew
- Bugfix: in 'main' another GCC6 issue.
- Set version for rc3

2016-2-25 Will
- Bugfix: another GCC6 incompatibility resolved.
- Set version for rc2

2016-2-21 Andrew
- setCurrentRootID properly fixed.

2016-2-21 Will
- Reorganised CLI root and bank commands.
- Implemented creating & deleteing new banks in CLI.
- Bugfix: deleting bank failed if there was no .bankdir file.
- Set version to 1.3.9 rc1.

2016-2-19 Will
- Corrected desktop file.
- Updated docs & screen images.

2016-2-18 Will
- Bugfix: CLI can again list current bank/root.
- Bugfix: on debian testing GUI was locking up if you reduced the ID of the
  last root path in the list.


2016-2-17 Will
- Instrument file changes are now individually checked after the attempt
  instead of tested for writability in advance.
- Path window no longer offers save/not on close - always saves.
- Bugfix: above changes didn't update gui correctly :(

2016-2-15 Will
- Fixed regression. Moved bank and history loading back into config.
  Previous change didn't improve startup behaviour and messed with LV2.
- Created 'stateChanged' variable for future use.

2016-2-14 Will
- Removed jack/alsa tests from CMakeLists.txt It's now redundant.
- Re-enabled up to 128 roots and banks and removed redundant maximum
  test - MIDI can't send > 127 and command line does it's own check.
- Updated docs.
- Added 'Muted Synth' instrument patch.

2016-2-14 Andrew
- Removed ControlInterface (obsoleted) + fixes for gcc-6

2016-2-8 Will
- GCC 6 fix?

2016-2-7 Will
- Corrected man page.

2016-2-1 Will
- Fixed regression. Config was being resaved when nothing had changed.
- Refined message hiding. Applies to Reports console and CLI. Hiding
  is also independent from those forced to CLI only.

2016-1-31 Will
- Small gui correction to remove unnecessary scroll bar.
- Recent Scale/State now greyed out if empty.
- Bugfix: Wrong name in CMakeLists.txt failed in some environments.

2016-1-30 Will
- Corrected some GUI text and tooltips.
- Added check for ncurses in cmake.
- MAX_HISTORY now set to 25 in CMakeLists.txt
- Banks file now follows compression schedule.
- Current available parts now stored in 'MASTER' part of patch sets.
- .config & .state now marked as yoshimi only.

2016-1-29 Will
- Added scale list to history file and recent scales to GUI.
- State list and recent states also added.

2016-1-28 Will
- Bugfix: Loading saved state now correctly sets buffer size.
- Duplicated calls to state XML data removed.
- Initial implementation of non-fatal error report hiding.

2016-1-27 Will
- Reorganised grouping of main .config file
- New config files that are unique to Yoshimi now carry the yoshimi
  doctype instead of the ZynAddSubFX one.
- minor doc spelling corrections.
- Fixed regression. Alsa can have sample rate selected again.
- Trial of 192000 sample rate.

2016-1-26 Will
- Patch Sets History no longer in main .config file but in new
  .history file, subsection "PATCH_SETS"

2016-1-25 Will
- Added correct licence details to CmdInterface files.
- Synchronised Exherbo cmake.

2016-1-24 Rob
- Furhter improvements to cmake workround.

2016-1-24 Will
- Minor reorganisations.
- Only relevant XML files now carry base parameters.
- CLI no longer sets configChanged when altering the new banks file.

2016-1-22 Will
- Set bugfix version 1.3.8.2

2016-1-22 Rob
- Workaround to avoid cmake 3.4.1 bug by using our own routine to
  generate .cpp files from .fl ones and not using fltk_wrap_ui

2016-1-21 Will
- Started splitting up yoshimi's config files and separated out banks
  to their own files within .config/yoshimi/.
- Changed confg save to banks save in banks UI.

2016-1-17 Will
- Bugfix. Quick patch from Csaba so Addsynth vice presets are recognised.
- Patch from Csaba to hide extension in presets window.

2016-1-15 Will
- Bugfix. Format string missing from sprintf :)

yoshimi 1.3.8

2016-1-14 Will
- More doc updates.
- Set version as 1.3.8 rc3.
- Resolved minor ambiguities in command line syntax.
- Final tidy up of docs.
- Set version to 1.3.8 for release.

2016-1-13 Will
- Updated docs.
- Set version as 1.3.8 rc2.
- Corrected part number (CLI numbers *must* start from zero).
- CLI Y axis now uses up/down instead of sharing left/right with X.

2016-1-12 Will
- Created Yoshimi man page.

2016-1-10 Will
- Set version as 1.3.8 rc1.
- Moved banks & roots to end of config file. Will eventually be
  separate file.

2016-1-9 Will
- Added gui state to config file
- All major startup arguments now trigger the config changed message
  for both gui and command line.
- Command line environment status now saved and cross linked with
  gui status defaulting to CL if attempt to disable both.

2016-1-9 Andrew
- Reconfigured main so first instance can access saved config before gui.

2016-1-8 Will
- Synchronised config change warning between gui and command line.
- Implemented saving current part to external instrument.
- Updated repositories.

2016-1-7 Will
- bugfix, Yoshimi now exits correctly with '-c' argument and trailing '&'.
- Help now context sensitive, and list reoganised.
- Command line can now load individual external instruments to the current part.
- Tiny optimisation to SubSynth filter.
- Updated appdata and desktop files.
- Updated Command_Line.txt
- Implemented alsa/jack preferences within command line environment.

2016-1-6 Rob
- Completed Program Change improvements and defined common point
  in SynthEngine for all Program Change calls.

2016-1-4 Will
- Subsynth bugfix. Buffer size no longer has to be divisible by 8.

2016-1-3 Will
- Improved cleanness of program load from various sources.

2016-1-2 Will
- Program change no longer mutes the whole synth.

2015-12-31 Will
- Disabled jack/alsa tabs if running as LV2
- Allow mutiple instances whith alsa audio as they can
  now be set to different backends/soundcards.
- Root/Bank/Program thread now lower than both jack and alsa.

2015-12-30 Andrew
- Revised music clients so that Yoshimi can always start.
  If the wanted backend is missing it will try the other
  option and if that fails, set a null backend.

2015-12-29 Will
- Updated docs (especially command line)
- Moved Drum kit 2 so it is MIDI accessible
- Added Moor Drums
- Added Choir Stabs

2015-12-27 Will
- C/L system and insert effects now report to the gui

2015-12-26 Will
- Ported pop suppression feature from Zyn 2.5.2
- Changed default XML Zyn instrument compatibility version to 2.5
- Bugfix. NRPN insert and system effect changes only worked correctly
  on the lowest value effect number.

2015-12-23 Will
- Small improvements to command line access.

2015-12-22 Will
- Bugfix. Had screwed up vector Y control. Now better
  error checked too.

2015-12-21 Will
- More code cleanup.

2015-12-20 Will
- (MusicIO) hooks in place for key and channel pressure.
- Implemented Y/N query for command line.
- Command line can now change part names.
- Added reset capability.

2015-12-19 Will
- All base level part controls available to command line.

2015-12-18 Will
- All command line effect sends in place (no gui update).
- All command line effect presets available.
- More code cleanups

2015-12-17 Will
- Implemented major effects settings for command line.
  Effect number, type and send.
- Some code cleanups.

2015-12-15 Will
- Vector control now has it's own level on command line.
- Setting audio destination is now by names (not numbers).
- Part volume, pan & keyshift now available.
- Can now change jack config as well as alsa.

2015-12-14 Will
- Audio and midi preferences can now be set in config window.
- More improvements to command line interface.
- Updated docs

2015-12-13 Will
- Bugfix segfault when doing a reset via command line if gui active.
- Command line part change now updates gui
- More reoganisation of cammand interface.
- Started to implement command line level sensing.

2015-12-12 Will
- Applied possible Install fix to CMakeLists.txt.
- Re-organised command interface files ready (hopefully) for a big
  push on implementation.

2015-12-10 Will
- Enabled AddSynth voice formant filter Q to respond to settings. This
  brings it into line with the recent Zyn. upgrade but shouldn't change
  any currently existing patches.
- Completed Root, Bank, Program change thread & ringbuffer incuding full
  error checks, and allowance for future expansion.

2015-12-9 Will
- Corrected jack/alsa MIDI behaviour and added user defined source name
  for jack MIDI in gui.
- Updated docs.

2015-12-7 Will
- Humanise settings now saved in patch sets.
- Reverted CMakeLists as problems now worse for fedora and some debian installs.
- Added lv2 makefile and install to cmake distclean.

2015-12-6 Will
- Bugfix MIDI not responding to CC2 sometimes.
- Removed jack MIDI ringbuffer now served better by guithreadmessage
  and root/bank/prgoram thread and ring buffer.

2015-12-5 Will
- Improved 'Humanise' feature and changed to a slider.
- Small code clean-up arond root,bank, program code.
- Improved gui timeout delay on fault.

2015-12-2 Will
- Minor improvement to Root, Bank, Program selection in ring buffer.

2015-12-2 Rob
- Corrected gui update method for banks and roots.

2015-12-1 Will
- First trial of combined thread and ring buffer for Root, Bank
  & Program Changes.

2015-11-28 Will
- Fixed regression where renaming instruments failed to actually
  write to the file.

2015-11-28 Andrew
- Added '-c' option that disables command line interface

2015-11-27 Will
- Resolved instrument name anomaly. Part name is now always internal
  instrument name, regardless of file name.
- Minor optimisation. No need to reload same bank.

2015-11-25 Will
- Applied cmake ARCH and LV2 patches.
- Added notes on audio direction in'doc'.
- Changed CC logging channel numbers to start at 1.
- Improved some command line responses.

2015-11-21 Will
- Implemented logging of incoming MIDI CCs.
- Fixed crash bug caused by new kit item name being called before
  it was created - only when trying to enable a kit item with no
  engines already defined.

2015-11-21 Will
- Re-enabled 'minimal' in XMLwrapper for all except presets.
- Presets wasn't showing 1st character (array offset by 1).
  Corrected.
- Clarified copyright notice.
- If in kit mode engine window title bars now display the kit number
  and name if any.

2015-11-20 Will
- Fixed regression where sending CCs would close part windows
  and streams of them blocked the gui.
- Discovered previous bug was hiding 'inappropriate' gui calls :(
  Now fixed properly.

2015-11-19 Will
- Ported pink noise feature from Zyn 2.5.2
- No longer clears part output buffers, as they are completely
  overwritten when in use and ignored otherwise.

2015-11-17 Will
- Minor display corrections
- Changed XML minimum Zyn instrument compatibility version to 2.4
- Activated addsynth voice filter velocity sensimg.

yoshimi 1.3.7

2015-11-16 Will
- Added experimental breath control CC2
- Set release version 1.3.7

2015-11-14 Will
- Rationalised window titles.
- Consolidated internal filenames.
- Bugfix kit item label now updates correctly.
- Set version as 1.3.7 rc1

2015-11-13 Will
- More windows under control.
- Improved save and load code.
- More windows show the instance number in their title.

2015-11-12 Will
- Now ensures session files always save with the .state extension.
- Remembers the last positions of major windows and reopens them
  if shut down while they were still open.
- Added different file for each instance.

2015-11-10 Will
- Directly setting channel numbers 16 to 31 will now allow a note off
  while blocking all other MIDI messages to that part.
- Preset directory changes no longer need a restart.
- Part key shift extended to +- 24 semitones.
  4 octaves should be enough for anybody :)
- Default state file location is now fixed - users can change it
  as they wish.
- Removed redundant Pnoteon code.

2015-11-8 Will
- Minor adjustment to command line - single characters can be used for
  unambiguous commands. Spaces between them are still needed.
- Adding or removing root paths via command line now updates the gui.
- gui master refresh sets system and insert to 1 and selects system.

2015-11-7 Will
- Bugfix reset all controllers missed some and didn't update the window.
- Multiple instances disabled if running with ALSA audio output.

2015-11-6 Will
- Bugfix state save and load didn't identify 'empty' instruments.
- Reorganised top menu bar again and added 'clear' to scales.
- Enabled logging XML header versions.

2015-11-3 Will
- Prepared XML wrapper so that meaningful data can be put
  in 'INFORMATION' not just instrument settings.
- changed menu bar 'Show' to 'View'.

2015-10-31 Will
- Added 'Show' to top menu bar.
- Rationalised top menu bar entries.
- Created 'Reset' button in place of 'Clear all parameters'.
- Added reset to command line.
- Added number of available parts to defaults resetting.

2015-10-29 Will
- Loading scales or state now performs a retune.

2015-10-27 Will
- Fixes microtonal tuning regression.
- Moved old README.txt file to histories.

2015-10-25 Will
- Added command line history patch from of F. Silvain.
- Corrected bank listing regression.

2015-10-24 Will
- Moved cli output call to make it more generic.
- Removed duplicate report code in synthEngine.

2015-10-23 Will
- Implemented unix style paging for command lists from ideas of F. Silvain.
- Implemented command line listing of parts with instruments installed.
- Updated some docs.
- Cleaned up error messages and logs.

2015-10-16 Will
- Implemented load and save of patch sets.

2015-10-12 Will
- Added paging to banks list.

2015-10-11 Will
- Implemented paging (not banks yet).

2015-10-9 Will
- Changed mode return behaviour.
- Changed some command names.

2015-10-8 Will
- Fixed segfault when changing command line mode.
- Added command line history.

2015-10-7 Will
- Brought Andrew's thread and readline into older style command line.
- Further enhancements.

2015-10-6 Will (command)
- Improved readline exit behaviour.
- Added exit command.

2015-10-5 Will
- Further improvements to command line control.
- General code tidying.

2015-10-3 Will
- More improvements to command line control.
- Extended command line vector control.
- Auto generate .config/yoshimi/presets directory.

2015-10-2 Will
- Set up bugfix branch to track only the current release.
- Set version of this to 1.3.6.1

2015-10-1 Will
- First time config search was getting confused if zyn or old style
  yoshi configs were there, so they are no longer accepted.
- Added definitive search for bank dirs launch directory parent.
- Added definitive search for preset dirs in launch directory parent.
- Identifed preset bugs. Only gui updates needed now.

yoshimi 1.3.6

2015-9-28 Will
- Some code style corrections.
- Final LV2 fix.
- Documentation updates.
- Snuck in a new instrument patch.
- Set version as 1.3.6 for release.

2015-9-26 Will
- Pulled in additional command line controls.
- Pulled in Andrew's further LV2 fixes.
- Set version as 1.3.6 rc5.

2015-9-20 Andrew
- Fixed LV2 plugin buffersize setting in case of smaller
  internal buffersize.

2015-9-14 Will
- Fixed bug that let an invalid instrument be stored in a bank.
- Changed 'Parameters' to 'Patch sets'
- Set version as 1.3.6 rc4.

2015-9-13 Will
- Merged stable version from command branch.
- Set version as 1.3.6 rc3.

2015-9-10 Will (command)
- Allow buffer size down to 32 frames.

2015-9-7 Will (command)
- More extensions to command line access.
- Improved error checks.

2015-9-6 Will (command)
- Extended and improved command line access.

2015-9-5 Will (command)
- Started new command line access.

2015-9-2 Will
- Set version as 1.3.6 rc2.
- Overall key limit increased to 80.
- Part max key limit increased to 60.
- Part default key limit increased to 20.
- Added demo midi and parameter set to examples directory.
- More doc updates and moved some files to Histories directory.
- License corrections.

2015-8-31 Will
- Set version as 1.3.6 rc1.
- Untangled preset counters from bank counters.
- Improved NRPN listing of roots and banks.
- Small GUI adjustments.
- Updated docs.

2015-8-25 Will
- Corrected command line regression :(
- Added command line entry to define new root path.
- Improved some default settings.
- Now correctly scans for banks on first time startup.

2015-8-23 Will
- Improved command line options.
- Updated docs.

2015-8-20 Will
- Completed new NRPN extensions so most system values can be changed.

2015-8-18 Will
- Extended NRPNs to list dynamic system values (to current report log)
  some of which can also be changed.

2015-8-13 Will
- Added failure messages to splash screen and increased timeout.

2015-7-20 Will
- Merged in ALSA updates from 'buffers'.
- master version now displays an 'M' suffix.

2015-7-20 Will (buffers)
- Hopefully completed Alsa updates.

2015-7-20 Will (buffers)
- Implemented Alsa endian changes.

2015-7-16 Will (buffers)
- Alsa now recognises 32, 24 & 16 bit formats LE only.

2015-7-15 Will
- Added sanity checks to vector feature CC settings.
- Small correction to alsa audio.
- More doc updates.

2015-7-11 Will
- Fixed bug that would crash if a bank or instrument rename
  was cancelled.

2015-7-10 Will
- Added exclusions to CC designations.
- Improved vector control error checks.
- More doc updates.
- Implemented redefinable vector features

2015-7-5 Will
- Minor gui bugfix 'Simple Sound' correctly set to 'No Title' in
  all windows when actually edited.
- Vector control individual features can be reversed.
- Enabled NRPN part destination setting.

2015-7-3 Will
- Merged in corrected buffers - still some work to do on alsa
  audio which has been incorrect for a long time but should be OK
  on motherboard chipsets.
- More documentation!

2015-6-24 Will (buffers)
- Set up and tested separate buffers for JACK only, very untidy.
- currently breaks ALSA and LV2.

2015-6-19 Will
- bugfix set typecast in BankUI to enable build with fltk 1.1
- bugfix changed MasterUI so that main window is refreshed when
  'State' is loaded.

yoshimi 1.3.5
- Finalised for release and tagged.
- Added more details to docs.

yoshimi 1.3.5-rc4

- Fixed failure of Insert Effect part list length to update when
  number of parts changed.

yoshimi 1.3.5-rc3

2015-6-13 Will
- Fixed regression that was messing up pitch change.

yoshimi 1.3.5-rc2

2015-6-11 Will
- Fixed gui bug, disappearing 'Bypass Global F.' when Addsynth Voice
  Filter checkbutton clicked.
- Vector checks and sets related part channel numbers instead of
  assuming default values.

yoshimi 1.3.5-rc

2015-6-7 Will
- Jack port only registered if direct part output is set as well as
  the part being enabled.
- Mixer panel refresh button hidden (redundant).
  Will eventually be removed if no problems seen.

2015-6-5 Will
- Improved engine colour sync, and also responds to kit part edits.

2015-6-1 Will
- Common Add,Sub,Pad colours now defines in CMakeLists.txt

2015-5-30 Will
- Vector control volume 'swap' now uses an inverse square law to keep the
  overall level fairly constant.
- More improvements to instrument engine colours.

2015-5-30 Will
- Bugfix! Only part 1 was responding to gui instument selection.

2015-5-29 Will
- Fixed regression that stopped mixer panel updating on MIDI program change.
- Moved max part control from parameters menu to alongside part number.
- Refactored part gui calls to improve updates.
- Implemented colour based engine IDs in mixer panel window
- 'Clear All Parameters' now resets NRPNs and vector control.

2015-5-27 Will
- Trial for colour based engine IDs in main window.
- Fixed bug that caused banks to be initialied twice on startup.
- Hid (redundant) refesh button from instrument banks window.
  Will remove it completely if no problems show up.

2015-5-23 Will
- Small improvement to synth ID discovery.
- Prompts at foot of window.
- Removed old style new bank creation.

2015-5-21 Will
- Implemented identification of all three synth engines.
- Made workaround for corrupted instrument headers.

2015-5-15 Will
- Implemented max part & part group control.

2015-5-13 Andrew
- On-demand jack ports registering (only if part is enabled)

2015-5-12 Will
- fixed asString bug that still appeared on some architectures.
  Thanks to Stephen Parry for identifying the cause.

2015-5-7 Will
- Improved bank root and extended program change CC setting method.
- Corrected NRPN gui display issues
- Updated Docs

2015-5-6 Will
- Implemented Zyn-compatible NRPNs with extension for effect type and destination
  part number change.  (some gui improvements needed)
- Updated Docs.

2015-5-2 Will
- Improved NRPN handling of 14bit NRPNs and 'full' NRPNs with reversed
  data byte order.

2015-4-30 Will
- Fixed regression in distortion level.
- Added voice number to AddSynth oscillator editor.
- Implemented NRPN data increment and decrement.

2015-4-27 Will
- Fixed bug that stopped some rotary controls responding to mouse wheel.
- Re-orderd part effects window to more closely match system & insert.
- Made 'panic' stop fade at a fixed rate so it is now click free even for
  very high sample rate and small buffer size.

2015-4-25 Will
- Added part number and name to editing window title bars.
- Made it possible to silently disconnect/reconnect a part from all MIDI input.
- Improved config settings for Bank Root & Extended Program Change.

2015-4-24 Will
- Implemented 14bit NRPNs
- Implemented scroll wheel control of knobs
- Implemented X as well as Y knob control

2015-4-21 Will (vector)
- Some more small optimisations

2015-4-19 Will (vector)
- Fixed regressions caused by mixer gui changes!
- More adjustments giving greater flexibility to NRPNs

2015-4-18 Will (vector)
- Added NRPN and vector error checks and warnings
- Updated docs
- Very specific segfault with Rosegarden V12.4 and 'RootBankChange'
  test file has cleared! Confirmed it is still there on yoshimi 1.3.3
  puzzling :(
- Rationalised mixer panel gui, removing duplicates

2015-4-17 Will (vector)
- Implemented direct part channel change
- Corrected license anomalies
- Updated docs

2015-4-15 Will (vector)
- Implemented direct part CC change
- Corrected and updated Docs

2015-4-3 Will (vector)
- Implemented direct part program change
- Vector controls only enabled if NUM_MIDI_PARTS set to 64

yoshimi 1.3.4

2015-4-1 Will (vector)
- Bugfix corrected merge errors

2015-4-1 Will
- Tidied up for release on such an auspicious date!

2015-3-30 Andrew
- Share async gui process function between main and lv2 mode

2015-3-30 Will
- Ported padsynth wavetable saving from ZynAddSubFX

2015-3-29 Will
- Fixed root dir length bug
- Fixed add root no-show bug
- Fixed remove root still showing bug
- Removed root path tab from Setup window as it
  was getting too complicated syncing 2 copies
- Changed 'Reports' menu item into a separate button
  fltk problem :(

2015-3-28 Will
- Reports can be sent to the console window or stderr under
  runtime selection in the settings window
  This setting is saved, per instance
- Lots of small log message rationalisations
- Removed some old commented out code
- Reinstated search for ZynAddSubFX config search if no
  Yoshimi one can be found

2015-3-26 Will
- Bugfixes in setup CC selections
- Removed auto close checkbox from Banks and instruments
- Reports menu item greyed out if not enabled.

2015-3-25 Will
- MIDI volume control range now saved to parameters
  per part as "volume_range"
- Updated XML headers to include author and
  yoshimi-major and yoshimi-minor version numbers
- All pan centre buttons now red, not just main one

2015-3-22 Will
- Rationalised MIDI volume control
- Implemented MIDI volume control range setting
- Implemented missing resets in 'Reset All Controllers'

2015-3-18 Will
- Pulled remaining program change gui calls into gui thread
- Root path window now correctly tracks 'save' changes

2015-3-15 Will
- Used new gui updating so that MIDI volume and pan changes
  are shown in both the main and panel windows

2015-3-15 Andrew
- Added asynchronous gui update ability from arbitrary threads

2015-3-12 Will
- inserted missing ";" at line 60 of yoshimi.ttl
  found by Holger Marzen

2015-3-10 Will
- Panel window bugfix

2015-3-2 Will
- Added patch from Jakub Cajka to furthur nail asString ambiguities
- Added SVG icon image (renamed alternative)
- Set up for release

2015-3-1 Will (vector)
- Moved all NRPN and Vectore code to MusicOI
- Added 'Brightness' control
- GUI freeze still not resolved :(

2015-2-28 Will (vector)
- Further separated out controls, and also enabled setting instruments
  however this is very experimental and *not RT safe*
- improved this now, but discovered a gui bug if the panel
  is open when a vector program change takes place - gui freezes :(
- got rid of a warning message in jack engine :)

yoshimi 1.3.3

2015-2-27 Will
- Added and updated Docs & Images
- Prepared for full release

2015-2-27 Andrew
- Updated splash screen

2015-2-26 Will
- Some fine tuning
- Updated documentation

2015-2-25 Will (vector)
- Separated X & Y to independent NRPNs
  NRPN msb = 64, lsb = 1 for X
  NRPN msb = 64, lsb = 2 for Y
  DATA lsb = CC, msb = operation(s)
                1 = volume
                2 = pan

2015-2-24 Will (vector)
- Seems stable now - crashes were due to mixture of
  channel and part limits.
- Mixer panel now shows groups of 16 parts.
- Volume sweeps implemented but need balancing better.

2015-2-23 Will (vector)
- First attempt at vector control
  Setting NRPNs and vector CCs seems fine.
  Only implimented volume control.
  Getting a lot of crashes in use though when changing settings via the gui.
  Panel window only shows 1st 16 parts.
  Part control (rather than channel) works much better.
  GUI problems probably due to some use of NUM_MIDI_CHANNELS
  where NUM_MIDI_PARTS should be in the original code.

2015-2-19 Will
- Small gui code optimisations
- Removed some confusing, duplicate, redundant & disabled code

2015-2-18 Will
- Implemented bank rename
- Added gui buttons for this and instrument renames
- Close on selection now righthand mouse button
- bug was slowing down bank swaps -fixed

2015-2-16 Will
- Added middle button close of banks and instruments
  as if auto close has been set

2015-2-15 Will
- Implemented bank complete removal

2015-2-14 Will
- Bank swaps/ID changes now in place
  but not checked for unwritable locations
- Now checked
- Added highlighing of current bank
- Implemented adding banks
- Corrected bugs in bank swaps

2015-2-13 Will
- Basic structure complete and working
  but changing IDs etc. not yet implemented

2015-2-12 Will
- Developed window selection/swapping and forward link from config
- Fixed bug that created empty banks
- Added format string to 3 fltk alert calls to silence gcc warnings

2015-2-6 Will
- Unified root bank instrument log messages
- Updated MIDI test files

2015-2-3 Andrew
- Fix png image creation on fltk < 1.3

yoshimi-1.3.2

2015-2-2 Will
- Final updates to files for full release

yoshimi-1.3.2-rc2

2015-1-31 Andrew
- Start guis only from main gui thread

2015-1-28 Will
- Added check to prevent attempt to change non-writable instrument files
  *before* GUI entries written

2015-1-27 Will
- Allow instrument name of just 3 chars
- Bumped version number to rc2
- Clarified text of error messages

2015-1-27 Andrew
- Added splash window showing current loading status
- Ignore midi bank/prg change if no bank/prg found

2015-1-26 Andrew
- make new bank id search start from 127 downwards
- do not reload bank on id change

2015-1-24 Will
- Un-numbered instruments now handled as before (placed from 160 downwards)
- Bumped version number
- Bug fix in CC tests
- Removed unnecesary instrument prefix tests when indentifying banks
- Added early startup comand line message

2015-1-24 Andrew
- New instance now gets first available unique ID
- Added menu item to start instance with given ID
- Sort banks on first start or if mappings are not defined
- LV2 plugin now uses new bank interface

2015-1-23 Andrew
- Added per-instance config files support
- Now saving bank ids in config file too

2015-1-22 Andrew
- Rewrited Bank/Root handling algorithms to support numbering
- Fixed PADSynth_used detection algorithm

2015-1-15 Andrew
- Don't change floating point rules in case of lv2 plugin. Hosts should do it.

2015-1-14 Andrew
- Fixed lv2 plugin crash on midi event loop transition (frame X to zero)

2015-1-12 Will
- Applied patches from Harry
  MIDI channel selection now in sync between main window and panel and
  right click on panel 'Edit' opens the actual edit menu.

2015-1-8 Andrew
- Fixed segfault on exit if Alsa audio engine is used

2015-1-5 Andrew
- MIDI bank root dir change algorithm now uses low priority threads
- MIDI bank root dir and bank changes are synchronized now
- GUI is updated accordingly to bank root dir changes


2015-1-5 Will
- MIDI bank root change now in place :)
  but not currently updating GUI :(
- Setting of both root and extended program CC now error checked
  but have to use the spinner up/down arrows - can't seem to
  reognise the 'Return' key :?

2015-1-3 Andrew
- Started control interface implementation
  (logging this for history)

2015-1-3 Will
- Added warnings if loading patches named 'Simple'Sound.
- Applied patch from Harry Nakos
  Volume & Pan now synchronised between main window and panel.

2015-1-3 Andrew
- Corrected target lib suffix detection for lv2 plugin

2015-1-2 Will
- Bank root IDs can now be changed in GUI.
- Cleaned up code.

2015-1-1 Will
- Settings->Bank root dirs now displays root IDs and marks
  current root and MIDI banks changes only see current root.

2014-12-21 Will
- Changed concept of default root dir to current root dir.
  current root is where new banks are saved to.
  changing current doesn't alter list order or root ID.
  ID will be used for MIDI root dir setting & bank access.

2014-12-11 Will
- Updated parameter & instrument load & save
    will not save 'empty' files
    inserts "No Title" when loading untitled instruments

2014-12-9 Andrew
- lv2 plugin: fixed ringbuffer write when midi message
  should be splitted into chunks (this is a very rare condition)

yoshimi-1.3.1

2014-12-8 Will
- A few optimisations in Reverb and Phaser
- Released V 1.3.1

2014-12-8 Andrew
- Separated LV2 plugin instances.
  Yoshimi - stereo mix,
  Yoshimi-Multi - stereo mix + 32 individual mono (16 stereo) channels.

2014-12-6 Will
- Corrected long standing bug in unison. Reverb bandwidth OK now!

2014-12-6 Andrew
- Added multi-channel support for lv2 plugin

2014-12-5 Will
- Reverb and Phaser additions
  Reverb bandwidth control sending right numbers
    but not changing the sound produced :(
  Phaser additions work correctly, but GUI controls
    Analog, Hyp., Dist. not sychronised :(
- Phaser done (silly mistake)

2014-12-1 Andrew
- Enabled cross-instance copy and paste.

yoshimi-1.3.0
- Made LV2 plugin ON by default
- Removed command line control. The reason: useless, not thread-safe code
- Just a few GUI improvements
- Made support for variable length runs. This provides sample-accurate midi processing
  for offline rendering and lv2 plugin.
- Removed strict requirements of Subnote on 8x multiple buffer size.
  Adopted SUBnote::filter() method for variable-length runs
- Initial LV2 plugin support (OFF by default)! Tested in MusE, Ardour 3,
  Carla and qtractor  - works both plugin and gui.
- replaced all calls to lrint() with (int)truncf(). When fesetround(FE_TOWARDZERO)
  was called, lrintf() behaves exactly as (int)truncf() with that difference, that
  (int)truncf() returns always the same result not depending on external factors.
- Made command line control for yoshimi instances (OFF by default)
- Added error message if midi bank changs too close
- Ported portamento rate and depth to controllers from Zyn.
- Added state interface support for lv2 interface. now saving/restoring
  yoshimi lv2 plugin settings works.
- Added per instance ability to change panel window between 2x8 or 1x16.
  Haven't decided on best way to store setting.
- Fixed bug in wide panel window.
- panel settings saved to yoshimi.config.
- patch provided by xnakos fixes part enable sync between panel and main window.
  This revealed it wasn't done properly for MIDI so that's been added too.
- removed spammy default midi messages.
- patch provided by xnakos to fix bug in Simple Sound representation.
- better resolution yoshimi icon.
- instrument updates.
- separated out examples from presets and put in their own directory.
- a few more GUI adjustments.

yoshimi-1.2.5
- Made yoshimi support multiple in-process instances:
  1) Added "New instance" menu item in "Yoshimi" submemu.
  2) Jack/alsa midi/audio port names are named "yoshimi" + postfix
     (empty for the first instance and -1,-2,-3 etc.. for the next).
  3) Windows names (main window, panel, keyboad) are named according
     to instance number with unique postfix.
  4) Only main window of the first instance exits process. Other windows
     deregister instances and closed.

- CMake policy change to stop warning message
- Small correction in part peak representation
- Copied some ancient history into Docs
- Part name always shows at least the words 'Simple Sound' so new users will
  know what it does.
- Bank selector always shows a name.
- MIDI Bank changes now refresh the bank window contents.
- There is now a compile time switch to direct errors to the console window
  instead of stderr.

- Moved all global variables to per-instance ones.
- Implemented multi-instance support:
  Updated all constructors to take SynthEngine * as last argument and store it
  in synth member variable. "Runtime" global var (of type Config*) and "guiMaster"
  (of type MasterUI *) are moved to SynthEngine and accessible via SynthEngine::getRuntime()
  (which returns reference to per-instance Config class) and SynthEngine::getGuiMaster()
  (which creates, if not already created, and returns per-instance MasterUI class).
  PresetsUI class instance is moved from global var to MasterUI class member var
  and accessible via synth->getGuimaster()->getPresetsUi() method from UI classes.
- Jack client instances will be named on per-instance basis.
  Default one is "yoshimi" + "->optional tag" (as before),
  next is "yosmimi-<optionoal tag>-<instance number>" starting at "1".
  This may never be used (but who knows? Anyway, this is the more proper way),
  because the default behavior for the yoshimi app is to create one global
  SynthEngine instance to go on with it till exit. From the user point of view
  nothing changed.
- Gui class destructors made virtual to make recent compilers happy
- Started initial LV2 plugin interface implementation (cmake option is OFF by default)

yoshimi-1.2.4

- ALSA MIDI can now auto-connect.
- Changed x.x.x.notes to Changelog as requested by packagers.
- Jack MIDI auto-connects too!
- VU meters disengaged from synth via ring buffer.
- Failing to load parameters or instruments at startup is no longer fatal.
- Yoshimi accepts un-numbered instruments in banks again - under protest!
- Some more small UI and CL message refinements.
- In settings added Enable/Disable MIDI program change - some seq's don't play nice :(
  default is to enable. Compatible with Zyn's 'ignore program change'.
- Settings layout tidied up.
- Incremental DSP improvement - we now only fill/copy buffers that have a destination!
- Bugfix - when a part's audio out was directed to part only, system effects were still
  being generated and sent to main.
- Correction - audio to part *does* carry insertion effects if they are set.
- VU calculations now completely separated from sound generation and outside the mutex lock.
- Changed envelope cut-off to -60dB (was -40).
- Another addition to Will_Godfrey_Companion bank :)
- Bugfix - missing 'include' in main.cpp stopped compilation - but not in all environments!
- Changed unison size highlighting. With no code change, it stopped working for some reason!
- Improved VU displays.
- Updated INSTALL instructions and removed duplicates of this and COPYING in /src
- detached part outputs from main volume and added clip indication in panel (doesn't
  clear with 'Stop' so fundged)
- some more minor adjustments
- VU updates completed - and we're away!


yoshimi-1.2.3

- Some more minor bug fixes.
- INSTALL file now refers to V1.2.2
- Enabled saving audio destination in parameters file
    only relevant for jack output.
- Ported SubSynth overtones feature from Zyn. 2.4.4
- Ported Unison phase randomisation control from Zyn. 2.4.4
- Added checkbox in 'Settings' to allow a MIDI program change
  to enable a part if it was previously disabled.
- Ported AddSynth & SubSynth processing enhancements from Zyn. 2.4.4
- Changed part's key limit from a list to a spinner so you can set
  any value up to the maximum poliphony - 5
  This is error checked when parameter files are loaded.
- Changed unison size from a list to an enable button and spinner
  giving you finer grained control.
  Values that match ZynAddSubFX are highlighted for compatibilty
- Added experimental 'naturalise' small random detune feature at note-on.
- Performed lots of tiny optimsations.
- Disabled part audio out selection if not running jack.
- Put some more info in Docs - much more to do!
- Updated copyright notices.
- Temporarily disabled ALSA MIDI auto connect till I can find out why
  it crashes - seems it's never worked.


yoshimi-1.2.2

- Started some documentation. Much more needed!
- Improved config saving. I think we're there now :)
- Fixed bug that caused segfault if MIDI voice changed with no GUI.
- Fixed bug that stopped MIDI bank change with no GUI.
- Added panel option to direct a part's audio to only main, only part or both.
- Cleaned up panel display.
- Added memory lock to jack ringbuffer (probably not needed).
- Restored PADsynth highlights and made them more distinct.
- Refined PADsynth and general boolean XML detection a little.
- Enabled reporting to console. It doesn't seem to affect CPU usage.
- Improved error reporting for missing bank or program.
- Added Test directory with MIDI and Rosegarden bank and program change files.
- Reinstated gzip compression on voice and parameter files.
- Added compression level to settings. 0 = plain XML save.
- Bug fix. Controllers window would sometimes freeze - thanks to Rob Couto for the fix.
- Added appdata as requested in the sourceforge features tickets.
- Revised 'make install' to make sure everything goes to the right place.
- Changed position of Pitch bend roller in Vkeyboard to make things clearer.
- Small update to Will_Godfrey_Companion bank.
- Reinstated part Pan Depth control, but calling it Pan Width as that's more descriptive.


yoshimi-1.2.1

- Added alternative robot icon as an SVG. Thanks to Andrew Ter-Grigoryan
- Added option to enable a part if not already enabled, when doing a MIDI program change.
- Set Vkeyboard default velocity to 100 same as for ZynAddSubFX.
- Stopped settings asking twice about saving. Will do more on this!
- Rationalised linker flags.
- Added drumkits from Dario Straulino.


yoshimi-1.2.0

Added circle and spike AddSynth Waveshapes.

Added MIDI bank and program change. Bank change can be selected as MSB, LSB or disabled. Included CC for patches 128 to 160. Also CC selectable and can be disabled.

Finally resolved trailing zeros in detune bug.
Fixed microtonal saving bug.

Corrected parameter loading regression (that mainly affected the Overdrive sound).

Corrected regression that stopped the -K option autoconnecting

Other small bug fixes.

Added and updated voice patches.

Special thanks to Kristian Amlie and Tito Latini


yoshimi-1.1.0

* Optimization patches provided by Kristian Amlie.
* Added The Mysterious Bank by Florian Dupeyron aka My?terious.
* Virtual keyboard AZERTY patch, thanks to David Adler.
* Yoshimi has shiny new knobs! Thanks to Alessandro Preziosi aka licnep.
* Multiple JACK outputs implementation by Andrew Deryabin.
* Expand state file path before any check by Nikita Zlobin.
* Some minor cosmetic changes (placement of Close buttons, resized the panel window).


yoshimi-1.0.0

* In memory of Alan Calvert who passed away exactly one year ago. Cal, we're pretty sure it's only angel horns you hear and no devil trombones!
* Modified INSTALL file and added instructions on how to build Yoshimi outside the source tree. Thanks to Jimmy for the instructions.
* Previously when microtonal loaded .xsz files, it did not convert the tunings back into their x.y format, which was displayed to the user, this patch corrects this mistake. Thanks to Mark McCurry for the patch.
* Renamed Yoshimi icon.
* Applied patch from SourceForge ticket #3487751 (Simplify desktop file and install it and the icon file). Thanks to Tim harder for this patch.
* Yoshimi likes GCC >= 4.7 again.


yoshimi-0.060.12

* Fix for the keyshift/microtonal issue, patch provided by RPD (Rob). Thanks!

yoshimi-0.060.11

* Fix empty functions, fluid no longer produces (empty) implementations for totally empty functions in .fl files. More info: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=633476 and http://www.fltk.org/str.php?L2259 Thanks to Frank Kober for pointing out this issue and thanks for the patch.
* Dynamically switching to legato mode using a footswitch has been made possible by Kristian Amlie. Thanks for the patch!
* Renamed Yoshimi icon file in the desktop directory and modified desktop file accordingly. Packagers, please use this icon file, it has been designed specifically for Yoshimi. If anything needs to be changed in order to have this icon included please let me know

Jeremy Jongepier <jeremy@autostatic.com>


yoshimi-0.060.10

COPYING file updated


yoshimi-0.060.9

licence anomalies corrected.


yoshimi-0.060.8

Nothing too adventurous, just an incremental advance on 0.058.1 adding Paul's
Unison and Reverb enhancements, jack session support, panning inversion
corrections and assorted other tweaks and bug fixes.
