Utilisateur:JLTB34/études scores

La bibliothèque libre.
Score et LilyPond



(Actuellement la version correspondante de LilyPond est la 2.18.2 et \language italiano qui permet d'utiliser les notes « françaises » est supporté !)


  • utilisation de version, relative, commentaires, clef, time

%{
   Bloc de commentaire sur plusieurs lignes
     le nombre d'espacement n'a pas d'importance tant qu'il est au moins de un…
%}
\version "2.18.2"        % ne pas choisir une version plus récente pour le moment
\relative c'             % la hauteur des notes est relative par rapport à la précédente (intervalle maximal d’une quarte 
{
\clef G                  % clef par défaut
\time 4/4                % métrique par défaut
c d e f 
\mark #(string-append "LilyPond v. " (lilypond-version))
g a b c   
}
  La commande \override permet de modifier la mise en forme des objets graphiques. 
  Les descriptions d’objet graphique (ex. TimeSignature), contiennent les réglages par défaut
  pour les objets graphiques. Ces réglages sont sous forme de liste Scheme ; 
  on peut les consulter dans le fichier ‘scm/define-grobs.scm’.
C’est en fait un raccourci pour : \override [contexte.]NomObjet.propriété = #valeur


  • Texte dans la portée, au-dessus et en-dessous

\relative c''{
\override Score.NonMusicalPaperColumn #'padding = #8     % augmente l'espacement entre notes
\time 2/2 
s1 \bar ""        % pause (non affichée) + barre invisible
%{
   modifie une fois le texte qui suit d'une paire de nombre séparés par un point : "delta horizontal" (négatif : vers la gauche) et d'un "delta vertical" (négatif vers le bas).
   L’unité utilisée est l’espace de portée. Pour ne pas bouger le texte : \override TextScript #'extra-offset = #'(-0.0 . 0.0)
%}
\once \override TextScript #'extra-offset = #'(-8.0 . 3.8)
s1-\markup {  \fontsize #-2 {ou }  \fontsize #+3 {2 } } \bar ""
c2_\markup { \column { \line { une blanche } \line { par temps } } } 
c^\markup { \halign #0.5 \fontsize #-1  {"Deux blanches dans la mesure."} } 
\bar "||" 
}


  • format du message d’erreur :
filename :lineno :columnno : message
offending input line
A line-break is inserted in the offending line to indicate the column where the error was found.
For example,
test.ly:2:19: error: not a duration: 5
  { c'4 e'
xxxxxxxxx5 g' }
  • théorie

- contextes :
LilyPond regroupe ces règles et ces fragments d’information dans des Contextes.
Certains contextes sont les voix (contexte Voice), les portées (contexte Staff), ou la partition dans son ensemble (contexte Score).
Ils sont ordonnés hiérarchiquement : ainsi un contexte Staff peut contenir plusieurs contextes Voice, et un contexte Score peut contenir plusieurs contextes Staff.

-graveurs :
Tout point qui compose une partition générée par LilyPond est produit par un graveur.
Ainsi, il y en a un qui imprime les portées, un autre les têtes de note, un autre les hampes,
un autre encore pour les ligatures, etc. LilyPond dispose de plus de 120 graveurs !
Les graveurs résident et opèrent au sein des contextes. Les graveurs tels que le Metronome_mark_engraver,
dont les effets s’appliquent à la partition dans son intégralité, opèrent au sein du contexte de plus haut niveau – le contexte Score.
Les graveurs Clef_engraver et Key_engraver seront logés dans chacun des contextes Staff ;
deux portées peuvent requérir des clefs et des armures différentes.
Les graveurs Note_heads_engraver et Stem_engraver résident dans chacun des contextes Voice, contexte du plus bas niveau.
Chaque graveur confectionne les objets spécifiquement associés à sa fonction et traite les propriétés attachées à cette fonction.
Ces propriétés, tout comme celles relatives aux contextes, peuvent être modifiées afin d’influencer le comportement du graveur
et par voie de conséquence le rendu des éléments dont il a la charge.
Les graveurs ont tous un nom composé, formé des différents mots décrivant leur fonction.
Seule l’initiale du premier mot est en majuscule, et les mots qui le composent sont joints par un caractère souligné.
Ainsi, le Staff_symbol_engraver est chargé de créer les lignes de la portée,
et le Clef_engraver détermine la hauteur de référence de la portée en dessinant le symbole de la clef.
Voici quelques-uns des graveurs les plus courants :
Accidental_engraver, Beam_engraver, Clef_engraver, Completion_heads_engraver, New_dynamic_engraver,
Forbid_line_break_engraver, Key_engraver, Metronome_mark_engraver, Note_heads_engraver, Rest_engraver,
Staff_symbol_engraver, Stem_engraver, Time_signature_engraver.

- Modification des propriétés d’un contexte :
Les contextes gèrent les différentes valeurs des nombreuses propriétés qui leur sont attachées.
Beaucoup d’entre elles sont susceptibles d’être modifiées afin d’influer sur l’interprétation de l’input
et ainsi changer l’apparence du résultat. On les modifie grâce à la commande \set, qui s’utilise ainsi : \set ContexteNommé.propriétéNommée = #valeur
où ContexteNommé est habituellement Score, Staff ou Voice. S’il n’est pas mentionné, il sera considéré comme étant Voice.
Les noms des propriétés de contexte sont composés de mots accolés sans trait d’union ni caractère souligné,
et dont seul le premier n’aura pas d’initiale en majuscule. Voici quelques exemples de celles les plus communément utilisées.

propriétéNommée Type Fonction Exemple de valeur
currentBarNumber Entier Détermine le numéro de la mesure en cours 50
instrumentName Texte Détermine le nom à afficher en début de portée "Cello I"
fontSize Réel Augmente ou diminue la taille de la fonte 2.4

(format des boléens : #t ou #f)




Brol






\relative c''
{
\sourcefileline 612
c4\snappizzicato
}



\relative c''
{
\sourcefileline 605
\mark \markup { \eyeglasses }
c4_\markup { \eyeglasses }
}



\relative c''
{
\slurDashed
c4( d e f) |
\slurDotted
g4( f e d) |
\slurHalfDashed
c4( d e f)
}



\sourcefileline 538
<<
  \new StaffGroup <<
    \new GrandStaff <<
      \new Staff {
        \set Staff.instrumentName = #"Piccolo"
        c''1
      }
      \new Staff {
        \set Staff.instrumentName = #"Flute"
        c''1
      }
    >>
    \new Staff {
      \set Staff.instrumentName = #"Bassoon"
      \clef tenor
      c'1
    }
  >>
  \new PianoStaff <<
    \set PianoStaff.instrumentName = #"Piano"
    \context Staff = "up" {
      c'1
    }
    \context Staff = "down" {
      \clef bass
      c1
    }
  >>
>>



\relative c''
{
\sourcefileline 527
\time 4/2
\override Staff.NoteHead #'style = #'altdefault
c\breve | b\breve
}

\relative c''
{
\sourcefileline 487
<c e g>8.-^ q16 q4-^
}

\relative c'
{
\sourcefileline 473
\time 3/4
\override Staff.StaffSymbol #'layer = #4
\once \override Tie #'layer = #2
b'2.~
\once \override Staff.TimeSignature #'whiteout = ##t
\once \override Staff.TimeSignature #'layer = #3
\time 5/4
b4
}



\relative c''
{
\sourcefileline 435
c4\halfopen
}

\relative c''
{
\sourcefileline 409
c4 d e f \bar "S"
g4 f e d
}

\relative c''
{
\sourcefileline 379
c4\cresc c c c\f |
c4\dim c c c\!
}


Impossible de compiler le fichier d’entrée LilyPond :

line 319 - column 1:
unknown escaped string: `\partcombine'
--------
line 319 - column 1:
string outside of text script or \lyricmode
--------
line 320 - column 19:
unknown escaped string: `\partcombineApart'
--------
line 320 - column 19:
string outside of text script or \lyricmode
--------
line 320 - column 41:
unknown escaped string: `\partcombineChordsOnce'
--------
line 320 - column 41:
string outside of text script or \lyricmode
--------
line 321 - column 19:
unknown escaped string: `\partcombineApart'
--------
line 321 - column 19:
string outside of text script or \lyricmode

\sourcefileline 214
\context MensuralStaff
{
  \clef "petrucci-c3"
  \[
    \override NoteHead #'style = #'semipetrucci
    c'\maxima
    \override NoteHead #'style = #'blackpetrucci
    a\breve
    \revert NoteHead #'style
    \override NoteHead #'ligature-flexa = ##t
    \override NoteHead #'flexa-width = #3
    g
    g'
    \override NoteHead #'flexa-width = #5
    c'
    d'
    \revert NoteHead #'style
    c'\longa
  \]
}

\sourcefileline 97
\relative c' {
  \textLengthOn
  des1^\markup {
    \woodwind-diagram #'bassoon #'((lh . (thumb-cis))
                                   (cc . (one two three five six))
                                   (rh . (f)))
    } _"bassoon"
  c1^\markup {
    \woodwind-diagram #'oboe #'((rh . (c))
                                (lh . ())
                                (cc . (one two three four five six)))
    } _"oboe"
}

\relative c''
{
\sourcefileline 86
\repeat percent 2 { c16 d }
\repeat percent 2 { c32 e }
\repeat percent 2 { c64 f }
\repeat percent 2 { c128 g' }
}

\sourcefileline 491
\relative c'' {
  \override Glissando #'(bound-details right text) = \markup { \center-align \bold down }
  \override Glissando #'(bound-details right Y) = #-4
  \override Glissando #'(bound-details right padding) = #0.0
  \override Glissando #'(bound-details left arrow) = ##t
  \override Glissando #'(bound-details left padding) = #3.0
  \override Glissando #'style = #'trill
  \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
  \override Glissando #'minimum-length = #12
  
  c1 \glissando c'
}



<<
  \new Staff \relative c' {
  c4 f <e d'>4
  <g a>8 <e a> a4 c2 <d b>4
  e2 c
}
  \new Staff \makeClusters \relative c' {
  c4 f <e d'>4
  <g a>8 <e a> a4 c2 <d b>4
  e2 c
}
>>

\relative c'' {
\partial 8 f8 |
c4_-^1 d^. f^4_2-> e^-_+ \break
c4\ff c\mf c\p c\pp
c4\< c\ff\> c c\! \break
c2^\markup { \bold espr }
a2_\markup { \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p } \break
\times 2/3 { f'8 g a }
\times 2/3 { c8 r c }
\times 2/3 { f,8 g16[ a g a] }
\times 2/3 { d4 a8 } \break
c,2 \grace { a32[ b] } c2 |
c2 \appoggiatura b16 c2 |
c2 \acciaccatura b16 c2 | \break
c2 <<c e>> | << { e2 f } { c2 <<b d>> } >> | \break
g,,8\( a b[ c b\) a] g4 \break
r16[ g \times 2/3 { r16 e'8] }
g,16( a \times 2/3 { b16 d) e }
g,8[( a \times 2/3 { b8 d) e~] } |
\times 4/5 { e32\( a, b d e } a4.\)
}

<<
\relative c'' {
\key g \major
\time 6/8
d4 b8 c4 a8 | d4 b8 g4
}
\addlyrics {
Girls and boys come | out to play,
}
>>

\new Staff = "main" {
\relative g' {
r4 g8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
\new Staff \with {
alignAboveContext = #"main"
} { f8 f c }
>>
r4 |
}
}

\new Staff \relative c' {
% Main voice
c16 d e f
%    Voice "1"     Voice "2"              Voice "3"
<< { g4 f e } \\ { r8 e4 d c8~ } >> |
<< { d2 e } \\ { c8 b16 a b8 g~ g2 } \\ { s4 b c2 } >> |
}

\new Staff \relative c' {
% Main voice
c16 d e f
<< % Bar 1
{
\voiceOneStyle
g4 f e
}
\\
{
\voiceTwoStyle
r8 e4 d c8~
}
>> |
<< % Bar 2
% Voice 1 continues
{ d2 e }
\\
% Voice 2 continues
{ c8 b16 a b8 g~ g2 }
\\
{
\voiceThreeStyle
s4 b c2
}
>> |
}

<<
  \new Staff \with { extraNatural = ##t } {
    \relative c'' {
      gis4 ges aes ais
    }
  }
  \new Staff \with { extraNatural = ##f } {
    \relative c'' {
      gis4 ges aes ais
    }
  }
>>

\sourcefileline 100
\new Staff \with {
  \consists Ambitus_engraver
}
<<
  \new Voice {
    \relative c'' {
      \voiceOne
      c4 a b g
    }
  }
  \new Voice {
    \relative c' {
      \voiceTwo
      c4 e d f
    }
  }
