ZynAddSubFX VST
ver. 2.4.1.496beta VST VDX version
based on linux codebase Version 2.4.1 Pre (May 2, 2010) - http://zynaddsubfx.sourceforge.net/news.html

 - Fixed the microtonal component to properly save / load parameters with the host.
 - new default Amplitude Envelopes: min db = - 100dB (configurable in the cfg file)
 - new configurable 'attack_start_db' setting in the .cfg file 
   (for compatibility with older patches, so as to not introduce latency, default -40dB)
 - Provided Patch Converter utility (make sure to backup patches just in case)
 - Modified all included patches to work with the new envelopes (min -100dB)

 - If you wish to revert to the old amplitude envelopes, set:
	<par name="min_envelope_db" value="-40"/>
	<par name="attack_start_db" value="-40"/>


=========


- If you choose to have Zyn's windows on top of the host (settings dialog), all tooltips will NOT be shown 
  (technical FLTK reasons...)
- If you wish to see the tooltips, please deactivate the option.



====================================================================================


Change log (2.4.1.494beta) 

- Because some users complained that changing the minimum gain for the envelopes from -40 to -80 breaks some patches, I decided to   revert back to the old envelopes as default

- However this value can now be configured via the cfg file so no other compiling is necessary
- Added line in .cfg file:
  <par name="min_envelope_db" value="-40"/>

  Notice that -40 dB is the default value, equivalent to that of version 480beta. The user may change this to a lower value,
  but the envelopes will rescale accordingly. My favorite will be -80dB

- Setting this variable to -80dB...-100dB fixes the issue described here:
  
  http://www.kvraudio.com/forum/viewtopic.php?t=318542





Change log (2.4.1.493beta) 

- Fixed some GUI issues with assigning controls (sometimes a knob would freeze if it were automated / midi assigned)

- Fixed automation routines 
   - implemented beginEdit and endEdit functions
   - Knob automation no longer writes indefinitely (stops when user releases mouse button)
   - Host should know now when it's possible to make Zyn read automation
   - to add a knob to the list of automation parameters add it in the MIDI window with CTRL=0

- Zyn now knows where it is placed: making a default folder C:\ZynAddSubFX is no longer necessary
   - Zyn will always write its .cfg file in the same folder as the .dll
   - At first run, it will complain it does not find it, but then will write a default cfg.
   - Zyn now looks for the 'banks' folder in the same folder as the .dll
   - Alternative banks folders can be assigned in the settings tab / or .cfg file. Note that relative paths are not allowed.
   - The .dll and the banks folder can now stay in any folder 

- Fixed a problem with the envelopes (min -40dB updated to -80dB)
- Fixed a bug (or a feature?) that sounds woudn't decay right (fixed transition from low volume sound to no sound)

Note:
* this version is *missing* the following features from the latest linux build (Version 2.4.3 codebase):
- NO spike / circle waveform
- NO midi aftertouch support
- NO midi bank select
- same old subsynth (no optimizations)


Change log (2.4.1.480beta) 

- Native VST Automation support


===VST Automation Usage:
 - Zyn now has VST parameters which can be seen by the host
 - By default, these are unused, and they're all called '[unused]'
 - If you wish to make some controls automate-able, you need them to add them to the list in the MidiLearn window.
 - If the control is to be used for native VST automation then the CTRL value must be 0 (otherwise CTRL is used
for MIDI CC, and MidiLearn works like in previous versions.)
 - After the controls have been added to the list, they now correspond to the parameters seen by the host
 - First in the list is parameter0, second in list is parameter1 and so on... max 100.
 - After the controls are in the list, Zyn will try to update their names (parameter names) according to their meaning.
 - It is after the host to recheck / refresh the naming of the parameters or not.
 - If the parameter names are not updated, just save the project, and reload it.
 - After a control is added to the list, if you modify its value in the GUI (twist the knob in Zyn), the host will receive VST automation data. It is up to the host to record that data. The host can play back the data and Zyn will automate the control appropiately.
 - For some controls, you may be interested in automating the control only within a certain range. For this reason, if you modify the MIN and MAX values in the MidiLearn window, the knob in the GUI will "zoom in" on the specified range. Also automation will be done within that specified range



==================================================================================================
Midi Learn System:
- Notice there's a new button on the master window, called MIDI
- That opens a new window, where most controls can be assigned to midi controllers
- Click Acquire to go into Acquire mode. This will wait for you to modify a certain knob, or slider
  and will add it to the list of Acquired Controls
