2004-03-11 Pete Bessman <ninjadroid@ml1.net>

	* patch.c: fixed bug where initial resonance and panning would
	have whack values (thanks to Paul Brossier for spotting this bug).

2004-02-24 Pete Bessman <ninjadroid@ml1.net>

	* patch.c: exercised the power of memcpy to minimize grunt work in
	patch_create() and patch_duplicate().  Support for resonance and
	panning envelopes added.  Got rid of stupid conversions for pan
	and volume setters/getters, that's the responsiblity of the
	caller.  Envelopes can be turned on and off.

	* adsr-settings.c: support for resonance and panning envelope added,
	ability to turn envelopes on and off.

	* mixer.c: support for resonance and panning envelope added.
	Filtering is now done before gain adjustment.

	* beef.c: cleaned up the file opening process, accomodated new
	parameters.

2004-02-24 Pete Bessman <ninjadroid@ml1.net>

	* waveform.c: applied Torben Hohn's optimization patch to *great*
	effect.  Made another tweak and it's running like a raped ape now.

	* mixer.c, patch.c, patch.h, adsr-settings.c: added support for
	cutoff ADSR.  Still pondering the best way to do this, wonder
	if I ought to go for a completely modular approach.  Need to
	sleep on it and ask around.

2004-02-23 Pete Bessman <ninjadroid@ml1.net>

	* Makefile.am, gui/Makefile.am: fixed to use $(pkgdatadir) instead
	of @datadir@ when determining where to put the pixmaps (thanks
	to Torben Hohn for the tip).

	* configure.ac: removed useless dependency on gthread

	* specimen.spec: included and modified Florin Andrei's rpm specfile
	
	* mixer.c: fixed a bug in the ping-pong looping logic.  This
	has really been the bane of my existence as of late >:O

2004-02-22 Pete Bessman <ninjadroid@ml1.net>

	* adsr-settings: created interface to set adsr envelope parameters.

	* path.c: added volume adsr parameters to patch structure and created
	setters and getters.

	* mixer.c: added support for volume adsr. Fixed a bug in the ping-pong
	loop logic.
	
2004-02-22 Pete Bessman <ninjadroid@ml1.net>

	* Complete source tree reorganization.  Subdirectories and
	everything.  Much prettier now.  Ah.

	* playmode-settings.c: created this file to contain the widgets
	to set a patches play mode.

	* gui.c: now uses playmode-settings.c to set play mode for a
	patch.

	* patch.c: play_mode_t restructured as a bit field, allowing
	direction and duration properties to be separate but represented
	in one variable.
	
	* mixer.c: more tweaks to improve quality and accuracy, in
	addition to accomodating new restructuring of play_mode_t.  simple
	lowpass filter and resonance support added.

	* holy shit, I didn't sleep...
	
