1This file is no longer used. For detailed Changelog information, please refer to the
2version control system's commits. For an overview of differences between versions,
3see:
4https://sourceforge.net/apps/trac/fluidsynth/wiki/ChangeLog1_1_2
5https://sourceforge.net/apps/trac/fluidsynth/wiki/ChangeLog1_1_1
6etc.
7
8For developer related "What's new"-information, doc/fluidsynth-v11-devdoc contains
9valuable information.
10
11=== OLD ===
12
132009-05-01    Pedro Lopez-Cabanillas <plcl@users.sourceforge.net>
14    * configure.ac: fix for win32 build.
15
162009-05-01    Pedro Lopez-Cabanillas <plcl@users.sourceforge.net>
17    * doc/Doxyfile: added fluid_filerenderer.c to Doxygen documentation.
18    * doc/fluidsynth-v11-devdoc.txt: license changed to CC-BY-SA 3.0
19    * doc/fluidsynth_arpeggio.c: new example added.
20    * doc/fluidsynth_metronome.c: new example added.
21    * include/fluidsynth.h, include/fluidsynth/audio.h,
22      include/fluidsynth/settings.h: Doxygen documentation.
23    * src/fluid_settings.c: Doxygen documentation.
24
252009-04-27    Josh Green <jgreen@users.sourceforge.net>
26	* include/fluidsynth/audio.h: Moved new filerenderer documentation to source file.
27	* src/config_win32.h.in: Added 'typedef int socklen_t;' to the correct place.
28	* src/fluid_filerenderer.c: Removed 2 extra pasted duplicates of the file, moved
29	  Doxygen documentation from header file and added "API 1.1.0" designators.
30	* src/config_win32.h: Removed from subversion, since it is generated from
31	  config_win32.h.in.
32
332009-04-26    Josh Green <jgreen@users.sourceforge.net>
34    * configure.ac: Added glib 2.10 as a dependency, added notes in output
35      for LASH, LADCCA and READLINE that they are GPL.
36    * src/fluid_io.c: Moved code to fluid_sys.c and removed.
37    * src/config_win32.h: Added "typedef int socklen_t" definition.
38    * src/fluid_defsfont.h: Removed glib ripped code.
39    * src/fluid_oss.c: Fixed warnings where return value of write() was
40      being ignored.
41    * src/fluid_sys.c: Re-organized, implemented portable fluid_curtime() and
42      fluid_utime() using glib functions and removed old platform specific
43      code, implemented fluid_thread functionality using glib and removed
44      old platform specific code, fluid_istream_readline(), fluid_istream_gets()
45      and fluid_ostream_printf() should now work on WIN32 also, added code
46      for WIN32 for TCP sockets (not yet tested).
47    * src/fluid_sys.h: Added fluid_gerror_message() macro to extract message
48      safely from GError structures, replaced fluid_mutex macros with
49      portable implementations using glib, removed new_fluid_client_socket()
50      and delete_fluid_client_socket() which were never implemented or used.
51    * src/fluidsynth.c: Added call to g_thread_init().
52    * src/fluidsynth_priv.h: Integer types now use glib integer types.
53
542009-04-11    Josh Green <jgreen@users.sourceforge.net>
55	* FluidSynth release 1.0.9 "A Sound Future"
56	* configure.ac: Bumped version, no library interfaces added, removed or changed.
57	* doc/Makefile.am: Removed html and api folders from EXTRA_DIST.
58	* src/fluid_synth.c (fluid_synth_program_change): Preset substitute warning
59	  now outputs MIDI channel.
60
612009-04-02    Pedro Lopez-Cabanillas <plcl@users.sourceforge.net>
62	* src/config_win32.h: fix compilation under MSVC 2008 and older
63
642009-03-15    Josh Green <jgreen@users.sourceforge.net>
65	* ltconfig: Removed obsolete ltconfig script by suggestion of
66	  Sven Hoexter.
67	* doc/fluidsynth.1: Some fixes from Sven Hoexter.
68	* src/fluid_adriver.c: Re-order of default drivers to jack, alsa, pulse.
69	* src/fluidsynth.c (fluid_synth_program_change): Added preset selection
70	  fallback logic: Melodic - Fallback to Bank0:prognum followed by
71	  Bank0:Program0, Percussion - Fallback to 128:0, code re-organization.
72
732009-03-08    Josh Green <jgreen@users.sourceforge.net>
74	* src/fluid_jack.c: Added support for Jack MIDI.
75	* src/fluid_mdriver.c: Registered Jack MIDI driver.
76	* README-OSX: Update from Ebrahim Mayat.
77
782009-02-28    Pedro Lopez-Cabanillas <plcl@users.sourceforge.net>
79    * src/fluid_midi.c: Fix for ticket #22 (Wrong tempo changes)
80    * src/fluid_midi.h: delta-time accumulator moved to fluid_midi_file struct.
81
822009-02-03    Josh Green <jgreen@users.sourceforge.net>
83    * Applied patch from KO Myung-Hun for OS/2 support including Dart audio
84      driver.
85
862009-01-29    Josh Green <jgreen@users.sourceforge.net>
87	* src/Makefile.am: Added PortAudio driver conditional build.
88	* src/fluid_adriver.c: Registered fluid_portaudio_driver_settings.
89	* src/fluid_portaudio.c: Completely overhauled for Portaudio 19.
90	  This driver appears to have been unbuildable before.
91
922009-01-08    Pedro Lopez-Cabanillas <plcl@users.sourceforge.net>
93	* configure.ac: detection of CoreMIDI support. Ticket #18.
94	* src/Makefile.am: conditional build of CoreMIDI driver.
95	* src/fluid_coremidi.c: Basic CoreMIDI driver.
96	* src/fluid_mdriver.c: added CoreMIDI driver.
97
982009-01-08    Josh Green <jgreen@users.sourceforge.net>
99	* configure.ac: Followed GTK's lead for some unexplained magic for
100	  stupid libtool version parameters (fixes autogen.sh bomb on
101	  undefined macro LT_REVISION/LT_CURRENT/LT_AGE).  Added
102	  AC_CONFIG_MACRO_DIR([m4]) as suggested by libtoolize.
103	* Makefile.am: Added ACLOCAL_AMFLAGS=-I m4 as suggested by libtoolize.
104
1052008-12-23    Josh Green <jgreen@users.sourceforge.net>
106	* configure.ac: Added detection of PulseAudio driver.
107	* src/Makefile.am: Added conditional build of PulseAudio driver.
108	* src/fluid_adriver.c: Added PulseAudio driver and re-sorted drivers
109	  by use preference.
110	* src/fluid_chan.c: Using MIDI enums for initializing channel CC values,
111	  added supported for RPN GM MIDI messages Bend Range, Fine Tune and
112	  Coarse Tune, added check for out of range NRPN parameters.
113	* src/fluid_midi.h: Added RPN enum midi_rpn_event.
114	* src/fluid_pulse.c: New PulseAudio driver.
115
1162008-09-22     Pedro Lopez-Cabanillas <plcl@users.sourceforge.net>
117	* src/fluid_dsound.c: Fix for ticket #16 - dsound device can't be selected.
118
1192008-09-07    Josh Green <jgreen@users.sourceforge.net>
120
121	* src/fluid_alsa.c (new_fluid_alsa_seq_driver): Patch from
122	  Nicolas Boulicault to add ALSA sequencer midi.portname setting.
123	* src/fluid_conv.h: S. Christian Collins' patch - changed
124	  FLUID_ATTEN_POWER_FACTOR from -531.509 to -200.0.
125	* src/fluid_defsfont.c (fluid_defpreset_noteon): S. Christian Collins'
126	  patch - crash bug fix related to using certain modulators in a preset.
127	* src/fluid_mdriver.c: Pedro Lopez-Cabanillas' patch which adds a
128	  midi.winmidi.device setting.
129	* src/fluid_mod.c: S. Christian Collins' patch - Stop forcing velocity
130          based filtering and a couple of calculation fixes to transform functions.
131	* src/fluid_synth.c: Nicolas Boulicault's patch to add midi.portname
132	  setting.
133	  (fluid_synth_program_change): added fix to properly search for a
134	  percussion instrument
135	* src/fluid_synth.h: Changed FLUID_NUM_PROGRAMS to 128 and set
136	  DRUM_INST_BANK to 128.
137	* src/fluid_voice.c (fluid_voice_write): S. Christian Collins' patch -
138	  force velocity envelope value to be that of the previous stage when
139	  switching from decay to sustain and filter calculation now uses
140	  synthesizer baud rate rather than fixed at 44100.
141	  (fluid_voice_update_param): S. Christian Collins' patch - Use multiplier
142	  for GEN_ATTENUATION to be compatible with EMU10K1 cards.
143	* src/fluid_winmidi.c: Pedro Lopez-Cabanillas' patch which adds a
144	  midi.winmidi.device option.
145	* src/fluidsynth.c: Nicolas Boulicault's patch which adds midi.portname
146	  setting.  Pedro Lopez-Cabanillas' patch which breaks out of argument
147	  processing loop for non getopt option argument handling when a non
148	  option is encountered and not using Readline.
149
1502007-11-17    Josh Green <jgreen@users.sourceforge.net>
151
152	* FluidSynth release 1.0.8 "Its about funky time!"
153	* configure.ac: Bumped LT_REVISION and added call to AM_PROG_CC_C_O macro.
154	* Makefile: Updated fluidsynth.prj to fluidsynth.anjuta
155	* README-OSX: Update from Ebrahim Mayat for OS X Leopard
156	* acinclude.m4: Fixed embedded main function in AM_PATH_READLINE macro.
157
1582007-11-11    Josh Green <jgreen@users.sourceforge.net>
159
160	* configure.ac: Added --enable-trap-on-fpe and --enable-fpe-check to
161	  assist with Floating Point Exception debugging.
162	* src/fluid_chorus.c: Reverted the rest of the chorus "Effect level clip"
163	  patch, until something better is devised.
164	* src/fluid_synth.c: Added support for trapping on Floating Point
165	  Exceptions on GLIBC systems, to aid developers in tracking down FPEs
166	  with gdb, removed buffer alignment hacks since they are no longer
167	  needed (not using SSE currently).
168	* src/fluid_sys.c (fluid_time_config): Added check for a CPU freq
169	  calculation of 0.0, since this test is inadequate to begin with and
170	  was coming up as 0.0 on my laptop, causing a FPE.  Will replace with
171	  real timer functions, in the future.
172	* src/fluid_voice.c: Removed zap_almost_zero macro as it was buggy and
173	  had issues which went away when gcc optimization was turned off and in
174	  the case of !WITH_FLOAT was using abs() which is integer based and
175	  would cause FPEs.
176	  (fluid_voice_write): Removed a memory alignment hack and moved a call
177	  to fluid_fpe_check() to a better location.
178	  (fluid_voice_effects): Replaced zap_almost_zero with a call to fabs(),
179	  added fluid_fpe_check() call.
180	* src/fluidsynth_priv.h: Removed FLUID_ALIGN16BYTE hack, as it is no
181	  longer needed.
182
1832007-11-10    Josh Green <jgreen@users.sourceforge.net>
184
185	* doc/fluidsynth.1: Updated man page with current command line options and other changes (minor).
186	* include/fluidsynth/synth.h: Reverted "Effect level clip" patch as it seems to cause chorus
187	  count to have a much lessor effect.
188
1892007-09-20    Josh Green <jgreen@users.sourceforge.net>
190
191	* Doc updates to AUTHORS and latest README-OSX from Ebrahim Mayat.
192	* src/config_win32.h.in: VERSION is now filled in at configure time.
193	* src/fluid_alsa.c (fluid_alsa_audio_run_s16): Fixed bug which was
194	  causing weird crashes with QSynth when new_fluid_audio_driver2() when
195	  audio meters were enabled (user data parameter was being used as a
196	  fluid_synth_t instance).  Synth instance is now no longer used in
197	  this case (it was only used for 16 bit dithering before).
198	* src/fluid_oss.c: Fixed the same bug that was affecting ALSA driver.
199	* src/fluid_rev.c: Reverted to old commented out code in regards to
200	  reverb level.
201	* src/fluid_synth.c (fluid_synth_dither_s16): Now no longer uses
202	  fluid_synth_t instance, but accepts a pointer to an integer instead
203	  for keeping track of dithering buffer index (all that the synth instance
204	  was being used for).
205	* src/fluid_synth.c (fluid_synth_one_block): Reverted patch which
206	  performs assignment of chorus and reverb levels in synthesis loop,
207	  until a better scheme is devised (unnecessary CPU consumption).
208	* Added Visual Studio .sln and .vcproj files and some minor source
209	  changes to get FluidSynth to build with it.
210	* Back-converted Visual Studio project to VC++ 6 project for users
211	  using that build platform (not tested).
212
2132007-09-02    Josh Green <jgreen@users.sourceforge.net>
214
215	* configure.ac: Removed SSE and longlong related switches (SSE support
216	  removed for now and longlong is now always used).
217	* : Applied effect level clip patch from David Hilvert
218	  see http://fluidsynth.resonance.org/trac/ticket/2.
219	* : Applied reverb damp scaling patch from David Hilvert
220	  see http://fluidsynth.resonance.org/trac/ticket/3.
221	* src/fluid_dsp_float.c: No longer being #include'd and all interpolation
222	  functionality has been re-written as separate functions, interpolating
223	  around loops is now supported, effect (reverb/chorus/pan/filter) stuff
224	  moved to fluid_voice.c.
225	* src/fluid_phase.h: 64 bit unsigned integers are now used for phase
226	  index/fraction sample pointers, modified macros accordingly.
227	* src/fluid_voice.c: Removed SSE code, fluid_voice_init() renamed to
228	  fluid_dsp_float_init() and moved to fluid_dsp_float.c.  Effect related
229	  functionality (reverb/chorus/pan/filter) moved from fluid_dsp_float.c
230	  to fluid_voice.c.  Some code re-formatting and comment cleanup.  Loop
231	  no longer requires padding surrounding it (fixes bug related to loop
232	  point right on the end of the sample).
233
2342007-08-18    Josh Green <jgreen@users.sourceforge.net>
235
236	* src/fluid_alsa.c: Added SND_SEQ_PORT_TYPE_MIDI_GENERIC back into the
237	  ALSA sequencer port registration as it broke the use of playmidi
238	  (thanks to Dave Serls for providing a patch and pointing this out).
239
2402007-01-14    Josh Green <jgreen@users.sourceforge.net>
241
242	* src/fluid_alsa.c: Fixed evil bugs in ALSA driver where return value
243	  of new fluid_alsa_handle_write_error() was not being checked correctly
244	  causing successfully handled ALSA errors (underruns for example) to
245	  terminate audio thread.
246	* src/fluid_synth.c: Using an inline roundi function to replace roundf
247	  as per suggestion by Mihail Zenkov, 16 bit for dithering.
248
2492006-12-10    Josh Green <jgreen@users.sourceforge.net>
250
251	Lots of documentation updates.
252	* doc/Doxyfile: No longer including functions by default, only those
253	  listed in the listed header files.
254	* src/fluid_strtok.[ch]: Removed, since it was crap.  Replaced with
255	  fluid_strtok() in fluid_sys.c which doesn't require an allocated
256	  tokenizing instance.
257	* src/fluid_alsa.c: Audio processing is more optimized in the case where
258	  no user defined audio callback is used (removal of unneeded buffer copy),
259	  fluid_alsa_handle_write_error() added for centralized ALSA audio error
260	  handling,
261	* src/fluid_aufile.c: Now also doing 16 bit dithering.
262	* src/fluid_cmd.c: Removed use of old tokenizer instance.
263	* src/fluid_coreaudio.c: User defined callback function is now honored.
264	* src/fluid_defsfont.c: More leaks plugged (thanks to Paul Millar for
265	  the patch), removed sfont_free_data() since sfont_close() should be
266	  used instead (don't want to leak a file handle).
267	* src/fluid_midi_router.c: Took out uses of fflush() since sending a
268	  line of text (with newline) should display it.
269	* src/fluid_oss.c: Using fluid_synth_dither_s16() in place of old
270	  16 bit conversion code.
271	* src/fluid_settings.c: Replaced strtok stuff with new function, some
272	  other improvements.
273	* src/fluid_synth.c (delete_fluid_synth): Turning off all voices so that
274	  SoundFont data will be freed correctly (thanks to patch from
275	  Paul Millar).
276	* src/fluid_sys.c (fluid_strtok): New function to replace old tokenizing
277	  functions which required a token instance.
278	* src/fluidsynth.c: Warning message printed if a non option is not a
279	  valid SoundFont or MIDI file (thanks to Nick Daly for the patch).
280
2812006-11-22    Josh Green <jgreen@users.sourceforge.net>
282
283	* src/fluid_alsa.c (new_fluid_alsa_audio_driver2): Removed some ALSA
284	  lib calls to set software parameters, which was likely causing the
285	  100% CPU usage problem (not actually fixed in last update, not sure
286	  which one is the culprit).
287	  (fluid_alsa_seq_run): More changes in ALSA sequencer code, hopefully
288	  it is right this time!
289	  (delete_fluid_alsa_seq_driver): Memory leak fixed - wasn't freeing
290	  array of sequencer file descriptors.
291	* src/fluid_chan.c: Memory leak fixes: Now deleting preset from channel
292	  when channel is destroyed.
293	* src/fluid_cmd.c: Memory leak fix: strtok being deleted from command
294	  shell when shell is destroyed.
295	* src/fluid_defsfont.c: Memory leak fixes: Freeing modulator lists in
296	  preset and instrument zones, freeing zone names, freeing instruments
297	  linked from preset zones, replaced use of "safe_malloc" with FLUID_MALLOC
298	  macro, deleting instrument list in SFData, deleting samples in SFData,
299	  freeing SFData structure.
300	* src/fluid_settings.c: Memory leak fix: freeing options in option
301	  type settings.
302	* src/fluid_synth.c: Memory leak fixes: Freeing FX buffers and
303	  right/left_buf.
304
3052006-11-21    Josh Green <jgreen@users.sourceforge.net>
306
307	* src/fluid_alsa.c (new_fluid_alsa_audio_driver2): Modified all ALSA
308	  calls to check return code error as "< 0" as per ALSA examples, sample
309	  rate is now compared with what was expected and warning message displays
310	  both values, if target sample rate wasn't set update the local
311	  period_size variable (was causing 100% CPU consumption by ALSA, from
312	  the resultant erroneous sw_params calls).
313	  (fluid_alsa_audio_run_float): Using case statement for
314	  error codes from snd_pcm_writen() for the sake of tidiness.
315	  (fluid_alsa_audio_run_s16): Using case statement for error codes
316	  from snd_pcm_writei() for the sake of tidiness, re-instated call
317	  of device callback function that was broken with the dither patch
318	  (don't want to break the API), now using new fluid_synth_dither_s16()
319	  to convert floating point sample data to 16 bit with dithering.
320	  (fluid_alsa_seq_run): Timeout in poll() call set to 100ms (from 1ms!),
321	  snd_seq_event_input_pending is used to check if events are available
322	  before calling snd_seq_event_input to prevent blocking, check of
323	  snd_seq_event_input error code moved to the right location (bug fix).
324	* src/fluid_synth.h: Added dither_index parameter to fluid_synth_t
325	  structure to allow for per synth dithering continuity.
326	* src/fluid_synth.c: Modified dithering to use new dither_index field
327	  for per synth dithering continuity, fixed off by 1 error with
328	  dithering index comparison, removed usage of roundf in dithering (is
329	  it sufficient to just integer truncate?).
330	  (fluid_synth_dither_s16): New function to perform dithering on
331	  buffers of floating point sample data.
332
3332006-11-20    Josh Green <jgreen@users.sourceforge.net>
334
335	* src/fluid_alsa.c: Applied dithering patch from Mihail Zenkov.
336	* src/fluid_synth.c: Applied dithering patch from Mihail Zenkov.
337
3382006-03-04    Josh Green <jgreen@users.sourceforge.net>
339
340	* src/fluid_alsa.c (delete_fluid_alsa_audio_driver): Now calling
341	snd_pcm_close() to close the ALSA audio driver handle.
342	(fluid_alsa_seq_run): Check for -ENOSPC error was logicly inverted.
343	(new_fluid_alsa_seq_driver): Sequencer is now opened in blocking mode.
344
3452006-02-20    Josh Green <jgreen@users.sourceforge.net>
346
347	* Fixed build error that occured when neither LASH or LADCCA are
348	  present.
349	* Updated README-OSX from Ebrahim Mayat.
350
3512006-02-18    Josh Green <jgreen@users.sourceforge.net>
352	* FluidSynth release 1.0.7 "Increasing Fluidity.."
353
354	* Removed spurious newlines from FLUID_LOG statements throughout.
355	* AUTHORS: Some cleanup and additions.
356	* src/fluid_lash.[ch]: Moved LADCCA related code from fluidsynth.c here
357	  and added new LASH support (both old LADCCA and LASH are supported
358	  exclusively). Used patches sent by Frieder Bürzele as a guide.
359	* src/fluidsynth.c: Removed LADCCA code (now in fluid_lash.c),
360	  re-organized command line parsing and removed duplicate WIN32 switch
361	  statement, re-organized help output and added missing entries, added
362	  "-o help" switch for listing settings, welcome message now printed
363	  whenever FluidSynth is run and simplified,
364	  (print_usage): hard coded application name as "fluidsynth".
365	* configure.ac: Changed --enable-SSE option to --enable-broken-SSE
366	  and --enable-SSE now just displays a fat warning about not using it.
367	* src/fluid_jack.c: Warning is now displayed if synth sample rate
368	  doesn't match jackd.
369	* src/fluid_alsa.c: Added detection for ALSA sequencer buffer overrun
370	  (-ENOSPC) and interrupted poll() call (-1??).
371	* src/fluid_voice.c: Applied patch from Henri Manson which adds a
372	  fluid_ct2hz_real() function which does not have the filter cutoff
373	  limits that fluid_ct2hz() does, new function being used for
374	  calculations that may include non-audible frequencies.
375	* src/fluid_dsound.c: Applied patch from Henri Manson which
376	  only creates the directsound window once.
377
3782005-09-04    Josh Green <jgreen@users.sourceforge.net>
379
380	* src/fluid_ramsfont.c (fluid_ramsfont_remove_izone): Applied crash bug
381	fix from Antoine Schmitt.
382
3832005-07-05    Josh Green <jgreen@users.sourceforge.net>
384
385	* src/fluidsynth_priv.h: FLUID_ALIGN16BYTE is broken on AMD64 so now
386	only enabled if SSE is being used. If SSE code becomes more useful in
387	the future this should be fixed.
388
3892005-06-29    Josh Green <jgreen@users.sourceforge.net>
390
391	* Applied LASH patch that is included with ladcca-0.4.0.
392
3932005-06-11    <jgreen@users.sourceforge.net>
394
395	* Released FluidSynth 1.0.6 "Music to my ears"
396
397	* README-OSX: Update from Ebrahim Mayat.
398	* acinclude.m4: Midishare support now defaults to auto.
399	* configure.ac: Added LT_CURRENT, LT_REVISION and LT_AGE in place of
400	  LIBFLUIDSYNTH_MAJ and LIBFLUIDSYNTH_MIN to make better use of
401	  libtool library versioning.  Fixed use of AC_ARG_ENABLE (was setting
402	  variables to yes even when disable was specified), fixes --disable-SSE
403	  which was reported by Mikhail Yakshin, added warning when SSE is
404	  enabled to let users know that this feature isn't really desirable
405	  currently.
406	* src/Makefile.am: Now using LT_VERSION_INFO to substitute the libtool
407	  version.
408	* src/fluid_cmd.c (fluid_cmd_handler_handle): Modified to avoid GCC
409	  "type-punned" cast warning.
410	* src/fluid_defsfont.c (fluid_preset_zone_import_sfont): Fixed
411	  assignment of modulator amtsrc flags (should be assigned to flags2
412	  not flags1), thanks to Stephan Tassart for reporting this.
413	  (fluid_inst_zone_import_sfont): Same fixes as for above.
414	* src/fluid_sys.c (fluid_log): Now using vsnprintf for formatting
415	  error messages to fix buffer overflow as reported by Axioplase.
416	  (fluid_debug): Same as above.
417
4182005-06-11    <jgreen@users.sourceforge.net>
419
420	* fluidsynth.prj: Added Anjuta project file.
421	* src/fluid_conv.c: fluid_cb2amp conversion set back to real centibels
422	  and added a new fluid_atten2amp table conversion for non-standard
423	  EMU 8k/10k attenuation.
424	* src/fluid_voice.c (fluid_voice_write): Updated volume calculations to
425	  use fluid_cb2amp for envelope and LFO, but use fluid_atten2amp for
426	  initial attenuation.
427	  (fluid_voice_noteoff): Re-coded volenv_val attack conversion and
428	  verified.
429
4302005-06-10    <jgreen@users.sourceforge.net>
431
432	* src/fluid_phase.h: Patch from Sean Bolton to fix big endian long long
433	  phase combined 64 bit value type fluid_phase_t
434        * src/fluid_voice.c (fluid_voice_update_param): case GEN_OVERRIDEROOTKEY
435	  was incorrectly adding pitchadj fine tune amount instead of subtracting
436	  it.  Also, fine tuning should be applied to root key override as well.
437
4382005-06-07    <jgreen@users.sourceforge.net>
439
440        * Applied Sean Bolton's DSSI patch (SB patch) which adds the ability to
441	  change polyphony at runtime and fixes a bug (see below).
442	* README-OSX: Update from Ebrahim Mayat for OSX Panther.
443	* include/fluidsynth/synth.h: Sean Bolton's DSSI patch adds two new
444	  functions fluid_synth_set_polyphony and fluid_synth_get_polyphony.
445	* src/fluid_conv.c: Centibel to amplitude conversion now follows
446	  EMU 8k/10k which is contrary to SoundFont specification (TiMidity++
447	  used as an example).
448	* src/fluid_conv.h: FLUID_CB_POWER_FACTOR defined for the centibel->amp
449	  conversion table equation.
450	* src/fluid_defsfont.c (load_pgen): Fixed 'use of cast expressions as
451	  lvalues is deprecated' warning by casting the value being assigned
452	  instead of the variable assigned to and removed code warrior
453	  specific code to work around this.
454	  (load_igen): Same as for load_pgen.
455	* src/fluid_synth.c: SB patch - uses synth->polyphony instead of
456	  synth->nvoice when iterating over the synth's voices.
457	  (fluid_synth_update_polyphony): SB patch (new) - runtime update
458	  (fluid_synth_set_polyphony): SB patch (new)
459	  (fluid_synth_get_polyphony): SB patch (new)
460	  (fluid_synth_nwrite_float): SB patch - fixes bug where the use of
461	  arbitrary values of the 'len' parameter was broken.
462	* src/fluid_voice.c (fluid_voice_write): modlfo_to_vol (modulation LFO
463	  to volume) was being calculated inverted (should be negative
464	  attenuation, gain, for a positive rise in LFO).
465	  (fluid_voice_noteoff): Updated centibel to amplitude conversion
466	  used when voice off during attack to use the new
467	  FLUID_CB_POWER_FACTOR.
468
4692004-11-11    <jgreen@users.sourceforge.net>
470
471	* README-OSX: Update from Ebrahim Mayat.
472
4732004-08-18    <peter@hanappe.com>
474
475	* src/fluid_synth.c (fluid_synth_set_bank_offset):
476	(fluid_synth_get_bank_offset): New API to set
477	a bank offset in a SoundFont (proposition made by Ken Ellinwood).
478
4792004-08-06    <peter@hanappe.com>
480
481	* src/fluid_synth.c (fluid_synth_noteon):
482	fluid_synth_release_voice_on_same_note() is now called in the
483	noteon() function instead of in fluid_synth_start(). This fixes
484	the silent note problem!
485
4862004-07-29    <peter@hanappe.com>
487
488	* src/fluid_chan.c (fluid_channel_cc): Applied Ken Ellinwood's
489	fix for the bank select (MSB) message.
490
491	* src/fluid_jack.c (fluid_jack_audio_driver_settings): Applied Rui
492	Nuno Capela's patch
493
4942004-05-14    <peter@hanappe.com>
495
496	* doc/fluidsynth.1 (option): Fixed typo noted by Gerald Pye.
497
4982004-05-14    Peter Hanappe <peter@hanappe.com>
499
500	* src/fluid_dsound.c (fluid_dsound_enum_callback): Applied Sergey
501	Pavlishin's patch. This path fix stack overflow during DirectSound
502	audio driver initialization.
503
5042004-05-07    Peter Hanappe <peter@hanappe.com>
505
506	* src/fluid_synth.c (fluid_synth_remove_sfont): Added new function
507
5082004-05-05    Peter Hanappe <peter@hanappe.com>
509
510	* src/fluid_alsa.c (new_fluid_alsa_seq_driver): The alsa driver
511	now opens several ports if the synthesizer is configured for more
512	than 16 MIDI channels.
513
514	* src/fluid_voice.c (fluid_voice_write): I removed the filter
515	on/off optimization. The filter is always on and serves as an
516	anti-aliasing filter.
517
5182004-05-04    Peter Hanappe <peter@hanappe.com>
519
520	* src/fluid_synth.c (new_fluid_synth): The number of MIDI channels
521	now has to be a multiple of 16. The synth checks that this is the
522	case and changes the settings accordingly. I removed the sanity
523	checks for the min/max value of the number of MIDI channels since
524	this is already done by the settings object.
525
5262004-03-30    Josh Green <jgreen@users.sourceforge.net>
527
528	* src/fluid_voice.c (fluid_voice_write): Altered filter turn-off
529	optimization to not turn filter off once it has been
530	enabled. There is still a potential for a click when it gets
531	turned on though, which needs to be dealt with.
532
5332004-03-30    Peter Hanappe <peter@hanappe.com>
534
535	* src/fluid_dsp_core.c: I've split up the dsp core file in three
536	files: fluid_dsp_simple.c, fluid_dsp_float.c, and
537	fluid_dsp_sse.c. This improves the readability.
538
5392004-03-29    Peter Hanappe <peter@hanappe.com>
540
541	* src/fluid_jack.c (new_fluid_jack_audio_driver2): Testing the
542	number of ports before allocating them.
543	(fluid_jack_audio_driver_settings): Registering
544	the "audio.jack.autoconnect" setting.
545
546	* src/fluid_midi.c (fluid_player_set_midi_tempo): Tempo changes
547	handled correctly. Was broken after fix on [2004-03-22] (see
548	below).
549
550	* src/fluid_strtok.c (fluid_strtok_char_index): Removed printf's
551	from fluid_strtok.c
552
5532004-03-26    Peter Hanappe <peter@hanappe.com>
554
555	* bindings/README: Imported the fluidsynth_jni and fluidmax
556	projects.
557
5582004-03-25    Peter Hanappe <peter@hanappe.com>
559
560	* src/fluid_rev.c (new_fluid_revmodel): Added 'gain', similar as
561	in Freeverb 3. Using same 'wetscale' as Freeverb 3, but fixing
562	'wet' to 3. fluid_revmodel_setlevel() does not change the value of
563	'wet': The 'wet' level can be controlled with the 'reverb send'.
564	(fluid_revmodel_processreplace): The input is multiplied by 2 and
565	by the gain. This corresponds to the channel mixing and scaling
566	that Freeverb 3 does.
567
5682004-03-24    Peter Hanappe <peter@hanappe.com>
569
570	* src/fluidsynth.c (main): Added the -f switch. Passing "-f file"
571	on the command line tells fluidsynth to read parse the file and
572	execute and commands.
573	(main): User config and system config file are now loaded correctly
574
575	* src/fluid_cmd.c (fluid_shell_run): the shell doesn't get stuck
576	and loop on an emtpy string when the end of the stream is reached.
577
578	* src/fluid_io.c (fluid_istream_gets): fluid_istream_gets()
579	returns 0 if the end of the stream was reached and -1 on error.
580
581	* src/fluid_cmd.c (fluid_source): Fixed bug in "file =
582	open(filename, FLAGS);" (I shouldn't pass O_WRONLY when what I
583	want is O_RDONLY!)
584
5852004-03-23    Peter Hanappe <peter@hanappe.com>
586
587	* src/fluid_aufile.c (new_fluid_file_audio_driver): Added
588	fluid_aufile.c. This file implements a audio driver that writes
589	the audio output to a file. This driver is NOT real-time and is
590	currently useful for testing purposes only (not even useful to
591	play MIDI files).
592
5932004-03-22  Peter Hanappe <peter@hanappe.com>
594
595	* src/fluid_synth.c (new_fluid_synth): Removed the synth->busy
596	mutex. I don't think it is necessary; to be discussed.
597
598	* src/fluid_midi.c (fluid_player_callback): Fixed the timing in
599	the MIDI playback. The current MIDI tick in every timer callback
600	was calculated as an increment to the previous number of
601	ticks. This introduces a growing error due to rounding errors and
602	timer variations. The current tick is now calculated according to
603	the absolute time at the beginning of the file. (Beginners error
604	...)
605
606	* doc/FluidSynth-LADSPA.pdf: Added Markus' LADSPA design document.
607
608	* doc/xtrafluid.txt: Added Antoine's Xtra API documentation.
609
610	* doc/midi_time.txt: Added a memo on midi timing.
611
6122004-03-19  Peter Hanappe <peter@hanappe.com>
613
614	* src/fluid_midishare.c: Applied Stephane Letz patch: MidiShare is
615	now connected to fluidsynth by default so that received MIDI
616	events directly trigger the synth
617
6182004-02-28  Peter Hanappe <peter@hanappe.com>
619
620	* src/fluid_synth.c: Added fluid_synth_program_select2() and
621	fluid_synth_get_sfont_by_name() in fluid_synth.c. These functions
622	are not in the public API, yet.
623
6242004-02-25  Peter Hanappe <peter@hanappe.com>
625
626	* src/fluid_voice.c: Fixed bug in volume envelope (in
627	fluid_voice_update_param(), case GEN_VOLENVDECAY): the minimum
628	value was converted to linear amplitude instead of a normalized
629	value of the cB (1-cB/1000). Because of that, the decay section
630	went on for too long.
631
6322004-12-xx  Peter Hanappe <peter@hanappe.com>
633
634	* src/fluid_seq.c: Inserting events in the queueLater list was
635	incomplete. It didn't check if the event was the last in the list,
636	and the looping through the list didn't update the prev pointer. I
637	added muteces to the sequencer. Events are dynamically allocated
638	if no free events are available. The sequencer is protected by a
639	mutex.
640
6412003-11-14  Josh Green  <jgreen@users.sourceforge.net>
642	* src/fluidsynth.c: Removed CCA_Use_Jack and CCA_Use_Alsa flags
643	since LADCCA no longer uses them.
644
6452003-08-31  Josh Green  <jgreen@users.sourceforge.net>
646
647	* acinclude.m4: Renamed AC_SOUND macro to AC_OSS_AUDIO and removed
648	the ALSA check from it since pkg-config is now being used to check
649	for ALSA. Also fixed --enable-alsa-support and --enable-oss-support
650	which were disabling support instead (reported by Bart Massey).
651	* configure.ac: pkg-config is now being used to check for ALSA.
652	ALSA and OSS now use automake conditionals to conditionally compile
653	source files.
654	* Makefile.am: Re-arranged SUBDIRS so build output looks nicer.
655	* src/Makefile.am: ALSA and OSS are now conditionally compiled using
656	automake conditionals.
657
6582003-08-29  Josh Green  <jgreen@users.sourceforge.net>
659
660	* src/fluid_sys.c: Patch from Eric Van Buggenhaut to make i386 asm
661	code not compile for all non-i386 archs rather than just DARWIN.
662	* src/fluidsynth_priv.h: Patch from Sergey Pavlishin to fix
663	FLUID_REALLOC macro.
664	* src/fluid_cmd.c: Ken Ellinwood's patch to add -verbose to "channels"
665	command, and print settings values with 3 decimal places.
666	* src/fluid_defsfont.c (fluid_defsfont_sfont_get_preset): Ken
667	Ellinwood's patch to initialize sfont field of preset.
668	* src/fluid_ramsfont.c (fluid_ramsfont_sfont_get_preset): Ken
669	Ellinwood's patch to initialize sfont field of preset.
670	* src/fluid_midi.c (fluid_midi_file_read_event): Fixed a crash bug with
671	zero length MIDI meta events that was pointed out by Sergey Pavlishin.
672	(delete_fluid_midi_event): Fixed a stack overflow problem pointed out
673	by Sergey Pavlishin that was caused by recursively deleting MIDI
674	event linked list, now just using a while loop.
675
6762003-08-25  Josh Green  <jgreen@users.sourceforge.net>
677
678	* src/fluidsynth.c: MIDI channels switch should be -K not -L as was
679	listed in "Usage" output, also -K was setting audio.channels for
680	non getopt case statement - changed to midi.channels. Added a new
681	option "-l, --disable-ladcca" to disable LADCCA server connection.
682
6832003-08-25  Josh Green  <jgreen@users.sourceforge.net>
684
685	Release version 1.0.3
686
687	* doc/fluidsynth.1: Applied typo patch from Eric Van Buggenhaut.
688	* TODO: Restructuring TODO file (removing old stuff).
689	* doc/Doxyfile: Disabled Tex doxygen generation and changed
690	OUTPUT_DIRECTORY to api/.
691	* doc/Makefile.am: Added an update-docs target and related for updating
692	developer doc and doxygen reference HTML. Also added update-docs to
693	dist-hook for updating before distribution packaging.
694	* include/fluidsynth/synth.h: Some fixes to doxygen documentation.
695	* fluidsynth.spec.in: New RPM spec file which is generated at configure
696	time.
697	* Makefile.am: Added fluidsynth.spec(.in) to EXTRA_DIST.
698
6992003-08-19  Josh Green  <jgreen@users.sourceforge.net>
700
701	* src/fluid_alsa.c: Added some calls to snd_strerror() to print out
702	details of ALSA routine failures.
703	* src/fluid_defsfont.c: Put a message about SoundFont loading code
704	being borrowed from Smurf SoundFont Editor.
705	* src/fluid_rev.c: Valgrind found that some values were being used
706	uninitialized because fluid_revmodel_update() was being called before
707	all reverb parameters were set, now setting manually and then calling
708	update routine.
709	* src/fluid_voice.c: Increased FLUID_MAX_AUDIBLE_FILTER_FC to minimize
710	clicks from filter toggling. Added a FLUID_MIN_VOLENVRELEASE constant
711	to set the minimum volume envelope release to minimize clicks.
712
7132003-07-22  Josh Green  <jgreen@users.sourceforge.net>
714
715	* src/fluid_midishare.c: Added include of header "config.h" as
716	per Albert Graef's request.
717	* src/fluid_voice.c (fluid_voice_optimize_sample): Moved a
718	variable declaration to the beginning of function, it was
719	causing problems with at least one user.
720
7212003-06-28  Josh Green  <jgreen@users.sourceforge.net>
722
723	* src/fluid_defsfont.c: Moved call to fluid_voice_optimize_sample
724	from fluid_inst_zone_import_sfont to fluid_defsfont_load. Also
725	reduced minimum sample size before rejection from 48 to 8 (could
726	be lower?).
727	* src/fluid_voice.c (fluid_voice_optimize_sample): Added a check
728	for sample->valid to ignore ROM samples which was causing a crash
729	with Vintage Dreams and other SoundFont files with ROM samples.
730
7312003-06-17  Josh Green  <jgreen@users.sourceforge.net>
732
733	Release version 1.0.2
734	Added Makefile.am files where lacking.
735
736	* Makefile.am: Fixes to "make dist" target by adding macbuild, sf2
737	and winbuild to SUBDIRS also removed acconfig.h from EXTRA_DIST.
738	* acinclude.m4: Removed AC_JACK, now using pkgconfig.
739	* configure.ac: Updated to version 1.0.2, Jack test now using
740	pkgconfig and built by default if found, coreaudio driver now built
741	by default if found.
742	* doc/Makefile.am: Added Doxyfile, example.c, example.sf2, fluidsynth.1
743	and fluidsynth-v10-devdoc.xml to EXTRA_DIST.
744	* src/Makefile.am: fluid_jack.c now conditionally built, fluid_sse.h
745	added to EXTRA_DIST.
746	* src/fluid_jack.c: #if JACK_SUPPORT removed as its not needed.
747
7482003-06-15  Josh Green  <jgreen@users.sourceforge.net>
749
750	* configure.ac: Fixed detection of CoreAudio by looking for
751	CoreAudio/AudioHardware.h.
752	* src/Makefile.am: Added COREAUDIO_CFLAGS and COREAUDIO_LIBS.
753	* src/fluid_coreaudio.c: Added CoreAudio prefix to #include headers
754	(fluid_core_audio_callback): Fixed declarition to match that of the
755	typedef in CoreAudio header to stop warnings.
756	* fluidsynth.c: Now including fluidsynth_priv.h to include the arch
757	specific definitions in there (perhaps should be done in configure
758	script though).
759	* fluidsynth_priv.h: Added "#define WITHOUT_SERVER 1" to Darwin build.
760
7612003-06-12  Josh Green  <jgreen@users.sourceforge.net>
762
763	* Makefile.am: Added autogen.sh to EXTRA_DIST
764	* acinclude.m4: Added AM_PATH_READLINE macro for readline detection
765	and prefix configuration.
766	* configure.ac: Support for MinGW32 build, Darwin build fixes,
767	configure CFLAGS input value now honored, fixes to CoreAudio support,
768	and better readline detection and config.
769	* src/Makefile.am: Now conditionally compiling CoreAudio and Windows
770	sources, added config_*.h files to EXTRA_DIST, some stuff for MinGW32
771	build, READLINE_LIBS and READLINE_CFLAGS now used.
772	* src/fluid_dsound.c: Fixed some warnings by adding "void" for
773	empty parameter procedure declarations.
774	* src/fluidsynth.c: Don't include config_win32.h if MinGW32.
775	* src/fluidsynth_priv.h: Stuff for MinGW32 and Darwin builds.
776	* doc/fluidsynth-v10-devdoc.xml: Applied a diff from
777	Alexandre Prokoudine.
778
7792003-06-09  Josh Green  <jgreen@users.sourceforge.net>
780
781	* src/fluid_alsa.c: Added calls to pthread_attr_setschedparam to
782	properly create SCHED_FIFO threads.
783	* src/fluid_oss.c: pthread_attr_setschedparam calls added.
784	* src/fluid_midishare.c: Patch update from Stephane Letz.
785
7862003-05-29  root  <mn@bongo>
787
788	* src/fluid_synth.c (fluid_synth_one_block): Added a mutex that
789	provides a small degree of protection against noteons / noteoffs,
790	when the audio thread is working.
791
792	* src/fluid_synth.h (struct _fluid_synth_t):
793
794	* src/fluid_voice.c (fluid_voice_optimize_sample):
795
7962003-05-29  Markus Nentwig  <nentwig@users.sourceforge.net>
797
798	* include/fluidsynth/voice.h: added fluid_voice_gen_incr to api
799	* src/fluidsynth.c: Added error message for command line parameter handling
800	* src/fluid_voice.c (fluid_voice_optimize_sample): Removed loop peak detection
801	at run time, because it caused dropouts. Now the sound font loader or application
802	is responsible to call fluid_voice_optimize_sample (if it doesn't, the turnoff optimization is
803	simply disabled).
804
8051999-11-30  Antoine Schmitt  <as@gratin.org>
806
807	* src/fluid_defsfont.c: inst_zone lokey is now properly inialized to 0
808	(it was not, leading to random lost noteons depending on memory
809	initialization)
810
8112003-04-03  Peter Hanappe  <peter@hanappe.com>
812
813	* src/fluid_rev.c: reverb parameters are clipped to their valid
814	range.
815
816	* src/fluid_alsa.c: using fluid_alsa_audio_run_s16 as default
817	function. This reduces the high CPU usage.
818
819	* src/fluid_voice.c (fluid_voice_write): filter interpolation done
820	over only 1 buffer to avoid filter instability
821
822	* src/fluid_chan.c (fluid_channel_init): bank number set to 128
823	for the drum channel
824
825	* src/fluid_midi.c (fluid_midi_file_read_event): Correctly reading
826	pitchbend value
827
8282003-02-27  Josh Green  <jgreen@users.sourceforge.net>
829
830	Updated automake files (automake 1.6).
831
832	* configure.ac: New version autoconf variables which get substituted
833	into include/iiwusynth/version.h.in.
834	* include/iiwusynth/version.h.in: Version defines that are filled in
835	by autoconf.
836	* src/Makefile.am: Fixed SOURCES including removing headers that are
837	now in include/iiwusynth/, added missing sources (iiwu_ramsfont.[ch],
838	iiwu_sfont.h) and added iiwu_dsp_core.c to EXTRA_DIST.
839	* doc/Makefile.am: Added iiwusynth.1 to EXTRA_DIST.
840	* include/iiwusynth.h: Added version.h.
841	* iiwusynth/Makefile.am: Added version.h to the installed headers.
842
8432003-02-08  Markus Nentwig <nentwig@users.sourceforge.net>
844
845	* src/iiwu_ladspa.c: Added a very small signal at Nyquist
846	frequency. This fixes denormal number problems in some
847	plugins.
848	* src/iiwu_cmd.c (iiwu_shell_run): Now also invalid input lines
849	are added to the command line history. So the user can just scroll
850	up and fix them.
851	* src/iiwu_ladspa.c: Cleaned up error messages
852	* src/iiwu_dsp_core.c: Disabled SSE interpolation, because it is
853	slower than the normal code
854	* autogen.sh: Added a line, that checks for the presence of pkg-config in
855	autogen.sh.
856	Motivation: It took me some time to figure out what was wrong...
857	It produces some error message instead of an obscure error later
858	during ./configure, if pkg-config is not installed.
859
8602003-02-07  Josh Green <jgreen@users.sourceforge.net>
861
862	Applied another Bob Ham LADCCA patch.
863
864	* src/iiwu_alsa.c: LADCCA patch: Now using a ladcca.enable setting.
865	* src/iiwu_jack.c: LADCCA patch: ladcca.enable setting and jack ports
866	are no longer auto connected unless audio.jack.autoconnect is set.
867	* src/iiwusynth.c: LADCCA patch: ladcca.enable and command line options
868	-j and --connect-jack-outputs to enable Jack autoconnect.
869
8702003-02-05  Josh Green <jgreen@users.sourceforge.net>
871
872	Applied Bob Ham's LADCCA and pkgconfig patches.
873
874	* Makefile.am: pkgconfig patch.
875	* configure.ac: Renamed from configure.in as per new autoconf
876	standards. LADCCA configure switch and detection. FluidSynth.pc
877	pkgconfig file output.
878	* src/Makefile.am: LADCCA patch.
879	* src/iiwu_alsa.c [HAVE_LADCCA]: LADCCA patch: reports ALSA
880	sequencer client ID.
881	* src/iiwu_jack.c [HAVE_LADCCA]: LADCCA patch: reports JACK
882	client name.
883	* src/iiwusynth.c [HAVE_LADCCA]: LADCCA patch: connects to LADCCA
884	server, creates client thread, saves/restores SoundFont file state.
885	Used iiwu_sfont_get_name macro to get SoundFont file names contrary
886	to the patch. Should these macros be public? Included unistd.h
887	for usleep call (within HAVE_LADCCA).
888
8892003-01-23  Josh Green <jgreen@users.sourceforge.net>
890
891	* src/iiwu_jack.c: Fixed a segfault bug caused by freeing jack
892	port names, when really only the port array should be freed,
893	jack reference docs are confusing on this matter!
894	* src/iiwu_voice.c (iiwu_voice_check_sample_sanity): Min loop size
895	and padding now set via constants IIWU_MIN_LOOP_SIZE and
896	IIWU_MIN_LOOP_PAD defined at top of iiwu_voice.c, and the values
897	were lowered to exceed SF spec requirements rather then just meet.
898	(iiwu_voice_write): Now using a constant IIWU_MAX_AUDIBLE_FILTER_FC
899	defined at the top of iiwu_voice.c to control the filter
900	cutoff optimization. Also added IIWU_MIN_AUDIBLE_FILTER_Q so
901	filter will only turn off if both cutoff and q are determined to be
902	inaudible. Filter optimization is much less noticeable when modulating.
903
9042003-01-14  Markus Nentwig <nentwig@users.sourceforge.net>
905
906	* src/iiwu_ladspa.c: Adapted new command handler
907	* src/iiwu_midi_router.c (midi_dump_prerouter): Added forgotten
908	'flush' for event dump 'fprintf's
909
9102003-01-01  Markus Nentwig <nentwig@users.sourceforge.net>
911
912	* src/iiwu_oss.c (new_iiwu_oss_audio_driver): Changed to callback function
913	* src/iiwu_alsa.c (new_iiwu_alsa_midi_driver): Changed to callback function
914	* src/iiwu_midishare.c (iiwu_midishare_midi_driver_receive): Partly done the same
915	* src/iiwu_winmidi.c (new_iiwu_winmidi_driver): To be done...
916	* src/iiwu_midi_router.c: Added
917	* src/iiwu_ladspa.c: Adapted to new settings system
918	* src/iiwu_adriver.c (iiwu_audio_driver_settings): Uses getint
919	instead of getnum for audio.period-size and audio.periods settings.
920	* src/iiwu_voice.c (iiwu_voice_write):
921	Ignore the valid flag for samples. Otherwise no sound is produced.
922	* src/iiwu_chan.c (iiwu_channel_cc): Fixed bank select (7-bit
923	instead of 8 bit)
924
9252002-12-23  Peter Hanappe  <peter@hanappe.com>
926
927	* src/iiwu_io.c (iiwu_istream_readline): new file (iiwu_io.c and
928	iiwu_io.c) to handle IO in the shell.
929
930	* src/iiwusynth.c (main): options to start TCP server.
931
932	* src/iiwu_cmd.c (new_iiwu_server): New structure and functions
933	(new_iiwu_shell): New structure and functions to improve command
934	interface.
935	(new_iiwu_cmd_handler): New structure and functions to improve command
936	interface.
937
938	* src/iiwu_sys.c (new_iiwu_server_socket): New structure and
939	functions
940	(new_iiwu_thread): New structure and
941	functions
942
9432002-12-14  Peter Hanappe  <peter@hanappe.com>
944
945	* src/iiwu_chan.c (iiwu_channel_cc): Handling NRPN messages (NRPN
946	system).
947
948	* src/iiwu_voice.c (iiwu_voice_update_param): Does more extensive
949	range checking because the NPRN system may produce out-of-range
950	values (NRPN system).
951	(iiwu_voice_set_param): New function to change
952	generator values (NRPN system).
953
954	* src/iiwusynth_priv.h (iiwu_clip): New macro
955
956	* src/iiwu_synth.c (iiwu_synth_set_gen): New function to change
957	generator values (NRPN system).
958
959	* src/iiwu_gen.c (iiwu_gen_map_nrpn): New function to map the NRPN
960	data input to the parameter range (NRPN system).
961
962	* src/iiwu_midi.c (iiwu_midi_file_read_event): Fixed metadata
963	buffer bug (alloc size 1 too small).
964
9652002-12-10  Peter Hanappe  <peter@hanappe.com>
966
967	* src/iiwu_dsound.c (iiwu_win32_destroy_window): Filled in the
968	empty lines...
969
970	* src/iiwusynth.h: Changes in the definition for iiwu_synth_sfload
971	and iiwu_synth_sfunload, New functions: iiwu_synth_sfreload,
972	iiwu_synth_get_sfont_by_id, and iiwu_list_insert_at. New 'id'
973	field in iiwu_font_t.
974
9752002-12-08  Markus Nentwig  <nentwig@users.sourceforge.net>
976
977	* src/Makefile.am: added iiwu_hash.c and iiwu_strtok.c to libiiwusynth_la_SOURCES
978	* src/iiwu_settings.c (iiwu_settings_init): Removed
979	multi_channel from the settings (replaced with audio_channels > 1)
980	* src/iiwu_settings.c (iiwu_settings_init): added audio_groups
981	setting. This is the number of individual channels generated from
982	the synth, and always equal to audio_channels, as long as the
983	LADSPA Fx unit is disabled. Otherwise it can be used (for
984	example) to separate even and odd MIDI channels, apply different Fx
985	and mix together to one stereo output.
986	src/iiwu_ladspa.c: Extended Fx unit to multigroup input, fx sends
987	and multiple audio output channels
988
9892002-12-04  Peter Hanappe  <peter@hanappe.com>
990
991	* src/iiwu_midi.c (iiwu_midi_file_read_event): the metadata buffer
992	is now dynamically allocated. What! Dynamic memory management
993	already existed in the sixties!
994
995	* src/iiwu_cmd.c (iiwu_handle_reset): New shell command. Sends
996	system reset.
997
998	* src/iiwu_cmd.c (iiwu_expand_path): New function to handle
999	filenames starting with '~'.
1000
1001	* src/iiwu_cmd.c: Added commands for working with tunings. Added
1002	'source' command.
1003
1004	* src/iiwu_chan.h (struct _iiwu_channel_t): added tuning
1005
1006	* src/iiwusynth.h: new tuning functions
1007
1008	* src/iiwu_synth.c (iiwu_synth_reset_tuning): new tuning functions
1009
1010	* src/iiwu_voice.c: Added tuning
1011
10122002-12-03  Peter Hanappe  <peter@hanappe.com>
1013
1014	* doc/iiwusynth.1: new man page
1015
1016	* src/iiwu_midi.c (iiwu_player_load): the player now handles a
1017	playlist.
1018
1019	* src/iiwusynth.h: 'iiwu_player_add' replaces 'iiwu_player_load'
1020
1021	* src/iiwusynth.c (main): iiwusynth can now play midifiles.
1022
10232002-12-02  Peter Hanappe  <peter@hanappe.com>
1024
1025	* src/iiwu_sys.c (new_iiwu_timer): New argument 'auto_destroy' to
1026	specify whether the timer should delete it's structure when the
1027	timer is finished.
1028
1029	* src/iiwu_synth.c (iiwu_synth_sfunload): If the soundfont can not
1030	be unloaded immediately, a timer thread is spinned of to unload it
1031	later. On MacOS 9, the unload is tried at a subsequent 'load' or
1032	'unload' request.
1033
1034	* src/iiwusynth.h (struct _iiwu_sample_t): Added 'refcount' field
1035	to test when a soundfont can be unloaded.
1036
1037	* src/iiwu_synth.c (iiwu_synth_nwrite_float): New function
1038	allowing multi-channel audio output.
1039	(iiwu_synth_init): Fixed 'amount' for pan. Now set to 500.
1040
1041	* src/iiwu_cmd.c (iiwu_synth_cmdshell): Added little prompt.
1042
1043	* src/iiwusynth.c (print_welcome): iiwusynth prints out a welcome
1044	message as an well-behaved, interactive application should.
1045
1046	* src/iiwu_synth.c (iiwu_synth_all_sounds_off): New function to
1047	implement the 'All Sound Off' MIDI messages (CC 120).
1048	(iiwu_synth_system_reset): This function now also resets the
1049	default controller values on the MIDI channels, and clears the
1050	reverb and chorus delay lines.
1051	(iiwu_synth_count_midi_channels): New function to retreive the
1052	number of available midi channels.
1053	(iiwu_synth_count_audio_channels): New function to retreive the
1054	number of available midi channels.
1055	(iiwu_synth_count_effects_channels): New function to retreive the
1056	number of available effects channels.
1057	(iiwu_synth_get_cpu_load): New function to retreive an estimation
1058	of the CPU load.
1059
1060	* src/iiwusynth.h: Added fields to handle multi-channel audio and
1061	a variable number of midi-channels. The 'flags' has been
1062	expanded/replaced with several variables.
1063
1064	* src/iiwu_chan.c (iiwu_channel_cc): Implemented the 'All Control
1065	Off' MIDI message (CC 121).
1066
1067	* src/iiwu_chorus.c (iiwu_chorus_update): iiwu_chorus_update
1068	(called after the iiwu_chorus_set_xxx function) no longer returns
1069	an error of out-of-range values. It clips the value the the
1070	[min-max] range.
1071
10722002-11-22  Markus Nentwig  <nentwig@users.sourceforge.net>
1073	* src/iiwu_voice.c (iiwu_voice_write): Fixed compilation problem
1074	without --enable-SSE (Pentium II and Mac)
1075
10762002-11-17  Markus Nentwig  <nentwig@users.sourceforge.net>
1077
1078	* src/iiwu_voice.c (iiwu_voice_write): Fixed nonlooped samples-bug.
1079	* TODO (TODO): Updated
1080	* src/iiwu_cmd.c (iiwu_handle_reverbsetlevel): Changed command
1081	line command 'rev_setwet' to 'rev_setlevel'. Replaced the word 'wet' by
1082	'level' in most places.
1083	 Added a command line option --dump, which provides
1084	 'machine-readable' output from stdout to hook up a user interface.
1085	* src/iiwusynth.h: Moved the default values for gain, chorus and
1086	reverb here. Might be useful as an example...
1087	* src/iiwu_voice.c (iiwu_voice_calculate_runtime_synthesis_parameters):
1088	Added 'scale tuning' modulator, centered around C3.
1089	* src/iiwusynth.h: Added API functions to read the reverb state
1090	Moved iiwu_synth_system_reset to the API
1091
10922002-11-08  Markus Nentwig  <nentwig@users.sourceforge.net>
1093
1094	* src/iiwu_voice.c (iiwu_voice_write): Fixed Volume envelope delay bug
1095	* src/iiwu_voice.c (FILTER_TRANSITION_SAMPLES): Doubled filter
1096	fading time
1097	* src/iiwu_mod.c (iiwu_mod_get_value): Changed convex unipolar
1098	negative definition
1099	* src/iiwu_voice.c (iiwu_voice_off): Cleaned up a bit, uses now
1100	calls to iiwu_voice_off, when a voice is finished.
1101	* src/iiwu_midi.c (iiwu_midi_parser_parse): Reimplemented
1102	New parser should be able to cope with realtime, system common
1103	and resynchronize.
1104
11052002-10-31  Markus Nentwig  <nentwig@users.sourceforge.net>
1106
1107	* src/iiwu_alsa.c (iiwu_alsa_midi_run): Increased MIDI timeout
1108	from 1 to 100 ms
1109	* src/iiwu_dsp_core.c: Merged identical filter coefficients b0 and
1110	b2 into b02
1111	Implemented smooth filter transitions
1112	* src/iiwu_sys.c (iiwu_check_fpe): Added verbose FPE reporting and
1113	systematic FPE checks.
1114	* src/iiwu_rev.c: Added a constant DC offset to avoid slowdown
1115	caused by denormal numbers
1116	* src/iiwu_synth.c (delete_iiwu_synth): Fixed segv during shutdown
1117	* src/iiwu_dsp_core.c: Fixed buffer bug (aligned-unaligned)
1118	* src/iiwu_synth.c (iiwu_synth_damp_voices): Commented out unused code
1119	* src/iiwu_dsp_core.c: Optimized, added SSE code, which is
1120	this time actually faster than the default code. Well. Part of it.
1121	* src/iiwu_voice.c: Minor clean-up
1122	* configure.in: Added switch --enable-longlong
1123	* configure.in: Added switch --enable-SSE
1124	* src/iiwu_phase.h: Added 64 bit operations, documented
1125	* src/iiwu_sse.h: Check to avoid #including the file more than once
1126
11272002-10-29  Markus Nentwig <nentwig@users.sourceforge.net>
1128
1129	* src/iiwu_voice.c: Added experimental SSE support for Pentium
1130	III. Comment out #define SSE from iiwu_voice.c to get back to the standard version.
1131
11322002-10-26  Markus Nentwig  <nentwig@users.sourceforge.net>
1133
1134	* src/iiwu_seq.c: Fixed a couple of warnings
1135	* src/iiwu_voice.c (new_iiwu_voice): Removed iiwu_voice_init.
1136	* src/iiwu_dsp_core.c: New 7th order interpolation.
1137
11382002-10-24  Markus Nentwig  <nentwig@users.sourceforge.net>
1139
1140	* src/iiwu_voice.c(iiwu_voice_determine_amplitude_that_reaches_noise_floor_for_sample):
1141	Added checking for invalid sample.
1142	* src/iiwu_voice.c (iiwu_voice_write):
1143	Moved the DSP core functions into iiwu_dsp_core.c.
1144	Optimized, cleaned up, documented.
1145	Amplitude scaling short => floating point is now done as the last
1146	operation in the DSP loop (voice->amp does not include the scaling
1147	factor anymore).
1148	* src/iiwu_synth.c (iiwu_synth_one_block): Saved a couple of
1149	multiplications per sample by moving the master gain into iiwu_voice_write
1150	* src/iiwu_synth.c (iiwu_synth_free_voice_by_kill): Modified the algorithm
1151	* src/iiwu_synth.c (iiwu_synth_alloc_voice): Noteon algorithm will
1152	now turn off retriggered running voices ('sustain pedal problem')
1153
11542002-10-18  Markus Nentwig  <nentwig@users.sourceforge.net>
1155
1156	* src/iiwu_alsa.c (new_iiwu_alsa_midi_driver): Disabled
1157	high-priority scheduling for the MIDI thread to get rid of audio dropouts.
1158	* src/iiwu_synth.c (iiwu_synth_free_voice_by_kill): Modified voice
1159	killing algorithm, so that recently started voices are not killed
1160	* src/iiwu_voice.c (iiwu_voice_run_dsp): Changed some variable
1161	names. Extensive loop point checking, when loop points are modulated.
1162	* src/iiwusynth.h: Added functions to read the state of the
1163	chorus.
1164	* src/iiwu_chorus.c: Rewrote chorus setup logic (if a parameter is
1165	out-of-range, all other parameter changes are discarded).
1166	* src/iiwu_voice.c: Added caching for loop peak detection: The
1167	amplitude of the loop is only detected once for each
1168	sample. Exception only, if the resulting loop differs from the
1169	original loop settings of the sample (in this case, the peak
1170	detection is still run for each noteon event).
1171	* src/iiwusynth.h (struct _iiwu_sample_t): Added 'amplitude_that_reaches_noise_floor_is_valid'
1172	and 'amplitude_that_reaches_noise_floor'
1173	* src/iiwu_voice.c(iiwu_voice_calculate_runtime_synthesis_parameters):
1174	Renamed 'iiwu_voice_optimize'
1175
11762002-07-21  Peter Hanappe  <peter@hanappe.com>
1177
1178	* src/Makefile.am (libiiwusynth_la_SOURCES): Followed Bob Ham's
1179	suggestion for the Makefile.am to fix the problems with automake
1180	1.6
1181
11821999-11-30  Tim Goetze <tim@quitte.de>
1183	* src/iiwu_synth.c (iiwu_synth_alloc_voice): New algorithm for
1184	voice allocation, when all voice processes are in use
1185
11861999-11-30  Markus Nentwig <nentwig@users.sourceforge.net>
1187	* src/iiwu_synth.c (iiwu_synth_alloc_voice): Applied above patch,
1188
11892002-07-08  Markus Nentwig <nentwig@users.sourceforge.net>
1190
1191	* src/iiwu_synth.c (iiwu_synth_noteoff): Changed noteoff strategy:
1192	Noteoff now turns off all voice processes with the same channel /
1193	key, regardless of the voice ID (avoids stuck notes).
1194
11952002-07-13  Peter Hanappe  <peter@hanappe.com>
1196	* src/Makefile.am (EXTRA_libiiwusynth_la_SOURCES): Applied Takashi
1197	Iwai's patch. The configure stuff in iiwusynth-0.2 cannot be
1198	rebuilt with the latest automake 1.6.  You cannot use substitution
1199	for *_SOURCES in Makefile.am. This fixes this problem.
1200
12011999-11-30  Markus Nentwig  <nentwig@users.sourceforge.net>
1202
1203	* src/iiwusynth.h: Added documentation, removed GEN_CHANGED (it
1204	was unused).
1205
1206	* src/iiwu_mod.c (iiwu_dump_modulator): Cleaned up
1207
1208	* src/iiwu_cmd.c (iiwu_handle_help): Restructured command line
1209	help system
1210
12112002-06-14  Markus Nentwig  <nentwig@users.sourceforge.net>
1212
1213	* src/iiwu_chorus.c (iiwu_chorus_processmix): Turning off chorus now, when parameters are wrong (avoid FPE)
1214	* src/iiwu_voice.c (iiwu_voice_write): Optimized turnoff condition for voice
1215
12162002-06-11  Markus Nentwig  <nentwig@users.sourceforge.net>
1217
1218	* src/iiwu_voice.c (iiwu_voice_add_mod): Fixed bug that prevented non-default modulators from being added.
1219	(iiwu_voice_config): Added peak detection for the sample loop, and a condition turning off the voice,
1220	if loop peak volume and amplitude envelope combined fall below the noise floor.
1221
12222002-06-06  Peter Hanappe  <peter@hanappe.com>
1223
1224	* acinclude.m4: Fixed problems with enable/disable jack and
1225	midishare
1226
12272002-06-06  Tim Goetze  <tim@quitte.de>
1228
1229	* src/iiwu_synth.c (iiwu_synth_all_notes_off): Added handling of
1230	all-notes-off midi message
1231
12322002-06-03  Markus Nentwig <nentwig@users.sourceforge.net>
1233	*  src/iiwu_chorus.c: Fixed bug in initial phase calculation
1234
12352002-06-02  Peter Hanappe  <peter@hanappe.com>
1236
1237	* src/iiwu_jack.c: updated for new JACK types.
1238
12392002-06-02  Bob Ham  <node@users.sourceforge.net>
1240
1241	* acinclude.m4: Changed acinclude.m4 for configure to ignore jack.
1242
12432002-06-02  Markus Nentwig <nentwig@users.sourceforge.net>
1244	* autogen.sh: Added libtoolize -f to prevent error message 'libtool: ltconfig version does not match ltmain.sh version ...'
1245        * src/iiwusynth.h: Changed iiwu_voice_add_mod_t to iiwu_voice_add_mod
1246	* src/iiwu_synth.c: Added NULL termination to list returned by iiwu_synth_get_voicelist
1247	* src/iiwusynth.h: Added iiwu_synth_set_chorus (API function)
1248	* src/iiwu_synth.c: Added iiwu_synth_set_(reverb|chorus)_on (API functions)
1249	* src/iiwu_cmd.c: Added control commands for chorus (see help)
1250
12512002-05-26  Tim Goetze <tim@quitte.de>
1252        * src/iiwu_voice.c (iiwu_voice_noteoff): Fixed conversion between
1253	volenv-values from attack segment to later envelope segments
1254
12552002-05-22  Markus Nentwig <nentwig@users.sourceforge.net>
1256
1257	* src/iiwu_voice.c (iiwu_voice_query_ID): Added, API function
1258
1259	(iiwu_voice_query_playing): Added, API function
1260
1261	(iiwu_voice_write): Fixed problem with filter caused 05-18
1262
1263	* src/iiwusynth.h: Moved iiwu_voice_update_param into the API
1264
1265
12662002-05-19  Markus Nentwig <nentwig@users.sourceforge.net>
1267
1268	* src/iiwusynth.h (iiwu_synth_get_voicelist): Added.
1269
1270	* src/iiwu_voice.c (iiwu_voice_noteoff): Added a conversion for linear to cB amplitude, when a note is turned off
1271	during the attack phase of the volume envelope
1272
1273	* src/iiwu_gen.h: Moved the generator definition to API. Changed the fields to 'double'.
1274
1275	* src/iiwu_mod.c: Moved the modulator definitions to API. Changed the data type of amount to 'double'.
1276
1277	* src/iiwu_voice.c (iiwu_voice_write): The condition, that quits a voice, when the amplitude
1278	falls below a threshold now uses only the volume envelope instead of the voice amplitude.
1279	Previously, turning a volume pedal briefly to 0 would quit all voices playing.
1280
1281	* src/iiwu_rev.c (iiwu_revmodel_processreplace): Removed 'dry' path from reverb unit
1282	Motivation: This saves a couple of multiplications, the dry signal goes through the ordinary output
1283	anyway.
1284
1285	* src/iiwusynth.h (iiwu_synth_kill_by_exclusive_class): added to API
1286	* src/iiwu_synth.c (iiwu_synth_kill_by_exclusive_class): Extended the exclusive class function to
1287	work with stereo samples
1288	(iiwu_synth_set_reverb): Renamed iwu_synth_set_reverb to iiwu_synth_set_reverb_preset
1289	iiwu_synth_set_reverb is now an API function, that allows to set all reverb parameters.
1290
12912002-05-18  Markus Nentwig  <nentwig@users.sourceforge.net>
1292
1293	* src/iiwu_chorus.c: Implemented variable delay line with bandlimited interpolation. Documentation, error handling.
1294	Removed unneeded and broken features
1295	* src/iiwusynth_priv.h: Moved typedef struct iiwu_mod_t iiwu_mod_t into iiwusynth.h
1296	* src/iiwusynth.h: Moved iiwu_voice_add_mod from iiwu_voice.h into iiwusynth.h (now API function).
1297	* src/iiwu_voice.c (iiwu_voice_update_param): Inserted chorus send into DSP loop
1298	(iiwu_voice_write): Added flag 'voice->update_filter'. Now Q can be modulated.
1299
13002002-05-12  Markus Nentwig  <nentwig@users.sourceforge.net>
1301
1302	* src/iiwu_synth.c (iiwu_synth_pitch_wheel_sens): added
1303	* src/iiwu_chan.c (iiwu_channel_pitch_wheel_sens): added
1304	* src/iiwu_cmd.c (iiwu_handle_reverbsetwidth): changed 'wet' to
1305	* 'width'
1306
13072002-05-11  Markus Nentwig  <nentwig@users.sourceforge.net>
1308
1309	* src/iiwu_conv.c (iiwu_tc2sec):
1310	Added more conversion functions with range check for different ranges:
1311	(iiwu_tc2sec_attack):
1312	(iiwu_tc2sec_hold):
1313	(iiwu_tc2sec_release):
1314
1315	* src/iiwu_voice.c (iiwu_voice_add_mod):
1316	implemented modulator src 0 (constant mod offset)
1317	* src/iiwu_voice.c (iiwu_voice_update_param):
1318	sample-and envelope related voice parameters
1319	are now handled together with other voice parameters.
1320	Implemented generators:
1321	GEN_KEYTOVOLENVDECAY
1322	GEN_KEYTOVOLENVHOLD
1323	GEN_KEYTOMODENVDECAY
1324	GEN_KEYTOMODENVHOLD
1325
13262002-05-10  Peter Hanappe  <peter@hanappe.com>
1327
1328	* src/iiwu_synth.c (iiwu_synth_start_voice): added
1329	iiwu_synth_start_voice() to handle exclusive classes.
1330
13312002-05-09  Peter Hanappe  <peter@hanappe.com>
1332
1333	* src/iiwu_conv.h: removed velocity to cB conversion. No longer
1334	used.
1335
1336	* src/iiwu_synth.c (iiwu_synth_write_float): removed limiter
1337
1338	* src/iiwu_synth.h (IIWU_NUM_CHANNELS): set the number of channels
1339	to 64.
1340
1341	* src/iiwu_synth.c (iiwu_synth_get_internal_bufsize): added
1342
1343	* src/iiwu_ladspa.h: lower-cased ladspa files
1344
1345	* src/iiwusynth.h: prefixed log levels with IIWU_... Updated all
1346	references.
1347
1348	* src/iiwu_cmd.c (iiwu_handle_reverb): renamed 'rev_enable' to
1349	'reverb' in correspondance with the long command line arguments
1350
1351	* src/iiwusynth.c (main): checking if files on command line are valid
1352
1353	* src/iiwuplay.c (main): checking if files on command line are valid
1354
1355	* src/iiwusynth.h: New log level for verbose messages: IIWU_INFO
1356
13572002-04-30  Markus Nentwig  <nentwig@users.sourceforge.net>
1358
1359	* src: Added iiwu_LADSPA.c, iiwu_LADSPA.h (support for LADSPA effect plugins).
1360
1361	* src/iiwusynth.c (main): Changed default gain to 0.2.
1362
1363	* src/iiwu_voice.c: Restructured the voice initialization as follows:
1364	(iiwu_voice_init): sample position, IIR filter history, envelopes etc. are reset.
1365	(iiwu_voice_optimize): The generators (nominal value) have been set by the sound font.
1366	Now each modulator is calculated once to obtain the 'final' initial value for each
1367	generator, which consists of nominal value and modulator-contributed part.
1368	(iiwu_voice_update_param): Calculates all voice parameters, which depend on one
1369	particular generator. This is called once for each voice parameter during
1370	voice_optimize and further each time, when a modulator changes a generator.
1371	(iiwu_voice_update_param): Added a voice parameter filter_gain to avoid
1372	recalculating the filter gain each time the center frequency changes (it depends
1373	only on Q)
1374	(iiwu_voice_write): Voice is now turned off, when the amplitude falls below -100 dB,
1375	even during the sustain phase (happens, when holding a piano key for a very long time)
1376
1377	* src/iiwu_voice.c (iiwu_voice_noteoff): Moved voice->chan = NO_CHANNEL into iiwu_voice_off.
1378	Previously a released note was not modulated anymore, for example pitch bend stopped working as soon
1379	as the key was released.
1380
1381	* src/iiwu_voice.h: Changed _ON macro to figure out the state of a key from the position in
1382	the envelope, instead of using a cleared channel number as indicator.
1383
1384	* src/iiwu_synth.c: Implemented all default modulators
1385	Added LADSPA support.
1386	Added digital clipping.
1387	Moved master gain factor ahead of LADSPA Fx.
1388
1389	* src/iiwu_mod.c: 'Hardcoded' GM default modulator vel => filter.
1390	Replaced 128 with 127 in (127-x)
1391
1392	* src/iiwu_midi.c: Fixed sysex for realtime MIDI. Fixed pitch bend bug.
1393
1394	* src/iiwu_gen.c (iiwu_gen_set_default_values): Using float instead of int for default values.
1395	Added references to specifications (doc). Changed 'init array' function name to 'set_default' .
1396
1397	* src/iiwu_defsfont.c (iiwu_preset_zone_import_sfont): Import of modulators
1398	(iiwu_inst_zone_import_sfont): Import of modulators
1399	(iiwu_defpreset_noteon): Added modulators, fixed generator problem (local zone overwrites global zone, previously it added)
1400
1401	* src/iiwu_conv.c: Using now oncave / convex equation from SF specs.
1402	Removed ct2hz functions and tables.
1403	(iiwu_ct2hz): Limit checking
1404	(iiwu_cb2amp): Removed 'magic number'
1405	(iiwu_tc2sec): Avoided == for iiwu_real_t
1406
1407	* src/iiwu_cmd.c: Increased number of tokens. Using WORKLINELENGTH constant.
1408	Changed max. gain to 5.
1409	Added LADSPA commands.
1410	Renamed misleading rev_bypass command to rev_enable
1411
1412	* src/iiwu_chan.c: Centered pitch wheel. Added 'expression' modulator (CC 11).
1413	* configure.in: Added LADSPA support
1414
14152002-04-03  Peter Hanappe  <peter@hanappe.com>
1416
1417	* src/iiwu_voice.c (iiwu_voice_run_dsp): Integrated Markus
1418	Nentwig's new filter design
1419
1420
14212002-03-12  Peter Hanappe  <peter@hanappe.com>
1422
1423	* src/iiwusynth.h: the preset iteration in a soundfont now takes a
1424	pointer to a preset structure
1425
1426	* src/iiwu_sys.c (iiwu_profile_data): added support for profiling
1427
1428	* src/iiwu_voice.c (iiwu_voice_write): turns off voice if
1429	amplitude < -100 dB in release phase. Set filter gain back to old
1430	value (0.25f * ...)
1431
1432	* src/iiwuplay.c (main): added gain, interactive, and reverb options
1433
1434	* src/iiwusynth.c (main): added gain and reverb options
1435
1436	* src/iiwu_synth.c (iiwu_synth_write_s16): added brickwall limiter for s16 samples
1437
14382002-01-29  Stephane Letz  <letz@grame.fr>
1439
1440	* src/iiwu_midishare.c : Compilation on MacOSX, use a task for typeNote management
1441	* src/iiwu_sys.c : Compilation on MacOSX
1442	* src/iiwu_sys.h : Compilation on MacOSX
1443	* src/iiwu_sfont.c : Use the flag MACINTOSH instead of MACOS
1444	* config_macos.h : Cleanup
1445	* config_macosx.h : New file, compilation on MacOSX
1446
1447
14482002-01-21  Stephane Letz  <letz@grame.fr>
1449
1450	* src/iiwu_midi.c (delete_iiwu_midi_handler): Desallocation of heap allocated strings
1451	* src/iiwusynth_priv.h : Definition of strdup if not available (Macintosh)
1452
1453
14542002-01-16  Peter Hanappe  <peter@hanappe.com>
1455
1456	* src/iiwu_alsa.c (new_iiwu_alsa_seq_driver): Applied and adjusted
1457	Bob Ham's patch: support for configurable ALSA sequencer client
1458	name.
1459
1460	* src/iiwu_chan.c (iiwu_channel_cc): Applied Bob Ham's patch:
1461	added bank select midi message.
1462
1463
14642001-12-31  Peter Hanappe  <peter@hanappe.com>
1465
1466	* src/iiwu_synth.c (iiwu_synth_damp_voices): Sustain messages are
1467	now handled. Updated iiwu_channel and iiwu_voice.
1468	(delete_iiwu_synth): SoundFonts are deleted.
1469
14702001-12-21  Stephane Letz  <letz@grame.fr>
1471
1472	* src/iiwu_midishare.c (new_iiwu_midishare_midi_driver,
1473		delete_iiwu_midishare_midi_driver):
1474	 Updated to be compiled either in driver or application mode
1475	 with the flag MIDISHARE_DRIVER.
1476
14772001-12-20  Stephane Letz  <letz@grame.fr>
1478
1479	* src/iiwu_portaudio.c (iiwu_portaudio_run , new_iiwu_portaudio_driver):
1480	 Adaptation for new audio drivers
1481
1482	* src/iiwu_synth.c (audio driver definition):
1483	Adaptation for PortAudio driver
1484
1485	* src/iiwu_sys.c (header): Adaptation for compilation on MacOS9
1486
1487	* src/iiwu_sys.h (header): Adaptation for compilation on MacOS9
1488
14892001-12-16  Peter Hanappe  <peter@hanappe.com>
1490
1491	* src/iiwuplay.c (main): The .iiwusynth file is loaded *before*
1492	the soundfonts on the command lines are loaded
1493
1494	* src/iiwusynth.c (main): idem.
1495
14962001-12-16  Peter Hanappe  <peter@hanappe.com>
1497
1498	* src/iiwu_midi.c (iiwu_player_callback): Fixed error in midi
1499	timing after a tempo change
1500
1501	* src/iiwu_jack.c (new_iiwu_jack_audio_driver): Added first
1502	version of JACK driver
1503
15042001-12-14  Peter Hanappe  <peter@hanappe.com>
1505
1506	* src/iiwu_synth.c (iiwu_synth_noteoff): noteon/notoff events can
1507	print a clear message, useful for debugging.
1508
1509	* src/iiwu_sys.c (struct _iiwu_timer_t ): timer moved from
1510	iiwu_midi.c to iiwu_sys.c
1511
1512	* src/iiwusynth.h: New organization of settings; using bit flags;
1513	added verbose option
1514
1515	* src/iiwusynth.c (main): Added the verbose option
1516
1517	* src/iiwuplay.c (main): Added the verbose option
1518
15192001-10-05  Stephane Letz  <letz@grame.fr>
1520
1521	* src/iiwu_portaudio.c (new_iiwu_portaudio_driver): imported new
1522	driver for the PortAudio library.
1523
15242001-10-04  Stephane Letz  <letz@grame.fr>
1525
1526	* src/iiwu_synth.c (new_iiwu_synth):  Fixed bug in synth initialisation
1527
15282001-10-02  Peter Hanappe  <peter@hanappe.com>
1529
1530	* src/iiwu_cmd.c (iiwu_get_userconf): returns default user
1531	configuration
1532	(iiwu_get_sysconf): returns default system configuration
1533	(iiwu_synth_cmdline): Fixed bug with argument offset. Empty lines
1534	are skipped correctly.
1535
1536	* src/iiwusynth.c (main): loads the user or system config
1537
1538	* src/iiwuplay.c (main): loads the user or system config
1539
1540	* src/iiwu_synth.c (iiwu_sp_write): Using new envelope model for
1541	modulation envelope
1542
15432001-09-29  Peter Hanappe  <peter@hanappe.com>
1544
1545	* src/iiwu_synth.c (iiwu_sp_write): redesigned the envelopes.
1546
15472001-09-20  Peter Hanappe  <peter@hanappe.com>
1548
1549	* src/iiwu_synth.c (iiwu_sp_write): redesigned the dsp loop. it's
1550	faster and it sounds better (!)
1551
15522001-09-19  Peter Hanappe  <peter@hanappe.com>
1553
1554	* src/iiwu_sfont.c (iiwu_sample_import_sfont): better checking for
1555	minimum sample size, loop start and loop end offsets.
1556
15572001-09-17  Peter Hanappe  <peter@hanappe.com>
1558
1559	* src/iiwu_synth.c (iiwu_sp_write): improved calculation of filter
1560	coefficients
1561	(new_iiwu_synth): using settings structure
1562
15632001-09-09  Peter Hanappe  <peter@hanappe.com>
1564
1565	* src/iiwu_synth.h (iiwu_phase_decr): fixed bug
1566
1567	* src/iiwu_synth.c (iiwu_synth_noteoff): noteoff now turns off the
1568	oldest note only (instead of all notes with the given channel and
1569	key)
1570
15712001-07-10  Peter Hanappe  <peter@hanappe.com>
1572
1573	* src/iiwu_midi.h: removed midi driver join function. updated all
1574	structures, implementations and callers.
1575
15762001-07-04  Peter Hanappe  <peter@hanappe.com>
1577
1578	* src/iiwuplay.c (print_help): corrected errors in the help and
1579	usage display.
1580
15812001-06-29  Peter Hanappe  <peter@hanappe.com>
1582
1583	* src/iiwu_synth.c (iiwu_synth_one_block): new function. fills the
1584	buffer with fresh samples.
1585	(iiwu_synth_write_lr): now calls iiwu_synth_one_block. the
1586	synthesizer uses fixed synthesis buffer size, independent of the
1587	requested buffer length passed to iiwu_synth_write_lr.
1588	(iiwu_revmodel_processreplace): new uses fixed IIWU_BUFSIZE value
1589	for buffer length.
1590	(iiwu_revmodel_processmix): uses fixed IIWU_BUFSIZE value
1591
15922001-06-22  Peter Hanappe  <peter@hanappe.com>
1593
1594	* src/iiwusynth.c (iiwu_handle_fonts): new shell command to list
1595	the loaded fonts.
1596	(iiwu_handle_mstat): new shell command to list the statistics of
1597	the midi driver.
1598
15992001-06-19  Peter Hanappe  <peter@hanappe.com>
1600
1601	* src/iiwusynth.c (main): Several command line options are
1602	available to select the midi and audio driver and device. Using
1603	the getopt function on posix machines.
1604
16052001-06-16  Peter Hanappe  <peter@hanappe.com>
1606
1607	* src/iiwu_synth.h: new iiwu_revmodel_presets_t structure to store
1608	reverb presets (concert hall, room, ...)
1609
1610	* src/iiwu_synth.c (iiwu_synth_write_lr): now using 1 reverb for
1611	all synthesis processes. the synthesis processes now receive a
1612	left and right buffer, a reverb buffer, a chorus buffer, and a
1613	monobuffer for their temporarry storage. reverb now always on.
1614
1615	(new_iiwu_sp): no longer allocating a reverb module nor a
1616	monobuf. only one reverb model and monobuffer allocated by the
1617	synth object (read: much less memory usage).
1618
1619	* src/iiwu_midi.c (iiwu_player_callback): fixed timing
1620	errors. midi should play correctly now.
1621
16222001-06-09  Peter Hanappe  <peter@hanappe.com>
1623
1624	* src/iiwu_synth.c (iiwu_sp_write_lr): now using a 64-bits
1625	fixed-point number to calculate the phase of the
1626	wavetable. because of rounding erros, the float value I used
1627	before gave terrible tuning problems. I updated all the
1628	intepolation macros.
1629
1630	* src/iiwusynth_priv.h: included the iiwu_phase_t data type. This
1631	type represents a 64-bits fixed-point number. It's used to hold
1632	the phase in the wavetable.
1633
16342001-06-08  Peter Hanappe  <peter@hanappe.com>
1635
1636	* src/iiwu_midi.c (new_iiwu_midi_handler): Better support for
1637	runtime selection of the MIDI driver (using the
1638	iiwu_mdriver_definition_t structure)
1639
1640	* src/iiwu_auport.c (new_iiwu_auport): Better support for runtime
1641	selection of the audio driver (using the iiwu_adriver_definition_t
1642	structure)
1643
16442001-06-07  Peter Hanappe  <peter@hanappe.com>
1645
1646	* src/iiwu_synth.c (iiwu_sp_write_lr): rewrote the dsp function to
1647	accept a seperate left and right channel buffer.
1648	(iiwu_sp_write_lr): using cubic hermite interpolation by default.
1649	(iiwu_synth_write_lr): added a dsp function to accept a seperate
1650	left and right channel buffer.
1651
16522001-05-26  Peter Hanappe  <peter@hanappe.com>
1653
1654	* src/iiwu_midi.c (iiwu_midi_parser_parse): Fixed a bug in the
1655	midi parser (running status should not be split in a status and
1656	channel part for system messages).
1657	(iiwu_midi_send_event): pitch bend events are now handled
1658
16592001-05-25  Peter Hanappe  <peter@hanappe.com>
1660
1661	* src/iiwu_midi.c (iiwu_midi_file_getc): Fixed bug when pushed
1662	back byte equals zero (mf->c >= 0)
1663
1664	* src/iiwu_midi.c (iiwu_midi_file_getc): Fixed bug when pushed
1665	back byte equals zero (mf->c >= 0)
1666
16672001-05-24  Peter Hanappe  <peter@hanappe.com>
1668
1669	* src/iiwusynth.c: added the stupidly simple interpreter
1670
1671	* src/iiwu_synth.c: removed all param strcutures.
1672
1673	* src/iiwu_synth.c (iiwu_channel_get_banknum): new function
1674
16752001-05-23  Peter Hanappe  <peter@hanappe.com>
1676
1677	* src/iiwu_synth.c (iiwu_sp_write): Fixed devide by zero in filter
1678
1679	* src/smurf.c (gerr): applied Josh's patch: using va_list now (as
1680	it should).
1681
16822001-05-22  Peter Hanappe  <peter@hanappe.com>
1683
1684	* src/iiwu_midi.c: the midi handler is now devided in a dummy
1685	iiwu_midi_handler_t and a "low level" driver. This allows for
1686	multiple midi drivers to be compiled in.
1687
1688	* src/iiwusynth.h: renamed iiwu_midi_driver_t to iiwu_midi_handler_t
1689
1690	* src/iiwu_auport.c (new_iiwu_auport): new "driver" argument to
1691	select between alsa, oss, midishare, directx, ...
1692
1693	* configure.in: preparing for the first pre-release, version 0.0.1
1694