Version 1.9.2

Cleanups:
- removed all old examples as they had been completely outdated. Added
  examples matching the current version.
- reduced internal buffer sizes to a minimum.
- locking down of memory when used in real time mode has been completed.
- Midi thread runs now by default in non real time mode. This change ensures
  that the audio stream will never be interrupted by a Midi event. You can
  still force Midi real time mode from the command line.

Improvements:
- pitch bend frequency adjustment has been improved.
- added 6-pole formant filter to the multi output filter unit.
- added gain controller to pm-resonators in drum synth.


Version 1.9.0

- In this version more physics can be applied to the sounds by the use of 
  an improved physical modelling resonator.

- Eleminated stabilitiy problems. No more wild going flute sounds or drums 
  that kick out their resonators.
 
- Improved PM-resonator effect. This multi resonator adds a body to your 
  sounds and can also add some non linear effects of the body which depends, 
  like with real instruments, on the playing loudness. The build in preset 
  "Organ Rock" is an example for the non linear effect. 

- Updated documentation -> 2nd draft of a manual is available.

- Preset sounds have been updated. 


Version 1.8.0

  "Renovated" the quite old DSP core a little bit to fit to modern CPUs
  by removing lookup-tables and replacing approximations by their exact 
  formulas.

  Benefits:
  - The application is not bound to a fixed sampling rate anymore. As
    there is still some work to do in the effect section the supported
    range is for now limited to the range 44100-48000 Hz. 
  - Audible increase of overall tuning.
  - The string synth has now the long missing pitch bend with a selectable 
    range of +/- 0-4 half-tone steps. A step size of zero will switch back 
    to the old behaviour. (pitch-wheel -> filter)
    Note: As this is a somewhat CPU intensive task you should switch pitch 
    bend only to on when you really need it!

  Disadvantages:
  - Eats some more CPU cycles ;-)

Version 1.7.1

- rebuild on SuSE 8.1 with gcc-3.2. It should still work fine on all glib2 
  based systems. Please let me know if you encounter any "new" problems
  on gcc-2.9.x based systems.

- bug fix in handling of ALSA sequencer note on events with velocity of zero. 
  Now RTSynth runs fine with MusE again! (tested with muse-0.6.0pre2)

- Fixed ALSA name. In for example MusE it will now be shown as "RTSynth" and 
  not as "Input" like in previous versions.

- support for jack has been dropped for now. Since i upgraded my system,
  jack doesn't work on my machine anymore:(  Hope this will be fixed in
  upcoming versions.

- added mlockall() again, which got lost some time ago.


Version 1.7.0-ALSA-v0.9:

- added first and incomplete drum synthesizer based on analog drum
  like synthesis in combination with physical modelling aspects. 
  Voices available: 2 bass drums, 6 toms, 2 snare (incomplete), 
	            hihat closed/foot/open (incomplete).
	
- Updated MIDI examples, added Dreaming.mid and goose.mid with drums to 
  give you a small idea of the power and elegance of mathematics in 
  combination with physics;) 

Version 1.6.10-ALSA-v0.9:

- added function "continuous energie flow" to string synth. You
  find it on the bottom left of the panel. With this option set to
  on there is a continuous energie flow into the oszillator which
  will give a sustained sound. The amount of energie is controlled
  by the key velocity.
	
Version 1.6.9-ALSA-v0.9:

- bugfix: redraw problems in the main window have been fixed.
- bugfix: the audio device is set according to the config file.
- On start the last machine state will be restored. 
- Extended machine state file format about: master volume, mono/stereo
  and VU setting. 
- added rename to tiles menu.

Version 1.6.8-ALSA-v0.9:

- bugfix: after loading of a saved synth patch the number of voices 
  was set in the GUI but not within the synth machine.
- Added command line option to set the audio fragment size. Default
  is 128 frames. It can be reduced down to 16 frames. Anyway a shorter
  fragment size will result in higher CPU load.
