lilypond-devel
[Top][All Lists]
Advanced

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

Re: [patch] first-clef property


From: Karl Hammar
Subject: Re: [patch] first-clef property
Date: Sat, 2 Feb 2008 21:06:33 +0100 (CET)

Reinhold Kainhofer:
> Am Freitag, 1. Februar 2008 schrieb Nicolas Sceaux:
> > When typesetting ancient music, one may want to produce two editions:
> > eventually one with original clefs, as found in the manuscripts, and an
> > other one with new fashioned clefs. It is also custom in the later case
...
> Actually, we're already two ;-) 
> I'm transcribing some old pieces by Schubert, who wrote the vocal voices 
> using 
> soprano/alto/tenor clef, while modern typesetting practice uses only the 
> treble clef for these voices. Now, I want to make two editions, one with the 
> original clefs, the other with modern clefs (but the original clefs as 
> incipits). So, you see, I'm having exactly the same problem.
...

There is two problems here,

1, should the clef look ancient or modern, e.g. 
  { \clef "petrucci-f" } or { \clef "bass" }

2, should we exchange a C clef for a G clef

For problem 1 one can look at what theese do
 \displayMusic { \clef "petrucci-f" c1 c }
 \displayMusic { \clef "bass" c1 c }

(make-music
  'SequentialMusic
  'elements
  (list (make-music
          'ContextSpeccedMusic
          'context-type
          'Staff
          'element
          (make-music
            'SequentialMusic
            'elements
            (list (make-music
                    'PropertySet
                    'value
                    "clefs.petrucci.f"
                    'symbol
                    'clefGlyph)
        (make-music
          'EventChord
...
                  (ly:make-pitch -1 0 0))))
        (make-music
          'EventChord
...
                  (ly:make-pitch -1 0 0))))))


Where the difference is "clefs.petrucci.f" vs. "clefs.F".
So an \ancientToModernClef should traverce the list and exchange
ancient "clefs.xx" to a modern variant.

=======

Problem two is similar

  \displayMusic { \clef "petrucci-c2" c1 c }
  \displayMusic { \clef "petrucci-c3" c1 c }

gives this diff

  $ diff -u b.log b2 
  --- b.log       2008-02-02 20:46:38.888477652 +0100
  +++ b2  2008-02-02 20:47:08.884108561 +0100
  @@ -12,19 +12,19 @@
               (list (make-music
                       'PropertySet
                       'value
  -                    "clefs.petrucci.c2"
  +                    "clefs.petrucci.c3"
                       'symbol
                       'clefGlyph)
                     (make-music
                       'PropertySet
                       'value
  -                    -2
  +                    0
                       'symbol
                       'middleCPosition)
                     (make-music
                       'PropertySet
                       'value
  -                    -2
  +                    0
                       'symbol
                       'clefPosition)
                     (make-music

and

  \displayMusic { \clef "petrucci-c2" c1 c }
  \displayMusic { \clef "petrucci-g" c1 c }

this

  $ diff -u b.log b2 
  --- b.log       2008-02-02 20:48:23.373258918 +0100
  +++ b2  2008-02-02 20:48:44.370200812 +0100
  @@ -12,13 +12,13 @@
               (list (make-music
                       'PropertySet
                       'value
  -                    "clefs.petrucci.c2"
  +                    "clefs.petrucci.g"
                       'symbol
                       'clefGlyph)
                     (make-music
                       'PropertySet
                       'value
  -                    -2
  +                    -6
                       'symbol
                       'middleCPosition)
                     (make-music

To make a generic \changeClef one has to find the part between a-b below (a
list), and exchange it for something else

  (make-music
    'SequentialMusic
    'elements
    (list (make-music
            'ContextSpeccedMusic
            'context-type
            'Staff
            'element
            (make-music
              'SequentialMusic
              'elements
a
              (list (make-music
                      'PropertySet
                      'value
                      "clefs.petrucci.g"
                      'symbol
                      'clefGlyph)
                    (make-music
                      'PropertySet
                      'value
                      -6
                      'symbol
                      'middleCPosition)
                    (make-music
                      'PropertySet
                      'value
                      -2
                      'symbol
                      'clefPosition)
                    (make-music
                      'PropertySet
                      'value
                      0
                      'symbol
                      'clefOctavation))))
b
  ...
                    (ly:make-pitch -1 0 0))))))

=====

Or what do you think.
/Karl






reply via email to

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