lilypond-user
[Top][All Lists]
Advanced

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

Re: Feature request: Alternative G clef


From: Martín Rincón Botero
Subject: Re: Feature request: Alternative G clef
Date: Sat, 24 Oct 2020 19:11:58 +0200

Hi Jean,

thank you for that font showcase! I’ll take a closer look at Profondo. However, its overly long bass clef looks quite unappealing to me. I wouldn’t use any of the others, as far as I can tell.

About what pairs with what is certainly more of a matter of taste. I find Emmentaler’s trill sign proportionally very big: it doesn’t fit well with the rest of the ensemble, something that’s more prominent with a font size of 20, than with smaller fonts. For the same reason I always tweak it one number smaller for font size 20. However, that’s not my point, we already provide an alternative C clef, and an alternative percussion clef. We provide four different ways of naming a G clef without an actual different G clef being used. It looks somewhat random to me.

Martín. 
 -- www.martinrinconbotero.com
On 24. Oct 2020, 17:46 +0200, Jean Abou Samra <jean@abou-samra.fr>, wrote:

Le 24/10/2020 à 11:47, Martín Rincón Botero a écrit :

Hello all,

a few months ago in some forum I found the following snippet of a beautiful G clef (I think by Pierre Perol-Schneider) that I've been extensively using since then. Right now in the NR we have \clef G, \clef treble, \clef "G2" and \clef violin, all producing what seems to be the exact same clef. To name the exact same clef in so many ways ("G2" strikes me as unnecessary) doesn't seem to have a reasonable explanation to me. Some clefs have variants like the C clef (\clef varC). I wish Perol-Schneider's clef could be considered for inclusion into standard Lilypond, possibly named as "G2" (which would actually produce a "second" G clef) or as \clef varG. I hope he doesn't mind that I "re-publish" his code in this mailing list:

\version "2.20.0"

%% New treble clef defs:
#(define-markup-command (G_Score layout props thk mlt) (number? number?)
  (interpret-markup layout props
   (markup
    (#:stencil
     (make-path-stencil
      '(M  1.117 -2.778
        C  0.730 -2.782  0.363 -2.364 0.484 -1.981
        C  0.566 -1.641  1.043 -1.540 1.285 -1.786
        C  1.504 -1.997  1.418 -2.395 1.141 -2.513
        C  0.996 -2.567  0.836 -2.583 1.090 -2.614
        C  1.379 -2.673  1.703 -2.559 1.828 -2.278
        C  1.969 -1.911  1.820 -1.395 1.766 -1.024
        C  1.031 -1.169  0.277 -0.903 0.031 -0.196
        C -0.129  0.323 -0.043  0.917 0.250  1.366
        C  0.492  1.737  0.832  1.999 1.152  2.300
        C  1.070  2.886  1.000  3.468 1.203  4.034
        C  1.297  4.292  1.484  4.503 1.680  4.687
        C  1.898  4.886  2.117  4.335 2.211  4.062
        C  2.398  3.601  2.227  2.839 1.934  2.323
        C  1.816  2.105  1.637  1.929 1.457  1.757
        C  1.500  1.523  1.539  1.288 1.586  1.054
        C  2.117  1.077  2.477  0.792 2.602  0.359
        C  2.766 -0.134  2.516 -0.766 1.953 -0.977
        C  2.004 -1.423  2.160 -1.927 2.004 -2.313
        C  1.902 -2.567  1.656 -2.766 1.379 -2.778
        C  1.293 -2.798  1.203 -2.790 1.117 -2.782
        M  1.734 -0.919
        C  1.621 -0.306  1.574  0.026 1.500  0.464
        C  1.164  0.433  0.973  0.066 1.090 -0.220
        C  1.141 -0.345  1.223 -0.407 1.359 -0.485
        C  1.492 -0.563  1.387 -0.657 1.297 -0.618
        C  1.031 -0.509  0.664 -0.188 0.758  0.269
        C  0.816  0.569  1.059  0.917 1.398  1.023
        C  1.359  1.261  1.332  1.378 1.297  1.612
        C  0.887  1.234  0.332  0.753 0.348  0.155
        C  0.363 -0.532  0.746 -1.071 1.734 -0.919
        M  1.688  0.480
        C  1.762  0.105  1.844 -0.509 1.926 -0.880
        C  2.656 -0.462  2.438  0.534 1.688  0.480
        M  2.016  3.776
        C  1.984  4.378  1.691  4.058 1.500  3.706
        C  1.313  3.366  1.273  2.894 1.352  2.468
        C  1.945  3.066  2.031  3.409 2.016  3.776
        Z)
       thk mlt mlt #t)))))

clefGScore = \layout {
        \context {
          \Score
          \override Clef.stencil =
            #(lambda (grob)
               (let* ((sz (ly:grob-property grob 'font-size 0))
                      (mlt (magstep sz))
                      (glyph (ly:grob-property grob 'glyph-name)))
                     (cond
                      ((equal? glyph "clefs.G")
                       (grob-interpret-markup grob
                        (markup #:scale(cons mlt mlt)#:G_Score 0 1)))
                      ((equal? glyph "clefs.G_change")
                       (grob-interpret-markup grob
                        (markup #:scale(cons mlt mlt)#:G_Score .01 .8)))
                      (else (ly:clef::print grob)))))
           \override ClefModifier.clef-alignments = #'((G 0 . .4))
           % Optional:
           %\override ClefModifier.font-series = #'bold
        }
      }
%% defs end.      
 
%% Test:
\clefGScore

This code effectively modifies Emmentaler's G Clef instead of having its own separate glyph, so that using \clef treble or \clef french produces the custom clef as output. When using this clef, the following music

{ \clef G
  c'1
  \clef "G2"
  c'1
  \clef violin
  c'1
  \clef french
  c'1
}

looks like this:

[image]

Cheers,
Martín.

--

Hello,

I suggest you use this font:

https://github.com/OpenLilyPondFonts/scorlatti/blob/master/scorlatti-basic-example.png

Its G clef is quite similar to the one Pierre made up. Other candidates may include:

https://github.com/OpenLilyPondFonts/profondo/blob/master/profondo-basic-example.png

https://github.com/OpenLilyPondFonts/ross/blob/master/ross-basic-example.png

https://github.com/OpenLilyPondFonts/bravura

(Comparison attached.)

I think the real solution to offer more stylistic alternates would be to ship more fonts with the default packaging of LilyPond, because these make up consistent ensembles (the G clef you sent is nice but I don't find it to pair well with Emmentaler's alto clef for example). For your information, SMuFL support is being worked on currently.

Best regards,
Jean


reply via email to

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