- Added configuration dialog.
- Improved tracking of pitch-bender in string and flute synth.
- Added optional "auto pan" mode to string synth which will place the
  sounds according to the Midi-key into the stereo panorama.
- Added support to control synth parameters by MIDI controllers.

Version 1.6.7-ALSA-v0.9:

- bugfix for problem which caused RTSynth to crash when reading
  midi events from a fifo was choosen.
- improved audio performance/latency for new ALSA v0.9 API. 
 
Version 1.6.6-ALSA-v0.9:

- updated to ALSA version 0.9.

Version 1.6.6-ALSA-v0.5:

- Added support for ALSA version 0.5 midi and audio. RTSynth acts
  as a writeable ALSA sequencer input and can therefor be connected
  to any ALSA Midi source.
- bug-fix: removed bug that caused RTSynth to crash while loading a
  machine state with only one tile.
- Changed internal sample format from 32 to 64 bit floating point.
- Added a "limiter" to the main audio output. It will protect your
  ears, loudspeaker or headphone by preventing overdrive of the
  soundcard volume.

Version 1.6.5b:

- bug-fix: In string synth the file extension was getting lost durring
  save. 
- rebuild with fltk version 1.0.8

Version 1.6.5:

- Added the public domain version of "Freeverb" written by Jezar at
  Dreampoint - http://www.dreampoint.co.uk. My machine is to slow to
  run the stereo reverb in full quality... anyway even the lower
  quality modes sound quite good :)

Version 1.6.4:
	
- Added possibility to save/load/insert/clear RTSynth's machine state. 
  The state, position, midi channel, connections and number of voices
  of each visible synth module is stored/restored.
- Added new options to the string synth:
  - 3-pol (18dB) low pass filter.
  - "pink noise" random source.
  - "linear" note on velocity behaviour.

	
Version 1.6.3:

- Upgraded to glibc-2.1
- Some small runtime improvements.
- Added a command line option to set a midi output device. This way you
  can use RTSynth together with a midi sequencer via the midi loop back
  device and sent all midi events to your external midi equipment too.
  Just start RTSynth with a command line like:
   "RTSynth -i /dev/midi02 -m /dev/midi"
  To use the excellent Jazz++ midi sequencer together with RTSynth do the
  following (assuming you have Jazz++ already configured to use the midi 
  loop back device):
  - start RTSynth and switch it to "on" state. This is necessary because
    RTSynth opens the midi input and audio output devices only when they
    are needed and Jazz++ inhibits all free midi devices on startup.
  - now start Jazz++
     

Version 1.6.2b:

- bug-fix: Fixed a "new" bug in the "EFX Universal filter"


Version 1.6.2:

- bug-fix: Fixed bug in midi input device handling. Side effect is a 
  faster polyphone performance of RTSynth.
- Added possibility to connect synth modules in a non circular order and 
  run as many of them as your computer allows.
- Synth is stopped on CPU overload completely. This does not work on  
  multi processor systems.
- The effect module is the only one with MidiPan support.
- Added new reverb with choose-able density.
- Tested on linux 2.2.5
	
Version 1.6.1:

- bug-fix: possible noise when playing glissando in flute synth eliminated.
- removed some minor bugs,
	
Version 1.6.0:

- Upgraded to glibc.
- This version always runs with real time priority. Problems with pipes are
  solved by using threads.
- To prevent a system overload, which could happen when a thread with real time
  priority tries to eat 100% of the system resources, this version stops on an
  overload successive all running synth voices and if after that there is 
  still a CPU overload detected, RTSynth switches it self to off-state. 
  This should work in any situation. There should always be enough CPU time
  left for a maybe very slow mouse movement, anyway use at your own risk. 
  Known to work fine with linux 2.0.33.
- Added peak load meter to main panel. A detected over load changes the color 
  of the meter.
- Rebuild with fltk-19981207.
- After setting its priority RTSynth resets itself to normal user privileges.
- Included some sound/effect presets into RTSynth. 
- Flute-Synth: Fixed output filter frequency update. Now the filter frequency
  follows always the slider not only on a note on event.
