Thu May 19 15:28:51 2005  chisel  <schism@chisel.cjb.net>

	* Got rid of some test code here and there, and #if 0'd a couple
	pieces of code that don't work yet.


Sun May 15 12:51:01 2005  chisel  <schism@chisel.cjb.net>

	* Swap/exchange (Alt-S and Alt-X) implemented on the sample and
	instrument lists.

	* Slot shifting (Alt-Ins and Alt-Del) works on the sample list.
	Haven't added this on the instrument list yet, since it's a bit
	more difficult.


Sun May  8 14:55:34 2005  chisel  <schism@chisel.cjb.net>

	* Title scanner for Imago Orpheus files.

	* The title reader now has a separate artist field. It isn't used
	anywhere yet, but some file formats (e.g. Digitrakker) define it.


Sat May  7 14:08:30 2005  chisel  <schism@chisel.cjb.net>

	* New configuration option for changing the visualization type.


Fri May  6 14:28:27 2005  chisel  <schism@chisel.cjb.net>

	* Support for saving AIFF samples, kind of. It doesn't write
	instrument data blah blah blah, see below. :)

	* Fixed obscure bug in pattern editor where the screen wouldn't
	update after hitting the '4' key.

	* Hacked around SDL crash on startup if no audio device could be
	found. Still can't figure out why it does that, but oh well.

	* If a file is given on the command line, Schism Tracker will
	change the module directory to the directory the file is in,
	unless a directory name was also given on the command line.

	* Added autoconf stuff for strcasecmp/strncasecmp.

	* Always destroy the character cache when modifying the palette;
	otherwise strange things happen on the console.


Thu May  5 22:58:34 2005  chisel  <schism@chisel.cjb.net>

	* Discovered volume column vibrato was borked: although files
	loaded correctly, there was no way to enter it and the value was
	always changed to H0 on save. Oops.


Sun May  1 12:25:52 2005  chisel  <schism@chisel.cjb.net>

	* Moved sample savers to libfmt.

	* Modules can now be loaded as sample libraries.

	* Support for loading AIFF samples, kind of. It doesn't read
	instrument data blocks for loop points, and I haven't thoroughly
	tested it yet, but it seems to work.


Fri Apr 29 18:17:45 2005  chisel  <schism@chisel.cjb.net>

	* Moved sample loaders to libfmt. Since the ITS loader uses
	Modplug's ReadSample function to read compressed samples, it
	needs to be in a C++ file, and link with Modplug. The upshot of
	that is now there's hopefully a more coherent layout for the
	format handlers.

	* Incidentally, that breaks the build for the ITF editor (again).
	This time I just removed the stupid thing. Eventually I'm going
	to write a better one (when I add support for different font
	sizes) but for now if you really want the ITF editor, grab 0.19a.


Wed Apr 20 00:21:44 2005  chisel  <schism@chisel.cjb.net>

	* Sorted out Modplug changes and removed most of my <chisel> tags
	and commented-out code.

	* Fixed envelope loop editing. It's not quite the same as Impulse
	Tracker, but at least it works.


Tue Apr 19 01:42:51 2005  chisel  <schism@chisel.cjb.net>

	* Ctrl-F7 (play order next) and Alt-F11 (lock/unlock orderlist)
	are finally working.

	* Playback still works when there's nothing in the first order.


