yoshimi 1.3.x

2015-6-19 Will
- bugfix set typecast in BankUI to enable build witj 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. 
