5.7.3 Fulls d’estil

La sortida que produeix el LilyPond es pot modificar profundament; consulteu Ajustament de la sortida per llegir detalls sobre aquest tema. Però, que passa si teniu molts fitxers als quals voleu aplicar els vostres propis ajustaments? O què passa si, senzillament, voleu separar els ajustaments de la pròpia música? Tot això és força fàcil d’aconseguir.

Vejam un exemple. No us preocupeu si no enteneu les parts que tenen tots els #(). Això s’explicarà a Ajustaments avançats amb l’Scheme.

mpdolce =
  \tweak self-alignment-X #-0.6
  #(make-dynamic-script
    #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})

inst =
#(define-music-function
     (string)
     (string?)
   #{ <>^\markup \bold \box #string #})

\relative {
  \tempo 4=50
  a'4.\mpdolce d8 cis4--\glissando a |
  b4 bes a2 |
  \inst "Clarinet"
  cis4.\< d8 e4 fis |
  g8(\! fis)-. e( d)-. cis2 |
}

[image of music]

Fem alguna cosa respecte a les definicions mpdolce i inst. Aquestes definicions produeixen la sortida que volem, però potser les voldríem utilitzar a una altra peça. Podríem simplement copiar-les i enganxar-les al principi de cada fitxer, però seria força molest. També fa que es quedin les definicions a la vista dins dels nostres fitxers de música, i jo personalment trobo tots els #() molt pocs estètics. Els amagarem dins d’un altre fitxer:

%%% desar això a un fitxer amb el nom «definicions.ily»
mpdolce =
  \tweak self-alignment-X #-0.6
  #(make-dynamic-script
    #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})

inst =
#(define-music-function
     (string)
     (string?)
   #{ <>^\markup \bold \box #string #})

Farem referència a aquest fitxer utilitzant l’ordre \include al principi del fitxer de música (l’extensió .ily s’utilitza per distingir aquest fitxer d’inclusió –que se suposa que no ha de ser processat de forma independent– del fitxer principal). Ara modificarem la música (desem aquest fitxer com musica.ly).

\include "definicions.ily"

\relative {
  \tempo 4=50
  a'4.\mpdolce d8 cis4--\glissando a |
  b4 bes a2 |
  \inst "Clarinete"
  cis4.\< d8 e4 fis |
  g8(\! fis)-. e( d)-. cis2 |
}

[image of music]

Això té millor aspecte, però farem alguns canvis més. El glissando és difícil de veure, així que el farem més gruixut i l’aproparem als caps de les notes. Posarem la indicació metronòmica a sobre de la clau, en lloc d’anar a sobre de la primera nota. I per últim, el meu professor de composició odia les indicacions de compàs ‘C’, així que la convertirem en ‘4/4’.

Malgrat això, no hem de canviar el fitxer musica.ly. Anem a substituir el nostre fitxer definicions.ily amb el següent:

%%%  definicions.ily
mpdolce =
  \tweak self-alignment-X #-0.6
  #(make-dynamic-script
    #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})

inst =
#(define-music-function
     (string)
     (string?)
   #{ <>^\markup \bold \box #string #})

\layout{
  \context {
    \Score
    \override MetronomeMark.extra-offset = #'(-5 . 0)
    \override MetronomeMark.padding = #'3
  }
  \context {
    \Staff
    \override TimeSignature.style = #'numbered
  }
  \context {
    \Voice
    \override Glissando.thickness = #3
    \override Glissando.gap = #0.1
  }
}

[image of music]

Això té un aspecte molt millor! Ara suposeu que voleu publicar aquesta peça. Al meu professor de composició no li agraden les indicacions de compàs, però jo els tinc un cert apreci. Copiarem el fitxer actual

¡Eso tiene un aspecto mucho mejor! Ahora suponga que quiere publicar esta pieza. A mi profesor de composición no le gustan las indicaciones de compás ‘C’, pero yo les tengo cierto cariño. Copiaremos el archivo actual definicions.ily a publicar-web.ily i modificarem aquest últim fitxer. Com el propòsit d’aquesta música és produir un PDF que es mostrarà a la pantalla, també augmentarem la mida general de la sortida.

%%%  publicar-web.ily
mpdolce =
  \tweak self-alignment-X #-0.6
  #(make-dynamic-script
    #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})

inst =
#(define-music-function
     (string)
     (string?)
   #{ <>^\markup \bold \box #string #})

#(set-global-staff-size 23)

\layout{
  \context {
    \Score
    \override MetronomeMark.extra-offset = #'(-5 . 0)
    \override MetronomeMark.padding = #'3
  }
  \context {
    \Staff
  }
  \context {
    \Voice
    \override Glissando.thickness = #3
    \override Glissando.gap = #0.1
  }
}

[image of music]

Ara, a la música, simplement substitueixo \include "definicions.ily" per \include "publicar-web.ily". Per suposat, podríem fer això encara més pràctic. Podríem fer un fitxer definiciones.ily que contingués sols les definicions de mpdolce i de inst, un fitxer publicar-web.ily que contingués sols la secció \layout que es va mostrar a l’exemple, i un fitxer universitat.ily que contindria sols els ajustament per introduir la sortida que agrada al meu professor. El començament de musica.ly tindria ara aquest aspecte:

\include "definiciones.ily"

%%%  Treure el comentari d'una sola d'aquestes línies!
\include "publicar-web.ily"
%\include "universitat.ily"

Aquest enfocament pot ser útil fins i tot si aneu a produir sols un conjunt de particel·les. Jo utilitzo mitja dotzena de fitxers de ‘fulls d’estil’ per als meus projectes. Començo tots els fitxers de música amb un \include "../global.ily", que conté

%%%   global.ily
\version "2.25.22"

#(ly:set-option 'point-and-click #f)

\include "../iniciar/iniciar-definicions.ily"
\include "../iniciar/iniciar-disposicio.ily"
\include "../iniciar/iniciar-capçaleres.ily"
\include "../iniciar/iniciar-paper.ily"

Manual d’aprenentatge del GNU LilyPond v2.25.22 (development-branch).