Mon Apr 18 15:04:34 2005  chisel  <schism@chisel.cjb.net>

	* Added replacements for asprintf, vasprintf, and realpath, and
	autoconf checks for sys/ioctl.h and scandir.

	* Got rid of the help text compression. It only reduced the file
	size by about 10 kb, and was more trouble than it was worth to
	compile on some systems.

	* Added a new file 'zero', a single '\0' byte, for building the
	help text. There's just way too many portability problems with
	echo, printf, /dev/zero, or whatever else.

	* Various changes for AmigaOS and Win32. (Yes, it builds with the
	Mingw32 cross compiler, but just barely. I haven't a clue if it
	actually works.)

	* Should compile warning-free with both --enable-extra-opt and
	--enable-all-warnings, except for a couple stray warnings in
	Modplug. (Removed a lot of inline declarations because they
	weren't doing anything... heh.)

	* Touched up the README.


Mon Apr 18 01:04:15 2005  chisel  <schism@chisel.cjb.net>

	* Character cache! Before, the video thread used approximately
	39% CPU to draw the info page while playing, and it still uses
	about 17% now. It's not nearly as much of a difference I had
	anticipated, but at least it didn't *increase* the CPU. :)


Sun Apr 17 13:35:16 2005  chisel  <schism@chisel.cjb.net>

	* Got rid of some cruft in util.c. I used to use that file in
	some other programs, but I've since rewritten those programs in
	Python (or just don't use them anymore).

	* Added a couple path handling functions to dmoz, and substituted
	a couple more functions from util.c with them. This unfortunately
	broke compilation of the ITF editor unless it's built with
	libfmt.a as well.

	* Started working on character caching. Nothing's actually cached
	yet, but calls to the cache clearing functions are made where the
	character data changes (i.e. when changing the font or palette).

	* Finally fixed the weird not-always-updating bug. It just wasn't
	redrawing the screen all the time for some reason.


Sat Apr 16 14:16:11 2005  chisel  <schism@chisel.cjb.net>

	* Added full path field for directories.

	* Export sample dialog (Alt-T) uses the current sample's filename
	by default.


Fri Apr 15 17:58:58 2005  chisel  <schism@chisel.cjb.net>

	* Removed some stuff that was just collecting dust: RTM title
	reader (stub), Modplug's J2B module loader (stub), and
	CSoundFile::m_nMaxOrderPosition (never used).

	* Cleaned up code in a few places.

	* Added backspace to move backwards in a menu toggle list.


Wed Apr 13 23:15:24 2005  chisel  <schism@chisel.cjb.net>

	* Added a proper instrument mode to Modplug. This fixes several
	instrument-related problems, the most important being switching
	to the instrument list if a song is in sample mode no longer
	kills all the samples.

	* slurp.c: New parameter 'size'.

	* Uprooted the title library and merged in the new directory
	reading functions (now called "dmoz") in with it.

	* Ctrl-Left/Right in the pattern editor move the cursor a channel
	left or right if the target channel is on the screen.

	* Escape on the load sample page returns to the sample list.

	* Envelopes are initialized properly when creating an instrument.


Wed Apr 13 01:40:26 2005  chisel  <schism@chisel.cjb.net>

	* page_patedit.c: Replaced a bunch of occurrences of the same bit
	of code that checks for a selection with a new macro,
	CHECK_SELECTION_EXISTS().

	* Added a 'data' field to dialogs. This helped clean up some
	code, particularly that dealing with the file overwrite prompt
	dialog when saving a module.

	* Renamed 'item' to 'widget' everywhere. I can't remember why I
	didn't call them widgets to begin with...

	* Added stricter key modifier checks to the key handlers.

	* Implemented Ctrl-Left/Right to switch the playing pattern.

	* Hacked Modplug a bit to handle extremely short samples.


Mon Apr 11 00:46:28 2005  chisel  <schism@chisel.cjb.net>

	* Started framework for new directory reading functions.


Wed Apr  6 15:40:53 2005  chisel  <schism@chisel.cjb.net>

	* Sample export dialog works.

	* Boxing this as 0.19a.


Wed Apr  6 01:45:18 2005  chisel  <schism@chisel.cjb.net>

	* Much, much faster sample drawing.

	* Envelopes and envelope loops are enabled on change.

	* Squashed a minor bug: switching from edit to view mode on an
	envelope wasn't causing a screen redraw.


Sun Apr  3 22:52:46 2005  chisel  <schism@chisel.cjb.net>

	* Alt-Shift-Q and Alt-Shift-A transpose notes by a full octave.


Thu Mar 31 23:52:32 2005  chisel  <schism@chisel.cjb.net>

	* Option parsing! *throws confetti* I'm using Midianian's
	frag-opt for this; however, since it's not very widely used, I've
	simply added the parser to the source tree (built as a separate
	static library). I'll tweak the autoconf stuff later to use an
	already-installed version if one exists.

	* Some audio-related options are now saved on exit; changing
	these options will flash a message.


Thu Mar 31 16:25:58 2005  chisel  <schism@chisel.cjb.net>

	* Moved all envelope-related stuff to a separate structure, and
	cleaned up the envelope drawing and key handling.


Sat Mar 26 12:22:03 2005  chisel  <schism@chisel.cjb.net>

	* mixer-oss.c: Discovered that the OSS mixer actually uses *four*
	bytes for the volume for some reason, even though it only uses
	the first two bytes. Bleh.


Sat Mar 26 02:47:45 2005  chisel  <schism@chisel.cjb.net>

	* Added playback dots to the sample and instrument lists. They
	don't indicate when the sample just started playing, but they do
	show whether the sample is currently playing or not, and the dots
	are cleared when the song changes modes.

	* page_loadmodule.c: Delete key implemented.

	* Added a config file entry for the MAKE_BACKUPS flag.


Fri Mar 25 18:07:23 2005  chisel  <schism@chisel.cjb.net>

	* Renamed settings page to preferences, and moved it out of
	the playback menu since it isn't completely playback-related. Got
	rid of the not-very-useful Shell to DOS menu item, and added a
	new settings submenu (hence the renaming) with menu items for the
	preferences and palette editor.


Mon Mar 21 17:58:34 2005  chisel  <schism@chisel.cjb.net>

	* audio_loadsave.cc: (Hopefully) fixed pattern saving endianness.
	It was byte swapping the pattern header as 32-bit values, but
	they're only 16-bit... oops.

	* Changed my e-mail address and website URL everywhere.

	* config-parser.c, include/config-parser.h: Added boilerplate GPL
	stuff.

	* Added filter cutoff/resonance to instrument page. (Thanks,
	Manwe!) Not sure how IT handles turning it off, so at the moment
	once it's enabled it *stays* enabled. Setting cutoff to 127 and
	resonance to zero effectively disables the filter, though.

	* configure.in: using AS_HELP_STRING to format the help text now.
	Cool!

	* Tried to make the mixer stuff saner, but utterly failed at it.
	If anyone with a lot of autoconf experience would like to lend a
	hand, I'd be forever grateful.

	* Released as 0.185a.


Tue Mar 15 04:16:24 2005  chisel  <schism@chisel.cjb.net>

	* audio_loadsave.cc: Swap parapointer for samples even if there's
	no sample data. Also make sure to swap the sample *data* for
	16-bit samples.


Mon Mar  7 20:55:33 2005  chisel  <schism@chisel.cjb.net>

	* audio_loadsave.cc: Fixed parapointer endianness on file save.
	No, really.

	* Organized headers in C++ files to be a bit more consistent with
	those in the C files.


Tue Feb 15 22:04:08 2005  chisel  <schism@chisel.cjb.net>

	* audio_loadsave.cc: Fixed parapointer endianness on file save.


Mon Feb 14 15:10:06 2005  chisel  <schism@chisel.cjb.net>

	* After gdb'ing the crap out of the pattern resizing code,
	trimming it down to just a couple lines, and still not getting
	anywhere, I give up... releasing as 0.18a anyway. Be sure to save
	before *and* after resizing a pattern.


Sun Feb 13 14:31:35 2005  chisel  <schism@chisel.cjb.net>

	* Changed the confusingly-named song_get_current_pattern to
	song_get_playing_pattern. (Contrast get_current_pattern, which
	refers to the pattern loaded in the editor and is unrelated.)


Sat Feb  5 22:27:00 2005  chisel  <schism@chisel.cjb.net>

	* Added Alt-A on instrument list.

	* Added stub --enable-alsa-mixer option. It currently does
	nothing (which is still somewhat better than trying to open a
	nonexistent /dev/mixer) but I'll be finishing it as soon as I
	figure out the Alsa API. :)

	* Pattern resizing works... no, wait, it crashes.


Sat Feb  5 01:56:52 2005  chisel  <schism@chisel.cjb.net>

	* song_pattern_is_empty now checks the whole pattern like it's
	supposed to, not just the first 682⅔ notes.

	* Instrument numbers are now properly displayed on the info page.
	Ignore the ugly hack behind the curtain.

	* If a dialog doesn't handle the enter key, but it defines a
	'yes' callback, run it.


Thu Feb  3 03:38:41 2005  chisel  <schism@chisel.cjb.net>

	* Refined border flipping hack.

	* Removed highly old and irrelevant note from page.c that dated
	back to before I added the oscilloscope. Gheh.


Wed Feb  2 04:02:51 2005  chisel  <schism@chisel.cjb.net>

	* Removed "Untitled Palette #4" because it sucked, and added
	"Kawaii" in its place.

	* Added a hack that detects when a palette is "backwards" and
	switches the border colors accordingly. Needed for new palette.


Sun Jan 30 17:50:07 2005  chisel  <schism@chisel.cjb.net>

	* Merged new configuration parser. This is more robust than
	libcoman, as it (tries to) retain comments in the config file,
	can handle weird characters, and most importantly, it's not some
	obscure library that no one has.

	* Added the ability to make a backup when saving a song. There's
	no switch in the gui for this yet, but this can be enabled in GDB
	by typing "print status.flags |= MAKE_BACKUPS" at the prompt.


Wed Jan 12 23:24:40 2005  chisel  <schism@chisel.cjb.net>

	* Fiddled with slurp.c a bit.


Fri Dec 24 02:36:14 2004  chisel  <schism@chisel.cjb.net>

	* Changes made to the palette are saved now.

	* Packing this up for release as version 0.17a, mostly because
	I'm going away for a week. And yes, I tested it this time. ;)


Tue Dec 21 00:22:44 2004  chisel  <schism@chisel.cjb.net>

	* configure.in: Got rid of a lot of optimization flags. A couple
	sites claim that they don't accomplish much, and it breaks on
	some systems anyway, so...

	* Sample load screen now displays titles for supported sample
	types. Additionally, just for the heck of it, the *module* load
	screen displays titles for supported sample types, and the sample
	load screen displays titles for supported module types. In other
	words, if the file has a title, Schism displays it. Note,
	however, that modules aren't "browsable" yet; they are still
	loaded as raw sample data.


Sat Dec 18 14:46:17 2004  chisel  <schism@chisel.cjb.net>

	* itf.c: Mouse support for editing. It's not possible to do a
	handful of things with the mouse (e.g. load a file, copy and
	paste, quit) but most of the common functions for editing can be
	done with the mouse. In addition, the mouse cursor is now visible
	by default and may be toggled with Ctrl-M.


Sat Dec 18 01:17:13 2004  chisel  <schism@chisel.cjb.net>

	* page_patedit.c: If there's no selection, don't try to do a
	volume (or effect) slide.


Thu Dec 16 16:40:04 2004  chisel  <schism@chisel.cjb.net>

	* I win another beer! (see entry from Dec. 11) Obvious crash bug
	fixed when reading invalid files. It should be fairly clear by
	now that I don't do much testing before I put up a release! ^_^;;


Wed Dec 15 00:44:17 2004  chisel  <schism@chisel.cjb.net>

	* Replaced C++ style comments in non-C++ source.

	* __BEGIN_DECLS and __END_DECLS removed; I guess they don't exist
	in Cygwin-land. Also, NAME_MAX is set to 256 in headers.h if some
	system header hasn't already defined it.

	* page_patedit.c: Implemented volume amplify (Alt-J). The fast
	volume stuff still doesn't do anything, but it's trivial to add
	it (once I check how IT does it so I can get it right).

	* Packaging as ver. 0.16a. I bet tomorrow I'll find something
	wrong with it, but oh well.


Tue Dec 14 01:17:18 2004  chisel  <schism@chisel.cjb.net>

	* Moved title.c to fmt/ where it logically should be.

	* Rewrote file_info_get to return a logical status code, rather
	than abusing errno.


Mon Dec 13 20:12:38 2004  chisel  <schism@chisel.cjb.net>

	* FreeBSD compatibility: autoconf now checks for byteswap.h,
	versionsort, and strverscmp.

	* Moved byte-swapping macros to headers.h.


Mon Dec 13 00:56:20 2004  chisel  <schism@chisel.cjb.net>

	* Removed getopt_long from bin2h. It breaks portability, and
	besides, no one needs long options for a program that's only run
	automatically from within the build process.

	* Cleaned up #include ordering to cater to those silly FreeBSD
	people. Apparently it's important to them. ;)

	* Got rid of references to <features.h>. I don't remember why I
	had those in the first place.

	* Stared fiercely at config.c. Didn't do much with it.


Sat Dec 11 15:26:17 2004  chisel  <schism@chisel.cjb.net>

	* I made up a new game. Here's how it goes: you make a release of
	a program, and then find bugs in it! If you can find a bug within
	a day of releasing it, you win a prize!
	("And what do you win? Another beer!")

	* I'd completely forgotten the menu items existed, so most of
	them didn't do anything. Ghehh... fixed.

	* Fixed a bug in config saving that kept the surround effect
	setting from being saved correctly.


Fri Dec 10 10:27:03 2004  chisel  <schism@chisel.cjb.net>

	* Changed version number to 0.15a.

	* The song's filename and basename are now char arrays (rather
	than pointers). I'm not sure why I did it like that in the first
	place, but this makes much more sense.

	* Saving a song now updates the filename correctly.

	* Ctrl-S works properly now. (I think.)

	* Killed warning with optimize flags. (It seems like gcc3 is quite
	a bit different than 2.9x, I'm getting a bunch of "inline failed"
	warnings. I suppose eventually I'll get around to fixing it, since
	practically none of the inline functions actually *get* inlined,
	thus defeating the whole point of making them inline... argh!!1!@!)