2004-02-21 Pete Bessman <ninjadroid@ml1.net>

	* mixer.c: made a change so that notes in excess of the polyphony
	limit take the place of the oldest note currently playing, rather
	than being dropped.  Thanks to David R. Clark for bringing the
	necessity of this to my attention.  Reimplemented the cubic
	interpolation routine as a FIR (pow() was freakin' slow).  Made
	some other optimizations, mainly by substituting floats with ints
	and bitshifting.

	* patch.c: added patch_duplicate() function.

	* gui.c: added Duplicate to action menu.
	
2004-02-20 Pete Bessman <ninjadroid@ml1.net>

	* mixer.c, mixer.h: moved mixing functions here.

	* loadsample.c, loadsample.h: modularised sample loading into
	here.

2004-02-17 Pete Bessman <ninjadroid@ml1.net>

	* gui.c: fixed a minor control interaction bug.

	* Today marks the release of version 0.2.0 of Specimen, or the
	"Mortal Wombat" release as those in the know refer to it.
	Documentation has been painstakingly (snicker) prepared and is
	available on the website.
	
2004-02-16 Pete Bessman <ninjadroid@ml1.net>

	* waveform.c: supports range parameters so that it only draws a
	specified part of the waveform.  This makes good zooming possible.
	No, plastic doesn't make it possible.  Eat me.

	* editsample.c: file initialized.  This is the interface for
	editing sample play and loop start/stop points.  I dare say it's
	halfway beastly.

	* editsample.h: file initialized.  Contains prototypes for the
	sample editing interface.

	* patch.c: modified the play/loop point setters to modify other
	parameters so that a sane configuration is maintained when unsane
	arguments are given, rather than returning an error.  Came up with
	better names for the enumerated event constants.  The
	interpolation calls were simplified a bit and the whole mixdown
	function now accounts for playing samples in both directions.

	* gui.c: controls for ping pong mode and reverse mode added.
	
2004-02-15 Pete Bessman <ninjadroid@ml1.net>

	* waveform.c: transformed into a custom gtk widget Waveform.
	Drawing routine is significantly optmized.

	* gui.c: now displays waveform using the new Waveform widget.

2004-02-14 Pete Bessman <ninjadroid@ml1.net>

	* gui.c: extirpated a very minor (but stylistically abominable)
	bug in the way loop/play control constraints and values are set
	during patch changes.

	* waveform.c: now supports displaying loop and play points.

	* patch.c: modified file writing to write patches in order of
	their display index.  Fixed a *really* stupid bug in the sorting
	part of patch_dump() (swapped twice instead of once...).
	
2004-02-13 Pete Bessman <ninjdroid@ml1.net>

	* got off my lazy ass and started working on this again.

	* alsadriver.c: made sure that we don't wait on threads that don't
	exist when trying to shutdown when we aren't running.

	* patch.c: replaced patch_id_get_all() with patch_dump(), which
	does the same thing only better and sorted.  Created the function
	patch_verify() for testing that a patch exists and is sane.  Right
	now, this basically means ensuring that the specified patch is
	active.  Any out-o-whack integer parameters will get constrained
	to something reasonable by the nature of the gtk_spin_button
	class.  I also created patch_deactivate_by_id() so that you can
	preview looped samples without subjecting yourself to them for
	eternity.  Eliminated places where ints were constantly being
	converted to floats by storing those values as floats.

	* gui.c: cleaned this up like your mother cleans my pole when the
	rent's due.  Just kidding.  About your mom, I mean.  The code is
	significantly cleaner, and accounts for the changes made to
	patch.c.

	* waveform.c: created this file, which contains the waveform
	display code.  It's pretty much where it needs to be, now I just
	have to use it on a grander scale.

2004-02-09 Pete Bessman <ninjadroid@ml1.net>

	* patch.c: fixed a few erroneous newlines in some of the returns
	of patch_strerror().  Modified loop and play point setters to do
	nothing if there is no sample for the specified patch (they used
	to return errors).

	* gui.c: changed cb_sample_load() to call update_interface()
	instead of making changes to the sample button directly.

2004-02-09 Pete Bessman <ninjadroid@ml1.net>

	* patch.c: added display_index property to patches and a getter
	for it.  Modified patch_create() to initialize it and
	patch_destroy() to account for it.

	* gui.c: update_interface() now organizes menu entries according
	to display_index.

2004-02-06 Pete Bessman <ninjadroid@ml1.net>

	* patch.c: added patch_flush() to stop any events currently in the
	queue. patch_mixdown() has been cleaned up a lot, it should be much
	easier to expand on it in the future.

	* audiosettings.c: calls patch_flush() whenever changing drivers
	to clear out accumlated events.  Not doing this results in a nasty
	pop sometimes, so this is a nice improvement.

	* configure: got an autoconf/automake setup going on now.  What
	a huge pain in the nuts that was.
	
2004-02-03 Pete Bessman <ninjadroid@ml1.net>

	* patch.c: fixed another memory bug in the interpolation
	section of patch_mixdown().
	
2004-02-03 Pete Bessman <ninjadroid@m1.net>

	* gui.c: created a separate module for sample loading and
	added much needed "load" and "preview" functions.

	* patch.c: modularized sample loading and added support
	for "previewing" a sample.

2004-02-02 Pete Bessman <ninjadroid@ml1.net>

	* gui.c: current_patch no longer as file scope.

2004-02-01 Pete Bessman <ninjadroid@ml1.net>

	* gui.c: removed useless call to update_interface when loading samples
	that only served to disorient.

	* patch.c: fixed a math bug in the cubic interpolation algorithm.
	
2004-01-31 Pete Bessman <ninjadroid@ml1.net>

	* The first beta release of specimen, code named VOMITRON (those
	of you who get that kick ass) is made today.  Believers rejoice,
	sinners repent, etc. and so forth.
	
	* gui.c: controls added for loop points.

	* patch.c: patch_mixdown() does looping.  File reading/writing
	pays attention to sample start/stop info now.  Cuts work again.  I
	think I fixed some audio quality bug also, but I'm not sure.
	
2004-01-27 Pete Bessman <ninjadroid@ml1.net>

	* gui.c: controls added for manipulating sample start and stop points.

	* patch.c: patch_mixdown() accommodates sample start and stop
	parameters.

2004-01-26 Pete Bessman <ninjadroid@ml1.net>

	* bank.c: created a new file to handle the gui aspects of managing
	patch banks.

	* patch.c: set to use bank.c now.
	
2004-01-24 Pete Bessman <ninjadroid@ml1.net>

	* patch.c: patch_mixdown() does real linear interpolation when pitch
	scaling now.
	
	* patch.c: scant moments later, patch_mixdown() has been updated
	to do REAL LIVE CUBIC INTERPOLATION OMG!!? WTF?!!?
	
	* patch.c: fixed what should have been a horrible memory addressing
	bug and cleaned up the code a bit, excising gratuitous variables.
	
2004-01-23 Pete Bessman <ninjadroid@ml1.net>

	* In celebration of another year of our Sun not going super nova
	on us, another release of specimen has been made, monikered as the
	"Little Pink Christina Aguieasfdflarea Monsters"
	(HETAERA) release.  Midi velocity information isn't blatantly
	ignored, cuts are implemented, and crummy pitch scaling has forced
	its way into the code.

2003-12-22 Pete Bessman <ninjadroid@ml1.net>

	* Amateur hour continues with the "Winter is too friggin' cold"
	(WITFC) release.  The driver interface has some semblance of taste
	now, there is one mixdown function which does it's job well, and
	the CLI babbles incessantly as always.
	
2003-11-25 Pete Bessman <ninjadroid@ml1.net>

	* Initial ultra-mega-super-alpha release, code-named "It seemed
	like a good idea at the time," or "ISLAGIATT" since acronyms are
	way sweet.  Features a brain damaged output driver interface, slow
	mixdown functions, and copius CLI output.
