Diferencia entre revisiones de «Ayuda/Lilypond»

De musiki
Sin resumen de edición
Sin resumen de edición
 
(No se muestran 22 ediciones intermedias del mismo usuario)
Línea 5: Línea 5:
= Primeros pasos =
= Primeros pasos =


# lilypond es un lenguaje de códigos mark-up para la escritura de partituras musicales.  
* 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 <nowiki><score> código lilypond </score></nowiki>
* para escribir código lilypond en '''musiki''' deberás contener el código dentro de <nowiki><score> código lilypond </score></nowiki>


Por ejemplo el código:
Por ejemplo el código:


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


resultará en:
resultará en:
Línea 16: Línea 16:
El choclo (Ángel Villoldo)
El choclo (Ángel Villoldo)


<score>{\key c \minor {g8 g aes aes g g c c e e aes aes4 g4 }} </score>
<score>{\key c \minor {g8 g aes aes g g c' c' ees' ees' aes' aes'4 g' }}</score>
 
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
 
<nowiki><score>{c d e f g a b} </score></nowiki>
 
devuelve:
 
<score>{c d e f g a b} </score>
 
para ubicar la octava se utiliza el apóstrofe ' que es igual al do central (Do4)
 
si escribimos
 
<nowiki><score>{c' d' e' f' g' a' b'} </score></nowiki>
 
obtenemos
 
<score>{c' d' e' f' g' a' b'} </score>
 
== Alteraciones ==
 
Para escribir sostenido (#) al nombre de altura se le agrega el sufijo '''is'''
 
<nowiki><score>{c' dis' e' fis' gis' a' b'} </score></nowiki>
 
resulta:
 
<score>{c' dis' e' fis' gis' a' b'} </score>
 
Para escribir bemol (b) al nombre de altura se le agrega el sufijo '''es'''
 
<nowiki><score>{c' d' ees' f' ges' aes' bes'} </score></nowiki>
 
resulta:
 
<score>{c' d' ees' f' ges' aes' bes'}  </score>
 
== 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
 
{|
|-
| <nowiki><score> {\key c \minor} </score></nowiki> || <nowiki><score> {\key aes \major} </score></nowiki>  ||  <nowiki><score> {\key e \major} </score></nowiki>  ||  <nowiki><score> {\key deses \major}</nowiki> </score>
|}
 
 
{|
|-
| <score> {\key c \minor} </score> || <score> {\key aes \major} </score>  ||  <score> {\key e \major} </score>  ||  <score> {\key deses \major} </score>
|}
 
= 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}
}
 
<score> {
    {c'4}
    {d'4}
}</score>
 
Para unir sistemas utilizamos << >>
 
  <<  {c'4}
    {d'4 }>>
 
<score> {
<<  {c'4}
    {d'4 }>>
}</score>
 
== 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"
}
 
<score raw="1">
\new Voice \with {
  \remove "Note_heads_engraver"
  \consists "Completion_heads_engraver"
  \remove "Rest_engraver"
  \consists "Completion_rest_engraver"
}
</score>
 
== Títulos ==
 
<score>
 
\header {
title=  "Título"
composer = "Compositor"}
\new Staff {
c'
}
 
 
</score>
 
== Nuestro ejemplo terminado ==
 
<score >{\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')
}
} </score>
 
== Representando el ámbito ==
 
<score raw="1">
 
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
            >>
        >>
>>
}
</score>
 
= Para hacer una canción =
 
 
'''Diganle, (Luis Alberto Spinetta)'''
 
<score>
 
<<
\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
  }
>>
</score>
 
=  Usar variables =
 
<score raw="1">
tresilloA = \tuplet 3/2 { c,8 e g }
compasA = { \tresilloA \tresilloA \tresilloA \tresilloA }
 
\relative c'' {
\compasA \compasA
}
</score>
 
= Plantilla para himnos =
 
<score raw="1" >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"
        }
      }
    }
    ""
  }
}
</score>
== Software asociado ==
 
=== online ===
* http://lilybin.com/
 
=== software ===
*http://www.denemo.org/
*http://www.frescobaldi.org/
 
=== repositorios y páginas asociadas ===
* http://lsr.di.unimi.it/LSR/ .  Sitio para buscar ejemplos
[[Category:Ayuda]]

Revisión actual - 10:57 17 jun 2019

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)

No se pudo obtener la versión de LilyPond:

/bin/bash: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond: Permission denied

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:

No se pudo ejecutar LilyPond: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond no es un archivo ejecutable. Asegúrate de que $wgScoreLilyPond esté definido correctamente.

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

No se pudo ejecutar LilyPond: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond no es un archivo ejecutable. Asegúrate de que $wgScoreLilyPond esté definido correctamente.

Alteraciones

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

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

resulta:

No se pudo ejecutar LilyPond: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond no es un archivo ejecutable. Asegúrate de que $wgScoreLilyPond esté definido correctamente.

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

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

resulta:

No se pudo ejecutar LilyPond: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond no es un archivo ejecutable. Asegúrate de que $wgScoreLilyPond esté definido correctamente.

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>


No se pudo ejecutar LilyPond: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond no es un archivo ejecutable. Asegúrate de que $wgScoreLilyPond esté definido correctamente.
No se pudo ejecutar LilyPond: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond no es un archivo ejecutable. Asegúrate de que $wgScoreLilyPond esté definido correctamente.
No se pudo ejecutar LilyPond: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond no es un archivo ejecutable. Asegúrate de que $wgScoreLilyPond esté definido correctamente.
No se pudo ejecutar LilyPond: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond no es un archivo ejecutable. Asegúrate de que $wgScoreLilyPond esté definido correctamente.

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}
}
No se pudo ejecutar LilyPond: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond no es un archivo ejecutable. Asegúrate de que $wgScoreLilyPond esté definido correctamente.

Para unir sistemas utilizamos << >>

 <<   {c'4}
   {d'4 }>>
No se pudo ejecutar LilyPond: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond no es un archivo ejecutable. Asegúrate de que $wgScoreLilyPond esté definido correctamente.

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 ejecutar LilyPond: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond no es un archivo ejecutable. Asegúrate de que $wgScoreLilyPond esté definido correctamente.

Títulos

No se pudo ejecutar LilyPond: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond no es un archivo ejecutable. Asegúrate de que $wgScoreLilyPond esté definido correctamente.

Nuestro ejemplo terminado

No se pudo ejecutar LilyPond: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond no es un archivo ejecutable. Asegúrate de que $wgScoreLilyPond esté definido correctamente.

Representando el ámbito

No se pudo ejecutar LilyPond: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond no es un archivo ejecutable. Asegúrate de que $wgScoreLilyPond esté definido correctamente.

Para hacer una canción

Diganle, (Luis Alberto Spinetta)

No se pudo ejecutar LilyPond: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond no es un archivo ejecutable. Asegúrate de que $wgScoreLilyPond esté definido correctamente.

Usar variables

No se pudo ejecutar LilyPond: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond no es un archivo ejecutable. Asegúrate de que $wgScoreLilyPond esté definido correctamente.

Plantilla para himnos

No se pudo ejecutar LilyPond: /home/u256367478/domains/musiki.org.ar/lilypond-2.24.3/bin/lilypond no es un archivo ejecutable. Asegúrate de que $wgScoreLilyPond esté definido correctamente.

Software asociado

online

software

repositorios y páginas asociadas