Thu Dec  9 00:20:04 2004  chisel  <schism@chisel.cjb.net>

	* Save module page seems to work. Ctrl-S partially implemented as
	well, with "partially" meaning "prints a message" and "implemented"
	meaning "and does nothing else."


Wed Dec  8 11:23:50 2004  chisel  <schism@chisel.cjb.net>

	* dialog.c: Delay running the action callbacks until after the
	dialog has been destroyed.

	* page_loadmodule.c: Finally got some semblance of a save page. I
	don't doubt it still needs a lot of work, but hey, at least now
	it's possible to give a filename to save instead of having to
	switch to a shell and 'mv test.it whatever.it', so that's
	progress.

	* page_instruments.c: I swear I did some stuff last night, but I
	can't remember what. At least I remembered to save it twice
	without changing anything to prevent being able to figure out
	what I did by diffing with the backup file. :P~

Thu Nov 18 12:17:52 2004  chisel  <schism@chisel.cjb.net>

	* page_instruments.c: Finally added code to add/remove envelope
	points. Also, the envelope points are now drawn in a different
	colour from the lines (as for everything, this can be turned off
	with CLASSIC_MODE) -- it's not perfect, since the way I'm drawing
	the envelope, the lines are drawn on top of the points, so it
	looks a bit weird. I'll fix that. Eventually.


