denemo-devel
[Top][All Lists]
Advanced

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

[Denemo-devel] Reduce complexity of Denemos Lilypond generation by strip


From: Nils Gey
Subject: [Denemo-devel] Reduce complexity of Denemos Lilypond generation by stripping "Initial" versions of keysig, timesig, clef.
Date: Fri, 29 Apr 2011 14:44:39 +0200

Hello list,

Lilypond-code generated by Denemo is not exactly easy to read. I blame the 
staff definitions for immediate disstatisfaction when a Lilypond "Texter" sees 
Denemos ly.

I realised that Denemo introduced the concept of "Initial Keysig", Timesig and 
Clef. This is something not demanded by Lilypond. On the contrary, even the 
simplest examples start with writing those things directly before the note 
context. Technically Denemo does nothing else except hiding these with multiple 
layers of variables.

All this is needed for a simple measure of music:

MvmntIVoiceI =  {
         c''4 b' a' g' \EndMovementBarline
}

MvmntIVoiceITimeSig = \time 4/4 
MvmntIVoiceIKeySig = \key c \major
MvmntIVoiceIClef = \clef treble 
MvmntIVoiceIProlog = { \MvmntIVoiceITimeSig \MvmntIVoiceIKeySig 
\MvmntIVoiceIClef}
MvmntIVoiceIMusic =  {\MvmntIVoiceIProlog \MvmntIVoiceI}
MvmntIVoiceIContext = \context Voice = VoiceIMvmntI  {\MvmntIVoiceIMusic}

But it could look like this

MvmntIVoiceI =  {
        \time 4/4 
        \key c \major
        \clef treble
         c''4 b' a' g' \EndMovementBarline
}

MvmntIVoiceIContext = \context Voice = VoiceIMvmntI  {\MvmntIVoiceI}

I suggest to drop the concept of a special initial version of clefs, timesigs 
and keysigs and instead place them as normal "Clefchange" clefs in our default 
Template. 

We get rid of three nearly redundant menu commands, which need maintenance, as 
a good side-effect. (Did you notice that there is still no Drum Clef in the 
Initial Clef menu?).

Another positive aspect is to get rid of the ever-present timesig. This is not 
even common in printed music. Every Denemo staff looks like you are at the 
beginning of one.

The concept of showing the current clef and keysig on the other hand is good. 
Now you could argue that a user may delete the intial clef and timesig which 
would result in just staff lines.
1) Lilypond is prepared for that and has a fallback to 4/4, Treble clef (like 
it defaults to C Major as well).
2) The only visual disturbance would be a "no clef" situation. A missing 
timesig (or keysig) does not disturb the Denemo score view in my opinion. 
3) Since the drawing functions are already there Denemo could always fall back 
to No Clef -> Show Treble. But without emmiting any Lilypond code for the clef.

I think it is a good idea to have as few as possible editing and inserting 
concepts in Denemo. Making a difference between a clef/key/time-sig which is at 
the front of a score and in the middle makes neither musical sense nor is it 
encouraged by Lilypond.

Nils



reply via email to

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