- Each Acquired Control can be enabled / disabled
- The options are:
	CH   - midi channel to wait for (1 to 16)
	CTRL - midi controller to assign (1 to 127; note that some midi controllers should be reserved)
	MIN  - minimum knob value (will scale midi value 0 to this MIN value)
	MAX  - maximum knob value (will scale midi value 127 to this MAX value)
- Note: if you wish to decrease the knob while increasing the midi controller value, just put MIN and 	MAX reversed (e.g. MIN > MAX)
- If you click on the description text, you can replace the current assignement with a new one
- After you've configured your list, hit the Apply button which should indicate parameters have been   
  stored (by changing its color)
- The system will save the list of midi parameters assigned if one gives the 'Save All Parameters'   command, via the file menu, and retreive it with 'Open Parameters'

Controllable parameters (so far)
- Global:
	+ Part Vol, V.Sns., Pan (real time)

- ADDsynth: 
	+ Global Vol, V.Sns, Pan (real time, Global / Voice)
	+ Amplitude Envelope (Global / Voice)
	+ Amplitude LFO (real time, Global / Voice)
	+ Filter Parameters (real time, Global / Voice)
	+ Filter Envelope (Global / Voice)
	+ Frequency Envelope (Global / Voice)
	+ Frequency LFO (real time, Global / Voice)
	+ Voice Oscillator Harmonics (real time)

- SUBsynth
	+ Global Vol, V.Sns, Pan, Bandwith (real time)
	+ Amplitude Envelope
	+ Bandwidth Envelope
	+ Frequency Envelope
	+ Filter Parameters (real time)
	+ Filter Envelope

- PADsynth
	+ Envelopes & LFOs tab (same as ADDsynth)

- Effects
	+ All instrument effects (real time)


I will probably add new parameters, in my next release. The problem is making some PADsynth parameters
real time. This may not possible as PADsynth requires computationally intensive fourier calculations to build up its samples.



Change log (2.4.1.476beta) 

- Main Windows position is now remembered!
- Fixed some more bugs inside the GUI threading mechanism
- Overall stability improved
- Big Tick - Zen Compatibility (Seems to be compatible with Zen 1.6 beta4)


Change log (2.4.1.470beta) 

- REWRITTEN FROM SCRATCH THE ENTIRE THREADING MODEL
- I'd say this is quite an important update, and a step forward towards the stability of this VST.

- Tested with no issues (so far) in latest Renoise demo ;)

(all below, hopefully for real this time :D)
- A (much) more stable GUI (hopefully)
- Fixed GUI corruption when moving windows, opening, closing
- Fixed GUI corruption with file browser
- Fixed GUI corruption in Resonance Window (when drawing by hand)
- Fixed GUI corruption when editing harmonics
- Fixed some multiple instance bugs
- Fixed Multithreading race condition bugs

Change log (2.4.1.460beta) 

- Completely removed the GUI interaction artifacts between Zyn and the Host 
(no more weird mouse behavior when Zyn GUI is ON)
- Should be useable now on more hosts...
- No need for wrapper anymore
- Modified internal threading mechanisms
- !! Made ADDITIONAL THREAD to separate GUI from the Sound Generation Thread
- Added option (check settings) to have all Zyn's windows On Top of the host (default is activated)
- Added option NOT to use the new GUI thread (use old style GUI, with known issues, if for some reason the new mode is not working properly - default is inactivated)

- If you choose to have Zyn's windows on top of the host, all tooltips will NOT be shown (technical FLTK reasons...)
- If you wish to see the tooltips, please deactivate the option.


Change log (2.4.1.454beta) 

- Hopefully no more loud bursts of sound!!
   - Changed the way sounds is shut off when changing presets
   - Changed the way the sound is updated in realtime when the oscillator is edited in realtime
- Fixed crashing GUI on multiple open xmz dialogs *really, really* this time :D :D :D
- Fixed the save xmz dialog (the previous version would have the save button disabled under some conditions)
- GUI Change: Now if you press CTRL and a knob, it will show the knob value, and you can also edit the value    (enter the value manually)

Change log (2.4.1.450beta) 