Sat Sep 25 16:29:02 2004  chisel  <schism@chisel.cjb.net>

	* main.c: Added quick hack to run a hook script on startup and
	exit. Just put whatever you want to run in ~/.schism/startup-hook
	and ~/.schism/exit-hook and chmod +x it, and Schism will run it.
	Useful for mounting a disk, changing the keyboard layout,
	signalling the screensaver, putting esd on standby, or whatever
	else you might want to do. Use your imagination.


Wed Sep  8 16:50:15 2004  chisel  <schism@chisel.cjb.net>

	* Create ~/.schism/ if it doesn't exist. (Oops.)


Tue Aug 10 09:00:51 2004  chisel  <schism@chisel.cjb.net>

	* Surprise! Finally got back to this.

	* Changed the volume sliders on the settings page to control the
	PCM volume by default. If you want the old (IT-like) behaviour
	back, the setting is in include/mixer.h.

	* Crushed a bug: the call to access() returns -1 on error, not 0.
	This was causing /dev/mixer to be read only if /dev/sound/mixer
	*did* exist. Oops.


Sun Apr  4 21:50:07 2004  chisel  <schism@chisel.cjb.net>

	* The half-width font should now match Impulse Tracker's
	pixel-for-pixel.


Fri Apr  2 22:11:25 2004  chisel  <schism@chisel.cjb.net>

	* Added a hack to accept alt-keypad digit as well as alt-function
	key. (i.e. alt-4 on the keypad is the same as alt-f4, alt-0 is
	like alt-f10, etc.) This way, it's possible to mute channels
	easily on the console in spite of SDL's lame hardcoded console
	switch bound to the function keys.


