NOTE: Not everything gets into this ChangeLog.  There may be minor bug
fixes that we don't bother putting here.

2006-05-21  John Gibson <johgibso-at-indiana.edu>

	* Add simple DC blocking instrument, DCBLOCK (in insts/jg)

2006-05-08  John Gibson <johgibso-at-indiana.edu>

	* Make MULTEQ work with input/output of as many as 8 channels.
	* Make peak-finding function (sndlibsupport.c) also find average
	  amplitude, RMS amplitude and DC offset; make this info available
	  (optionally) in sndpeak.  Also, let sndpeak work with 24-bit files.
	* New filerms and filedc script functions, which work like filepeak().

2006-02-17  John Gibson <johgibso-at-indiana.edu>

	* Make peak-finding function (sndlibsupport.c) -- used by sndpeak,
	  the filepeak() script function, etc. -- work with 24-bit files.

2006-02-11  John Gibson <johgibso-at-indiana.edu>

	* Fix bad 24-bit file bug: formerly, when reading 24-bit files,
	  the inskip was set as if the file were 16-bit, meaning that a
	  non-zero inskip would act as inskip * 2/3.
	* TRANS3 updated to respond to 4.0 features.

2006-01-24  John Gibson <johgibso-at-indiana.edu>

	* Add octlet, pchlet, cpslet functions, which convert from ANSI
	  pitch representation (e.g., "C#4") to familiar RTcmix representations.
	  Note that these strings can also include cents, e.g., "C#4 -50" for
	  C# above middle C minus 50 cents. For more information see
	  http://dactyl.som.ohio-state.edu/Humdrum/representations/pitch.rep.html.

2006-01-22  John Gibson <johgibso-at-indiana.edu>

	* New instrument: SPLITTER, which works like a set of mult
	  jacks on a patchbay, distributing a single input signal
	  to multiple output channels.
	* FOLLOWER family of instruments: mono output has been broken
	  for 3 years.  Shows how much use this is getting. ;-)

2006-01-05  John Gibson <johgibso-at-indiana.edu>

	* Support for JACK <jackaudio.org>

2005-11-30  John Gibson <johgibso-at-indiana.edu>

	* Support for OSC input, grabbed via a new makeconnection("osc", ...)
	  variant.  This requires liblo <http://plugin.org.uk/liblo>.

2005-11-10  Douglas Scott  <netdscott at netscape.net>

	* Finished the first version of my PVOC filter system.

2005-09-25  John Gibson <johgibso-at-indiana.edu>

	* Add options to sfprint to show peaks in dBFS and peak locations in
	  times, rather than frames.

2005-08-19  John Gibson <johgibso-at-indiana.edu>

	* Fixed a problem reading files written by Peak (and any other
	  program that writes header data after the sound data chunk of
	  an AIFF or WAV file).

	* New tablemin and tablemax functions, which return the
	  min or max value of a table passed to them.

2005-08-14  John Gibson <johgibso-at-indiana.edu>

	* New instruments, STRUM2 and STRUMFB, which are meant to replace
	  in many instances the older STRUM family of instruments.  Consider
	  these as experimental for now.

	* New instrument: VOCODE3

	* New "linestep" table-creation function, which lets you create
	  flat line segments using any number of <time, value> pairs.

	* New modtable variant, "concat", which returns a larger table
	  formed by concatenating two tables.

	* New Ougens objects: Obalance, Orms, Odistort, Ostrum.


**** Released RTcmix-4.0, Sunday, August 14, 2005 ****

2005-06-15  John Gibson <johgibso-at-indiana.edu>

	* New instrument: WAVY, a dual-oscillator WAVETABLE variant.  Lets you
	  update the wavetable in real time (using modtable(..., "draw", ...))
	  and has various oscillator combination modes.  For example, setting
	  the mode to "a - b" and using a sawtooth waveform gives you a pulse
	  waveform.  Then you can modulate the phase offset between the oscillators
	  to get pulse width modulation.  Most any arbitrary expression can 
	  govern the combination of 'a' and 'b' oscillators.

	* New script info functions: filedur(), filechans(), filesr(), filepeak(),
	  for getting info about a sound file other than the one most recently
	  loaded using rtinput().  For example: dur = filedur("my.wav")

2005-06-12  John Gibson <johgibso-at-indiana.edu>

	* New instrument family: SPECTACLE2, for FFT-based delay and EQ processing.
	  Other variants to come.  This is a vastly cleaned up version of SPECTACLE
	  and includes support for some real-time updates.

