Diferencia entre revisiones de «Ayuda/Lilypond»
Sin resumen de edición |
Sin resumen de edición |
||
(No se muestran 24 ediciones intermedias del mismo usuario) | |||
Línea 1: | Línea 1: | ||
== Tutoriales de Lilypond == | |||
* http://lilypond.org/doc/v2.18/Documentation/learning-big-page.es.html | |||
= Primeros pasos = | = 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 <nowiki><score> código lilypond </score></nowiki> | |||
Por ejemplo el código: | |||
<nowiki><score>{\key c \minor {g8 g aes aes g g c' c' ees' ees' aes' aes'4 g' }}</score> </nowiki> | |||
resultará en: | |||
El choclo (Ángel Villoldo) | |||
<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) | |||
Por ejemplo el | 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)
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:
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
Alteraciones
Para escribir sostenido (#) al nombre de altura se le agrega el sufijo is
<score>{c' dis' e' fis' gis' a' b'} </score>
resulta:
Para escribir bemol (b) al nombre de altura se le agrega el sufijo es
<score>{c' d' ees' f' ges' aes' bes'} </score>
resulta:
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> |
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} }
Para unir sistemas utilizamos << >>
<< {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" }
Títulos
Nuestro ejemplo terminado
Representando el ámbito
Para hacer una canción
Diganle, (Luis Alberto Spinetta)
Usar variables
Plantilla para himnos
Software asociado
online
software
repositorios y páginas asociadas
- http://lsr.di.unimi.it/LSR/ . Sitio para buscar ejemplos