Mon Mar 29 22:54:15 2004  chisel  <schism@chisel.cjb.net>

	* Huge bug fixed in the sample editor: for some reason, the
	pre-loop cut was multiplying the data length by two. Dunno what I
	was on when I wrote that...


Sun Mar 28 17:40:33 2004  chisel  <schism@chisel.cjb.net>

	* Envelope loop point drawing and "squished" points checked
	against IT, and are now closer to a perfect match.


Sat Mar 27 20:31:32 2004  chisel  <schism@chisel.cjb.net>

	* Instrument envelope editing is almost fully functional; the
	only thing missing is add/remove node. (Rather important, eh ;)


Mon Mar 22 23:03:31 2004  chisel  <schism@chisel.cjb.net>

	* Started the save-module screen... erm, began to start it...
	more precisely, I just got ready to begin starting it. Dunno, I
	only added about 15 lines of code, and nothing functional has
	changed, so maybe I didn't do anything.


Thu Mar 11 09:41:10 2004  chisel  <schism@chisel.cjb.net>

	* Started working on envelope editing.


Thu Mar 11 00:17:01 2004  chisel  <schism@chisel.cjb.net>

	* On the info page, switching to the 64-channel view when the
	first channel displayed in a track view isn't channel 1 caused a
	crash. Fixed.

	* A similar bug existed on the pattern editor: moving toward
	channel 64 and then changing the track views to display more
	channels would try to show channel 65+, resulting in a crash.
	Impulse Tracker has this bug, but due to the differences in
	memory management (?) it just displays "channel 65" (which is
	filled somewhat randomly with data from other patterns).

	* Pitch subpage added to instrument list.

	* Simplified envelope drawing (less code repetition).

	* Fixed a weird bug that made the current node flip between 0 and
	-1 if an envelope didn't have any nodes.

	* Better sample/instrument playback (now possible to play notes
	anywhere, instead of just when the cursor is over the play text
	or on the actual instrument list) and "correct" multichannel
	playback implementation.


Mon Mar  8 10:07:43 2004  chisel  <schism@chisel.cjb.net>

	* Pattern editor options dialog. Everything works except for the
	pattern resizing.


Fri Mar  5 07:54:07 2004  chisel  <schism@chisel.cjb.net>

	* Trying to slide the volume/effect with a single-row selection
	would cause a crash. Fixed.

	* Changing a sample's default panning turns it on.

	* Changing a sample's speed directly from the number entry field
	will play the note.

	* Multichannel playback on the sample list works. (Alt-N and
	comma/period keys)


Wed Mar  3 09:15:08 2004  chisel  <schism@chisel.cjb.net>

	* Eheh... whoops. The bit that was supposed to set the pitch-pan
	separation and pan swing in the song to the value on the thumbbar
	was actually setting the thumbbar's value to the song's, thus
	making it impossible to change the values. :/

	* Added '-' to the keys that trigger the thumbbar value prompt.

	* Realized that numtostr_* still don't work with negative numbers
	despite the fact that they now put a negative sign instead of the
	leftmost digit... bah, they were stupid anyway. :P


Mon Mar  1 21:58:01 2004  chisel  <schism@chisel.cjb.net>

	* Fixed a nasty bug regarding window handling on the info page
	that I'm surprised I never noticed before, and added a quick
	sanity check to recalculate_windows.

	* Majorly rearranged startup to get the configuration before the
	audio setup, but keeping the song setup before the configuration
	because some of the pages need to have a song to load their
	settings. In all, it pretty much means the program startup code
	is getting more convoluted.

	* Making a release. I was planning on releasing this as 0.05a,
	but since there are so many changes, 0.1a seems a more fitting
	version number.


Sun Feb 29 20:34:47 2004  chisel  <schism@chisel.cjb.net>

	* (Some) pattern editor settings are loaded and saved.

	* Numeric values in the config file are loaded as strings and
	converted into numbers manually. This is a workaround for
	libcoman's non-handling of default values for numbers.


