4.1.1 Introducció a l’estructura dels fitxers del LilyPond

Un exemple bàsic de fitxer d’entrada del LilyPond és el següent:

\version "2.25.22"

\header { }

\score {
   … expressió musical composta …   % tota la música va aquí
  \layout { }
  \midi { }
}

Hi ha moltes variacions d’aquest esquema bàsic, però l’exemple constitueix un punt de partida útil.

Fins al moment, cap dels exemples que heu pogut veure utilitza la instrucció \score{}. Això és així perquè el LilyPond afegeix automàticament les ordres addicionals que es requereixen quan li proporcionem una entrada senzilla. El LilyPond tracta una entrada com aquesta:

\relative {
  c''4 a d c
}

com una abreviatura d’aquesta altra:

\book {
  \score {
    \new Staff {
      \new Voice {
        \relative {
          c''4 a b c
        }
      }
    }
    \layout { }
  }
}

En altres paraules, si l’entrada consta d’una única expressió musical, el LilyPond interpreta el fitxers com si l’expressió musical estigués rodejada per un embolcall fet per les instruccions que acabem de veure.

¡Advertiment! Molts dels exemples que apareixen a la documentació del LilyPond ometen les instruccions \new Staff i \new Voice, deixant que es creïn de forma implícita. Això funciona bé per a exemples senzills, però per a exemples més complicats, especialment quan s’usen instruccions addicionals, la creació implícita dels contextos poden donar lloc a resultats inesperats, fins i tot en ocasions crear pentagrames no desitjats. La forma de crear contextos de forma explícita s’explica a Contextos i gravadors.

Nota: Quan s’escriuen més d’unes poques línies de música, es recomana crear sempre els pentagrames i les veus de forma explícita.

En tot cas, per ara anem a tornar al primer exemple per examinar l’ordre \score, deixant les altres en la seva forma predeterminada.

Un bloc \score sempre ha de contenir una expressió musical única, que ha d’aparèixer immediatament després de la instrucció \score. Recordeu que una expressió musical pot ser qualsevol cosa, des d’una sola nota fina una enorme expressió composta com ara

{
  \new StaffGroup <<
     … inseriu aquí la partitura completa d'una òpera
  de Wagner … 
  >>
}

A causa que tot es troba dins de { … }, compta com una expressió musical.

Com hem vist anteriorment, el bloc \score pot contenir altres coses, com ara

\score {
  { c'4 a b c' }
  \header { }
  \layout { }
  \midi { }
}

Observeu que aquestes tres instruccions (\header, \layout i \midi) són especials: a diferència de la resta de les instruccions que comencen amb una barra invertida (\), no són expressions musicals i no formen part de cap expressió musical. Per tant, es poden posar dins d’un bloc \score o a fora d’ell. De fet, aquestes instruccions se situen en general fora del bloc \score (per exemple, \header se sol col·locar abans de la instrucció \score, com mostra l’exemple que apareix al principi de la secció.)

Dues instruccions més que no hem vist són \layout { } i \midi { }. Si apareixen tal i com es mostren aquí, fan que el LilyPond produeixi una sortida impresa i una sortida MIDI, respectivament. Es descriuen amb tot detall al manual de Referència de la notació, a Disposició de la partitura i a Creació de sortida MIDI.

Podem escriure diversos blocs \score. Cada un d’ells rebrà el mateix tractament que una partitura independent, però es combinaran tots junts a un fitxer de sortida únic. No fa falta cap instrucció \book, es crearà un implícitament. No obstant, si voleu fitxers de sortida separats a partir d’un únic fitxer .ly, aleshores cal utilitzar l’ordre \book per separar les diferents seccions: cada bloc \book produeix un fitxer de sortida diferent.

En resum:

Cada bloc \book crea un fitxer de sortida diferent (per exemple, un fitxer PDF). Si no hem escrit un de forma explícita, el LilyPond envolta tot el nostre codi d’entrada dins d’un bloc \book de forma implícita.

Cada bloc \score és un tros de música separat dins d’un bloc \book.

Cada bloc \layout afecta el bloc \score o \book dins del qual apareix (és a dir, un bloc \layout dins d’un bloc \score) afecta solament a aquest bloc \score, però un bloc \layout fora d’un bloc \score (que per això està dins d’un bloc \book, ja sigui explícit o implícitament) afecta als blocs \score que estan dins d’aquest \book.

Per veure més detalls, consulteu Diverses partitures a un llibre.

Una altra magnifica drecera és la possibilitat de definir variables com es mostra a Organitzar les peces mitjançant variables. Totes les plantilles fan servir el següent:

melodia = \relative {
  c'4 a b c
}

\score {
  \melodia
}

Quan el LilyPond examina aquest fitxer, agafa el valor de melodia (tot el que hi ha després del signe igual) i l’insereix a tot arreu que veu \melodia. No es requereix una cura especial amb el nom (pot ser melodia, global, CompasArmadura, madretadelpiano o fulanet o qualsevol altre). Recordeu que pot ser gairebé qualsevol nom que se us acudeixi, sempre i quan contingui sols caràcters alfabètics i sigui diferent a qualsevol dels noms d’instrucció del LilyPond. Per veure més detalls, consulteu Estalvi de tecleig mitjançant variables i funcions. Les limitacions exactes que afecten els noms de variable es detallen a Estructura del fitxer.

Vegeu també

Per veure una definició completa del format del codi d’entrada, consulteu Estructura del fitxer.


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