[gsharp-devel] Gsharp progress report
Robert Strandh
strandh at labri.fr
Tue Jun 13 08:08:04 UTC 2006
Dear mailing list member,
There has not been a progress report for four months, for which I
apologize.
A lot of things have happened since the last report, some minor, some
major. At the end of this message, you will find a list of these
items.
Now starts a period of a very large number of mostly minor, but not
very interesting, improvements. Some of them will be directly visible
to the user, such as more music symbols, more commands and improved
ways of changing various parameters of the score. Others will be
cleanups of the code, such as better modularity, and replacement of
magic constants by real parameters that will either be computed or
set and modified by the user.
There are also a few medium-sized improvements that are necessary.
For instance, the computation of measures should be moved to a
view-specific object, so that we can have different simultaneous views
of the score (such as for different parts).
Major improvements since last progress report:
* I implemented a new system for displaying music symbols. The
previous system used Metafont to generate .gf files (one for each
font size) and loaded those files as necessary. The main
disadvantage of that system was that it was not easy to produce a
printed version of the score. The new system takes slightly
modified Metafont path descriptions for the music symbol and turn
them into areas bounded by Bezier curves. These curves can be
turned into PostScript path descriptions for printing or into
pixmaps for on-line viewing. In fact, the new system is very
general and could be used by other CLIM applications as well, as
it integrates with CLIM areas. A minor advantage of the new
system is that score symbols can be drawn using any color.
* Christophe Rhodes implemented the necessary medium-draw methods on
a PostScript medium so that generating a PostScript file for
printing is now possible. The PostScript output looks very
similar to the screen version, except that the resolution is
usually better.
* I implemented a new font viewer for the new font rendering
system. It is a 170-line CLIM application that allows you to view
symbols in various sizes, as pixels (with or without a grid) or
as the resulting anti-aliased glyph (with or without a staff).
This application is part of Gsharp, so anyone can start it to
debug old or new glyphs.
* Gsharp can now do multi-page scores. In order to accomplish that,
I implemented one new algorithm and modified an existing one. The
modified algorithm used to divide the score into `lines', and uses
a modified cost measure to divide it into pages instead. The new
algorithm takes a sequence of measures to be rendered on the same
page and computes an optimal way of dividing those measures into
lines.
* Gsharp can now draw ties. A variety of ties are now included in
the Gsharp fonts and the right one is selected automatically.
Ties are saved to disk and rendered to MIDI as expected.
* Gsharp now uses the ESA modules from Climacs, which makes it
possible to take advantage of independent improvements to ESA.
This has already resulted in better on-line help, better file
completion, better handling of I/O, modified buffers, etc.
* Gsharp now uses Flexichain as an independent module, available as
a project on common-lisp.net. Again, this allows us to take
advantage of independent improvements to the Flexichain module.
* Christophe Rhodes made scrolling work correctly. This means that
even on smaller screens, it is now possible to work on the full
page.
* Christophe Rhodes fixed the problem we had with partial beams by
making sure the clipping region got saved and restored correctly
in the corresponding output record.
Minor improvements:
* Introduced a new command table for commands that operate on
rhythmic elements.
* Christophe Rhodes implemented octaviated treble clefs.
* Movement by measure, bound to M-C-f and M-C-b, implemented by
Christophe Rhodes.
* The file menu now works, thanks to Christophe Rhodes.
New scores:
* Les Cris De Paris, entered by Christophe Rhodes.
* The beginning of the 4th English suite by Bach.
* Dvorak's Humoresque, entered by Christophe Rhodes.
--
Robert Strandh
---------------------------------------------------------------------
Greenspun's Tenth Rule of Programming: any sufficiently complicated C
or Fortran program contains an ad hoc informally-specified bug-ridden
slow implementation of half of Common Lisp.
---------------------------------------------------------------------
More information about the gsharp-devel
mailing list