Sat Feb 28 21:57:38 2004  chisel  <schism@chisel.cjb.net>

	* Snagged the MPT source and fixed a bunch of stuff, most notably
	note playback and pattern single-step. (The latter is still not
	the same as IT, but works much better than before, which probably
	means I can't write code worth anything ;)

	* Ugly kludge to fix the font reset SDL does on exit.

	* Squashed a bug with key modifiers in the item key handlers. (On
	the numeric entries on the sample list, ctrl-plus/minus was being
	interpreted as a normal plus/minus rather than increase/decrease
	semitone.)


Fri Feb 27 21:59:47 2004  chisel  <schism@chisel.cjb.net>

	* Real hack job! Added note playback, but it's far from done.
	Currently it only works while something is playing (i.e. go to an
	empty pattern, hit F6, and then hit a couple keys on the sample
	list) and a few things are totally wrong (playing something from
	the sample list in a song with instrument mode turned on will
	actually play the same-numbered instrument, which is clearly not
	the intended result) but I'm getting there, very slowly. ;)

	* Insignificant changes here and there.


Thu Feb 26 08:31:11 2004  chisel  <schism@chisel.cjb.net>

	* Reworked custom dialog creation to make it much cleaner.


Tue Feb 24 20:44:10 2004  chisel  <schism@chisel.cjb.net>

	* Play row (the '8' key) on the pattern editor now works. It's
	not quite "right" but it's close enough for now.

	* Added a new key to the orderlist: Alt-U, find unused patterns.
	Try it, it's neat.

	* Instrument pitch-pan center works: left/right change the note
	(like in IT) and hitting a key on the keyboard will insert the
	corresponding note (not like IT).


Sun Feb 22 21:06:12 2004  chisel  <schism@chisel.cjb.net>

	* Instrument list panning subpage added. The pitch-pan center
	doesn't work yet, but everything else is functional.


Sat Feb 21 22:08:36 2004  chisel <schism@chisel.cjb.net>

	* REALLY implemented alt-k and alt-x in the pattern editor.

	* Added 64-channel view to the info page. IT draws nine extra
	"blank" channels at the right, which is a bit weird IMHO, but I'm
	still doing this in classic mode. The trouble with that is the
	track view needs to know to draw blank dots there rather than try
	to read more pattern data past the 64th channel (which actually
	loops around to the 1st-9th channel of the next row), so to keep
	things simple, it just leaves that part blank for now. I'll
	eventually finish it, I promise ;)


Fri Feb 20 11:26:48 2004  chisel <schism@chisel.cjb.net>

	* Fixed a couple of bugs with the clipboard handling.

	* Ctrl-n (new song) implemented.

	* Added alt-k, alt-v, alt-w, alt-x, and alt-y to the pattern
	editor. (Sort of. Alt-k and alt-x don't do anything, but 2x wipes
	the data like it should. I'll get to the slides later.)

	* Sample tuning (ctrl-grey plus, etc.) added.

	* Another vis display: global VU meter.


Thu Feb 19 21:56:25 2004  chisel <schism@chisel.cjb.net>

	* Save routine completely rewritten to write "proper" IT files.
	It's still pretty rough, but should work. Technical information:
	I've taken tracker ID #1 (other trackers all seem to fake Impulse
	Tracker and write 0x0214 or something), so the cwt/v field
	currently has 0x1005, i.e. Schism Tracker 0.05.

	* Rewrote most of the directory reading code in the load-module
	page to use opendir/readdir/closedir instead of scandir. Now I'm
	not sure why I was using scandir in the first place. :P


Tue Feb 17 20:53:10 2004  chisel <schism@chisel.cjb.net>

	* Fixed a nasty bug in the file reader.


Mon Feb 16 19:45:38 2004  chisel <schism@chisel.cjb.net>

	* Fake memory stats are drawn in the top right when the song is
	stopped. No reason, just looks better than a blank space.

	* Cleaned up main.c some more (see Feb. 6).

	* One-line hack to libmodplug to make a mixing volume of zero
	mute the song rather than just make it very quiet. Zero should
	mean zero, not sixteen!


Sat Feb 14 19:45:18 2004  chisel <schism@chisel.cjb.net>

	* DON'T synchronize instruments in sample mode; this breaks the
	samples in the same way that hitting F4 does. This is just a
	temporary hack to fix the disappearing-sample problem.

	* Sample trim now reallocates memory for the sample, like it
	should. Related to this: several sample editing keys now stop the
	song to avoid segfaults. (Not all of them, though. For example,
	IT stops on alt-a, but there's really no need to because the data
	pointer is the same.)

	* Hitting backspace at the beginning of a text field now deletes
	the next character, like Scream Tracker.


Fri Feb 13 12:53:48 2004  chisel <schism@chisel.cjb.net>

	* Added a flag to Modplug to mix surround channels normally (that
	is, it effectively disables the S91 effect). This doesn't do
	anything performance-wise, but it does make things sound better
	on certain setups. (i.e. 'average' speakers and a single woofer,
	like mine)

	* Fixed Modplug's broken idea of stereo separation.

	* Renamed older versions so they sort properly. (irrelevant ;)

	* Fiddled with the item structure a bit.

	* Implemented sample amplify (Alt-M).

	* Fixed sample loop editing.

	* Fixed weirdness with pattern break effect on the last order:
	FireLight's backward.s3m now works properly.


Thu Feb 12 22:46:58 2004  chisel <schism@chisel.cjb.net>

	* Added more track-view stuff: ctrl-digits now change only the
	current channel's view (like IT), and alt-t works.

	* Did some work regarding pattern editor settings.

	* When displaying the sample/instrument list, the word "sample"
	was written on the top as if the name field reflected the current
	sample's name (like it ought to), but it was still reading the
	instrument name. Fixed.