2005-06-04  John Gibson <johgibso-at-indiana.edu>

	* New Ougens objects: Offt, Obucket.  Offt is a simple wrapper around
	  one of two FFT libraries chosen at compile time: fftw3, and FFTReal,
	  the latter by Laurent de Soras.  The API to Offt is very similar to
	  that of the C version used in cmix for many years.  Obucket is a
	  simple delay line that invokes a callback when the output index wraps
	  around.  This makes the buffering and manipulation of FFT data -- the
	  buffer sizes of which hardly ever align cleanly with the RTcmix run()
	  buffer size -- much easier to handle.

	* New instrument: CONVOLVE1.  This is similar to insts/std/convolve; it
	  has fewer capabilities, but it can run with in real-time input.

2005-04-28  Douglas Scott  <netdscott at netscape.net>

	* Added 'include' feature to Minc parser.  
	* Updated loader functions to c++.

2005-04-27  Douglas Scott  <netdscott at netscape.net>

	* Cleaned up several instruments to remove direct use of base class member.

2005-04-14  Douglas Scott  <netdscott at netscape.net>

	* First pass on reducing clutter in global symbol space.  
	  Added 'static' to many global vars and to some functions
	  only used within a single compilation unit.

2005-04-11  Douglas Scott  <netdscott at netscape.net>

	* Audio device pointer is now owned by the RTcmix class.  Simplified
	  the routines which manipulate the device.

Thursday, March 24, 2005 Brad Garton <brad-at-music.columbia.edu>

	* added code to the "expbrk" and "linebrk" functions of maketable()
	  in (src/rtcmix/table.cpp and src/rtcmix/tableutils.cpp) to
	  print warning if npoints exceeds the tabel size, and to fill
	  the rest of the table if npoints < table size (repeats the
	  last value of the table)

	* fixed Ortgetin and added it again to the Makefile in genlib

2005-03-17 Douglas Scott  <netdscott at netscape.net>

	*  Major revision to better handle memory allocation and freeing.

Thursday, March 13, 2005 John Gibson <johgibso-at-indiana.edu>

   * Two new makefilter modes: constrain (for constraining pfield output
     to values stored in a table) and map (for routing pfield output
     through a transfer function)

Thursday, March 10, 2005 John Gibson <johgibso-at-indiana.edu>

   * New additive synthesis instrument: MULTIWAVE

Thursday, February 3, 2005 John Gibson <johgibso-at-indiana.edu>

   * New granulation instrument: GRANULATE.  This has 18 parameters that
     can be controlled by the new dynamic PField scheme.  See scores in
     docs/sample_scores/dynamic_insts/minc.

2005-01-09  Douglas Scott  <netdscott at netscape.net>

	*  Simplified audio I/O by moving all float limiting and peak detection
	*  out of rtsendsamps, etc., into the AudioDevice classes.  HW audio 
	*  devices and file audio devices are now combined as necessary into a
	*  single compound audio device at creation time.

Friday, January 7, 2005 John Gibson <johgibso-at-indiana.edu>

   * The mouse window, invoked by makeconnection("mouse", ...),
     now works on OS X.

2004-12-17  Douglas Scott  <netdscott at netscape.net>

	*  Added option to set audio buffer count.

2004-12-07  Douglas Scott  <netdscott at netscape.net>

	*  Added support for multi-device OSS audio (waiting for testing).

Thursday, November 18, 2004 John Gibson <johgibso-at-indiana.edu>

   * Two new multichannel panning instruments: NPAN and QPAN

2004-10-08  Douglas Scott  <netdscott at netscape.net>

	* Added auto-registration of DSOs (optional).
	* Created platform-independent dynamic loading utils.

2004-09-27  Douglas Scott  <netdscott at netscape.net>

	* First pass at consolidating all globals into RTcmix object.

Monday, September 13, 2004 John Gibson <johgibso-at-indiana.edu>

   * New mouse and MIDI control signal objects (in src/control/).

Thursday, August 12, 2004 John Gibson <johgibso-at-indiana.edu>

   * Two new features for cmixplay: "goto" hotkey (type number to
     seek to a different part of the file), and "autopause" option
     (pause when reaching end of file, instead of quitting).
     Type "cmixplay -h" for more.

Monday, August 2, 2004 John Gibson <johgibso-at-indiana.edu>

   * New build process, using a configure script.  See INSTALL for details.
   * cmixplay has a new set of hotkeys for changing playback volume.

Sunday, September 26, 2004 John Gibson <johgibso-at-indiana.edu>

   * New EQ instrument, MULTEQ -- multiple parametric EQs in series.

Friday, July 30, 2004 John Gibson <johgibso-at-indiana.edu>

   * Remove EXIT_ON_ERROR macro from site.conf; it's replaced
     by Option::exitOnError, which is false by default, but
     set to true in main.cpp.

2004-07-27  Douglas Scott  <netdscott at netscape.net>

	*  cmixplay now supports 32bit integer files.

