2004-06-26  Steve Ratcliffe  

	* seq/seqlib.m, seq/seqmidi.m, seq/seqplay.m, util/gxstack.m,  files/file.m,files/midiread.m,files/midiwrite.m,md/elements.m,md/mdconv.m,midi/play.m,programs/melplay.m,programs/showseq.m,config/ports.m:
	Changes for v1.0 of ALSA (at last).

2001-04-21  Steve Ratcliffe  

	* config/ports.m, files/midiwrite.m, make.conf, md/mdconv.m,  midi/play.m,midi/record.m,mlib/PROJECT/code.py,programs/melplay.m,programs/showseq.m,seq/seqlib.m,seq/seqmidi.m,seq/seqplay.m:
	Brought up to date with alsa cvs

	* help/C/keybind.sgml, help/C/melys.sgml, help/C/menus.sgml,  help/C/piano.sgml,help/C/tempo.sgml,help/C/track.sgml:
	Modified to have balenced tags

2000-04-02  Steve Ratcliffe  

	* seq/seqlib.m: Changes to remove temporary routines and increase the
	modularity.

2000-03-12  Steve Ratcliffe  

	* midi/record.m, midi/play.m:
	Moved most of the remaining references to ALSA stuff out of
	here and into seq.

2000-02-09  Steve Ratcliffe  

	* version: Version 0.1.17

	* Makefile: Modified fordist to remove cfiles.

	* README: Updated for release.

	* widgets/melysview.m: Removed printf

2000-02-09  Steve Ratcliffe  

	* README: Updated for release 0.1.17.
	* Makefile: Modified fordist to remove cfiles.

	* widgets/melysview.m: Removed printf

2000-02-08  Steve Ratcliffe  

	* widgets/melysview.m: Some preparation for future button click
	changes.

	* widgets/melystempo.m: Cosmetic changes.

	* seq/seqlib.m, seq/seqmidi.m, seq/seqplay.m:
	The ALSA api changed the name of a structure member.
	Fixed, and added ifdef kludge that hopefully will work with
	most revisions of ALSA.

2000-01-11  Steve Ratcliffe  

	* files/mdmlread.m: Ommit the gnome-xml directory from the include
	directive as this is now on the command line in -I.

	* make.conf: Use the gnome-config command directly.

	* widgets/melysgrid.m: Fixed bug where grid wasn't resized
	when re-scaled.  General tidy up.

	* midi/play.m: Don't allow too many buffered events.  This
	is not a good idea as events cannot overtake others in the
	userspace buffer.

2000-01-07  Steve Ratcliffe  

	* version: Version 0.1.16

	* seq/seqlib.m, midi/record.m: More 0.4.1 fixes.

	* seq/seqlib.m: Added ifdefs around a SETPOS. (reported by Thomas Hood)

2000-01-06  Steve Ratcliffe  

	* version: Version 0.1.15
	* ChangeLog, INSTALL, README: Mods for release 0.0.15

	* widgets/melysgrid.m:
	Make the grid extend beneath the existing tracks.

	* po/melys.pot, po/zz.po: Updated language files.

	* seq/seqplay.m: Only send pan command if it is not default.

	* seq/seqlib.m: Hopefully the final changes for the new API

	* midi/record.m:
	Use correct define instead of (now out of date) magic number
	in debugging statement.

	* md/mdutil.m: Fixed snap to bar.

	* widgets/melysgrid.m:
	First checkin of the grid canvas item.  This will be a flexible
	grid where each view can specify the frequency of the horizontal
	and vertical rulings.
	At present it just draws vertical lines at each bar.

	* widgets/melysview.m: A melys_grid is now added to each view.

	* widgets/melystempo.m: Change the default horizontal scale.

	* widgets/melysrule.m:
	Account for hbase offset when setting position by
	clicking on the ruler.

2000-01-04  Steve Ratcliffe  

	* widgets/melysrule.m, widgets/melysscroll.m, widgets/melystempo.m,
	  widgets/viewcontrol.m:
	Moved the hbase into the viewcontrol, instead of having
	duplicates everywhere.

1999-12-20  Steve Ratcliffe  

	* version: Version 0.1.14

	* programs/melplay.m, md/mdseq.m, md/mdutil.m, md/elements.m:
	new macro istracklike() which we need now that the TEMPOMAP
	is not the same as a track.  Perhaps it was a mistake to split them in
	that way.

	* widgets/melysrule.m: Motion events on ruler are 'notyet'

	* seq/seqlib.m: Temporary routine to get the queue.  Really all
	the flush/remove routines should be moved out of midi/play.m
	to here.

	* midi/play.m: Fix for new api, you need to specify a queue on the
	remove_events call.

1999-12-19  Steve Ratcliffe  

	* util/util.m: Moved the snap_type enum into here.

	* md/mdutil.m: Moved the snap_types enum out of here.

	* md/mdseq.m: Fixed major bug that only seem to show up when compiled
	with optimisation.
	If you have seen flakiness when using the mute and solo buttons
	this is probably it.

	* files/mdmlread.m:
	On some systems, it would appear that error.h gets included
	for some reason.  Changed a name from error to sax_error to
	get around this.

	* examples/screenshot.mdml:
	Fixed duration so it didn't play beyond end of tracks.

	* midi/play.m, seq/seqlib.m, seq/seqplay.m, widgets/melyspiano.m,
	  widgets/melysrule.m, widgets/melystrackdisplay.m,
	  widgets/melysview.m, widgets/viewcontrol.m, md/mdadd.m, md/mdseq.m:
	Added the initial implementation of the set position
	support.  At present you can just shift click on the ruler
	to set the current time.  There is no scan back for controller
	values or current tempo.

1999-12-16  Steve Ratcliffe  

	* version: Version 0.1.13

	* seq/seqlib.m, seq/seqmidi.m, seq/seqplay.m, midi/play.m:
	Updates for the new sequencer API.

	* widgets/melysrule.m:
	Fix random contents after pulling a page from the notebook.

	* programs/melplay.m:
	Removed the play() routine as it has now been replaced
	with the seq_midi_send_element() routine.

	* midi/play.m: Removed misleading comment, simplified an expression.

1999-12-16  Steve Ratcliffe  

	* seq/seqlib.m, seq/seqmidi.m, seq/seqplay.m, midi/play.m:
	Updates for the new sequencer API.

	* widgets/melysrule.m:
	Fix random contents on the ruler after pulling a page from the notebook.

	* programs/melplay.m:
	Removed the play() routine as it has now been replaced
	with the seq_midi_send_element() routine.

	* midi/play.m: Removed misleading comment, simplified an expression.

1999-12-14  Steve Ratcliffe  

	* version: Version 0.1.12

	* help/C/piano.sgml: Added paragraph on deletion.

	* gui/main.m, gui/menus.m, midi/play.m, po/melys.pot, po/zz.po,
	  widgets/melyspiano.m, widgets/melystempo.m, widgets/melystrackdisplay.m:
	Some internationalisation messages had been missed

	* widgets/melyspiano.m, widgets/melystempo.m,
	  widgets/melystrackdisplay.m, widgets/melysview.m:
	Implement mouse position tracking for all the views.
	This will all be moved to the view status widget
	when it is ready.

	* widgets/melysview.m: When dragging the reported position is
	the start time of the earliest element in the drag.

	* widgets/melyspiano.m: Use mel_status_msg from the melmsg.h header

	* gui/main.m: Get mel_status_msg defined in the melmsg.h header

	* widgets/melyspiano.m, widgets/melysscroll.m, widgets/melysview.m:
	Modify so that there is only one position change routine.

	* widgets/melyskeys.m: There needs to be an extra arg to the highligh
	routine now.

	* gui/main.m: Add routine to display message in the status bar.

	* util/util.m, files/mdmlwrite.m: Routine to make a note name
	from a number, transfered to util and made global.

	* widgets/melyskeys.m, widgets/melyspiano.m, widgets/melysscroll.m,
	  widgets/melystrackdisplay.m, widgets/melystrackinfo.m,
	  widgets/melysview.m:
	Changes all to do with better user feedback while moving
	the mouse or dragging.  You now see the piano keys being
	highlighted while you move over them.
	The drag outlines honour the snap setting so you can see just
	exactly where it is going to be dropped.

	* doc/docgen.py: Add some more files

	* md/mdutil.m: Swap the order of the type and tick args in md_snap_tick
	to be more intuitive.

1999-12-13  Steve Ratcliffe  

	* widgets/melysview.m:
	While dragging we don't get motion events, so synthesize one.
	Feedback now occurs while you drag.

	* widgets/melysview.m: Added handler for key press events.
	Can now delete all selected objects in each view.

1999-12-07  Steve Ratcliffe  

	* version: Version 0.1.11
	* ChangeLog: For rel 0.1.11
	* REL-0-1-11

	* widgets/melystrackdisplay.m:
	The default snap to grid is quarter note for
	this display.

	* widgets/melystrackinfo.m:
	Clear the track display_info before removing the track.
	Thought I saw a bug involving that, but couldn't reproduce it.

	* widgets/melysview.m:
	If a partial view don't keep scrolling when past the
	end of the view.

	* widgets/melyspiano.m:
	Changed the default grid snap to be 1/16th note.

	* widgets/viewcontrol.m:
	Move the snap type enum out of here and into the md directory
	where it really belongs.

	* md/mdutil.m: Implemented many of the snap to grid types.
	Seems to work after I realised that my idea of what a 1/16th
	note triplet should be was wrong...

1999-12-04  Steve Ratcliffe  

	* md/mdtools.m:
	Fix for joining parts which was losing events in the second part.

	* song/song.m: If you close a view by destroying it with the window
	manager, then we must not try to update that widget any
	more.  Use the registration stuff.

1999-12-03  Steve Ratcliffe  

	* po/FILES, po/melys.pot, po/zz.po: Updated the translation files.

	* help/C/keybind.sgml, help/C/melys.sgml, help/C/tempo.sgml,
	  help/C/topic.dat:
	A new keybinding chapter and some updates to the tempo view.

	* widgets/melysrule.m:
	Modify to use double buffering, the ruler is now much smoother.

	* widgets/melyspiano.m:
	Changed layout to use nested tables, the original method
	wasn't working on every theme.

