2000-11-12 Matt Hiller <mhiller@pacbell.net> * Makefile.am: Rewrote flex and bison rules for configuring from arbitrary directories. Changed it to look for data files and others in pkgdatadir (i.e., /usr/local/share/denemo/). * file.c (filesel_save): Saves according to the file type selected in the combobox rather than by filename. 2000-11-11 Matt Hiller <mhiller@pacbell.net> * various: got vertical scrollbar working. 2000-11-05 Matt Hiller <mhiller@pacbell.net> * various: added scrollbars, got the horizontal scrollbar working. 2000-10-19 Matt Hiller <mhiller@pacbell.net> * kbd-custom.c (load_keymap_file): Fixed handling of tokens to include / as an identifier character. 2000-10-12 Matt Hiller <mhiller@pacbell.net> * kbd-custom.c (NO_MAP_DIALOG_TEXT): Fixed this to reflect removal of keybinding stuff from the file menu. * kbd-interface.c (jump): Added a gtk_clist_moveto to move to the newly selected command. 2000-10-10 Matt Hiller <mhiller@pacbell.net> * kbd-* (various): redid the custom keybindings dialog to make it of sane size, redid the control buttons at the bottom of the dialog. (lookup_keybindng, add_keybinding): Added a filter to filter out bits of keyboard state we don't want to pay attention to, such as Caps Lock and Num Lock. 2000-09-17 Matthew Hiller <mhiller@pacbell.net> * various: refined custom keybinding implementation; added load and save commands, switched back to main Denemo style for callbacks and such rather than the too-verbose Glade style. 2000-09-14 Matthew Hiller <mhiller@pacbell.net> * easylyparser.y (chordandassoc): Fixed support for loading slurs. * exportmudela.c (exportmudela): Fixed minor bug in saving of slurs; removed behavior of interpreting a tie as a slur in certain situations. * various: Finished improved custom keybinding implementation. 2000-09-10 Matthew Hiller <mhiller@pacbell.net> * various: Summary of changes over the past few weeks: integrated patch for customizing keybindings, various other improvements. 2000-08-14 Matthew Hiller <mhiller@pacbell.net> * calculatepositions.c: Got a _vastly_ improved algorithm (in terms of both correctness and simplicity) for determining x positions working. 2000-08-10 Matthew Hiller <mhiller@pacbell.net> * easylyparser.y: Added support for reloading dynamics; put in a stub for reloading peculiar noteheads. * various: assorted streamlinings and bugfixes * all: released 0.5.4 2000-08-08 Matthew Hiller <mhiller@pacbell.net> * measureops.c (settickvalsinmeasure): Refined the method for calculating mudelaitem->starttickofnextnote such that it handles tuplets more gracefully and no longer assumes that tuplets end on a beat. 2000-08-07 Matthew Hiller <mhiller@pacbell.net> * selectops.c (pastefrombuffer): Fixed a bug reported by Francois Pinard regarding segfaults shortly after pasting. 2000-08-05 Matthew Hiller <mhiller@pacbell.net> * main.c (main): Fixed command-line loading such that it sets the titlebar correctly. * easylyparser.y: Added support for loading stem directives, and staffs with multiple voices. 2000-08-02 Matthew Hiller <mhiller@pacbell.net> * exportmudela.c (exportmudela): Updated exportmudela such that it saves multiple voices on a single staff appropriately. Also updated it to save stem directives. 2000-08-02 Adam Tee <eenajt@electeng.leeds.ac.uk> * Implemented dynamics * Added feature to change the notehead type 2000-07-31 Matthew Hiller <mhiller@pacbell.net> * datastructures.h: Removed barline type, commented other types. * lilydirectives.c: gtk_signal_connect()s became gtk_signal_connect_object()s where appropriate. 2000-07-28 Matthew Hiller <mhiller@pacbell.net> * various: wrote stem_directive_insert and added various forms of support for displaying and manipulating stemming directive indicators. * commandfuncs.c (deleteobject): Cleaned this function up, reorganized what had been copy-and-paste code into helper functions. 2000-07-25 Matthew Hiller <mhiller@pacbell.net> * measureops.c (setsdir): Shortened stems * various: Removed stem direction field from staff structure and everything associated with it. * commandfuncs.c: Reorganized code for inserting objects into the score in preparation for writing stem_directive_insert. 2000-07-23 Matthew Hiller <mhiller@pacbell.net> * easylyparser.y: Reformatted for greater GNU coding standards compliance * measureops.c (calculatebeamsandstemdirs): Fixed the bug that I'd added when tripletifying Denemo. 2000-07-17 Matthew Hiller <mhiller@pacbell.net> * Makefile.am, denemo.spec.in: Integrated Sourav Mandel's patch for RPMifying Denemo * easylyparser.y, exportmudela.c: Integrated Mark Burton's patch for explicitly stating that keys are major. 2000-06-28 Matthew Hiller <matthew.hiller@yale.edu> * README: various updates. In particular, the section describing information for potential contributors was greatly expanded. * all: ran every source file through GNU indent so that the indentation and spacing follows the manner recommended in the GNU coding standards. 2000-06-09 <eenajt@electeng.leeds.ac.uk> * Fixed various JTF format bugs in frogio.c * Added JTF format loading code for tuplets 2000-06-09 <matthew.hiller@yale.edu> * various: brought together the various threads of tuplet-work that people'd been putting together and integrated it all. 2000-06-04 <matthew.hiller@yale.edu> * various: finished work on a very preliminary "single-staff" polyphony feature. It still has some usability issues, but only one major technical problem. 2000-05-23 <eenajt@electeng.leeds.ac.uk> * Fixed Soprano clef * Fixed easylyparser chords rule was not required 2000-05-01 <matt@ozymandias.sy.yale.edu> * various: integrated code in the fashion of Laurent Martelli's pixmap->bitmap changeover, and cleaned up draw.c 2000-04-25 <matt@ozymandias.sy.yale.edu> * file.c (confirmbox): sanified the code that popped up the "really destroy score" confirmation dialog by passing confirmbox () a GtkSignalFunc. * tomeasuredialog.c (tomeasurenum): re-modalized the dialog. * playbackprops.c (playback_properties_change): re-modalized the dialog. 2000-04-23 <matt@ozymandias.sy.yale.edu> * headerdialog.c: added Laurent Martelli's patch for header information * main.c, file.c: added plain Save function, added information in window title concerning current filename. 2000-04-22 <matt@ozymandias.sy.yale.edu> * README: described select, cut, copy, and paste; described immediate playback mode and the mechanism behind it. * selectops.c (cuttobuffer): got the cut function working. It's presently very ugly, though. * all: released 0.5.3 2000-04-21 <matt@ozymandias.sy.yale.edu> * midi.c: Refined the behavior of midi.c, etc. * selectops.c: refined behavior of paste so that new measures are added when existing music would be trampled, etc. * selectops.c: started coding a cut function. Began process of debugging it into existence 2000-04-20 <matt@ozymandias.sy.yale.edu> * midi.c, midi.h, various: Added and provided hooks for using Brian Delaney's immediate MIDI output code. 2000-04-19 <matt@ozymandias.sy.yale.edu> * measureops.c (calculatebeamsandstemdirs): fixed a bug that caused notes to be aligned as though they were on the wrong clef if a clef interrupted a beaming group. * various: coded up configuration file support and got it working 2000-04-18 <matt@ozymandias.sy.yale.edu> * various: got preferences dialog working. Started working on configuration file support. 2000-04-17 <matt@ozymandias.sy.yale.edu> * playbackprops.c: Got rid of "path to Lilypond" and "midi player" things in playback properties dialog -- these will go into a preferences dialog instead. 2000-04-15 <matt@ozymandias.sy.yale.edu> * various: fixed dialog boxes such that they all have titles and the various text entries react appropriately if you give them an "activate" signal by hitting enter inside them. 2000-04-14 <matt@ozymandias.sy.yale.edu> * tomeasuredialog.c, main.c: created a navigate-to-measure dialog. * main.c, keyresponses.c: made Home and End keys into accelerators; they're no longer interpreted by scorearea_keypress_event * various: Actually got this bounding box thing working * commandfuncs.c (calcmarkboundaries): fixed some bugs here * selectops.c (copytobuffer): fixed some bad bugs that caused the wrong notes to get copied to the buffer 2000-04-12 <matt@ozymandias.sy.yale.edu> * various: started writing code to give indication of bounding box's location 2000-04-10 <matt@ozymandias.sy.yale.edu> * file.c (updatescoreinfo): added call to find_leftmost_allcontexts() * selectops.c (pastefrombuffer): fixed outstanding bugs; it works now 2000-04-09 <matt@ozymandias.sy.yale.edu> * various: wrote object-cloning functions for use by the cut-and-paste mechanism. 2000-04-08 <matt@ozymandias.sy.yale.edu> * selectops.c: wrote the beginnings for a cut-and-paste mechanism. 2000-04-06 <eenajt@electeng.leeds.ac.uk> * fixed frogio and frogparser for new change of keysig etc. * altered drawkey so that it correctly draws keysig for G_8 and Tenor clefs * Documented Home and End Keys * applied Roy Rankin's patches 2000-04-04 <matt@ozymandias.sy.yale.edu> * various: released version 0.5.2 * various: made it impossible to insert a mudela object before a time signature change, including another time signature change. * commandfuncs.c (deleteobject): Put a switch statement into the function such that it does the right thing when deleting a chord, clef, or key signature change. 2000-04-03 <matt@ozymandias.sy.yale.edu> * contexts.c, draw.c (draw_measures): Denemo now allocates an appropriate amount of space for the leftmost keysignature rather than a hard-coded amount. This is true of the widest key signature, if there are different key signatures in different staves. * calculatepositions.c (find_xes_in_measure): now handles consecutive mudelaobjects where ->durinticks == 0. This was far from trivial, but man, does it ever work. 2000-04-02 <matt@ozymandias.sy.yale.edu> * drawkey.c (draw_keysig): Fixed this such that it takes the preceding key signature as an argument and draws "cancelling naturals" where appropriate. Also now returns the width required for drawing the key signature. 2000-04-01 <matt@ozymandias.sy.yale.edu> * objops.c, objops.h, timedialog.c, keysigdialog.c, clefdialog.c: Created "new" function returning new non-chord mudelaobject *s and used them. * easylyparser.y: mudela parser now correctly interprets the clef, key, and time signature changes upon reload. * lyparserfuncs.c, lyparserfuncs.h (setclef, cleftypefromname): split off functionality formerly in setclef into two separate functions, allowing cleftypefromname to be invoked distinctly. * draw.c (draw_measures): adjusted determination of whether the cursor was off the end of the measure to account for objects for which durinticks == 0 at the end of the measure. 2000-03-31 <matt@ozymandias.sy.yale.edu> * ChangeLog: started using M-x add-change-log-entry to do this ChangeLog * exportmudela.c (exportmudela): export mudela now copies information concerning clef, key, and time signature changes to the mudela it exports. 31 Mar 2000: Changed gtk_file_selection_complete()s to gtk_file_selection_set_filename()s Integrated all of Roy Rankin's patch. 30 Mar 2000: Finished key signature changes. Fixed Adam's toend and tohome functions. 29 Mar 2000: Started enabling key signature changes. 28 Mar 2000: Added ability to insert clef changes. 27 Mar 2000: Continued with time signature changes and got them right. 26 Mar 2000: (post 0.5.1) Fixed a bug in calculatepositions.c listcomparefunc. Put in a first shot at time signature changes. 26 Mar 2000: 0.5.1 Wrote Help->Show Keybindings and Help->About callbacks. Fixed reversealigns bug. Updated README. Packaged release. 25 Mar 2000: mh: A popup window now appears confirming any actions that will destroy the current score if it hasn't been saved off yet. 24 Mar 2000: ajt: incorporated Brian Delaney's MIDI instrument patch, and fixed bugs in it. mh: Added stuff to easylyparser.y to account for the MIDI instrument. Fixed clefdialog.c bug Split off much of the code in keyresponses.c into commandfuncs.c; the resulting cleanups knocked a bunch of stuff off the urgent section of the TODO list. :) Added a "haschanged" flag to struct scoreinfo, to be checked before File->New, File->Open, and File->Quit are invoked. Added ability to change the duration of an existing note with shift - duration-indicator. 23 Mar 2000: mh: Added tearoffs to the menus. Added a signal handler to listen and handle SIGCHLD signals - no more zombie processes after playback. 21 Mar 2000: 0.5.0 mh: Made useful actions for everything in easylyparser.y - import mudela now completely works! Reworked file menu functionality and got rid of lots of duplicate code in file_selection. Adjusted playback controls. Packaged release. 20 Mar 2000: mh: My mudela lexer and parser work now! The next trick is to make useful actions for everything that gets parsed. Added soprano staff support to mudela import/export (when did that get added, btw?) Fixed File->New stuff. 19 Mar 2000: mh: Streamlined playback function, and started working on the mudela parser again. 14 Mar 2000: ajt: More work on playback 10 Mar 2000: ajt: Added Playback function for quick playback. Use fork to create two processes, lilypond -m and playmidi. Also removed one of the score blocks in exportmudela and added a midi block with tempo=60 7 Mar 2000: Much more work on mudela parser. 6 Mar 2000: Fixed bugs reported by Roy Rankin. Some work on mudela parser. 3 Mar 2000: Started writing my easyly lexer. It's actually an ad-hoc lexer; the function's in the last section of the parser file I'm going to use for it. 2 Mar 2000: Fixed parser.y and lexer.l such that they compile with -p and -P, respectively, and won't interfere w/ my simplified-mudela parser. 1 Mar 2000: 0.3.5 Fixed a bug in free_score that was causing segfaults. Posted release. 29 Feb 2000: ajt: fixed parser.y so that Makefile.am looked right. Integrated Roy Rankin's G_8 patch. Fixed some bugs in parser.y that were preventing loading from working. 27 Feb 2000: Finished with ties 26 Feb 2000: Rewrote setpixelmin() from the ground up - it now works _very_ well instead of just being a reasonable guess. Split off many #define'd constants into separate header files. First shot at implementing tied notes. They can be added and removed, and are displayed more-or-less properly. exportmudela.c doesn't yet take ties into account. 25 Feb 2000: Refined method for alloting space before a note. 24 Feb 2000: Wrote a separate, smarter function for determining where to denote accidentals and where not to. This had been done by the drawing code before. Came up with a mechanism -- that barely adds any code, mind you! -- to allot space before notes for accidentals, etc. This broke the proper determination of reversealigns, though, which I also fixed. Integrated Adam Tee's load & save patches into mainstream release. 23 Feb 2000: 0.3.4 Got more complex beaming to work. Adjusted code in timedialog.c and packaged release. 22 Feb 2000: Got basic, eighth-note-style beaming working. 20 Feb 2000: Got rid of memory leaks in dialog box functions. Fixed a few more colliding keyboard commands/accelerators. Put in model groundwork for rudimentary autobeaming. 19 Feb 2000: 0.3.3 Wrote a functions explicitly for calculating the rightmost measure number rather than doing it as a side effect in the drawing routines. Packaged release. 18 Feb 2000: Changed Denemo so that it would cache the heights of noteheads as well. 16 Feb 2000: Split off a lot of what the drawing function was doing into a separate function. Part of this involved putting in facilities for saving the x positions of notes rather than recalculating them for each draw-through. I'll do a similar thing with y's soon. 14 Feb 2000: 0.3.2 Elaborated on Ron Steinke's patch, thereby completing Denemo support of a distinction between major and minor keys. Packaged release. 13 Feb 2000: Adjusted the rest of Denemo such that it no longer uses all those ugly global variables. The part of the score that you're viewing now advances (when necessary) if you implicitly add measures to it. If you enter a "red-zone" note, it'll be added to the next measure if there aren't any notes in the next measure -- before, Denemo would only do this if you were at the very end of the piece. Fixed a bug affecting exportation of rests. Incorporated Ron Steinke's key name patch. Also fixed the 'control-K' interface bug he'd noticed. 10 Feb 2000: Adjusted about half of Denemo such that it no longer uses global variables. 7 Feb 2000: (post-0.3.1) Fixed the problems that have been causing gtk warnings for a long while now (one instance had to do with the use of uninitialized strings, the other an erroneous attempt to add scorearea to the toplevel window as well as the main vbox it contains.) Fixed font loading such that it comes up with a reasonable default font if it can't come up with something else useful. 7 Feb 2000: 0.3.1 Added support for dotted notes in view and control (everything necessary was already in the model.) Packaged release. 6 Feb 2000: Added staff deletion. Finally, added export mudela functionality. Added back in chunks of Adam Tee's file.h and file.c to accomplish this, though nothing that he'd be angry about. 5 Feb 2000: Made initial clef, key, and time signature a property of the staff rather than an actual mudela object (making them mudelaobjects was more trouble than it was worth). Added delete measure operation. Adjusted functionality such that if adding too many notes to the last measure of the piece, a new measure will automatically be tacked onto its end. 4 Feb 2000: Added staff properties dialog. Fixed the problem of currentmeasure falling off the end of the screen when doing a lot of note entry. The name of each staff is now painted. Yet-another-bugfix for the new drawing mechanism. Changed sorting function a little bit for mudelaobjects zero ticks in duration, allowing me to remove a hack from the drawing code. 3 Feb 2000: 0.3.0 Checked with Adam Tee to ask if his save patch should be integrated with the main release cycle; he said not yet. I removed most of it, but left in the stuff that wasn't directly related to his save function. Packaged release. 2 Feb 2000: Fixed individual note allocation. The scheme it uses is also now much simplified. 1 Feb 2000: Got individual note allocation working. Its behavior is still not quite what I'm aiming for when rhythms are syncopated, but where they aren't, it works just about perfectly. Fixed things such that multiple measures are now displayed again when they can be. 31 Jan 2000: Continued working on individual note allocation stuff -- it's almost working. Changed things so that currentobject points to NULL at the beginning of an initial measure (regardless of the initial timesig, etc.) 30 Jan 2000: Added some groundwork that allows Denemo to give explicit note allocations. 24 Jan 2000: 0.1.2 Got rid of lots of gratuitous NOTE_MARGIN + 's Added red exclamation point indicator when a measure has too many beats (not yet perfect) Added display of measure numbers Added ability to display different parts of the score (just left-to-right so far) Adjusted display such that a double-bar-line is shown at the end of the piece Replaced every constant-length gchar * I could find with a dynamically-resizing GString * instead. 23 Jan 2000: Fixed the display of adjacent notes in a chord so that chord tones are displayed where you'd expect them. Added cursor colors other than gray! Green for ability to add music at the cursor, red if it'd extend past the end of the measure. 17 Jan 2000: Added Control-arrow shortcuts for moving around measure-by-measure. Denemo now calculates the number of measures in width it can display and displays only those measures. Added keyboard shortcuts and a dialog for setting the space between staves. Added commands to insert a first and last staff; moved operations that add a staff to their own menu type. Got rid of all that ugly TOP_MARGIN and STAFF_START stuff, as it's now taken care of by the adjusted scheme for providing space between staffs. Fixed dialogs such that they open at the position of the mouse. 16 Jan 2000: 0.1.1 Final packaging of release. 15 Jan 2000: Got time signature dialog working. Multiple simultaneous time signatures seem to work too, though I don't think Lily supports them. :) Added a dialog for setting the measure width. Added keyboard shortcuts for setting the measure width. Updated DESIGN, TODO, etc. 13 Jan 2000: Started time signature dialog. Adjusted the add measure code such that adding a staff will give it the same clef, key, and time signatures as the current staff. Can be added before or after the current staff. Put in groundwork for adjusting the width of measures, which I can now do with the help of gdb. (This is also important for adjusting the time signature such that much space isn't wasted.) 12 Jan 2000: 0.1.0 Final packaging of release 0.1.0 11 Jan 2000: Finished model, control, and view coding for block-chords - they now work Added function for drawing ledger lines 10 Jan 2000: Began coding in model support for block-chords 6 Jan 2000: 0.0.7 Wrote code for actually displaying the key signature (it had to be deduced from the appearance of the music beforehand) 5 Jan 2000: Added support for changing the key signature Added display of accidentals where the context demands it but not elsewhere 4 Jan 2000: Got clef-change dialog entirely working. Added preliminary support for accidentals. 3 Jan 2000: Removed S key as shortcut to 'new staff'. Added '2000' to all copyright lines. First stab at the change-clef dialog. 1 Jan 2000: Finally got New Staff off of the Edit menu working; I ran into lots of stupid problems doing so and as a result it took a lot longer than it should've. 31 Dec 1999: Debugged stuff such that adding new staffs actually works. Fixed pixmaps such that the background was pure-white, not off-white. Reworked height-calculating code. 30 Dec 1999: Added S command to add a new staff. Started working on the scaffolding for it.