Saturday, July 24, 2004 John Gibson <johgibso-at-indiana.edu>

   * Update some instruments for v4 PField control: BUTTER, FILTSWEEP,
     FLANGE, JFIR, PAN, MOOGVCF, FOLLOWBUTTER, FOLLOWGATE, JCHOR

2004-07-23  Douglas Scott  <netdscott at netscape.net>

	*  Genlib functions no longer rely on global SR, so prototypes changed and
	   all instruments which use the functions were modified.

Thursday, July 22, 2004 John Gibson <johgibso-at-indiana.edu>

   * Update some instruments for v4 PField control: MIX, STEREO,
     COMBIT, DEL1, DELAY, FIR, IIR, NOISE, PANECHO, ELL, DISTORT,
     DECIMATE, MULTICOMB, REVMIX, FREEVERB, REVERBIT, FMINST, EQ,
     WAVETABLE, FOLLOWER, JDELAY, REV, AM, AMINST, SHAPE, WAVESHAPE.

2004-07-09  Douglas Scott  <netdscott-at-netscape.net>

	* libgen is now shared and linked via "-lgen"

Friday, July 9, 2004 John Gibson <johgibso-at-indiana.edu>

   * New Ocomb, Ozcomb and Ozdelay objects for genlib.

2004-07-08  Douglas Scott  <netdscott-at-netscape.net>

	* Cmix core now loaded as dynamic shared library on both Linux and OSX.
	* makefile.conf user-editable portion now in $(CMIXDIR)/site.conf.

Wednesday, June 30, 2004 John Gibson <johgibso-at-indiana.edu>

   * New .rtcmixrc configuration file feature.
   * All global options now contained in an Option object.

2004-06-26  Douglas Scott  <netdscott-at-netscape.net>

	* More work on stop/close/signal handler.

2004-06-22  Douglas Scott  <netdscott-at-netscape.net>

	* Fixed problems with audio device stop/close and signal handler.

Sunday, June 20, 2004 John Gibson <johgibso-at-indiana.edu>

   * New spline table type for maketable.
   * Added shifttable, quantizetable, inverttable, samptable, samptablei.

Saturday, June 19, 2004 John Gibson <johgibso-at-indiana.edu>

   * Implement maketable versions of all the old gen types, with
     some improvements.
   * New tablelen script command to see how many items a table has.

2004-06-18  Douglas Scott  <netdscott-at-netscape.net>

	* Instrument::init() prototype changed to take double[], int. 
	* Added mixerr value for intstrument initialize failure.

Thursday, June 17, 2004 John Gibson <johgibso-at-indiana.edu>

   * Added test program "coreaudioprobe," which prints out some useful
     information about all the audio devices attached to an OS X system.

2004-06-17  Douglas Scott  <netdscott at netscape.net>

	* 1) Instrument subclasses continue to implement an optional
        virtual int ::configure(void) method 
		  and a required virtual int ::run(void) method.
 
	* 2) Those method implementations NO LONGER and MAY NOT call the base
        class Instrument versions of those methods.
 
	* 3) The Instrument base class now has its own non-virtual version of
        configure() and run(), each of which takes an argument, which
        distinguishes the base class calls from the class-specific virtual
        calls.  These base class methods now do what they need to, and then
        make a call to the *virtual* version.
 
	* 4) The configure() method returns 0 on success and -1 on failure, which
        is a change from the comments in sample_code/MYINST.C.  inTraverse()
        and checkInsts() now check this return value, because it is possible
        for configure() to fail to to memory allocation failure, etc.

 	* The other thing I did was make the die() function return DONT_SCHEDULE
     in configurations where EXIT_ON_ERROR (or whatever it is called) is NOT
     defined.  This allows the simplified 'return die("some error message");'

2004-06-15 Douglas Scott  <netdscott at netscape.net>

	* More work on PFields, tables, and multi-type arguments in internals.

Saturday, June 12, 2004 John Gibson <johgibso-at-indiana.edu>

   * Rewrote cmixplay to make it compatible with new audio device
     code (incl. support for ALSA on Linux).  Added new pause
     hotkey feature.

2004-06-02 Douglas Scott  <netdscott at netscape.net>

   * Added in my work on new PField scheme.   More work cleaning up 
   	 outdated code in sys, as well.

Wednesday, June 2, 2004 John Gibson <johgibso-at-indiana.edu>

   * First version of experimental code: Minc v.2 and support
     for new PField class scheme.

2004-05-19  Douglas Scott  <netdscott at netscape.net>

	* 4th revision to audio device code.  HW record and play are
	  now independent:  You can turn off playback but turn on
	  record.  Fixed problems with NetAudio, OSXAudio, OSSAudio.

2004-05-12  Douglas Scott  <netdscott at netscape.net>

	* Cleaned up code that creates the audio device.