1999-12-02  Steve Ratcliffe  

	* examples/screenshot.mdml:
	Reduced the size of the file a bit by trimming the pianoroll
	section.

	* version: Version 0.1.10

	* widgets/melyskeysig.m, widgets/melyspiano.m, widgets/melysscroll.m,
	  widgets/melyssig.m, widgets/melystempo.m, widgets/melystimesig.m,
	  widgets/melystrackdisplay.m, widgets/melysview.m, widgets/misc.m:
	Moved display_info_free into misc.c and fixed all files to suit.

	* widgets/melysview.m:
	Fix the anti-aliased branch of the canvas creation (that
	we are not using).

	* examples/screenshot.mdml: Added the screenshot mdml file.

	* widgets/melyssig.m:
	Changed an incorrect reference into a weak reference.  The elements
	are now all freed properly when the file is closed.

	* README: Updated with the information that 1.0.40 gnome-libs
	seems to work.

1999-12-01  Steve Ratcliffe  

	* md/mdconv.m: Fix crash when only reading a midi file when the
	only track is empty.

	* widgets/melyskeysig.m: Fixed the conversion to the string.

	* README: Updated the requirements section.  Early versions of
	gnome-libs give a solid black block instead of a nice piano.

	* seq/seqlib.m, seq/seqplay.m:
	Add some defines for converting from nsec to sec and prepare
	for increasing the delay for sysex messages.

	* widgets/melyssig.m:
	Improved the look a little and took out debugging.

	* widgets/melysscroll.m: display info structure moved into here
	* widgets/viewcontrol.m: The snap type moved here.
	* widgets/melysview.m: Some things moved down to melys_scroll

	* widgets/melystempo.m: The keysignature widget added.
	* widgets/melyskeysig.m: The keysignature widget.

	* widgets/melyssig.m, widgets/melystimesig.m:
	Pushed more of the code from timesig down to sig so that
	it can be used for both timesig and keysig.
	Keysig will now be a very quick widget to write.

	* md/elements.m:
	Modify check_cast so that it will deal with NULL pointers.

	* widgets/melystempo.m: Add the timesignature widget.

	* widgets/melyssig.m, widgets/melystimesig.m:
	The first working timesignature display.

1999-11-30  Steve Ratcliffe  

	* examples/notes.mdml, examples/timesig.mdml:
	Some test example mdml files.

1999-11-29  Steve Ratcliffe  

	* version: Version 0.1.9

	* widgets/melysview.m: Fixed occasional crash on opening a file.

	* midi/record.m: A define in the ALSA headers has changed.

	* version: Version 0.1.8

	* md/mdutil.m: Removed dataset_destroy, which I am not convinced should
	be there when clearing a selection.  Caused problems when
	double clicking on a part.

	* widgets/melystrackdisplay.m, widgets/melysview.m:
	Fix crash on double click on a note.
	The actions that are meant to operate on all selected parts
	now do.

	* widgets/melyspiano.m, widgets/melystempo.m,
	  widgets/melystrackdisplay.m, widgets/melysview.m:
	Editing back to normal.  Can drag and drop between views
	again with proper highlighting.  Can double click to get
	property box again on part display.

	* version: Version 0.1.7

	* widgets/melysscroll.m, widgets/melystrack.m,
	  widgets/melystrackdisplay.m, widgets/melysview.m:
	Re-wrote melys_track_display to be based on melys_view.
	All the views are now based on melys_view.  Adding key accelerators
	can now be done on melys_view and will work for all views.

	* version: Version 0.1.6
	* ChangeLog: For release 0.1.6
	* make.conf: Undid temporary changes

	* config/ports.m:
	Fixed crash when ALSA_{INPUT|OUTPUT}_PORTS are not set.

	* help/C/Makefile, help/C/melys.sgml, help/C/tempo.sgml:
	Some help for the tempo change view.

	* md/mdconv.m: Don't remove the program changes from the MD tree.

	* README: Update the requirements for libxml

	* widgets/melyspiano.m, widgets/melysrule.m, widgets/melysscale.m,
	  widgets/melysscroll.m, widgets/melystempo.m, widgets/viewcontrol.m:
	Now have a scale for the tempo widget.
	Moved the zero point offset kludge from vcp to mscroll.

1999-11-28  Steve Ratcliffe  

	* widgets/melystrack.m, widgets/melysview.m, widgets/viewcontrol.m:
	Now melys_view uses melys_scroll for its canvas part.

	* widgets/melyskeys.m, widgets/melysrule.m, widgets/melysscroll.m,
	  widgets/melystrack.m, widgets/melystrackdisplay.m,
	  widgets/melysview.m, widgets/viewcontrol.m:
	Added a new widget to base melys_keys on.  It is a general scrolling
	canvas that can be set to scroll in either or both directions.
	It will be used for the vertical scale on the tempo view and
	for the keysignature and timesignature.
	It could perhaps be used for the ruler and for the canvas part of
	melys_view.

1999-11-27  Steve Ratcliffe  

	* widgets/melyskeys.m: Fix spello in comment

	* files/midiwrite.m, make.conf, md/mdseq.m, md/mdutil.m,
	  widgets/melystrackdisplay.m, widgets/melysview.m:
	Another bunch of changes for ticktime_t

	* midi/record.m, programs/melplay.m, programs/melys.m, seq/seqlib.m,
	  seq/seqmidi.m, util/util.m, widgets/melyspos.m, widgets/melystempo.m,
	  widgets/melystrackdisplay.m, widgets/melysview.m, files/mdmlwrite.m,
	  files/midiread.m, files/midiwrite.m, md/elements.m, md/mdadd.m,
	  md/mdlist.m, md/mdseq.m, md/mdtools.m, md/mdundo.m, md/mdutil.m,
	  midi/play.m, make.conf:
	Change the type of all normal time variables to ticktime_t.

	* widgets/melysrule.m, widgets/viewcontrol.m:
	Changes to allow an offset in the display.  Used for the tempomap
	so that the initial tempo change isn't half hidden.

	* md/mdutil.m: Add md_get_duration to find the duration of notes as
	well as containers.

	* md/mdconv.m:  Reading midi0 files was too slow.  So changed
	the remove/add cycle to basically avoid the remove part.

1999-11-26  Steve Ratcliffe  

	* widgets/melystempo.m: Keep the duration of the tempomap to be
	the same as the duration of the root.

	* widgets/melystempo.m: Now there is a line connecting together
	the tempo changes.

	* widgets/melystempo.m: The new tempo view.  This is just a
	first cut.  It will also have timesignature and keysignature bars.
	Also it needs a scale down the left hand side.

	* widgets/melyspiano.m, widgets/melystrackinfo.m, widgets/melysview.m:
	1. Make the display info free function accessible from the melys_view
	widget.
	2. There was a silly bug where MD_DURATION just happened to work with
	notes because the length field was at the same offset as the duration
	in containers.
	3. Other stuff to allow the new tempo view to be accessed.

	* widgets/melyskeys.m, widgets/melyspiano.m, widgets/melysview.m:
	We now have highlighting on the piano keys as you move around
	the notes.  Also the octaves are now labeled.

1999-11-25  Steve Ratcliffe  

	* widgets/melystrackdisplay.m, widgets/melystrackinfo.m,
	  widgets/melysview.m, widgets/viewcontrol.m:
	Now you can select the piano view from a part. When you do so then
	only the notes in that part are shown.  If the part does not start at
	time 0 then the view doesn't either etc.

	* help/C/track.sgml: fixed spellos

	* help/C/piano.sgml: more detail on piano view

	* widgets/melyspiano.m:
	Removed the canvas event handler as this is all going to
	be done in melys_view.

	* widgets/melysview.m:
	Add signals for the current mouse position over the canvas.
	These can be used to show the current position in the status
	line etc.

	* widgets/melyskeys.m:
	Fix bug where the notes and the keys would move slightly out
	of step when scrolling.

1999-11-24  Steve Ratcliffe  

	* version: Version 0.1.5 Two releases in the same day!

	* widgets/melystrackdisplay.m:
	Fixes to use the allocation of the canvas rather than
	the widget itself.

	* widgets/melyskeys.m, widgets/melyspiano.m, widgets/melysview.m:
	Added the keyboard part of the piano roll display.
	Also fixed a bug where you couldn't see right down to note 0.

	* version: Version 0.1.4

	* ChangeLog: For release.

	* doc/mdml.dtd: Updated version number for last change

1999-11-23  Steve Ratcliffe  

	* doc/mdml.dtd: Add the new midi tag.

	* files/file.m, files/mdmlread.m, files/mdmlwrite.m, files/midiread.m,
	  files/midiwrite.m, gui/main.m, md/elements.m, md/mdadd.m,
	  md/mdconv.m, md/mdutil.m, midi/play.m, midi/record.m,
	  programs/mdmlconv.m, programs/melplay.m, programs/showseq.m,
	  seq/seqlib.m, seq/seqmidi.m, seq/seqplay.m, widgets/melystrackinfo.m,
	  config/ports.m:
	Extensive changes to Melys to properly recognise patch changes
	when reading from a Midi file in XG or some similar format.
	We now:
	  - Recognise GM/S/X Midi files.
	  - When in XG mode recognise extended program changes with ctrl 0 and 32
	  - There is a new attribute in MDML for the Midi mode.

	* gui/trackprop.m: The pan position was broken, fixed.

	* gui/trackprop.m:
	Use correct macro to get the right midi value from the
	slider value.

1999-11-21  Steve Ratcliffe  

	* seq/seqlib.m: Set direct flag on timer change events, as otherwise
	on new sequencer CVS they do not get delivered.

	* seq/seqlib.m, seq/seqmidi.m: Make code backward compatible with 0.4.1

1999-11-20  Steve Ratcliffe  

	* help/C/melys.sgml, help/C/piano.sgml, help/C/Makefile:
	The start of the piano view help.

