ChangeLog
上传用户:tjmskj2
上传日期:2020-08-17
资源大小:577k
文件大小:71k
源码类别:

midi

开发平台:

C/C++

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