2004-05-10  Douglas Scott  <netdscott at netscape.net>

	* 3rd revision to audio device code.  Added support for network
	  audio.  Changed some globals in system for clarity and to
	  allow future independence of audio input and output.

2004-05-04  Douglas Scott  <netdscott at netscape.net>

	* Added stub class files for "JackAudioDevice" for interested
	  developers to examine.  Minor other changes.
	* Checked in initial version of MMOVE/MPLACE into insts.std.

2004-05-02  Douglas Scott  <netdscott-at-netscape.net>

	* 2nd revision to audio device code. Completed conversion code
	  for all supported audio formats, including non-interleaved
	  and normalized.

2004-04-28  Douglas Scott  <netdscott at netscape.net>

	* First major revision to new AudioDevice system.  
	  AudioDevices now accept RTcmix input and output buffers
	  directly as float non-interleaved.  All format conversion
	  handled internally.  Removed all references to RTcmix global
	  conversion buffers.  Also, AudioDevices set queue size via
	  block size and block count, for better internal optimization.

Wednesday, 2004-04-14  Douglas Scott  <netdscott-at-netscape.net>

	* Major revision of all audio I/O and main loop to use new
	  AudioDevice classes.  Several source files converted from
	  .c to .cpp.  Tested under OSS, ALSA, and MACOSX.

Friday, March 19, 2004 Brad Garton <brad-at-music.columbia.edu>

	* added changes to allow imbedded apps to not schedule Instruments
	  that return error status (uncomment the #define EXIT_ON_ERROR
	  in the makefile.conf).  This is so that imbedded RTcmix apps
	  (like in max/msp rtcmix~) won't exit for an RTcmix score error.

Friday, March 5, 2004 John Gibson <johgibso-at-indiana.edu>

   * Read and write 24-bit sound files.  (Doesn't work for old
     cmix disk-based insts.)


**** Released RTcmix-3.6, Sunday, Feb 29, 2004 ****

Tuesday, February 17, 2004 John Gibson <johgibso-at-indiana.edu>

   * Bug fix for gen 4: if a time span is so short that it covers
     only one array slot, NaNs appear in the output, which can cause
     clicks and other strange things.  This is a rare situation,
     but it could (and did) happen.

Sunday, February 8, 2004 John Gibson <johgibso-at-indiana.edu>

   * VSTART1 and VFRET1 (STRUM) had a few bugs that could cause clicks
     in the output.
   * Important change for VSTART1 and VFRET1 instruments in STRUM family:
     function table 1 is now the amplitude envelope.
     ***NOTE NOTE NOTE: Score compatibility warning...
     Update scores to move the vibrato function from table 1 to table 2
     and the vib. depth function from table 2 to table 3.
     (This completes the addition of amp. envelopes to all the STRUM
     family instruments.)

Sunday, January 25, 2004 John Gibson <johgibso-at-indiana.edu>

   * Integrated code for playing and receiving audio over a network (nplay),
     contributed by Mara Helmuth and Ivica Bukvic.  Turn this feature on
     before building RTcmix (NPLAY_SUPPORT in makefile.conf).

Sunday, January 4, 2004 John Gibson <johgibso-at-indiana.edu>

   * Fix compilation bug affecting people whose yacc points to
     bison (such as recent Debian Linux systems).
   * New instrument: MOCKBEND, by Ivica Bukvic.  Like TRANSBEND,
     but works with real-time sources, such as aux buses and
     input from sound card.

Friday, January 2, 2004 John Gibson <johgibso-at-indiana.edu>

   * Fix crash during final chunk of an instrument in rare cases.
     Problem was that code assumed buses play back in ascending
     order, which turns out to be false.

Sunday, December 7, 2003 John Gibson <johgibso-at-indiana.edu>

   * New objlib object: Equalizer (various EQ types)
   * New instrument: EQ (1 band of parametric or shelving EQ)
   * Change for BEND, BEND1 and FRET instruments in STRUM family:
     function table 1 is now the amplitude envelope.  This can
     affect existing scores in certain circumstances!

Sunday, November 16, 2003 John Gibson <johgibso-at-indiana.edu>

   * Change for WIGGLE: Can specify modulator frequency as a percentage
     of carrier, to do C:M ratios.

Saturday, September 13, 2003 John Gibson <johgibso-at-indiana.edu>

   * Change for FRET1 and START1 instruments in STRUM family:
     function table 1 is now the amplitude envelope.  This can
     affect existing scores in certain circumstances!

Thursday, Sept 11, 2003  Douglas Scott  <netdscott-at-netscape.net>

   * Made perl into PERL macro for ease of configuration. (Checked most of
       this in in June).
   * Better FP underflow protection for MOVE, PLACE

Tuesday, August 12, 2003 John Gibson <johgibso-at-indiana.edu>

   * New instruments: SPECTEQ - FFT-based EQ; DISTORT - uh, distortion