1999-11-15  Steve Ratcliffe  

	* version: Version 0.1.3

	* widgets/melyspiano.m: Implement the drop_elem method.  We can
	now receive a set of notes or a whole track/part.

	* midi/record.m: An arg type has changed.

	* md/mdadd.m: Made ensure_part_filled an external routine
	md_ensure_parts()

	* widgets/melystrackdisplay.m:  When dragging a set of notes over
	the part pane we want to squeeze them down so that the range
	0-127 is as heigh as a single track.

	* mlib/PROJECT/mgtk.py: Add some comments to the templates.

	* md/mdutil.m:  Routines for clearing and building a list of
	selected items based on type.

	* widgets/melyspiano.m, widgets/melysrule.m,
	  widgets/melystrackdisplay.m, widgets/melysview.m:
	Implemented all of drag and drop as common code
	in melysview.  There are only a few class specific routines
	needed.  Later melystrackdisplay will be re-worked to use
	melys view, at present it is just duplicating code.
	MelysTempo will also use MelysView.

1999-11-14  Steve Ratcliffe  

	* md/elements.m, md/mdadd.m, md/mdtools.m:
	All elements now have a back reference to their containers.
	This is set to NULL on removal, and must be NULL on add.

1999-11-13  Steve Ratcliffe  

	* version: Version 0.1.2

	* gui/menus.m: Remove the mdi destroy which is not needed.

	* widgets/melyspiano.m:
	An initial working piano roll widget.  There is no editing, it is read
	only.  But you can have several open at the same time, even on
	the same track.  When part of a track is deleted the notes are also
	removed from the piano views.

	* mlib/PROJECT/mgtk.py:
	Removed confusing and unneeded set signals directive

	* widgets/melystrackinfo.m:
	Deal with menu ref/unref differently so that it
	goes away properly when the parent widget is destroyed.

	* widgets/viewcontrol.m:
	Account for iter-item spacing when setting the min spacing and
	don't allow item height to go zero or negative.

	* widgets/melysview.m:
	There is now a scale_changed signal from the view.  This is
	used to re-calculate all dimentions when zooming.

	* widgets/melysrule.m:
	Re-drawing fix needed because of changes elsewhere

	* widgets/melystrackinfo.m:
	Moved all context menu stuff into here.  This allows us to
	know what track was clicked and so act more appropriately in some
	cases.  Eg. it is essential for opening up new views.

	* widgets/melystrackdisplay.m:
	Split the canvas item arguments between ones that are set on creation
	that never change, and those that are set on re-draws.  Profile data
	seems to suggest that setting the args here is slow (well we are just
	doing a lot of it)
	Also clear display datasets when a part is deleted (more to do here)
	this makes the displayed items go away when the part is deleted.

	* song/song.m: Adding a view now keeps a list of the views that were
	added.  So, when you redraw all views can be redrawn. There
	will later be a routine to remove a view of course.

	* md/mdutil.m: Add md_clear_data() to clear off all g_dataset data.

	* gui/main.m:
	Moved out the track context menu from here.  (Its now in melysdisplayinfo
	where it belongs.)  Simplified setting of the posadj now that it
	belongs to the song.  This reduces the nasty coupling between main and
	the widgets.

1999-11-13  Steve Ratcliffe  

	* gui/menus.m: Remove the mdi destroy which is not needed.

	* widgets/melyspiano.m:  An initial working piano roll widget.
	There is no editing, it is read only.  But you can have several
	open at the same time, even on the same track.	When part of a
	track is deleted the notes are also removed from the piano views.

	* mlib/PROJECT/mgtk.py:
	Removed confusing and unneeded set signals directive

	* widgets/melystrackinfo.m:
	Deal with menu ref/unref correctly so that it
	goes away properly when the parent widget is destroyed.

	* widgets/viewcontrol.m:
	Account for iter-item spacing when setting the min spacing and
	don't allow item height to go zero or negative.

	* widgets/melysview.m:
	There is now a scale_changed signal from the view.  This is
	used to re-calculate all dimentions when zooming.

	* widgets/melysrule.m:
	Re-drawing fix needed because of changes elsewhere

	* widgets/melystrackinfo.m:
	Moved all context menu stuff into here.  This allows us to
	know what track was clicked and so act more appropriately in some
	cases.  Eg. it is essential for opening up new views.

	* widgets/melystrackdisplay.m:
	Split the canvas item arguments between ones that are set on creation
	that never change, and those that are set on re-draws.  Profile data
	seems to suggest that setting the args here is slow (well we are just
	doing a lot of it)
	Also clear display datasets when a part is deleted (more to do here)
	this makes the displayed items go away when the part is deleted.

	* song/song.m: Adding a view now keeps a list of the views that were
	added.  So, when you redraw all views can be redrawn. There
	will later be a routine to remove a view of course.

	* md/mdutil.m: Add md_clear_data() to clear off all g_dataset data.

	* gui/main.m:  Moved out the track context menu from here.  (Its
	now in melysdisplayinfo where it belongs.)  Simplified setting
	of the posadj now that it belongs to the song.	This reduces
	the nasty coupling between main and the widgets.

1999-11-12  Steve Ratcliffe  

	* md/mdadd.m, md/mdlist.m:
	Now allow tracks to be sorted into place based on their
	number.  (they are always renumbered afterwards still).

	* files/mdmlread.m:
	Bug with the way that mdml files are read in.  v0.1.0 was OK
	0.1.1 probably affected and so shouldn't be used.

	* files/midiread.m: Fixed a memory leak

1999-11-11  Steve Ratcliffe  

	* midi/record.m, midi/play.m, seq/seqlib.m, song/song.m:
	Ran the excelent memprof program and found that there
	were a few minor memory leaks.
	All leaks that are my fault are now fixed.  There was also
	a leak in alsa-lib for every event received.

1999-11-10  Steve Ratcliffe  

	* song/song.m:  The song position pointer obviously belongs to
	the song and not to the track view...  I can't believe that I
	did this but there is no one else to blame.

	* widgets/melyspiano.m, widgets/melysrule.m, widgets/melystrack.m,
	  widgets/melystrackdisplay.m, widgets/melystrackinfo.m,
	  widgets/melysview.m, widgets/viewcontrol.m:
	First stage in creating a melys_view widget to be the base
	class for the pianoroll, tempo and track windows.
	Modified Files:
	 	melysrule.m melystrack.m melystrackdisplay.m melystrackinfo.m
	 	viewcontrol.m
	Added Files:
	 	melyspiano.m melysview.m

1999-11-08  Steve Ratcliffe  

	* make.conf: Removed unused version number

	* version: Version 0.1.1
	* version.c: For release 0.1.1

	* song/song.m: Fix warning and remove an unused.

	* gui/main.m: Need an extra header now
	* widgets/melysrule.m, widgets/melystrack.m, widgets/melystrackdisplay.m,
	  widgets/melystrackinfo.m, widgets/misc.m, widgets/viewcontrol.m:
	Reworked to use a bundle containing the adjustments and
	scaling factors.  This will reduce the code needed for the other
	widgets to be written but has little effect at present.

1999-11-07  Steve Ratcliffe  

	* widgets/melystrack.m, widgets/melystrackdisplay.m:
	Removed some unused stuff

1999-11-01  Steve Ratcliffe  

	* files/mdmlread.m:
	Reading mdml files was broken wrt empty parts that had
	no time and duration information. (probably only hand generated
	ones would be affected)

	* gui/partprop.m, gui/propbox.m, gui/trackprop.m:
	Realized that there was a big problem with only having one
	box up at a time, in that it is easy to lose changes.  Now use
	g_dataset to associate a property box with a particular element.
	Re-selecting it will create it or bring it to the top.
	Destroying the element will result in the destruction of the
	property box.

	* widgets/misc.m, widgets/melystrackdisplay.m, widgets/melystrack.m:
	In preparation for other widgets made some changes to allow
	more code re-use between them.
	Scrollbar and zoom buttons combination routines can now be shared.

	Instead of having an update routine that draws directly, we now
	use the normal draw method of the widget...

	* song/song.m:
	Use an idle function to clear the modify status after all
	redrawing has been done.
	This has to be done becuase re-drawing itself is now being done
	in an idle function after the call to redraw everything has
	been made.  The modified bits must stay until all is redrawn.

1999-10-26  Steve Ratcliffe  

	* version: Version 0.1.0

	* po/melys.pot, po/zz.po, gui/main.m: Updated strings.

1999-10-25  Steve Ratcliffe  

	* ChangeLog: Updated for REL-0.0.20

	* version: Version 0.0.20

	* README, INSTALL: Updated for release

	* gui/main.m: Fixed warnings that got checked in.

	* widgets/melyspos.m:
	Now save the signal id so it can be disconnected.  I had previously
	convinced myself that this was not needed.

	* gui/main.m, gui/menus.m:
	Masses of hacks to get the correct song position pointer showing
	at all times.  And to make sure that it doesn't ever reference
	a tempomap when all windows are closed.

	* gui/main.m:
	Fixed bugs in allocating of the status line indicators to current view.

	* po/melys.pot, po/zz.po: updated

	* gui/main.m: Improved the file to window issue.
	Now if the current window is empty or contains an unused
	new song, it will be replaced when a file is read in.
	Other files will have their own top level window.

	* gui/main.m: If you gave a command line arg and the file could not be
	opened, then all you saw was an error message.
	Now you see a default new file as if you had not supplied a filename
	and the error message.

	* gui/trackprop.m: New locations for the properties help.

	* help/C/menus.sgml, help/C/track.sgml: Brought the doc up to date.

1999-10-24  Steve Ratcliffe  

	* widgets/melystrackdisplay.m:
	When zooming, reset the canvas scroll position.  This appears
	to cause some completely un-needed re-drawing.

1999-10-25  Steve Ratcliffe  

	* widgets/melyspos.m: Now save the signal id so it can be
	disconnected.  I had previously convinced myself that this was
	not needed.

	* gui/main.m, gui/menus.m: Masses of hacks to get the correct song
	position pointer showing at all times.	And to make sure that it
	doesn't ever reference a tempomap when all windows are closed.
	* gui/main.m: Fixed warnings that got checked in.

	* gui/main.m:
	Fixed bugs in allocating of the status line indicators to current view.

	* po/melys.pot, po/zz.po: updated

	* gui/main.m: Improved the file to window issue.
	Now if the current window is empty or contains an unused
	new song, it will be replaced when a file is read in.
	Other files will have their own top level window.

	* gui/main.m: If you gave a command line arg and the file could
	not be opened, then all you saw was an error message.  Now you
	see a default new file as if you had not supplied a filename
	and the error message.

	* gui/trackprop.m: New locations for the properties help.

	* help/C/menus.sgml, help/C/track.sgml: Brought the doc up to date.