Wed Feb 11 21:18:06 2004  chisel <schism@chisel.cjb.net>

	* Envelope drawing functions.

	* The audio data is now amplified 4x, which accomplishes several
	things: (a) setting the song's mixing volume to 128 will create
	distortion, like IT; (b) the oscilloscope is much more obvious;
	and (c) it's no longer necessary to crank the sound card volume
	way up to hear the song.

	* Added a hack to play nice on the console by getting the
	framebuffer's resolution and initializing the screen with the
	actual y resolution. (This supplants the old hack that used a
	hard-coded value that I changed whenever I fiddled with the
	framebuffer mode.)


Mon Feb  9 23:37:24 2004  chisel <schism@chisel.cjb.net>

	* Sample loading! Impulse Tracker sample files (*.its) are
	recognized; anything else is currently just treated as raw data.

	* Added copyleft header to all files in accordance with the GPL.


Sat Feb  7 23:18:24 2004  chisel <schism@chisel.cjb.net>

	* The load-sample page is now much closer to being useful, though
	it still doesn't work as advertised, i.e. it's just a directory
	browser at the moment. However, there is very little to do before
	it actually loads samples.


Fri Feb  6 12:26:08 2004  chisel <schism@chisel.cjb.net>

	* Minor optimization on the log page.

	* Fixed a huge bug in the waveform display: the surface's height
	wasn't being used properly.

	* Added a silly oscilloscope.

	* Cleaned up main.c a bit.


Thu Feb  5 16:52:08 2004  chisel <schism@chisel.cjb.net>

	* Rewrote the pattern insertion functions to be much more
	general; implemented insert and mix paste.

	* Changed all cases of "KMOD_ALT | KMOD_META" to "KMOD_ALT |
	KMOD_META | KMOD_SUPER" in an attempt to make it possible to use
	all the alt-key combinations on the Linux console, then realized
	that SDL doesn't treat 'super' as a modifier and had to change
	them all back. Bah.

Mon Feb  2 22:19:01 2004  chisel <schism@chisel.cjb.net>

	* bin2h completely rewritten.

	* The "save all preferences" button actually works now. (Well, it
	doesn't save *all* preferences, but it does save the settings
	that get loaded.)

	* Added an extra newline between all ChangeLog entries.


Sat Jan 31 20:59:05 2004  chisel <schism@chisel.cjb.net>

	* Changed #ifndef macros to agree with the GNU CPP documentation.
	(info cpp once)

	* Got rid of my file _decl.h, in favor of the standard (at least
	for gcc) header <features.h>, which defines _BEGIN_DECLS and
	_END_DECLS. You might think that, after skimming through the
	system headers a hundred times, I would have noticed that _decl.h
	was stupendously redundant...


Tue Jan  6 12:08:15 2004  chisel <schism@chisel.cjb.net>

	* I can't believe how little time I've been able to put into this
	over the holidays. I was hoping to have so much more new stuff in
	0.04 than I do.

	* Clear sample/instrument text now memset()'s the whole filename
	field to zero. Before, it just zeroed the first character, which
	is ok except it still saves the rest of the "cleared" filename
	when it saves the .it file.


Sun Jan  4 16:24:48 2004  chisel <schism@chisel.cjb.net>

	* Some configuration options are loaded as they should be:
	palette, font, directories, time display, and the classic mode
	switch. Audio settings are next on the list.


Tue Dec 23 22:50:42 2003  chisel <schism@chisel.cjb.net>

	* Devices don't show up as directories anymore. Dunno how that
	happened...


Mon Dec  1 01:00:26 2003  chisel <schism@chisel.cjb.net>

	* Tried to figure out how to do single-step playback in the
	pattern editor (the '4' and '8' keys), but couldn't get it to
	work. Oh well.


Mon Nov 24 14:56:33 2003  chisel <schism@chisel.cjb.net>

	* Added alt-s key to pattern editor.


Sat Nov  8 12:05:45 2003  chisel <schism@chisel.cjb.net>

	* Lots of stuff, I can't remember what.


Mon Sep 22 14:14:59 2003  chisel <schism@chisel.cjb.net>

	* Fixed a dumb bug with the Axx effect that crept up earlier.

	* Fonts are now stored in ~/.schism/fonts/ instead of the current
	directory.

	* Started work on loading/saving settings (~/.schism/config).


Sat Sep 13 22:11:44 2003  chisel <schism@chisel.cjb.net>

	* Whoa... been forgetting about this. :P

	* The load-sample page exists, but it's nonfunctional.

	* Title text (the copyright thing) is much more flexible -- I
	took advantage of some GCC-ness so I don't have to figure out
	where the text is supposed to be placed. Wee.

	* The settings page still doesn't work, but it at least sets the
	thumbbars to sane values.

	* Fixed a bug with loading songs having a "+++" in the first
	order. This crept up as a result of my trying to fix another bug
	if the song has no orders... bleah.


Tue Jul  8 16:57:56 2003  chisel <schism@chisel.cjb.net>

	* Fixed vibrato volume command in IT files: it's not speed, it's
	DEPTH... this made my 10k entry sound really crappy.