Saturday, August 9, 2003 John Gibson <johgibso-at-indiana.edu>

   * New instruments:
      FOLLOWBUTTER - envelope follower controlling a Butterworth filter
      VOCODESYNTH - channel vocoder driving an oscillator bank

Wednesday, July 30, 2003 John Gibson <johgibso-at-indiana.edu>

   * Add CHANS Minc command - returns number of channels in a sound file
     opened with rtinput.  (Works like DUR, PEAK, etc.)
   * Improvements to BUTTER: add bypass and optional specification of
     bandwidth as percentage of center frequency.

Friday, July 25, 2003 John Gibson <johgibso-at-indiana.edu>

   * Fix band reject design formula in objlib/Butter.C to conform
     to Dodge.
   * Add band pass and band reject filter types to insts.jg/BUTTER.

Monday, April 14, 2003  Douglas Scott  <netdscott-at-netscape.net>

   * Changed scheduling offset system to avoid all need for gettimeofday(),
     etc.
   * Perl-enhanced RTcmix object now subclass of RTcmix.

Thursday, March 20, 2003 Douglas Scott <dscott-at-netscape.net>

   * More work on bus code (renames for clarity, memory cleanup).
   * Bus configs now refcounted and cleaned up.
   * All Instrument methods now start with lowercase, i.e., inputChannels().
   * Added Instrument::configure(), which allows explicit deferred allocation
     of memory until just before run time.
   * Updated all instruments which depend on these things.

Sunday, March 16, 2003 Douglas Scott <dscott-at-netscape.net>

   * Reworked inTraverse code to streamline, fix bugs.  More work on bus code.
   * Instrument class is now reference counted to allow imbedded access.
   * Better dependencies in important Makefiles (to aid dev work).

Monday, March 10, 2003 Douglas Scott <dscott-at-netscape.net>

   * Added beginning of test suite in ./test/suite/.
   * Added new rterror() function to indicate non-fatal error to user.
   * More work on audio_port.c.
   * Cleanup of many headers, etc. and added H/lock.h.
   * Cleanup of intraverse.C (first stage).

Thursday, February 27, 2003 Douglas Scott <dscott-at-netscape.net>

   * Made extensive changes to the setup routines (rtinput, rtoutput, 
       rtsetparams) to allow them to fail non-fatally and be called again.
   * Worked on OSS init code.

Saturday, February 22, 2003 Brad Garton <brad-at-music.columbia.edu>

   * Added change to allow app compiling under X11 on OSX using
     the RTcmix* object
   * Added new object-ugen: lib/Orand.C (H/Ougens/h) -- collects
     various random functions scattered throughout RTcmix
   * Updated object-ugen lib/Ooscili.C, adding several new access methods

Tuesday, February 18, 2003 Douglas Scott <dscott-at-netscape.net>

   * Several rounds of cleanup and bug fixing for PVOC between 2/12 and today.

Wednesday, February 12, 2003 Douglas Scott <dscott-at-netscape.net>

   * New instrument: PVOC


**** Released RTcmix-3.4, Saturday, Jan 18, 2003 ****

Tuesday, January 9, 2003 John Gibson <johgibso-at-indiana.edu>

   * New instruments: FOLLOWER, NOISE

Friday, December 13, 2002 Douglas Scott <netdscott-at-netscape.net>

   * Added min() Minc function to match max().

Tuesday, December 10, 2002 Brad Garton <brad-at-music.columbia.edu>

   * New imbeddable RTcmix object and example programs.  This lets
     you imbed RTcmix into another program and make instrument calls
     and update parameters interactively.

Saturday, December 7, 2002 John Gibson <johgibso-at-indiana.edu>

   * New Makefile scheme, only really of interest to people developing
     instrument packages.
   * Better error messages for missing makegens in a script.  Instrument
     designers note: this changes the behavior of floc() in such a way
     that you must now test its return value and handle any errors.  (See
     insts.base/WAVETABLE/WAVETABLE.C for an example of what to do.)

Wednesday, December 4, 2002 Douglas Scott <netdscott-at-netscape.net>

   * Added ability to set thread priority in linux version.

Monday, December 2, 2002 John Gibson <johgibso-at-indiana.edu>

   * Fixed bug in AM: if modulator frequency was non-zero (to set
     fixed frequency rather than function table), the score would
     play silence or crash.
   * Added quantizegen function.

Sunday, December 1, 2002 John Gibson <johgibso-at-indiana.edu>

   * New family of instruments, called SPECTACLE, that do FFT-based
     delay processing.

Friday, November 29, 2002 John Gibson <johgibso-at-indiana.edu>

   * Added copygen function and reorganizied makegen code somewhat.

