denemo-devel
[Top][All Lists]
Advanced

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

[Denemo-devel] New LilyPond output.


From: Richard Shann
Subject: [Denemo-devel] New LilyPond output.
Date: Sat, 17 May 2008 16:20:23 +0100

I've been working on improving the clarity and modularity of the
LilyPond output so that customizing it will be easier. In particular it
will be possible to provide templates for things which would be messy to
do at present.
A typical score block now looks like this

\score {
\transpose c c<< 
\new Staff << {
                \MvmntIVoiceIMusic
                }
                
\new Voice {
                \MvmntIVoiceII
                }
                >>
\new Staff << {
                \MvmntIVoiceIIIMusic
                }
                
\new Voice {
                \MvmntIVoiceIV
                }
                >>
>>
        \layout {
        }
\header{
        title = "Belle"
        breakbefore = ##f
        }
}

The identifiers MvmntIVoiceIMusic etc now consistently identify the
voices by movement and position top to bottom of the score. They are
defined in terms of other identifiers viz:

MvmntIVoiceIIIMusic = {\MvmntIVoiceIIIProlog \MvmntIVoiceIII}

MvmntIVoiceIProlog = {
    \MvmntIVoiceITimeSig \MvmntIVoiceIKeySig \MvmntIVoiceIClef
    }

where, in my example

MvmntIVoiceITimeSig = \time 2/4
MvmntIVoiceIKeySig = \key f \major
MvmntIVoiceIClef = \clef bass
        
This means you can create custom scoreblocks for printing the same music
in different ways (even with different clefs), and still retain full
Denemo editability.
The implementation is complete, though the indentation leaves something
to be desired and some of the specialized things (figured basses etc)
could be further modularized.
The new output is much better for importing extra movements, staffs etc,
as name clashes cannot occur any more.
Note that if you have already started creating custom scoreblocks, these
will need to be adapted to use the new macros - the old blocks will not
work.
I attach an example, which just has 4 parts on two staffs, but prints
out the parts in many different ways.
I've checked this in to CVS. Shall I try checking it in to git as well?

Richard


Attachment: Sample.denemo
Description: GNU Zip compressed data


reply via email to

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