Ayuda/Lilypond

From musiki
Jump to navigation Jump to search

Tutoriales de Lilypond

Primeros pasos

  • lilypond es un lenguaje de códigos mark-up para la escritura de partituras musicales.
  • para escribir código lilypond en musiki deberás contener el código dentro de <score> código lilypond </score>

Por ejemplo el código:

<score>{\key c \minor {g8 g aes aes g g c' c' ees' ees' aes' aes'4 g' }}</score> 

resultará en:

El choclo (Ángel Villoldo)

{\key c \minor {g8 g aes aes g g c' c' ees' ees' aes' aes'4 g' }}

vamos a repasar los códigos lilypond que aparecen en este ejemplo:


Las alturas

Las alturas en lilypond siempre se escriben en minúscula utilizando la nomencleatura norteamericana:

a b c d e f g = la si do re mi fa sol

entonces

<score>{c d e f g a b} </score> 

devuelve:

{c d e f g a b}

para ubicar la octava se utiliza el apóstrofe ' que es igual al do central (Do4)

si escribimos

<score>{c' d' e' f' g' a' b'} </score>

obtenemos

{c' d' e' f' g' a' b'}

Alteraciones

Para escribir sostenido (#) al nombre de altura se le agrega el sufijo is

<score>{c' dis' e' fis' gis' a' b'} </score>

resulta:

{c' dis' e' fis' gis' a' b'}

Para escribir bemol (b) al nombre de altura se le agrega el sufijo es

<score>{c' d' ees' f' ges' aes' bes'} </score>

resulta:

{c' d' ees' f' ges' aes' bes'}

Armadura de Clave

Para poner una armadura de clave usamos el código \key seguido de la nota en cifrado americano seguido del modo , \major para mayor y \minor para menor.

algunas armaduras de clave

<score> {\key c \minor} </score> <score> {\key aes \major} </score> <score> {\key e \major} </score> <score> {\key deses \major} </score>


 {\key c \minor}
 {\key aes \major}
 {\key e \major}
 {\key deses \major}

Estructura

El código lilypond puede organizarse en estructuras desde muy simples (ej. voz solista) hasta muy complejas (ej. orquesta sinfónica con ossias). Vamos a recorrer las estructuras teniendo en cuenta que la regla es siempre utilizar la menor cantidad de código segun la necesidad.

expresión

toda expresión se encierra en llaves {} y también pueden anidarse:

{ c'4 c' c' c'} % una expresión
expresiones anidadas
{
   {c'4}
   {d4 d d d}
}
 {
    {c'4}
    {d'4}
 }

Para unir sistemas utilizamos << >>

 <<   {c'4}
   {d'4 }>>
 {
 <<   {c'4}
    {d'4 }>>
 }

Pentagrama y grupos

Cuando necesitamos agrupar instrumentos o voces utilizamos la definición de pentagrama (\new Staff, si no la escribimos lilypond lo hace por defecto ahorrando caracteres de código). Para agrupar pentagramas utlizamos \new GrandStaff y encerramos los pentagramas entre << >>

contextos

lilypond se organiza a partir de contextos y grabadores(engravers). La mayoría de las veces lilypond se encarga de agregar el código necesario que no necesitamos explicitar en el código de entrada. Esto se llama interpretación por defecto y permite comprimir el lenguaje a las necesidades. Cuando precisamos redifinir mas variables, necesitamos definir los contextos, conjunto de reglas y porciones de información que organizan los niveles y operadores del código musical de forma jerárquica. Por ejemplo , mientras una alteración solo afecta al pentagrama, pero una linea de compás alterará a todo el sistema.

La jerarquia de contextos es la siguient:


\score {    %toda la partitura
   \Staff {     %cada uno de los sistemas
       \Voice {   %cada voz dentro del sistema
                 }
           }
         }


en realidad cuando escribimos una expresión simple sin handlers por ejemplo

{ c d e f }

lilypond va a escribir

\book {
\header { }
 \score {
   \new Staff {
     \new Voice {
      { c d e f }
     }
   }
   \layout { }
 }
 \paper { }

}

que son todos los contexts necesarios para renderear la partitura en modo gráfico.

Los contextos pueden variar cuando llamamos a determinadas plantillas que lilypond establece por defecto, ya preparadas para determinados usos standard:

en \Staff:

\StaffGroup: añade un corchete a la izquierda formando un grupo con lineas de compás conectadas entre subsistemas.

\ChoirStaff: idem StaffGroup pero no se conectan las lineas de compás.

\GrandStaff: se utiliza para piano, los dos sistemas se enlazan con una llave.

\PianoStaff: idem GrandStaff con el nombre del instrumento a la izquierda.

\RhytmicStaff: imprime ritmos, se ignoran las alturas, una sola linea.

\TabStaff: tablaturas de guitarra.

\DrumStaff: tipografías de instrumentos de percusión. Contiene el contexto \DrumVoice

\VaticanaStaff

División automática de notas

Las notas largas se pueden convertir automáticamente en notas ligadas. Se hace mediante la sustitución del Note_heads_engraver por el Completion_heads_engraver. De forma similar, los silencios largos que sobrepasan líneas de compás se dividen automáticamente sustituyendo el grabador Rest_engraver con el grabador Completion_rest_engraver. En el ejemplo siguiente, las notas y los silencios que atraviesan la barra de compás se dividen, y además las notas se unen mediante una ligadura.

\new Voice \with {
 \remove "Note_heads_engraver"
 \consists "Completion_heads_engraver"
 \remove "Rest_engraver"
 \consists "Completion_rest_engraver"
}

No se pudo compilar el archivo de entrada LilyPond:

line 7 - column 2:
syntax error, unexpected end of input

Títulos



\header {
 title=  "Título"
 composer = "Compositor"}
\new Staff {
c'
}

Nuestro ejemplo terminado

{\key c \minor{
\time 2/4 
\tempo "Tango" 4=120
% este es un comentario, hasta aquí la información de cabecera. ahora la melodia:

r8 g8 g-- aes-- aes-^ g-- g-- c'-- c'-- ees'-- ees'-- aes'-_ aes'4-! (g') 
}
}

Representando el ámbito



global = {
  \key c \major
  \time 4/4
}
stemOn = { \override Staff.Stem #'transparent = ##f }
stemOff = { \override Staff.Stem #'transparent = ##t }

\layout {
\context{
\Voice
\consists "Ambitus_engraver"
\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/2)
}
}

sopranonotes = \relative c' { c4\glissando c'' \stemOff < \parenthesize e >}
mezzonotes = \relative c' { a4\glissando g'' \stemOff < \parenthesize a >}
altonotes = \relative c' {g4\glissando e'' \stemOff< \parenthesize g >}
tenornotes = { \clef "G_8" c4\glissando c'' \stemOff< \parenthesize e'' >}
baritononotes = \relative c' {  \clef "bass" g,\glissando c' \stemOff < \parenthesize e >}
bajonotes =  { \clef "bass" e,4 \glissando c' \stemOff < \parenthesize e' >}

\score {
  \new ChoirStaff <<
    \new Staff <<
      \set Staff.instrumentName = #"Soprano"
      \new Voice = "Soprano" <<
        \global
        \sopranonotes
            >>
         >>

 \new Staff <<
      \set Staff.instrumentName = #"Mezzosoprano"
      \new Voice = "Mezzo" <<
        \global
        \mezzonotes
            >>
         >>

\new Staff <<
      \set Staff.instrumentName = #"Alto"
      \new Voice = "Alto" <<
        \global
        \altonotes
            >>
         >>
\new Staff <<
       \set Staff.instrumentName = #"Tenor"
      \new Voice = "Tenor" <<
        \global
        \tenornotes
            >>
         >>
 \new Staff <<
      \set Staff.instrumentName = #"Barítono"
      \new Voice = "Barítono" <<
        \global
        \baritononotes
            >>
         >>
\new Staff <<
       \set Staff.instrumentName = #"Bajo"
      \new Voice = "Bajo" <<
        \global
        \bajonotes
            >>
         >>
>>
}

Para hacer una canción

Diganle, (Luis Alberto Spinetta)



<<
 \relative c'' {
  \key d \minor
     \time 4/4
      r2 d8 cis b a g4 f8 a a2 
      r2 c8 bes a g g4 f2 r4
      r4 d'8 d d d d e e4 a,16 a c8~ c2
      r2 d8 c bes a \tuplet 3/2 {g4 f8} r2
      \tuplet 3/2{r8 d f} f4 \tuplet 3/2{r8 g g} g4. f8
}
  \addlyrics {
   Hoy des -- pués de_un lar -- go po -- lo,
   to -- do se_ha -- brá i -- do
   y_es que ten -- go que sa -- lir a vo -- lar__
   ha -- cia_un nue -- vo cie -- lo
   y me voy de mi cuer -- po
  }
>>

Usar variables


tresilloA = \tuplet 3/2 { c,8 e g }
compasA = { \tresilloA \tresilloA \tresilloA \tresilloA }

\relative c'' {
 \compasA \compasA
}

Plantilla para himnos

Timeline = {
  \time 4/4
  \tempo 4=96
  \partial 2
  s2 | s1 | s2 \breathe s2 | s1 | s2 \bar "||" \break
  s2 | s1 | s2 \breathe s2 | s1 | s2 \bar "||"
}

SopranoMusic = \relative g' {
  g4 g | g g g g | g g g g | g g g g | g2
  g4 g | g g g g | g g g g | g g g g | g2
}

AltoMusic = \relative c' {
  d4 d | d d d d | d d d d | d d d d | d2
  d4 d | d d d d | d d d d | d d d d | d2
}

TenorMusic = \relative a {
  b4 b | b b b b | b b b b | b b b b | b2
  b4 b | b b b b | b b b b | b b b b | b2
}

BassMusic =  \relative g {
  g4 g | g g g g | g g g g | g g g g | g2
  g4 g | g g g g | g g g g | g g g g | g2
}

global = {
 \key g \major
}

\score {  % Start score
  <<
    \new PianoStaff <<  % Start pianostaff
      \new Staff <<  % Start Staff = RH
        \global
        \clef "treble"
        \new Voice = "Soprano" <<  % Start Voice = "Soprano"
          \Timeline
          \voiceOne
          \SopranoMusic
        >>  % End Voice = "Soprano"
        \new Voice = "Alto" <<  % Start Voice = "Alto"
          \Timeline
          \voiceTwo
          \AltoMusic
        >>  % End Voice = "Alto"
      >>  % End Staff = RH
      \new Staff <<  % Start Staff = LH
        \global
        \clef "bass"
        \new Voice = "Tenor" <<  % Start Voice = "Tenor"
          \Timeline
          \voiceOne
          \TenorMusic
        >>  % End Voice = "Tenor"
        \new Voice = "Bass" <<  % Start Voice = "Bass"
          \Timeline
          \voiceTwo
          \BassMusic
        >>  % End Voice = "Bass"
      >>  % End Staff = LH
    >>  % End pianostaff
  >>
}  % End score

\markup {
  \fill-line {
    ""
    {
      \column {
        \left-align {
          "This is line one of the first verse"
          "This is line two of the same"
          "And here's line three of the first verse"
          "And the last line of the same"
        }
      }
    }
    ""
  }
}

Software asociado

online

software

repositorios y páginas asociadas