1999-10-24  Steve Ratcliffe  

	* widgets/melystrackdisplay.m:
	When zooming, reset the canvas scroll position.  This appears
	to cause some completely un-needed re-drawing.

	* md/mdtools.m:
	Modification to last patch -- we take the greatest endtime
	of either of the parts. (The parts may be overlapping)

	* md/mdtools.m:
	When joining we now make the endpoint of the combined part the exact
	same endpoint that the second part had.

	* widgets/melystrackdisplay.m: When snapping a number of parts,
	some of which are not aligned to a snap boundry we have to make
	a decision as to what happens.	If you draw a box around all the
	parts to be placed then we snap the leftmost edge of the box.
	All parts keep the exact same relative positioning.

	* files/midiread.m: Some of the track level information is now
	dealt with by the routine md_extract_track_info().  This allows
	use on type 0 and 1 files without changing the existing code
	here in horrible ways.

	* md/mdconv.m: Added routine to extract the track level info
	from a track that has been read in from a midi file.

	* widgets/melystrackinfo.m: Modify some of the column widths a little.

	* song/song.m: Now that we deal better with type 0 midi, remove the
	warning.

	* gui/main.m: Split up type 0 midi files into separate tracks.

1999-10-23  Steve Ratcliffe  

	* md/.cvsignore, md/mdadd.m, md/mdconv.m: Midi type 0 files are
	now split into tracks so that they can be edited properly.

	* widgets/melyspos.m: Can now clear the resources it is holding.
	Various minor improvements.

	* gui/main.m: Use view and child removal callbacks to ensure
	that the statusline song position does not hang on to resources.

	* gui/menus.m: No longer refuse to close the last song, now that it is
	not a problem.

	* gui/main.m: Increased the default size a little.

1999-10-22  Steve Ratcliffe  

	* mlib/PROJECT/mgtk.py, widgets/melyspos.m: Really fixed being
	able to omit the signals, though it is perhaps not worth it.

	* widgets/melyspos.m: A position indicator.  This will be used for
	a number of things.  First use is for a song position indicator.

	* widgets/melystrack.m: Add tooltips to zoom buttons.

	* seq/seqplay.m: Send out the initial volume and pan positions.

	* mlib/PROJECT/mgtk.py: Put the signal array in an ifdef in the
	skel code so that it can be removed.

	* files/file.m, files/mdmlread.m, files/mdmlwrite.m: Some error
	tidy ups.

	* files/midiwrite.m: Implement the track volume and pan controls
	in the midi output file.

	* gui/main.m, gui/menus.m: Tooltip routine.  Status bar with
	current song position.	The current position indicator will
	probably be removed from the status bar when there is a transport
	widget.

	* gui/trackprop.m: Re-structure the code to create the basic
	props page.  Add the pan and volume settings.

	* gui/menus.m: Fix so that you never get multiple About boxes.

	* md/elements.m, md/mdutil.m: Add track level pan and volume

1999-10-20  Steve Ratcliffe  

	* files/mdmlread.m, files/mdmlwrite.m: Save and read volume and
	pan positions.

1999-10-19  Steve Ratcliffe  

	* md/elements.m, md/mdadd.m: Added a hard endtime.  Now if a note
	lasts beyond the soft end of the part this will be reflected in
	the max_duration field.  Tracks take notice of the max_duration,
	but parts don't care.  This clears up anomolous behaviour when
	copying and over-recording parts.

	* md/mdutil.m: Sorted out setting the program somewhat.

	* gui/trackprop.m: Now when you change the track instrument
	it will override any program changes that were read in from a
	Midi file.

	* gui/menus.m: Implement the Save menu item.  Yes, we've had
	save-as for ever, but only now have save...

	* gui/main.m: A better message for files that can't be read.
	Now includes the filename!

	* doc/mdml.dtd: Added some track attributes.
	Comments added to explain some of the attributes and elements
	better.

1999-10-18  Steve Ratcliffe  

	* md/mdutil.m: Modify the shrink fit routine to deal with parts
	within a track and make it work both ways to expand as
	well as shrink.  Routine is now more like md_shrink_fit rather than
	md_shrink.  May rename at a later date.

	* widgets/melystrackdisplay.m:
	Ensure that the play position pointer is moved above all parts
	when a part is moved or copied.

	* files/mdmlread.m, files/mdmlwrite.m:
	Save and restore mute/solo/record settings.

1999-10-16  Steve Ratcliffe  

	* help/C/Makefile, help/C/topic.dat:
	Changed the help index file name back to melys.html from
	index.html because the href's all point there...

	* version: Version 0.0.19

	* ChangeLog, README: Updated for release.

	* make.conf: Add defines for disabling glib and gtk checking.

	* md/mdutil.m: Add the snap-to-beat code to md_snap_tick.

	* md/mdadd.m: Fix the generation of default track names.

	* widgets/melystrackdisplay.m:
	Snap slices and drags to the nearest beat.  This will be changable
	in future of course.
	Also fix the text colour to be based on whether the part is
	selected or not.  There should now be a good contrast on any
	theme (as long as the theme itself is high contrast...)

1999-10-15  Steve Ratcliffe  

	* widgets/melystrackdisplay.m:
	Modify delete so that if you clicked on a selected item
	then all selected items are deleted.  This makes
	it consistant with dragging (and is useful).

	* md/elements.m, md/mdadd.m:
	Default track names and first level parts when they are added
	to the MD tree.
	This avoids suprising behaviour when moving parts around.
	Well not exactly suprising but probably not what you want.

	* widgets/melystrackinfo.m:
	The update routine should not clear any modified bits as
	there will be other widgets that need to see them.
	The bits are cleared at a higher level.

	* widgets/melysrule.m, widgets/melystrack.m,
	  widgets/melystrackdisplay.m, widgets/melystrackinfo.m:
	Add zoom button at the edge of each scrollbar.
	You can now zoom the scaling in each direction. If the
	button is held down then scalling occurs continuously until
	the button is released.

	* pixmaps/minus.xpm, pixmaps/plus.xpm: Icons I like a bit better.

1999-10-14  Steve Ratcliffe  

	* version: Version 0.0.18

	* doc/docgen.py, help/C/track.sgml: doc updates

	* programs/melys.m: add mag glass icon file

	* pixmaps/mag.m, pixmaps/minus.xpm, pixmaps/plus.xpm:
	added magnifying glass icons.  These will be used for
	changing the scales of the display.

	* mlib/PROJECT/make.py:
	Fixed the makefile generation after it was broken by the md_copy
	changes.

	* gui/partprop.m: Corrected the location of the properties help.

	* md/mdtools.m, md/mdundo.m, md/mdutil.m:
	md_undo_time_op loses its container arg

1999-10-13  Steve Ratcliffe  

	* widgets/melystrackdisplay.m: Added copy to the drag and drop.

	* mlib/PROJECT/base.py, mlib/PROJECT/cmds.py, mlib/PROJECT/header.py:
	Code to generate md_copy and all its supporting routines.

	* md/elements.m: Add the code fragments for copying.

	* md/mdutil.m: Add a routine to clear all the modification flags.

	* song/song.m: After updating clear all modification flags.

	* widgets/melystrackdisplay.m:
	Fixed a bug with attempting to drag between different
	invokations of the application.

	* version: Version 0.0.17

	* widgets/melystrackdisplay.m: Implement the outlines for the
	dragged parts.	Also fix for deleting a selected part.

	* widgets/melystrackdisplay.m:
	Re-build the selection list on the destination to cope with the case that
	we have transfered selected parts from one window to another.

1999-10-12  Steve Ratcliffe  

	* midi/record.m: Free the event that was read after it has been used.

	* version: Version 0.0.16

	* widgets/melystrackdisplay.m: Handle the case where a distoyed
	part is present (which is a bug in itself) more gracefully.

	* md/mdadd.m: Fixed a major bug where newly created parts would
	be getting freed even though they were added to a track.

	* midi/record.m: Free the temporary container after use. Fixes
	a leak.

1999-10-11  Steve Ratcliffe  

	* doc/docgen.py, help/C/menus.sgml, help/C/track.sgml, po/FILES,
	  po/melys.pot, po/zz.po, README:
	Documentation changes.

	* widgets/melystrackdisplay.m: Tidy up of drag and drop.
	Copletely re-jigged the display-info stuff, see the longer
	comment in partitem.

	* widgets/melyspartitem.m:
	Re-thought the whole display-info filigree.  So now part item
	does not contain back references to its part and track.
	Now part and track and all associated canvas items go into
	display-info.  The part owns display-info and there is a back
	reference from the canvas group to the part via a object property.

	* md/mdutil.m: Remove hackery about resorting an element while changing
	its time.  Now it is up to the caller to get it right.
	You should remove it from its container first (holding a reference
	if needed) and re-add it with md_add_sort().
	Often it will be going in a different track anyway.

	* md/elements.m, md/mdadd.m:
	Remove old hack to store data on the part element and
	use super-cool g_dataset functions.

	* md/mdutil.m:
	Added routine to ensure that a particular track number exists.
	Also added/fixed routines to change the device and time
	of a node -- has to be applied recursively.

	* md/mdlist.m: Added md_list_remove()

	* md/mdadd.m: Routine and code to keep the tracks numbered after
	and insert/remove.
	Perhaps it would be best to remove the number all together
	and require a function call to get it?

	* gui/main.m: Create the X11 atom needed for drag and drop.

	* doc/mdml.dtd:
	Corrections for omissions/errors.  No intended functionallity change.

	* widgets/melystrackdisplay.m: The first working drag and drop version.
	printf's still in.  So you can drag a part or a group of
	parts from one place to another, including a different window
	in the same application.