Tue Jun 17 15:27:11 2003  chisel <schism@chisel.cjb.net>

	* New 'CLASSIC_MODE' status flag. With this enabled, some stuff
	behaves more like good old Impulse Tracker :)

	* Implemented a few of the fields on the config screen.

	* Killed a couple stupid bugs on the instrument list.

	* Fixed the note mask handling on the pattern editor. (I think.)


Mon Jun 16 11:46:49 2003  chisel <schism@chisel.cjb.net>

	* Version 0.031a.

	* Note translation table works. (partially... it's at least
	usable, but only a couple of the keys work)


Thu Jun 12 17:07:18 2003  chisel <schism@chisel.cjb.net>

	* BIG BIG CHANGE. No longer am I building against an
	already-installed version of libmodplug; I'm moving it in with
	the source, compiling it, and linking it statically. This will
	make it much much easier for me to fix bugs I find without having
	to reinstall libmodplug every time, too. (for example, the broken
	DigiTrakker volume slides)

	* Another big change: now video modes with > 8 bit pixel formats
	are handled properly. (This still needs a lot of optimizing.)


Wed Jun 11 17:42:40 2003  chisel <schism@chisel.cjb.net>

	* Added track views for the info page. I tried to make the
	drawing function as general as possible, so it shouldn't be
	difficult to add new ones.

	* Fixed .liq module title reading (even though Modplug doesn't
	load them :).

	* Playing samples have little lines drawn on them to show where
	they are. (Seems like IT doesn't do this...?)

	* The very first hints of a configuration screen are in place.


Sun Jun  8 14:51:30 2003  chisel <schism@chisel.cjb.net>

	* Tons of changes! Bumping the version up to 0.03a.

	* Info page works. Only two views at the moment, but it works.

	* Now using double buffering (like for the ITF editor) - much
	cleaner code, easier to write, and a smaller binary as a result.
	(And there was happiness throughout the land.)

	* SDL parachute isn't disabled for non-debug builds.

	* Moved a large portion of the key handling code to a new file,
	thus making page.c much easier to deal with.

	* Changed some file type descriptions to be more consistent with
	Impulse Tracker's. This was actually harder than it sounds. :)

	* Added a new bit in the pattern editor help about imported FT2
	effects.

	* A bunch of messages about the audio/video are now dumped to the
	program log (Ctrl-F1) on startup.

	* Much, much more -- too much to list.


Sun Jun  1 21:53:58 2003  chisel <schism@chisel.cjb.net>

	* Sample list: trimming, signed/unsigned convert, quality
	convert, reverse, centralise data, and delete implemented. Wee.

	* Added a focus handler that causes a 500ms delay per cycle if
	the window isn't focused -- no sense in updating the screen all
	the time when it's in the background. There's a 100ms delay if a
	dialog/menu is active, but I might change that later on if it
	annoys me ;)

	* Shaved 13kb from the binary size. Can't quite figure out how
	that happened, but ok :)


Fri May 30 10:57:46 2003  chisel <schism@chisel.cjb.net>

	* Finally got around to writing the dialog code. This involved
	rewriting large portions of other code where I wasn't really
	thinking about the fact that dialogs have items ;) This means
	that the number input on thumbbars is working now (though I
	could've probably done it in far less code), as is the play time
	(Ctrl-P) and a bunch of other things that were previously
	noticeably unimplemented.


Wed May 28 23:16:39 2003  chisel <schism@chisel.cjb.net>

	* More playback keys implemented (and properly)... thanks to +-
	for the amazingly detailed e-mail! :)

	* Channel solo/mute now actually solo/mute the channel, not just
	pretend to.

	* Currently playing row/order are now drawn in a different color
	like they're supposed to be.

	* Pattern editor: centralise cursor, current row highlighting,
	and playback tracing implemented. Redrawing code improved muchly
	as well, so the playback tracing is nice and smooth.

	* Alt-F1 -> Alt-F8 (toggle channel 1-8 muted) work.

	* Implemented a couple more global keys, and a few toggles on the
	info page just for kicks. None of this means anything yet, of
	course, because the info page is completely blank :)


Sun May 25 22:54:10 2003  chisel <schism@chisel.cjb.net>

	* Weee! Many big changes, notably block selection is working
	properly (even with shift-tab), and! IT PLAYS THE SONG :) The
	status text is now working as well, including the ability to
	flash messages on it (like "cursor step set to 2").

	* Note mask replication is working.

	* Added a couple new experimental palettes.

	* A few big changes in the ITF editor, mostly trying out SDL's
	double buffering support and doing a single SDL_Flip(screen) when
	the screen needs redrawn, rather than tons of calls to
	SDL_UpdateRects(). I might keep this; then again, I might not.

	* Too much to mention... I should be logging stuff more often,
	but then again, who cares besides me at the moment? :P


Mon May 19 17:48:37 2003  chisel <schism@chisel.cjb.net>

	* Starting ChangeLog.

	* Now using automake/autoconf, after exactly three hours of
	coaxing. Seems to work...