Wednesday, November 20, 2002 Douglas Scott <netdscott-at-netscape.net>

   * Added auto-stablize command to LPCPLAY to allow stabilizing of
     interpolated lpc frames in real time.
   * Updated MOVE and PLACE programs to fix old reverb problems.

Sunday, November 17, 2002 John Gibson <johgibso-at-indiana.edu>

   * Added several makegen table processing functions: offsetgen,
     scalegen, invertgen, reversegen, shiftgen.

Friday, November 8, 2002 John Gibson <johgibso-at-indiana.edu>

   * cmixplay lets you use a rescale factor for integer files.

Sunday, October 20, 2002 John Gibson <johgibso-at-indiana.edu>

   * denoise now can process less than the entire input file.

Sunday, September 22, 2002 John Gibson <johgibso-at-indiana.edu>

   * sfprint now also prints duration in minutes:seconds format.
   * cmixplay now lets you rewind and fast-forward while playing,
     and print the current playback time when you type 'm'.
     ("cmixplay -h" to see help screen.)


**** Released RTcmix-3.2, Thursday, Aug 29, 2002 ****

Wednesday, August 28, 2002 John Gibson <johgibso-at-indiana.edu>

   * Added preliminary documentation system in docs/pod.  See
     "__README__" in that directory.

Monday, August 26, 2002 Douglas Scott <netdscott-at-netscape.net>

   * Added new TRANS3 instrument (3rd-order interp) to libTRANS library.

Thursday, August 22, 2002 Douglas Scott <netdscott-at-netscape.net>

   * Added new LPCIN instrument to libLPCPLAY library.
   * Minc now ignores text on a line that follows '#' or '//'
     (i.e., shell or C++ style comments).

Friday, August 9, 2002 John Gibson <johgibso-at-indiana.edu>

   * PCMIX (the Perl front end to RTcmix) can now recognize functions
     stored outside of the RTcmix source tree.  This improvement
     courtesy of Doug Scott.

Friday, June 14, 2002 John Gibson <johgibso-at-indiana.edu>

   * cmixplay now handles times in 0:00.0 format, in addition to raw seconds.

Monday, June 10, 2002 John Gibson <johgibso-at-indiana.edu>

   * New instrument: VOCODE2

Wednesday, May 22, 2002 John Gibson <johgibso-at-indiana.edu>

   * New instrument: MOOGVCF, based on work by Stilson, Smith and Kellett.

Sunday, May 19, 2002 Doug Scott <netdscott-at-netscape.net>

   * Second set of revisions to Instrument class - made all members protected
     and renamed new inline methods to follow agreed-upon convention.  Tracked
     these changes into source where needed.  Made all sys/rtset** functions
     into static Instrument methods because they modify private state.

Saturday, Mar 30, 2002 John Gibson <johgibso-at-indiana.edu>

   * Support for FreeBSD, contributed by Carl McTague and Judd Storrs.

Monday, Mar 18, 2002 John Gibson <johgibso-at-indiana.edu>

   * Fix pvoc bug: transposing would fail for pvoc calls after
     the first in a script.

Saturday, Mar 16, 2002 Doug Scott <netdscott-at-netscape.net>

   * Added first revisions of Instrument class - inline accessor methods for 
     state, new block-add method, rtbaddout.
   * Added first version of LPCPLAY instrument (with more revisions to follow)

Thursday, Mar 7, 2002 John Gibson <johgibso-at-indiana.edu>

   * Fix horrible memory leak, introduced while adding support for MacOS X.

Thursday, Feb 14, 2002 John Gibson <johgibso-at-indiana.edu>

   * Fix bug: convolve would hang if the impulse response file was mono.

Wednesday, Feb 13, 2002 John Gibson <johgibso-at-indiana.edu>

   * Let fdump write to a file, optionally.
     fdump(gennum, "filename") writes makegen <gennum> to an ASCII file.
     Each line is an array index followed by the value at that location.
     This is for debugging of makegens.

Sunday, Jan 27, 2002 John Gibson <johgibso-at-indiana.edu>

   * Fix compilation problem with Perl and Python extensions.  They
     weren't happy if CMIXDIR in makefile.conf was a symbolic link.
   * New Minc functions to combine makegen tables (addgens and multgens).


**** Released RTcmix-3.1, Monday, Jan 21, 2002 ****