1999-10-10  Steve Ratcliffe  

	* md/elements.m, md/mdadd.m:
	Removed the back pointer.  I was being silly, they can be
	added to multiple containers.  (although aren't yet)

	* util/gxstack.m:
	Add a type of stack specially designed for stacking pointers.
	Change the type name to GXStack in case glib gets stack routines
	in the future.

	* md/mdseq.m, md/mdundo.m: GStack has changed to GXStack

	* md/elements.m, md/mdadd.m: Added the back pointer to containers.

	* song/song.m:
	Ha! Found that pesky md leak that left one md element unfreed
	per file.

	* files/mdmlread.m: Some minor memory leak fixes.

1999-10-08  Steve Ratcliffe  

	* md/mdtools.m: Splits now still work when the new part would be empty.
	You just get an empty part with the correct length and
	start time.

	* widgets/melystrackdisplay.m:
	Implemented slice/join/delete/properties menu.

	* md/mdtools.m: Routines for manipulating md trees.

1999-10-05  Steve Ratcliffe  

	* gui/main.m: Can now put files on the command line.
	They will all be read in at startup.

	* md/mdadd.m: On a weak final free remember to decrement the number of
	available elements.

	* md/mdutil.m:
	mdwalk now takes flags to tell it to ignore leaves or nodes.

	* seq/seqmidi.m:
	Got rid of some incorrect field settings on note-on and note-off.
	(they do not have a duration)

	* gui/main.m: Add drag and drop to receive file names.
	You can now select a bunch of files in a file manager
	and drag them into Melys.
	All the files will be opened at once.

1999-10-04  Steve Ratcliffe  

	* widgets/melystrackdisplay.m:
	Now clicking over the text still selects the part.

	* widgets/melystrackinfo.m: Now only use double click for property box

	* gui/partprop.m, gui/propbox.m, gui/trackprop.m:
	Don't know what I was thinking when I wrote trackprop.m
	Cleaned it up at the same time adding a part property dialog.
	Some common code removed to propbox.m.
	Things now don't crash if you delete the track that belongs to an
	open property box and then apply changes.

1999-10-03  Steve Ratcliffe  

	* help/C/Makefile: Remove the unused stylesheet images.

	* doc/docgen.py: Fixes and improvements.

	* widgets/melystrackdisplay.m:
	You can now click on a part and select it.

	* files/mdmlread.m, midi/play.m, midi/record.m, util/except.m:
	some cc warnings removed

	* version: Version 0.0.15

	* help/C/Makefile, help/C/menus.sgml, help/C/track.sgml,
	  ChangeLog, INSTALL, README:
	Documentation cleanup for 0.0.15 release

1999-10-02  Steve Ratcliffe  

	* md/mdutil.m: Initial version of md_set_program

	* widgets/melystrackdisplay.m:
	A temporary method of scrolling back to zero when play starts.
	(you may not even want to do this for example)

	* midi/play.m: Improved the play start/stop code.

	* song/song.m: fix to set the signal connects in a sensible place

	* gui/trackprop.m: call routine to set program

	* seq/seqmidi.m: Fix for when sending to non-existant devices.
	Wouldn't it be better to just not send?!

	* gui/main.m: there is now a routine to set the trackview

	* files/mdmlread.m:
	Fix for tracks with many parts that was broken with the
	change to the SAX parser.

	* files/mdmlread.m: Move over to the SAX interface.
	Reading is now about twice as fast and uses
	much less memory...

	* widgets/melystrackdisplay.m: The ruler code is now in melysrule.m

	* widgets/melysrule.m:
	Now ruler shows correct bar divisions, even when there
	are timesignature changes in it.

	* midi/play.m: Trigger start timer on the root now.
	Head no longer contains the ppq value.

	* programs/melplay.m: Now trigger timer on ROOT rather than head

	* md/elements.m: Timebase and program changes

	* md/mdutil.m:
	New functions for dealing with the meters/beats/ticks representation.

	* files/mdmlread.m, files/mdmlwrite.m, files/midiread.m,
	  files/midiwrite.m, files/file.m:
	Timebase changes and also
	fix for files that already contain program information.

	* files/file.m: Default time_base on the tempomap

	* files/file.m:
	Add a routine to check a root and default various things
	if missing.  At present it does timesig and keysig.

	* doc/mdml.dtd: Remove timebase from head and add ppq to tempomap.
	Correct cue to cuepoint.
	Add program to track

1999-09-30  Steve Ratcliffe  

	* widgets/melysrule.m: Put in the temporary ruler code.
	Next step is to actually take notice of the timesignatures etc.

	* md/mdseq.m: Problem showed on empty tracks when muting and would just
	cause it not to play sometimes.
	Reset some variables at the top of the loop to
	find the next event.

1999-09-29  Steve Ratcliffe  

	* files/mdmlread.m: Modified error reporting.

	* files/mdmlread.m: Converted to use the SAX interface

	* programs/melys.m: Fix for building without debug.

	* md/elements.m: Made the text type to string a separate routine.

	* files/midiread.m: Fixed a couple of problems with reading midi files.
	Zero length data reads and program numbers using MSB.

1999-09-28  Steve Ratcliffe  

	* song/song.m, md/mdutil.m:
	After recording, shrink the size of the root element
	back down the the maximum size of any of the tracks.
	This prevents a large empty space at the end of the song.

	* gui/menus.m: Added a menu item to bring up track properties.
	Perhaps this is not so useful, as a track has to be selected anyway.

	* README: Add latest features
	* ChangeLog: For release REL-0-0-14
	* version: Version 0.0.14

	* md/elements.m, md/mdadd.m, md/mdutil.m, widgets/melyspartitem.m,
	  widgets/melystrackdisplay.m, gui/menus.m:
	Deleting a track did not update the track display properly.
	Problem was that the partitems were not being destroyed properly
	and that there were circular references.
	Introduced a weak reference mechanism and modified references
	thoughout.

1999-09-27  Steve Ratcliffe  

	* md/elements.m, md/mdadd.m, programs/.cvsignore, seq/seqlib.m,
	  song/song.m, widgets/melystrack.m, widgets/melystrackdisplay.m,
	  widgets/melystrackinfo.m, widgets/register.m, gui/menus.m:
	Continued to tidy up the file dialogs.
	Bug hunt.  No known bugs left.
	Under debug we now poison freed elements to help finding bugs.

	* util/except.m:
	Subtle memory bug was introduced.  The message was being
	freed multiple times.

1999-09-26  Steve Ratcliffe  

	* files/midiread.m: Keep program from the midi file again.
	Will need a better algorithm to see if it is safe
	to remove them to the track level.  Problems are of
	course with tracks that share channels as well as changes
	within the track.

	* util/except.m: Allow nested exception catching

	* gui/main.m, gui/menus.m:
	Combined code that created views into one place.
	Now if a view has not been used it will be replaced
	when you open another file.

	* make.conf: debug defines

1999-09-25  Steve Ratcliffe  

	* Makefile: Don't do the cfiles all up front in the normal make case.

	* md/.cvsignore, md/mdseq.m, md/mdutil.m:
	After profiling made a few changes to reduce some very
	highly called functions.

	* mlib/PROJECT/base.py:
	Change cast defines so that the cast check can be ifdefed

	* midi/play.m:
	Only add the timeout if there is not already one in action.

	* md/mdutil.m: Make iscontainer a macro and don't check the type.

	* md/mdseq.m: The new sequencing engine.
	At present just does the same work as the old one
	except that it works and it allows multiple sequences
	to be active at once.

	* util/gxstack.m: Stack routines

	* programs/melplay.m, programs/melys.m:
	Make and other changes for the new sequence engine

	* md/mdutil.m:
	Removed the old sequence engine, after I found another bug
	in it.  It would need to be changed for the partref element
	anyway.
	Now there is a new sequence engine in mdseq.m.

	* md/mdadd.m: Tracklike changes.
	Added code to keep track of unfreed elements mainly so
	we can check for leaks.

	* md/elements.m: Made track and tempomap both kinds of tracklike.
	Removed the playptr nonsense.

	* midi/play.m: Changes to match the new sequencing engine

	* files/midiwrite.m: removed an usused statement and decl.
	Track number is now on tracklike

1999-09-24  Steve Ratcliffe  

	* widgets/melystrackdisplay.m, widgets/misc.m:
	Moved the canvas_item_move_abs routine as it will be more
	generally useful.

	* midi/play.m, widgets/melyspartitem.m, widgets/melystrack.m,
	  widgets/melystrackdisplay.m, gui/main.m:
	Adds the play position marker.
	The display window will scroll correctly when the play
	position is about to go off the end of the window.
	You can still manually scroll around without being affected by this.

	* util/util.m: Add an affine_t typedef

	* md/mdutil.m: If a track has disappeared we may as well just ignore it
	rather than giving a debugging error.

1999-09-23  Steve Ratcliffe  

	* ChangeLog: REL-0-0-13

	* widgets/melystrackdisplay.m:
	Fixed bug in title ruler drawing, where a line was always drawn
	at the begining of the exposed area even if there shouldn't have
	been one there.
	For some reason the adjustment value can go negative, just
	detect this and ignore it.

	* version: Version 0.0.13

	* md/mdutil.m: Added a MD_SET_DURATION macro.

	* midi/record.m:
	When a part is added that is beyond the end of the root
	then extend the root to cover it.

	* seq/seqmidi.m: If we don't have the correct device it used to
	send to device 0.  This is not correct when 0 is in
	use as well.  So we just effectively drop the events by
	sending them to 0.0.0.0.

	* widgets/melystrackinfo.m:
	Code simplified somewhat as we no long attempt to draw the
	frame as part of this widget.  The parent widget supplies
	the frame (now why didn't I think of that before...)

	* widgets/melystrackdisplay.m: Complete phase 1 of the display screen.
	Rudimentary scale along the top (not yet bar lines, unless 4/4 192 ppq :-)
	Parts are labeled with the part name (defaults to track name).
	Fixes to get the scrolling behaviour correct.

	* widgets/melystrack.m: Now handles supplying a frame for each child.
	Some fixes to the adjustment handling.

1999-09-23  Steve Ratcliffe  

	* REL-0-0-13

	* widgets/melystrackdisplay.m:
	Fixed bug in title ruler drawing, where a line was always drawn
	at the begining of the exposed area even if there shouldn't have
	been one there.
	For some reason the adjustment value can go negative, just
	detect this and ignore it.

	* md/mdutil.m: Added a MD_SET_DURATION macro.

	* midi/record.m:
	When a part is added that is beyond the end of the root
	then extend the root to cover it.

	* seq/seqmidi.m: If we don't have the correct device it used to
	send to device 0.  This is not correct when 0 is in
	use as well.  So we just effectively drop the events by
	sending them to 0.0.0.0.

	* widgets/melystrackinfo.m:
	Code simplified somewhat as we no long attempt to draw the
	frame as part of this widget.  The parent widget supplies
	the frame (now why didn't I think of that before...)

	* widgets/melystrackdisplay.m: Complete phase 1 of the display screen.
	Rudimentary scale along the top (not yet bar lines, unless 4/4 192 ppq :-)
	Parts are labeled with the part name (defaults to track name).
	Fixes to get the scrolling behaviour correct.

	* widgets/melystrack.m: Now handles supplying a frame for each child.
	Some fixes to the adjustment handling.

1999-09-22  Steve Ratcliffe  

	* REL-0-0-12
	* version: Took out spurious nulls

	* ChangeLog, README: For REL-0-0-12
	* version: Version 0.0.12

	* widgets/melyspartitem.m, widgets/melystrackdisplay.m:
	A first stab at a working display pane.
	Uses a custom item to display the parts.

	* widgets/melystrack.m:
	Implementation of horizontal scrollbar adjustments

	* widgets/melystrackinfo.m: Used selected macros

	* md/elements.m, md/mdutil.m: Selected now a element level flag
	Also added partref in preparation

	* gui/menus.m: Selected now a element level flag

	* song/song.m: added view_update calls after the end of recording
	so that the results become visible straight away

	* doc/mdml.dtd: added id to part

	* files/mdmlread.m, files/mdmlwrite.m:
	selected is now a common attribute

	* files/midiread.m, files/midiwrite.m:
	Fixed major breakage of the midi code.  All the tests have been
	run and it is working again.  Writing to type 0 files does not
	work, but never has.  Will be fixed soon.

	* doc/README: Added a readme to point to the help directory.

	* make.conf: Use gnome-config directly in the ld flags.

	* mlib/PROJECT/mgtk.py:
	Add comment in code template for the signal enum

	* widgets/melyspartitem.m:
	The item, based on a rectangle that is going to be used for
	the part display.

1999-09-20  Steve Ratcliffe  

	* md/mdutil.m: Added MD_DURATION to get the duration of a container.

	* gui/trackprop.m, song/song.m: reference counting changes

1999-09-19  Steve Ratcliffe  

	* REL-0-0-11

	* ChangeLog, INSTALL, README, help/C/track.sgml, po/melys.pot,
	  po/zz.po, version:
	Final doc updates for 0.0.11

	* song/song.m: add similar message for record and no seq

	* seq/seqlib.m: Fix for crash when no sequencer present.

	* midi/play.m, midi/record.m:
	Fixes so that when no sequencer is present, melys will still
	start up and display the song allowing it to be edited.

	* song/song.m: Put in an error message for when the sequencer couldn't
	be opened.

	* seq/seqmidi.m, md/mdutil.m:
	Events should now play to the correct output device.

	* widgets/melystrackinfo.m:
	Improvements to mostly eliminate the flicker that used to
	be seen during scrolling.

1999-09-18  Steve Ratcliffe  

	* programs/melplay.m:
	Add code to play a prologue to set up the midi channels
	prior to playing the song.

	* midi/play.m, midi/record.m:
	Now we can send a program change from the keyboard and
	it will show up in the display.  It will also now not be saved
	as an element but only as a track property.  Playback now
	sets up each channel prior to playing.

	* widgets/melystrackinfo.m:
	Optimise track-pane redrawing - this has problems when there
	are multiple views open.  Probably need to keep a list of
	elements that have the modified bit set and only unset them at
	the end of all updates.

	* seq/seqplay.m: added

	* song/song.m: moved a header file

	* seq/seqmidi.m: routine to just init an echo event

	* seq/seqlib.m: removed extra flush calls

	* files/mdmlread.m, files/mdmlwrite.m, files/midiread.m, files/midiwrite.m:
	Changes to save the program number on the track element.
	And to save it from there.

	* md/mdutil.m:
	There is no need for track_delete as md_remove takes care
	of it now

	* gui/main.m: Add a routine that will update the current view without
	the caller knowing what it is.

	* gui/menus.m: Add delete empty track

	* gui/trackprop.m: Instrument page now implemented.

	* Makefile: Improve makefile action after make clobber

1999-09-17  Steve Ratcliffe  

	* seq/seqlib.m: Update the timer control for the corrected ALSA api.

	* md/mdadd.m: Add an element remove function md_remove()

1999-09-16  Steve Ratcliffe  

	* programs/melys.m: Added to make objects.

	* gui/menus.m, gui/trackprop.m:
	Add connection to the help button on the property box.

	* help/C/melys.sgml, help/C/track.sgml:
	Added help for the track property box.

	* widgets/melystrackinfo.m:
	Now a click on a selected track brings up a property box.
	May want to use double click haven't decided..

	* gui/help.m: added help function

	* gui/main.m, gui/menus.m:
	Remove the direct reference to the track widget, go through
	the song module for redraw.

	* gui/trackprop.m: Add a temporary instrument selection.

	* md/elements.m, md/mdadd.m: reference count and free/memory leak fixes

	* md/mdutil.m: Channel setting functions

	* gui/mlib.conf: removed

	* programs/mdmlconv.m, programs/melplay.m: close/memory leak fixes

	* programs/melys.m: added make information

	* widgets/melystrack.m: Add routine to set the relevant song.

	* widgets/register.m: Add routine to allow unregistering.
	Added because of a problem that turned out to be something
	else.  Not really clear if it is really needed.

	* widgets/misc.m: Miscellaneous widgets or widget utils.

	* song/song.m: Add a routine to update all views.

	* files/mdmlread.m: Add a comment

	* gui/trackprop.m: First working track properties with basic fields.

1999-09-15  Steve Ratcliffe  

	* files/mdmlread.m, files/mdmlwrite.m, files/midiread.m:
	Dealt with some memory leaks

	* Makefile, help/C/Makefile, help/Makefile, po/Makefile:
	install changes to makefiles

	* widgets/melystrackinfo.m:
	Improve display by preventing some clearing of surounding shadow.

	* help/C/Makefile: add install

	* help/Makefile: add makefile for help

	* widgets/melystrackinfo.m, po/FILES, po/melys.pot, po/zz.po:
	Fixes to i18n

	* help/C/Makefile, help/C/topic.dat, help/C/track.sgml, Makefile, make.conf:
	Started on installation

	* help/C/.cvsignore, help/C/Makefile:
	Use the html directory now instead of melys

	* programs/.cvsignore, programs/melplay.m:
	The initial portion of the file had been chopped off.  Replaced.

	* version: Version file added

	* REL-0-0-10

	* md/mdadd.m, md/mdutil.m:
	Move the MD_ convenience functions all to mdutil.m

	* midi/record.m: Final changes to get fully working record.

	* widgets/melystrackinfo.m:
	Improvements to the look and drawing efficiency.

	* md/elements.m, md/mdadd.m, md/mdlist.m: Event merging is now working.

1999-09-14  Steve Ratcliffe  

	* mlib/PROJECT/base.py:
	Containers are now regarded as being containers(!)

	* md/mdadd.m, md/mdlist.m: Fixes to get the record merging to work

	* programs/melplay.m:
	Added the makefile information.  Somehow this had never been
	added so it wasn't being built...

	* song/song.m: md_add --> md_add_elem changes

	* md/.cvsignore, md/elements.m, md/mdadd.m, md/mdlist.m,
	  md/mdundo.m, md/mdutil.m:
	Extensive MD changes mainly to allow proper merging
	in of events.  Preparation for undo function

	* programs/.cvsignore, programs/mdmlconv.m, programs/melys.m,
	  midi/play.m, midi/record.m:
	md_add --> md_add_elem changes

	* gui/main.m, gui/menus.m: New song now has some pre-allocated tracks.

	* files/file.m, files/mdmlread.m, files/mdmlwrite.m, files/midiread.m:
	md_add --> md_add_elem changes

	* widgets/melystrack.m, widgets/melystrackinfo.m:
	New function for root reference counts.
	Clicking in the title area used to set a button.
	Now does nothing but will bring up a dialogue in the future.

1999-09-13  Steve Ratcliffe  

	* mlib/PROJECT/base.py:
	Fix the element initialisation code generation.  Init calls
	now correctly chain up.

1999-09-12  Steve Ratcliffe  

	* widgets/melystrack.m, widgets/melystrackinfo.m:
	Record and track adding/removing fixes

	* seq/seqlib.m:
	A new field was added to subscription in alsa which needs
	to be set to get the previous behaviour.

	* midi/record.m: Fix to get the correct input device on recording

	* programs/mdmlconv.m: Add take element to the --new output

	* md/elements.m: Complete the take element

	* doc/mdml.dtd, doc/sgmldecl: Add partref and update the take element

	* files/mdmlread.m, files/mdmlwrite.m, files/midiwrite.m:
	Add take element processing

	* programs/mdmlconv.m:
	Added option to create a new empty file from scratch.
	Mainly to create skeleton mdml files for hand editing but
	could also create an empty midi file if you can think
	of any use for that.

1999-09-11  Steve Ratcliffe  

	* gui/main.m: Add the button 3 context menu for the info pane.

1999-09-08  Steve Ratcliffe  

	* gui/menus.m, md/elements.m, md/mdutil.m, midi/play.m,
	  midi/record.m, programs/showseq.m, seq/seqlib.m, Makefile:
	Somewhat re-wrote the event input code so that
	multiple tracks can be recorded at the same time from potentially
	multiple recording sources.

	* help/C/topic.dat, help/C/track.sgml:
	New track view section documentation.

1999-08-29  Steve Ratcliffe  

	* help/C/Makefile, help/C/index.html, help/C/melys.sgml, help/C/track.sgml:
	Some documentation updates.
	Now there is some basic documentation for the track view.

1999-08-20  Steve Ratcliffe  

	* gui/menus.m, pixmaps/mb3.png, pixmaps/menu_icons.m, pixmaps/mpause.png,
	  pixmaps/mpause.xpm, pixmaps/mplay.png, pixmaps/mplay.xpm,
	  pixmaps/mrec.xpm, pixmaps/mstop.png, pixmaps/mstop.xpm,
	  pixmaps/play.png, programs/melys.m:
	Made the menu item pixmaps built in data

1999-08-19  Steve Ratcliffe  

	* widgets/melystrackinfo.m: Fixed solo to match its specification.

	* programs/showseq.m:
	Print out client:port instead of just the port number.

	* ChangeLog, README: For REL-0-0-9

	* po/FILES, po/melys.pot, po/zz.po: Updated

	* midi/play.m:
	Made a better attempt at doing mute if you have stock 0.4.0

	* midi/play.m: Updated for latest patch.

1999-08-18  Steve Ratcliffe  

	* widgets/melystrackinfo.m:
	Fixed some scribbling over the shadow along the dividing
	line when pane is resized smaller.

	* md/elements.m, md/mdutil.m, midi/play.m, seq/seqlib.m,
	song/song.m, widgets/melystrack.m, widgets/melystrackinfo.m:
	solo function now working

	* midi/record.m:
	Fixed bug where subpart was getting the wrong device/channel.

1999-08-16  Steve Ratcliffe  

	* ChangeLog, INSTALL, README, programs/melys.m: For REL-0-0-8

	* files/mdmlwrite.m, files/midiread.m, gui/main.m, md/elements.m,
	md/mdutil.m, midi/play.m, midi/record.m, programs/mdmlconv.m,
	programs/melplay.m, programs/melys.m, seq/seqlib.m, song/song.m,
	widgets/melystrackinfo.m, Makefile, files/mdmlread.m: Added the
	mute function.  Makes use of an alsa patch.

1999-08-15  Steve Ratcliffe  

	* md/mdutil.m: It is important to play the tempomap as well...
	A seek function added to reset the play position on a track.

1999-08-13  Steve Ratcliffe  

	* md/mdutil.m:
	Previous version didn't work (and looks like even the old method
	didn't either).
	Re-wrote again and code looks a lot simpler and so might stand
	a chance of being right or almost right.

	* widgets/melystrackinfo.m: Added the mute, solo etc buttons.
	Various interface fixes, it now looks quite good.

	* gui/main.m: fixed all the error,warning macros

	* programs/melplay.m: add code to catch fatal errors

	* pixmaps/balls.m: added

1999-08-12  Steve Ratcliffe  

	* md/elements.m, md/mdutil.m:
	Completely re-wrote the sequencing stuff.  It is now much simpler,
	and I almost understand it now...
	Still probably needs a re-think.  Anyway should now be
	easier to support features like mute.

	* md/elements.m, md/mdutil.m: fix md_track_nth for track number

	* widgets/melystrackinfo.m: Button drawing code is now in place

	* files/mdmlread.m, files/mdmlwrite.m: XML no longer has the
	memory leak bug, so removed my workaround.  Fixed some of my
	own memory leaks.. xmlGetProp returns strdup information so I
	have to free it.

1999-08-11  Steve Ratcliffe  

	* programs/melplay.m:
	Got melplay to work.  You can use it to play any file that
	melys can play from a command line interface.

	* seq/seqlib.m: Fix for a crash when output ports were not set.
	* seq/seqmidi.m: Fix a crash when no output ports are set.

	* INSTALL, README: Updated readmes for release a little

	* ChangeLog: REL-0-0-7

	* help/C/.cvsignore, help/C/menus.sgml:
	Documentation split into separate files for each chapter

	* widgets/melystrackinfo.m:
	Add an enter handler and a button press handler.
	Button press does nothing yet.

	* song/song.m: When a track is added we now instantly update the view

	* gui/main.m, gui/menus.m:
	Attempt to keep the focus in the main window where
	it is more useful.

1999-08-10  Steve Ratcliffe  

	* files/.cvsignore, files/format.m, gui/main.m,
	programs/.cvsignore, programs/melplay.m, programs/melys.m,
	programs/showseq.m, seq/seqlib.m: Final tidy ups on the ethrow
	and error handling is now quite nice.  Dialogs appear on top
	of the windows that they belong to and go away when they should
	and everything is non-modal at present.

	* gui/menus.m: Added a 'New' menu item

	* files/file.m: This file is the new interface to the file functions.
	It replaces format.m

	* gui/main.m, gui/menus.m, help/C/melys.sgml,
	programs/mdmlconv.m, programs/melys.m, song/song.m, util/except.m,
	widgets/melystrackinfo.m, files/.cvsignore, files/format.m,
	files/mdmlread.m, files/mdmlwrite.m, files/midiread.m,
	files/midiwrite.m: Massive tidy up of the file error handling. It
	used to just exit if anything unexpected (like a file not
	existing!) happened.  Now not only does it carry on, but you
	always get a nice error message box, that sometimes even says
	what the problem was.

	* programs/melplay.m, programs/pmidi.m:
	Pmidi is removed to stop confusion with the released pmidi.
	Not to mention that it isn't working anyway.
	Renamed to melplay.m which will be a command line Melys player.
	It will be able to play any file that Melys can read.

1999-08-09  Steve Ratcliffe  

	* ChangeLog: REL-0-0-6

	* song/song.m:
	Warning about type 0 files (temporary) and now if can't read
	file there is no view created for it.  (and no crash when it
	can't be displayed for that matter)

	* midi/play.m: Reset all controllers before starting a new piece.

	* seq/seqlib.m: Add a function for sending to all opened channels
	intended for things like controller reset and the like.

	* po/FILES, po/melys.pot, po/zz.po: updated

	* gui/main.m, gui/menus.m: Create a warn routine (main)
	If the file fails to load then don't create a view for it.

	* md/elements.m, md/mdutil.m: Track numbers now start internally at 0
	Add var to store program number

	* files/mdmlread.m, files/midiread.m, widgets/melystrack.m,
	widgets/melystrackinfo.m: Improvements to the track view.
	Can now see the track names and program numbers.

	* util/except.m: removed stack trace debug, which always seemed to hang

1999-08-09  Steve Ratcliffe  

	* song/song.m:
	Warning about type 0 files (temporary) and now if can't read
	file there is no view created for it.  (and no crash when it
	can't be displayed for that matter)

	* midi/play.m: Reset all controllers before starting a new piece.

	* seq/seqlib.m: Add a function for sending to all opened channels
	intended for things like controller reset and the like.

	* po/FILES, po/melys.pot, po/zz.po: updated

	* gui/main.m: Create a warn routine (main)

	* gui/menus.m: If the file fails to load then don't create a view for it.

	* md/elements.m, md/mdutil.m: Track numbers now start internally at 0
	Add var to store program number

	* files/mdmlread.m, files/midiread.m, widgets/melystrack.m,
	widgets/melystrackinfo.m: Improvements to the track view.
	Can now see the track names and program numbers.

	* util/except.m: removed stack trace debug, which always seemed to hang
	anyway.

1999-08-08  Steve Ratcliffe  

	* util/util.m: Changed default debug level down to 0

	* files/mdmlread.m, gui/main.m, gui/menus.m, md/mdutil.m,
	programs/melys.m, song/song.m, util/util.m, widgets/melystrack.m,
	widgets/melystrackinfo.m, widgets/melystransport.m: First stage of
	track based view complete.  The left pane is starting to be
	operational.  The sliders do not do anything yet though.

1999-08-07  Steve Ratcliffe  

	* util/util.m: debuging routines added

	* files/.cvsignore, md/.cvsignore, programs/.cvsignore,
	seq/.cvsignore, util/.cvsignore:
	include compressed mdml in ignore

	* gui/main.m, midi/record.m, song/song.m, seq/seqlib.m:
	Fixed bug where record was not being freed and there
	was a problem with freeing subcontexts.

	* help/C/melys.sgml: a little more text

1999-08-06  Steve Ratcliffe  

	* help/C/Makefile: added

	* help/C/melys.sgml: Added

	* widgets/melystrack.m, widgets/melystrackdisplay.m,
	widgets/melystrackinfo.m, ChangeLog, gui/main.m,
	gui/menus.m, mlib/PROJECT/mgtk.py, programs/.cvsignore,
	programs/melys.m, song/song.m:
	Slipped and checked in too much stuff and don't know what
	the changes were.  Nothing too important.
	Fixed the order of arguments in the 4 arg case

	* midi/play.m, midi/record.m: Reference count mdroot so
	we can always free it, instead of trying to remember who
	owns it.

	* md/elements.m, md/mdutil.m, doc/mdml.dtd:
	The name attribute added to track and part

	* files/format.m, files/mdmlread.m, files/mdmlwrite.m:
	Track and part now have a name property

1999-08-04  Steve Ratcliffe  

	* files/mdmlread.m: Fix negative durations on empty container elements

1999-08-02  Steve Ratcliffe  

	* files/midiread.m:
	There may be more than one on event for an off event.  (Probably
	could be concidered a bug in the midi file, but they do exist)

	* md/mdutil.m: Fix initial tempo to be 120

1999-07-30  Steve Ratcliffe  

	* mlib/PROJECT/mgtk.py: Improved and fixed the gtk object generation

1999-07-29  Steve Ratcliffe  

	* README: Updated the README a little (REL-0-0-4)

	* programs/showseq.m:
	Modify output slightly to put user/kernel in brackets

	* midi/record.m: Finish off notes that were not released

	* files/mdmlread.m, files/midiread.m, files/midiwrite.m:
	Slight re-org so that saving of constructed trees works.

	* md/elements.m, md/mdutil.m: Fixes for record/save of new song

	* song/song.m: Fixes to work better with new song

	* gui/main.m, gui/menus.m: Add save as feature.
	Added some keyboard accelerators.

	* midi/play.m: Reset timer so that all tracks start at 0

	* md/elements.m, midi/record.m, seq/seqlib.m: Track extension now works

	* files/midiread.m, gui/main.m, gui/menus.m, midi/play.m,
	  midi/record.m, po/melys.pot, po/zz.po, programs/melys.m,
	  programs/pmidi.m, seq/seqlib.m, seq/seqmidi.m, seq/sequtil.m,
	  song/song.m:
	First working record feature

1999-07-27  Steve Ratcliffe  

	* config/ports.m, files/format.m, gui/main.m, gui/menus.m,
	  midi/play.m, midi/record.m, programs/melys.m, seq/seqlib.m,
	  seq/sequtil.m, song/song.m, widgets/register.m, Makefile:
	Seemingly endless changes to restructure parts of the
	play engine in preparation for record.  Now back to the state
	it was in before: can play files.

1999-07-24  Steve Ratcliffe  

	* programs/.cvsignore, programs/melys.m, programs/pmidi.m:
	Modified to track the library functions

	* mlib/PROJECT/quickdoc.py: added

	* make.conf: Tidied up defines to get rid of duplicates in flags and
	link

	* md/mdutil.m: Check for null arg to free

	* md/elements.m: Added the  element

	* programs/showseq.m:
	A utility to show all the ALSA clients, will probably extend to show
	other status stuff for the queues etc.

	* seq/.cvsignore, seq/seqlib.m, seq/seqmidi.m, seq/sequtil.m:
	There appears to be vast changes without a lot of new functionality.
	Changes mainly to deal with setting, connecting and disconnecting
	ports.

	* doc/mdml.dtd: Took out some SGML ism's.  Has now been run though a
	real xml validating parser so it should now be valid XML.

1999-07-21  Steve Ratcliffe  

	* midi/play.m: Lots of changes but mainly re-organisation.  No new
	features.  Should ease adding record.

1999-07-20  Steve Ratcliffe  

	* seq/seqlib.m: Bugs with freeing the context fixed

	* README: Added note about getting mcode

	* midi/play.m: Fix crash on exit when ctxp was not set.

	* COPYING, ChangeLog, INSTALL, README, make.conf:
	Added files and configuration and changelog changes

	* widgets/register.m: Tidy up and remove printfs.

	* md/mdutil.m:
	Fixed the sequencing over an md tree.  It was broken when parts
	were added.

	* help/zz/index.html, help/zz/topic.dat, help/C/index.html,
	  help/C/topic.dat:
	Added help files.  There is no help in them yet

	* programs/mdmlconv.m, programs/pmidi.m:
	Minor updates to get ready for snapshot release.

	* po/melys.pot, po/zz.po: Update language files and zz translation.

	* gui/main.m, gui/menus.m:
	All the play functions now working.  Small things left
	to implement.

	* seq/seqlib.m, seq/seqmidi.m:
	Improvements to echo events.  Split constructing and sending
	events.

	* midi/play.m: Playing and stopping now works.
	Uses select via the gtk main loop.

	* files/midiread.m: Fix so that .mid files get the correct ending time

1999-07-19  Steve Ratcliffe  

	* files/mdmlread.m, files/midiwrite.m, make.conf, md/elements.m,
	  midi/play.m, programs/pmidi.m, seq/seqlib.m, seq/seqmidi.m,
	  util/except.m:
	snapshot: mostly working play, some bugs

1999-07-18  Steve Ratcliffe  

	* widgets/register.m, Makefile, doc/mdml.dtd, files/mdmlread.m,
	  files/mdmlwrite.m, files/midiread.m, files/midiwrite.m,
	  gui/main.m, gui/menus.m, md/elements.m, midi/play.m,
	  programs/melys.m, programs/pmidi.m, seq/seqlib.m, util/except.m:
	snapshot: working on play function

	* gui/main.m, gui/menus.m:
	Fixed bug when closing, got some GTK messages.

	* files/format.m: New functions to return read/write functions based on
	the filename.

	* gui/main.m, gui/menus.m: Fairly good attempt at reading files

	* widgets/register.m: first cut of the register functions

1999-07-17  Steve Ratcliffe  

	* mlib/PROJECT/base.py, mlib/PROJECT/mgtk.py:
	New gtkobject tag for creating gtk objects

1999-07-16  Steve Ratcliffe  

	* doc/mdml.dtd: updated dtd spec

	* Makefile, files/midiread.m, gui/main.m, gui/menus.m,
	  make.conf, md/elements.m, po/.cvsignore, po/melys.pot,
	  po/zz.po, programs/melys.m:
	snapshot: somewhat working file reading

	* files/mdmlread.m: Free up doc after read, to reduce memory wastage

	* po/FILES, po/Makefile, po/melys.pot, po/zz.po:
	First attempt at i18n test language

	* gui/main.m, gui/menus.m, md/mdutil.m, mlib/PROJECT/base.py,
	  programs/melys.m:
	A very initial first screen

1999-07-15  Steve Ratcliffe  

	* Makefile, files/mdmlread.m, files/mdmlwrite.m, files/midiread.m,
	  files/midiwrite.m, include/intl.h, md/elements.m, md/mdutil.m,
	  programs/pmidi.m:
	Real head element now.  Fixes to be able to sequence over
	song with  in them

1999-07-14  Steve Ratcliffe  

	* doc/mdml.dtd, files/.cvsignore, files/mdmlwrite.m,
	  files/midiread.m, files/midiwrite.m, include/intl.h,
	  md/.cvsignore, md/mdutil.m, mlib/PROJECT/base.py,
	  programs/.cvsignore, programs/mdmlconv.m, programs/pmidi.m,
	  seq/.cvsignore, util/.cvsignore, make.conf:
	Snapshot of changes.  Mostly about adding support for 
	Now track must consist only of part's

	* gui/mlib.conf, md/mlib.conf, files/mlib.conf: added

1999-07-10  Steve Ratcliffe  

	* doc/mdml.dtd, doc/sgmldecl: Added files

	* md/elements.m:
	Now the text_new and sysex_new functions allocate their
	own copy of memory for the data.

	* util/.cvsignore, programs/.cvsignore, seq/.cvsignore, md/.cvsignore:
	Updated ignore files

	* files/.cvsignore, files/mdmlread.m, files/mdmlwrite.m,
	  files/midiread.m, files/midiwrite.m:
	Added correct sub-section timing to mdml output.  All times
	in mdml are relative to the enclosing section.  Internally
	all times are absolute.
	Haven't checked if midi still works...

	* files/mdmlread.m:
	This is the version that uses a time stack, which I don't think
	is needed.

	* util/.cvsignore, seq/.cvsignore, md/.cvsignore, files/.cvsignore:
	added ignore file

	* util/Makefile, seq/Makefile: After the makefile generation

	* programs/Makefile, programs/mdmlconv.m, programs/pmidi.m,
	  md/Makefile, md/elements.m, md/mdutil.m, files/Makefile,
	  files/mdmlread.m, files/mdmlwrite.m, files/midiread.m,
	  files/midiwrite.m:
	Snapshot on the way to adding part
	After the makefile generation

	* ChangeLog, Makefile, make.conf: After the makefile generation

1999-07-06  Steve Ratcliffe  

	* programs/pmidi.m: Removed the server option

	* files/midiread.m, programs/mdmlconv.m, programs/pmidi.m:
	Mostly finished up with pmidi

1999-06-08  Steve Ratcliffe  

	* seq/seqmidi.m: free allocated data

	* seq/seqlib.m: Work around for CPU chewing

	* programs/pmidi.m: Fix crash when --delay is specified.

	* md/elements.m, files/mdmlread.m: Added some code for the part element

	* ChangeLog: *** empty log message ***

	* seq/seqlib.m, seq/seqmidi.m: Fixed the sysex bug

1999-06-01  Steve Ratcliffe  

	* programs/pmidi.m: Add smpteoffset processing (ignore it)

	* Makefile, files/Makefile, md/Makefile, programs/Makefile,
	  seq/Makefile, test/Makefile, util/Makefile:
	Added current makefiles

	* files/mdmlread.m: Most conversion issues fixed.  Taged as trusted-conv-1

1999-05-31  Steve Ratcliffe  

	* files/mdmlread.m, files/midiread.m, files/midiwrite.m:
	Mostly working, there and back midi to mdml

1999-05-25  Steve Ratcliffe  

	* ChangeLog, files/midiread.m, files/midiwrite.m,
	md/elements.m, md/mdutil.m, mlib/PROJECT/base.py,
	mlib/PROJECT/header.py, mlib/config, seq/seqlib.m,
	seq/seqmidi.m, util/except.m:
	Location of header directory is now specified by config

1999-05-24  Steve Ratcliffe  

	* include/.cvsignore, make.conf, md/mdutil.m, seq/seqlib.m, seq/seqmidi.m:
	The basic playmidi functionality is working

1999-05-23  Steve Ratcliffe  

	* seq/seqlib.m, seq/seqmidi.m: Lots of sequencer interface routines

	* mlib/PROJECT/base.py: Some important fix that I can't remember

	* md/elements.m, md/mdutil.m: Allow sequencing over all elements

1999-05-21  Steve Ratcliffe  

	* seq/seqlib.m: first version of seqlib

1999-05-20  Steve Ratcliffe  

	* files/midiread.m: Tempomap items now get a timestamp

1999-05-17  Steve Ratcliffe  

	* files/mdmlwrite.m, files/midiread.m, include/midi.h,
	make.conf, md/elements.m, mlib/PROJECT/base.py,
	mlib/PROJECT/header.py, test/test.m, util/except.m:
	Can now write midi files

1999-05-14  Steve Ratcliffe  

	* files/mdmlwrite.m, files/midiread.m, md/element.m, md/elements.m,
	mlib/PROJECT/__init__.py, mlib/PROJECT/base.py, mlib/PROJECT/cmds.py,
	mlib/PROJECT/code.py, mlib/config, test/test.m,
	test/test.mid, test/test.ref, util/except.m:
	Can read midi files, write mdml files

	* files/midiread.m: Most functionallity present for reading midi.