- The default hardcoded path will remain C:\ZynAddSubFX
- Fixed crashing GUI on multiple open xmz dialogs *really* this time :D 
  (Tweaked on FLTK some more....Or so I hope... I can't test on win7. But theoretically now it should work there also)
- Changing presets should be now more 'quiet' (Increased fade-out behavior when shutting up)
- This version should work on both 32-bit and 64-bit systems
- Included folderol's latest bank collection :-)


Change log (v2.4.1.448beta)


- Fixed crashing GUI on multiple open xmz dialogs
- Forget about the wrapper!!
- Now when you close the dummy window, the VST unloads FLTK. So no strange GUI effects, on the host, while the dummy window is closed! 
- If you experience crashes when unloading, please make sure you close the dummy window before you unload the VST
- The banks and presets are read from C:\Program Files\ZynAddSubFX 
- The cfg file is ALWAYS read from C:\Program Files\ZynAddSubFX
- If the cfg file is not found, it will be crated by the VST
- If you change settings within the VST (like buffer size) it will automatically save them to the cfg file!
- Added some bank presets from UnderwaterSunlight :) (see RB Zyn Presets folder)

Change log (v2.4.1.446alpha)


- Fixed bug when host loads zyn from within a saved project
- Made it fade-out when shutting up
- Fixed unloading bug in EnergyXT 1.41

- Rewrote important VST<->host communication routines (to be checked if works on all hosts!!!)
- Fixed a bug that caused some patches not to sound properly. (try to load arpeggio1 in the previous ver.)
- Fixed a bug that caused zyn to crash when changing patches
- Fixed? a bug that could presumably cause loud sound spikes and other strange things
- Fixed MidiLearn automation bug to work with multiple instances
- Fixed MidiLearn window to refresh and remember the MultiCH settings
- Some very mild code optimization
- Fixed many many memory leaks
- Overall VST stability should be improved (hopefully by a lot!)
- Zyn VST should not crash so often anymore
- ...
- Zyn VST should not crash so often anymore
- Zyn VST should not crash so often anymore
- If Zyn VST does crash, at least it should be in the unloading phase... (yes, still a bug that is random...)
- Added inherently several other bugs, while fixing the above (use this with caution: this is in alpha stage)


Change log (v2.4.1.431beta)

- Added Multiple Channel Outputs (see MIDI window)
- Output1 will always correspond to the internal mixed audio
- If enabled, stereo outputs 2-17 will correspond to parts 1-16
- Fixed some memory leaks, and some bugs when cleaning up


Change Log (v2.4.1.420 beta)
- Fixed sample rate bug at startup (should get host's sample rate properly)
- The line
	<par name="user_interface_mode" value="1"/>
  is now working doing the folowing:
	1 - default window is advanced window
	2 - default window is beginner window


Change Log (v2.4.1.419beta)
- Added Unison and Bandwidth based reverb, from the linux codebase

Change Log (v2.4.1.417beta)
- Fixed a hard to find memory management bug, that would make zyn crash ntdll.dll, when assiging some controllers (particularly effects)

Change Log (v2.4.1.416beta)
- Added 4 audio inputs: Ext1...Ext4, accessible from the MODE combo box, in the master window

Change Log (v2.4.1.415beta):

- Made a lot of ADDsynth internal parameters modifyable in realtime (including base oscillator harmonics)
- Implemented VDX Midi Learn System (in order to assign most parameters to midi controllers)
- Minor UI changes
- Many bugfixes and many new bugs added (inherently)
- Export button in PadSynth now really works (:D really!)

=====================================================================================

You will need to set up the xml cfg file in your vst folder.

UI's still based on FLTK... so you may need to isolate zyn from your usual host, otherwise
the hosts UI will be messed with (weird mouse behavior, nonrespondiveness)


Isolate using Legree and VstHost(recommend ver 1.37)

OR

to quote UnderwaterSun:

*******************
I managed to find a solution to Zyn's erratic behavior in my host (Ableton Live 6). This might work as well in other hosts.

In Ableton 6 I simply use the Temper Sequencer (a host with an emphasis on MIDI) in its public beta VST form as a sub-host/wrapper. Download is available here:

http://www.angryredplanet.com/temper/download.html

This Temper subhost is lean and works well in Ableton 6.
So finally I am able to use Zyn in Ableton Live !
**********************


I don't know if I shall have the time to add other functionality... such as automation and automatic saving of patches from the host... again that may be impossible if you isolate zyn as above.


**********************************************
Special thanks to:

Paul - for still developing this

Native Windows Port 2005 by J&H, Audio Development Team, Germany 
(these guys deserve a lot of credit, everything here regarding the VST port is based on their work)

Sonic Ports