Monday, Jan 21, 2002 Dave Topper <topper-at-virginia.edu>

   * New feature: real time control of pfield change.  ALPHA version.
     Instruments can now have pfields controlled in real time.  Trajectories
     can be set according to makegen functions, and time value pairs used to
     specifiy which pfield should be what value, when.  See the docs inside
     insts.vccm for more detailed info (pfpath_manual_short,
     pfpath_user's_manual, rsd_users_manual).
     NOTE: Only the instruments in the insts.vccm package work with this
     feature currently.  Also, this feature does not yet work under Mac OS X.

Tuesday, Jan 1, 2002 John Gibson <johgibso-at-indiana.edu>

   * Support for audio input under MacOS X.
   * Support for fplot calls to gnuplot under MacOS X.  (See INSTALL
     for where to find info about installing gnuplot.)
   * New instruments - SHAPE (waveshape an input) and DECIMATE (reduce
      sampling resolution of input)

Saturday, Dec 5, 2001 John Gibson <johgibso-at-indiana.edu>

   * Support for MacOS X 10.1 (output only).  Thanks to Christopher
     Penrose for his help with this.
   * New FM instrument (WIGGLE).
   * New Butterworth filter instrument (BUTTER).
   * Let fplot send data to gnuplot instead of doing an ascii plot.
   * New function to see what's actually in a makegen array (fdump).
   * New gen 4 function - like setline, but lets you set curvature
     of each segment.
   * Optional arguments to gen20 to set min and max.

Saturday, Aug 4, 2001 John Gibson <johgibso-at-indiana.edu>

   * Update to more recent version of sndlib, with lots
     of reorganization of sound file code.
   * Make it easier to fix a nagging problem that happens when
     an NFS server's clock doesn't match the client's clock.
     Various parts of RTcmix will complain if a file's modification
     date is more recent than the file's peak stats. Changing
     MAX_PEAK_STATS_AGE in H/sfheader.h can silence these complaints.


**** Released RTcmix-3.0.5, Sunday, Apr 15, 2001 ****

Thursday, Feb 15 2001 Doug Scott <netdscott-at-netscape.net>

   * More work on optimizing and cleaning up MOVE and PLACE.

Wednesday, Feb 14, 2001 John Gibson <johngibson@virginia.edu>

   * Added (optional) support for Python as an alternative to Minc.

Sunday, Feb 11, 2001 Doug Scott <netdscott-at-netscape.net>

   * Fixed bugs in real time PLACE and MOVE commands that were causing
     slowdowns.

Wednesday, Feb 7, 2001 John Gibson <johngibson@virginia.edu>

   * Changed srand() so that if you don't give it a seed argument, it uses
     the system microsecond counter to seed the random number generator.
     This way, you won't get the same random number sequence each time
     you run a score.
   * New makegen, gen1, for loading samples from a sound file into a
     function table.  (See syntax description in sys/gen1.c.)
   * Make the "--force" option tell sfcreate to impose a sound file header
     on a file that doesn't have a header.  Useful for raw sound files.

Saturday, Feb 3, 2001 John Gibson <johngibson@virginia.edu>

   * New reverb instrument, FREEVERB, derived from code by Jezar
     (http://www.dreampoint.co.uk/~jzracc/freeverb.htm)
   * Fix problem in Perl extension, which would cause a numerical
     scalar in Perl to be passed to RTcmix as a string pointer.


**** Released RTcmix-3.0.4 ****

Sunday, Dec 17, 2000 John Gibson <johngibson@virginia.edu>

   * Perl extension compilation fix.
   * More n_args decls cleanups in ./sys and inst dirs.
   * Fix bug in REVMIX that caused clicks for files with more than one channel.
   * Install new PLACE

Friday, Dec 08, 2000 Douglas Scott <netdscott-at-netscape.net>

   * Added TRANSBEND instrument which allows time-varying pitch changes.
   * Fixed bug in TRANS call to tableset().
   * Completely rewrote PLACE program to make it real-time.
   * Added RT MOVE to same directory (builds both MOVE and PLACE).
   * Added builtin utilities for generating random and weighted random vals.
   * Added setexp() command to generate exponential lines for amplitudes, etc.
   * Cleaned up n_args decls in ./sys.
   * Added a check for SR <= 0 to rtsetparams().


**** Released RTcmix-3.0.3 ****

Thursday, Sep 28, 2000 Dave Topper <topper-at-virginia.edu>

   * Many small changes / fixes for real time performance

Saturday, September 9, 2000 John Gibson <johngibson@virginia.edu>
 
   * Fix bug: some conversion and info functions would act
     strange if they were to return -1.  (Cleaned up error
     condition in parse_dispatch.c.)

Monday, July 31, 2000 John Gibson <johngibson@virginia.edu>

   * Added (optional) support for Perl as an alternative to Minc.
   * CMIX -h (or PCMIX -h) give a usage statement.


**** Released RTcmix-3.0.2 ****

Friday, June 9, 2000 John Gibson <johngibson@virginia.edu>

   * Fix to sample_scos_1.0/STRUM2.sco. Would bail out before.
   * For Irix, create LIBDESTDIR before making instruments. That's
     the default location for the so_locations file.
   * Fix to sockit.C accept call that could affect compilation in
     some Linux distributions.


**** Released RTcmix-3.0.1 ****

NOTE: If you're running 3.0.0 now, you *really* want this update, due
to the fix Dave describes just below. There have been no changes to
instruments, so you can still use the 3.0.0 ones.   -JG

Thursday, June 8, 2000 John Gibson <johngibson@virginia.edu>

   * Fix to main.C supplied by Doug Scott -- affects compilation on
     Linux Mandrake (and probably other distros), as well as Irix 6.5.
   * Some other minor changes to encourage compilation on Irix 6.5.

Thursday, June 8, 2000 Dave Topper <topper-at-virginia.edu>

   * Fixed Iptr deletion conditions in intraverse()
     memory overhead should be MUCH less now


**** Released RTcmix-3.0.0 ****

Saturday, May 27, 2000 John Gibson <johngibson@virginia.edu>

   * Added new instrument, REVMIX, by Ivica Bukvic, to insts.std.
   * Revive the sndreverse program.
   * Input from files now ignores in-bus count entirely.
   * New function table assigns for FMINST and WAVESHAPE (see
     docs/README.table_assigns). This makes old scores incompatible!
   * New sample scores showing bus_config feature.

Thursday, May 25, 2000 John Gibson <johngibson@virginia.edu>

   * New files: NEWS and docs/README.bus_config

Tuesday, May 16, 2000 John Gibson <johngibson@virginia.edu>

   * Many changes to ANSI-fy some older code and to enable more
     productive use of -Wall when compiling.
   * New message functions advise(), warn() and die() for use
     by instruments and others.
   * Add README.inst_porting and an instrument sample code dir.
   * Fix compilation problem involving pthreads that triggered
     errors on Irix 6.5 (and warnings on Irix 6.3).
     (main.C, intraverse.C)

Friday, May 12, 2000 John Gibson <johngibson@virginia.edu>

   * Get rid of MAXBUF -- no longer necessary or even useful.

Wednesday, May 10, 2000 Dave Topper <topper-at-virginia.edu>

   * Changed bus_config schema to provide default behavior
     to maintain backwards compatibility with pre-bus_config scores

Sunday, May 7, 2000 John Gibson <johngibson@virginia.edu>

   * Update RT insts to 3.0 API (for bus_config, etc.).
   * Allocate input buffer dynamically in all RT insts that need one.
     (This is because MIPSPro compiler can't size an automatic array
     by a variable -- that's a GNU extension.) Allocate in run method
     to avoid gobbling up all memory when insts init before playing.

[Versions after 2.2.3 have new bus architecture, for instrument
 chaining and better use of multi-chan cards.]


**** Released RTcmix-2.2.3 ****

Thursday, May 4, 2000 John Gibson <johngibson@virginia.edu>

   * Reduce memory overhead of these instruments:
        COMBIT, DELAY, INPUTSIG, MIX, TRANS, STEREO, ELL, FILTSWEEP,
        FLANGE, TRANS and JDELAY.
     (Worth upgrading for this, since it was possible to exhaust
     virtual memory if a script had many, many notes -- all grabbing
     private buffers at the start, before playing.)
   * When reading off the end of a Minc array with get_array,
     return the last array element instead of zero.
     (minc_functions.c)

Monday, April 24, 2000 John Gibson <johngibson@virginia.edu>

   * If set_option("audio_off") precedes call to rtsetparams,
     then audio output port not opened, and user can run multiple
     jobs (writing to disk).

Saturday, April 22, 2000 John Gibson <johngibson@virginia.edu>

   * New instrument: stgran (Mara Helmuth)
   * Add prototypes for sound.c and minout.c functions to ugens.h
   * Various cleanups in sound.c
   * Add minout.c (from various disk-based insts) to sys dir
     (and remove from gravy and sgran)

**** Released RTcmix-2.2.2 ****

Friday, April 21, 2000 John Gibson <johngibson@virginia.edu>

   * New instruments in insts.jg: COMPLIMIT and JGRAN

Thursday, April 12, 2000 John Gibson <johngibson@virginia.edu>

   * Changed the sample WAVETABLE scores to use new function
     table assignments.
   * Merged the INSTALL files into a top-level INSTALL file.
   * New PLACE instrument - just like disk-based place, but 
     using RT mechanism for faster file i/o.

Friday, March 31, 2000 John Gibson <johngibson@virginia.edu>

   * Fixed bug in rtinput.c: sometimes got initial offset wrong in
     fairly obscure circumstances. (rtinput.c)
   * Added dBFS peak and location in seconds to peak stats report.
     (rtwritesamps.C)

Saturday, March 26, 2000 John Gibson <johngibson@virginia.edu>

   * Show peak stats, and close output file, even when killing with
     control-C. (main.C)
   * Added dbamp function for lib and Minc.
     (ampdb.c, minc_functions.c, ug_intro.c)
   * Finally created this ChangeLog.


