denemo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Denemo-devel] Some bug fixes


From: Richard Shann
Subject: [Denemo-devel] Some bug fixes
Date: Sun, 19 Aug 2007 16:04:49 +0100

I am preparing a patch of the stuff I've got to date. This improves on
the rhythm pattern entry stuff and introduces pitch recognition. In the
course of this I've fixed several bugs and I list these here. The patch
will follow as soon as I've sync'd it with the latest cvs.
Richard

Bug
denemo 0.7.7
If .denemo does not exist denemo crashes on startup. Fixed (see below
under locatedotdenemo).
workaround: creating .denemo as a directory enables denemo to start up
Bug
denemo 0.7.7
If you use score configuration and choose two instruments (to create two
staffs) denemo crashes with glibc detecting memory corruption. This
seems to be not reliably detected.
This was probably due to strcpy being used without regard to the
available memory at destination (so any instrument whose name was longer
than "Voice 1" would corrupt memory. I've fixed this. I've also fixed a
similar looking piece of code in import_midi.c without looking in detail
at whether it is actually a bug. (The midi names start "Track 1" which
happens to fit nicely over the string "Voice 1", I guess a midi file
with more than 9 tracks would crash). There is now potentially a memory
leak, "Voice 1" will need to be dynamically allocated if it isn't
already and freed here.

Bug
removing an instrument not in list
(denemo:12683): Gtk-CRITICAL **: gtk_list_store_remove: assertion
`VALID_ITER (iter, list_store)' failed
Not fixed this.

Bug
denemo (all versions to date)
When you enter a series of notes that take you into a new bar then try
to delete them using DeletePreviousObject (e.g. BackSpace or shift-X)
the deletions stop at the bar line. I've fixed this in
keyresponses.c:deletepreviousobject() and must apologise for making it
recursive which was probably unnecessary.
Bug
denemo 0.7.7
If you select the blank coammand after the bookmark ones and ascribe a
binding to it, denemo crashes when you use the key. This blank is caused
by the Stub entry in the menu_entries, which is used to allow building
the open recent items dynamically. I have put in a dummy function to
prevent the crash and a blank name for good measure. I am not clear
about this bug, or whether I have fixed it.

Bug
gchar *
dnm_get_temp_filename (const gchar * name) returns random value
fixed.

Bug
ext_init assumed locatedotdenemo() would always be usable.
locatedotdenemo()
returned non null even if the directory was not usable.
I've fixed this and tidied up a bit. There is still some trouble on exit
if .denemo cannot be used.

Bug (longstanding)
denemo draws notes off the top of the window (above about c''' in treble
clef). I suspect the origin of the problem is that as you move the mouse
ledger lines are put in, even to ridiculous pitches, which could push
the staff off the bottom of the window. If so, it would be good to have
(user controllable) limits for the notes that can go with a clef - this
would be nice anyway to prevent composing pieces with a range that
doesn't fit the instrument.
I have not looked at fixing this.

Bug
The indication of tuplets in the score is too verbose - it takes up so
much space that a measure with a lot of triplets is too wide to fit on
the screen, whereupon part is inaccessible. I've reduced it to a pair of
chars ~ at the beginning and | at the end. (This doesn't indicate what
sort of tuplet it is, but that is obvious from the way the notes are
grouped within, and how many fit in the measure). I've left this code
surrounded by #if #else #endif for ease of reversal if it is unpopular.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]