[Top][All Lists]

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

[Denemo-devel] LilyPond editing upgrade.

From: Richard Shann
Subject: [Denemo-devel] LilyPond editing upgrade.
Date: Wed, 16 Apr 2008 20:23:03 +0100

I've checked in a major upgrade of Denemo which allows it to generate
Piano music, multiple verses of lyrics and much more without leaving
Denemo, or sacrificing the Denemo visual note editing.
The export to LilyPond has been extensively re-written with a lot of
duplicate code removed, so look out for things dropped on the floor.
Here are some notes (I've put these into the Docs, and into the
There is still quite a bit to do, but this much seems to be working, and
I have included templates for Piano and jazz combo with piano which
should be useful straight away. I realize that several things on the
wish list have not yet made it into reality...
With version 0.7.9 we have a new approach to editing the LilyPond output
within Denemo. This approach immediately makes Denemo able to do many
more things (e.g. Piano music) with the music still editable from within
This can be used without knowing the LilyPond language (provided a
suitable template file exists). Alternatively, tweaks from the LilyPond
documentation can be inserted into the LilyPond output and stored with
the Denemo, leaving open the possibility of further editing within
Denemo without the need to re-apply tweaks or keep separate LilyPond

Under the View menu is a Show LilyPond item which pops up a window with
the LilyPond output in it.
The text is interspersed with buttons which enable you to hide or show
the various sections or to create custom versions.
Several custom scoreblocks can be kept, and by making the one desired
visible, the same Denemo file can be used to print a full score or parts
or several voices to a staff or even a piano reduction. The custom
scoreblocks can be are named using the comment on the first line (see
the template Piano.denemo for an example).

The various Voices/Staffs for the different Movements are separated by
buttons. These are labeled by enumerating the movements and staffs in
order, so the first voice in the first movement has a button labelled
"Notes for MvmntIVoiceI" and so on. Within these music blocks you can
insert arbitrary LilyPond text between notes,
and these appear as LilyPond directives in the main Denemo window. The
main window also moves the cursor to correspond with where you are
editing. (It should of course move the cursor immediately you click on a
point in the music, but, as yet, it only moves the cusor when you press
a key just before the note name - one of the arrow keys will do).
The two windows are kept in sync, so you can move back and forth between
editing textually and editing in Denemo.
Right clicking this window gives a Print command that operates on the
visible LilyPond text in the window. The normal Denemo Print commands
are still operative - if you Print a single part then this alters the
standard scoreblock. If you use the File->Print command then it prints
the first custom scoreblock (or the standard scoreblock if you do not
have any custom scoreblocks).

Clicking (as opposed to using the arrow keys) in the LilyPond text does
not move the cursor in the Denemo window.
Moving the text cursor in a lyric (etc.) does not move the Denemo
cursor, so you cannot easily see where in the music it comes.
Inserting LilyPond text after last note of a movement has to be done in
When you delete a LilyPond directive textually you have to move the
cursor to start re-inserting it.
The Denemo status bar is not always updated.
The text before the Staff, and before the music is not yet editable.
LilyPond text cannot yet be attached to the notes inside chords.
LilyPond notes cannot be parsed back in (would be useful for importing
music from arbitrary LilyPond files).
LilyPond inserts at notes can only be completely deleted in the Denemo
window - inserts are not merged.
No warning given when extra staffs (etc) are added to a score with
custom scoreblock


reply via email to

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