>>
  • en utilisant le mode raw :

  \new PianoStaff <<
    \set PianoStaff.instrumentName = #"abcde"
    \context Staff = "up" {
      c'1
    }
    \context Staff = "down" {
      \clef bass
      c1
    }
  >>
\score {
  \new Score { c1 }
  \midi { }
}
\header { tagline = ##f}



\version "2.14.2"
\header { }
\score {
  { c' g}
  \layout { }
  \midi { }
}
utilisation en mode raw de \book, de 2 \score et de 2 blocs \markup.

\version "2.14.2"
\book {
  \score {
    \new Staff {
      \new Voice {
        \relative c'' {
          c4 a b c
        } %end relative
      } %end voice
    } %end staff
    \header { 
     title = "le titre"
     composer = "Anonyme"
     piece = "Romance"
    } %end header
    \layout { }
    \midi { }
  } %end score 1
  \markup {
   …texte après score 1…
  } %end markup 1
  \score {
    \relative c' { 
    c4 d e f | g a b c |
    } %end relative
   \header { piece = "Menuet" }
    \layout { }
    \midi { }

  } %end score 2
  \markup {
   …texte après score 2…
  } %end markup 2
} %end book


Utilisation possible de la notation franco-italienne, grâce à \language "italiano" (en mode raw)


\score {
<<
\language "italiano"
\relative do' { do re mib fad sol la sib do }
>>
\layout { }
\midi {  }
}