[Top][All Lists]

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

note tweaks for variations in small size

From: Marcus Brinkmann
Subject: note tweaks for variations in small size
Date: Tue, 27 Jul 2004 02:29:41 +0200
User-agent: Wanderlust/2.10.1 (Watching The Wheels) SEMI/1.14.6 (Maruoka) FLIM/1.14.6 (Marutamachi) APEL/10.6 Emacs/21.3 (i386-pc-linux-gnu) MULE/5.0 (SAKAKI)


I want to typeset a couple of transcribed songs[1], and many of them
contain variations of short sequences of notes or even single notes.
In the original manuscript, those are set in a smaller type.
Sometimes the variation is put as another, smaller note-head on the
same stem as the main note, and sometimes it has its own stem
(dependent on how far the pitch is apart and if the value is the

I have tried to do the same in lilypond, and it turns out to be
extra-ordinarly hard.  The mailing list archive showed a similar
question in march last year, with an incomplete answer pointing to the
now inexistant Thread context.  Here is what I came up with so far:

* I can't use < > chords as they don't allow setting the font size of
  one note head (I get a syntax error).

* I can't use << c'8 \once \set fontSize = #'-4 e'8 >>
  because the font size will apply to both note-heads.

* I can't use << c'8 \\ \once \set fontSize = #'-4 e'8 >> as this will
  put the first note into the Voice "1" and thus remove it from the
  current voice, thus breaking \lyricsto, which skips the voice.

* This can be mitigated by naming the voice "1" in the first place
  (and using \stemBoth) or creating several voice contexts
  explicitely.  Or by doing something like:
  << c'8 << \\ \once \set fontSize = #-4 e'8 >> >>

  In either case, this breaks merging of the note heads, so you can't
  get them on the same stem.  I ended up doing this and resolve the
  collision manually by giving explicit stem directions, but having
  only one stem for close notes seems to look better to me.

That's for the simple case of two notes with the same value, and close
pitch.  For pitches that are further apart, using two stems is fine
and works.  However, there are still glitches:

* When doing something like
<< { d''4. c''8 } << \\ { \set fontSize = #'-4 \stemUp s4 f''8 d'' } >> >>
the variation comes before the main
note, which looks a bit ugly.  The original script has the variation
"embrace" the main note (imagine the bar'ed two eights appear over
the single eight), which looks better.  I don't know about a way to
change the order of the notes so that can be achieved.

* When doing something like
<< a'8 << \\ { \set fontSize = #'-4 g'8 } >> >>
then the problem is that the notes are too close.  The smaller note
should be set a bit apart from the main note.  However, extra-offset
on the note-head only moved the note head, not the stem.  extra-offset
or horizontal-shift on the NoteColumn didn't do anything visible.

* Sometimes in the original manuscript longer variations appear in a
temporary extra staff above the normal staff, which doesn't even
extend over the whole line length.  I couldn't repeat this, in
lilypond all staves seem to extend at least over the whole line length
(with the rests being written out).  Having this feature is not so
important to me, as putting longer variations below the piece is
appropriate enough.

Some of these problems may very well be due to my lack of
understanding of lilypond's internal workings.  I admit to be confused
by the contexts, objects, and properties, and did not study them all
in depth yet.  I think the quickest way to work with lilypond from a
user's point of view is to just cut&paste from other people's
examples, which worked very well for me so far.  So, if anybody has
examples where he mixes note-heads of different sizes, or shifts notes
around, I would be more than happy to see them.  Any other hints are
also appreciated.


[1] A couple is probably an understatement.  I plan to make a free
version of the book "Slave Songs in the United States" from 1867 by
William Francis Allen, which contains 136 hymns and other pieces.
Stay tuned.

reply via email to

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