- String-Synth: The amplitude envelope now works even when the output filter
  is disabled.
- String-Synth: Changed polyphone note handling. When, on a NoteOn event, the 
  maximum number of notes is reached. The oldest note is stopped immediately 
  to make room for the new one.
- The midi pitch bend is bound to the output filter frequency (string) or to
  the embouchure size (flute).
- RTSynth now works fine with the "SoftWerk" software sequencer.
- Added command line option for the audio output device.
- Some buildin preset sounds, selectable by midi program change.
- Some first documentation included.
	
Version 1.5.6:

- bug-fix: Sound release now works as desired and some other minor fixes.
- overall runtime improvement. On my system I noticed up to about 30 percent
  less CPU usage.
- added some new instrument settings to the "test" folder.

Version 1.5.5:

- Over all improvement of tuning. The string synth is now "well tempered" 
  over the full range of notes. The frequency error is less than 0.005 percent
  compared to the theoretical value of a sinus wave, with the assumption that 
  the sound is played exactly at 44100 samples per second (a = 440Hz). 
- Removed "oversampling" mode to save CPU time.
- Extended filter envelope attack speed to allow slower attack. A attack 
  speed value of 1 will start the envelope from maximum now
  (attack time = 0).  
- Enabled pipe input mode again. In this mode real time scheduling
  is NOT possible (linux bug). Conservative "renice(-11)" is used instead. 
  To have "clean" audio output in this mode you should not run RTSynth together
  with other periodic driven programs like xosview or network services. I have
  tested this mode with Simon's "midikb" application (www.sdf.se/~simon/).
  	The following standard syntax is used:
		'RTSynth <MidiInput'
  	where MidiInput is a device or a named pipe (FIFO).
  	Reading from stdin is managed in the usual way:
     	  	e.g. 'cat /dev/midi | RTSynth'	
	The default input device is "/dev/midi00".
- Rebuild with fltk-19981108.
- Fixed audio buffer length.

Version 1.5.4:
	
- added "metal" to additional wave in string synth.
- the audio buffer size is configure able. A larger audio buffer
  may reduce the CPU peak load.
	
Version 1.5.3:

- RTSynth now uses the real time scheduler available since linux 
  version 2.0.x. No more interrupted audio output!
- bug-fix: Fixed audio fragment size in stereo mode.
- bug-fix: string synth: fixed energy dissipation filter for order > 1. 
  Try out the new synth settings in test/.
- Reading midi events from stdin or pipe may block the system ->
  feature dissabled.
- added "piano" and "piano2" to additional wave in string synth. 
  This ones take care of the geometric position of the piano 
  hammer -> suppressing of the great second. Examples: test/Epiano-new*.pst 
- added amplitude LFO to string synth.  
- added scale-able bore size to flute synth for more unnatural 
  (synthetic) sounds. Still very simple models with cylindric 
  bore.
	
Version 1.5.2:

- added main panel.
- added flute synths based on "base clarinet" and "base flute".
  Embochure-size,-feedback and feedback filterorder are
  only active in "flute" mode.	
- added "soft damping" mode to string synth. The setting "off delay"
  is ignored in this mode and "off-damping" is the final damping value. 
- added oversampling mode to string synth.
- next version hopefully implements full midi ctrl of all
  parameters...
	
Version 1.5.1:

- bug-fix: midi note to frequency translation fixed. 
- simple vu meter added.
- modulation mode for universal filter added.
- code for "volume #7", "pan #10" and "hold pedal #64" midi 
  controller added. "hold pedal" is only in 24 voice mode active.
- added 24 voice mode for active midi controller #64 support.
- added 4-pol (24dB) low pass output filter to string synth.
- icons for WindowMaker added.
- minor performance improvements to minimise 
  the CPU peak load.
- added test directory with simple examples (settings 
  and midi files).
- added support to read midi events from stdin (pipe).
  only tested: "cat /dev/midi00  | ./RTSynth"


