Vocal music
Vocal music
Afegir un àmbit per veu
Es pot afegir un àmbit per cada veu. En aquest cas, l’àmbit s’ha
de desplaçar manualment per evitar col·lisions.
\new Staff <<
\new Voice \with {
\consists "Ambitus_engraver"
} \relative c'' {
\override Ambitus.X-offset = #2.0
\voiceOne
c4 a d e
f1
}
\new Voice \with {
\consists "Ambitus_engraver"
} \relative c' {
\voiceTwo
es4 f g as
b1
}
>>
![[image of music]](../7b/lily-ff25afd6.png)
Afegir indicadors als pentagrames que es divideixen després d’un salt de línia
Aquest fragment de codi defineix les ordres
\splitStaffBarLine
, convUpStaffBarLine
i
convDownStaffBarLine
, que afegeix una fletxa doble a
l’últim compàs d’un pentagrama, indicant que les diverses veus
disposaran d’un pentagrama propi a la línia següent.
#(define-markup-command (arrow-at-angle layout props angle-deg length fill)
(number? number? boolean?)
(let* (
(PI-OVER-180 (/ (atan 1 1) 34))
(degrees->radians (lambda (degrees) (* degrees PI-OVER-180)))
(angle-rad (degrees->radians angle-deg))
(target-x (* length (cos angle-rad)))
(target-y (* length (sin angle-rad))))
(interpret-markup layout props
(markup
#:translate (cons (/ target-x 2) (/ target-y 2))
#:rotate angle-deg
#:translate (cons (/ length -2) 0)
#:concat (#:draw-line (cons length 0)
#:arrow-head X RIGHT fill)))))
splitStaffBarLineMarkup = \markup \with-dimensions #'(0 . 0) #'(0 . 0) {
\combine
\arrow-at-angle #45 #(sqrt 8) ##t
\arrow-at-angle #-45 #(sqrt 8) ##t
}
splitStaffBarLine = {
\once \override Staff.BarLine.stencil =
#(lambda (grob)
(ly:stencil-combine-at-edge
(ly:bar-line::print grob)
X RIGHT
(grob-interpret-markup grob splitStaffBarLineMarkup)
0))
\break
}
convDownStaffBarLine = {
\once \override Staff.BarLine.stencil =
#(lambda (grob)
(ly:stencil-combine-at-edge
(ly:bar-line::print grob)
X RIGHT
(grob-interpret-markup grob #{
\markup\with-dimensions #'(0 . 0) #'(0 . 0) {
\translate #'(0 . -.13)\arrow-at-angle #-45 #(sqrt 8) ##t
}#})
0))
\break
}
convUpStaffBarLine = {
\once \override Staff.BarLine.stencil =
#(lambda (grob)
(ly:stencil-combine-at-edge
(ly:bar-line::print grob)
X RIGHT
(grob-interpret-markup grob #{
\markup\with-dimensions #'(0 . 0) #'(0 . 0) {
\translate #'(0 . .14)\arrow-at-angle #45 #(sqrt 8) ##t
}#})
0))
\break
}
\paper {
ragged-right = ##t
short-indent = 10\mm
}
separateSopranos = {
\set Staff.instrumentName = "AI AII"
\set Staff.shortInstrumentName = "AI AII"
\splitStaffBarLine
\change Staff = "up"
}
convSopranos = {
\convDownStaffBarLine
\change Staff = "shared"
\set Staff.instrumentName = "S A"
\set Staff.shortInstrumentName = "S A"
}
sI = {
\voiceOne
\repeat unfold 4 f''2
\separateSopranos
\repeat unfold 4 g''2
\convSopranos
\repeat unfold 4 c''2
}
sII = {
s1*2
\voiceTwo
\change Staff = "up"
\repeat unfold 4 d''2
}
aI = {
\voiceTwo
\repeat unfold 4 a'2
\voiceOne
\repeat unfold 4 b'2
\convUpStaffBarLine
\voiceTwo
\repeat unfold 4 g'2
}
aII = {
s1*2
\voiceTwo
\repeat unfold 4 g'2
}
ten = {
\voiceOne
\repeat unfold 4 c'2
\repeat unfold 4 d'2
\repeat unfold 4 c'2
}
bas = {
\voiceTwo
\repeat unfold 4 f2
\repeat unfold 4 g2
\repeat unfold 4 c2
}
\score {
<<
\new ChoirStaff <<
\new Staff = up \with {
instrumentName = "SI SII"
shortInstrumentName = "SI SII"
} {
s1*4
}
\new Staff = shared \with {
instrumentName = "S A"
shortInstrumentName = "S A"
} <<
\new Voice = sopI \sI
\new Voice = sopII \sII
\new Voice = altI \aI
\new Voice = altII \aII
>>
\new Lyrics \with {
alignBelowContext = up
}
\lyricsto sopII { e f g h }
\new Lyrics \lyricsto altI { a b c d e f g h i j k l }
\new Staff = men \with {
instrumentName = "T B"
shortInstrumentName = "T B"
} <<
\clef F
\new Voice = ten \ten
\new Voice = bas \bas
>>
\new Lyrics \lyricsto bas { a b c d e f g h i j k l }
>>
>>
\layout {
\context {
\Staff \RemoveEmptyStaves
\override VerticalAxisGroup.remove-first = ##t
}
}
}
![[image of music]](../63/lily-428238cd.png)
Afegir notes guia orquestrals a una partitura vocal
Aquest exemple mostra una forma de simplificar l’addició de
moltes notes guia orquestrals a la reducció de piano a una partitura vocal.
La funció musical \cueWhile
agafa quatre arguments: la
música de la qual es pren la citació, com ve definida per
\addQuote
, el nom a inserir abans de la notes guia, i
després #UP
o #DOWN
per especificar \voiceOne
amb el nom a sobre del pentagrama o bé \voiceTwo
amb el nom
a sota del pentagrama, i finalment la música de piano amb la qual les
notes guia han d’aparèixer en paral·lel. El nom de l’instrument
citat es posiciona a l’esquerra de les notes guia. Es poden
citar molts passatges com a guia, però no es poden superposar en
el temps entre ells.
cueWhile =
#(define-music-function
(instrument name dir music)
(string? string? ly:dir? ly:music?)
#{
\cueDuring $instrument #dir {
\once \override TextScript.self-alignment-X = #RIGHT
\once \override TextScript.direction = $dir
<>-\markup { \tiny #name }
$music
}
#})
flute = \relative c'' {
\transposition c'
s4 s4 e g
}
\addQuote "flute" { \flute }
clarinet = \relative c' {
\transposition bes
fis4 d d c
}
\addQuote "clarinet" { \clarinet }
singer = \relative c'' { c4. g8 g4 bes4 }
words = \lyricmode { here's the lyr -- ics }
pianoRH = \relative c'' {
\transposition c'
\cueWhile "clarinet" "Clar." #DOWN { c4. g8 }
\cueWhile "flute" "Flute" #UP { g4 bes4 }
}
pianoLH = \relative c { c4 <c' e> e, <g c> }
\score {
<<
\new Staff {
\new Voice = "singer" {
\singer
}
}
\new Lyrics {
\lyricsto "singer"
\words
}
\new PianoStaff <<
\new Staff {
\new Voice {
\pianoRH
}
}
\new Staff {
\clef "bass"
\pianoLH
}
>>
>>
}
![[image of music]](../68/lily-de80d39f.png)
Ajustament de l’espaiat vertical de la lletra
Aquest fragment de codi mostra com situar la línia de base de la
lletra més a prop del pentagrama.
% Default layout:
<<
\new Staff \new Voice = melody \relative c' {
c4 d e f
g4 f e d
c1
}
\new Lyrics \lyricsto melody { aa aa aa aa aa aa aa aa aa }
\new Staff {
\new Voice = melody \relative c' {
c4 d e f
g4 f e d
c1
}
}
% Reducing the minimum space below the staff and above the lyrics:
\new Lyrics \with {
\override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
#'((basic-distance . 1))
}
\lyricsto melody { aa aa aa aa aa aa aa aa aa }
>>
![[image of music]](../64/lily-a6eed433.png)
Alineació de síl·labes amb melisma
De forma predeterminada, les síl·labes de la lletra que comencen
un melisma s’alineen a l’esquerra sobre la seva nota corresponent.
Es pot alterar l’alineació usant la propietat
lyricMelismaAlignment
.
\score {
<<
\new Staff {
\relative c''
\new Voice = "vocal" {
c d~^\markup default d e
c d~^\markup "right aligned" d e
c d~^\markup "center aligned" d e
c d~^\markup "reset to default" d e
}
}
\new Lyrics \lyricsto "vocal" {
word word word
\set lyricMelismaAlignment = #RIGHT
word word word
\set lyricMelismaAlignment = #CENTER
word word word
\unset lyricMelismaAlignment
word word word
}
>>
}
![[image of music]](../fe/lily-83edcab6.png)
Ambitus after key signature
By default, ambitus are positioned at the left of the clef. The
\ambitusAfter
function allows for changing this placement. Syntax is
\ambitusAfter grob-interface
(see
Interfaces
Graphical Object Interfaces for a list of possible values for grob-interface
).
A common use case is printing the ambitus between key signature and time
signature.
\new Staff \with {
\consists Ambitus_engraver
} \relative {
\ambitusAfter key-signature
\key d \major
es'8 g bes cis d2
}
![[image of music]](../e9/lily-7a1d72d3.png)
Àmbits amb diverses veus
L’addició del gravador Ambitus_engraver
al context de
Staff
crea un sol àmbit per pentagrama, fins i tot en
el cas de pentagrames amb diverses veus.
\new Staff \with {
\consists "Ambitus_engraver"
}
<<
\new Voice \relative c'' {
\voiceOne
c4 a d e
f1
}
\new Voice \relative c' {
\voiceTwo
es4 f g as
b1
}
>>
![[image of music]](../a6/lily-f89ab6af.png)
Indicacions de tessitura
Les indicacions d’àmbit o tessitura indiquen rangs d’altures per
a les veus.
Les alteracions accidentals sols es mostren si no formen part de
l’armadura de tonalitat. Els objectes gràfics AmbitusNoteHead
també tenen línies addicionals.
\layout {
\context {
\Voice
\consists "Ambitus_engraver"
}
}
<<
\new Staff {
\relative c' {
\time 2/4
c4 f'
}
}
\new Staff {
\relative c' {
\time 2/4
\key d \major
cis4 as'
}
}
>>
![[image of music]](../1c/lily-96c07046.png)
Plantilla per a notació de música antiga (transcripció moderna de cant gregorià)
Aquest exemple mostra com fer una transcripció moderna de cant
gregorià. El cant gregorià no té compàs ni pliques; utilitza
sols caps de nota de blanca i de negra, i unes marques especials
que indiquen silencis de diferents longituds.
\include "gregorian.ly"
chant = \relative c' {
\set Score.timing = ##f
f4 a2 \divisioMinima
g4 b a2 f2 \divisioMaior
g4( f) f( g) a2 \finalis
}
verba = \lyricmode {
Lo -- rem ip -- sum do -- lor sit a -- met
}
\score {
\new Staff <<
\new Voice = "melody" \chant
\new Lyrics = "one" \lyricsto melody \verba
>>
\layout {
\context {
\Staff
\remove "Time_signature_engraver"
\remove "Bar_engraver"
\hide Stem
}
\context {
\Voice
\override Stem.length = #0
}
\context {
\Score
barAlways = ##t
}
}
}
![[image of music]](../64/lily-de24d776.png)
Plantilla de salm del cant anglicà
Aquesta plantilla mostra una forma de preparar un càntic salmòdic
anglicà. També mostra com es poden afegir estrofes addicionals
com text independent per sota de la música. Les dues estrofes
es codifiquen en estils diferents per il·lustrar més possibilitats.
SopranoMusic = \relative g' {
g1 | c2 b | a1 | \bar "||"
a1 | d2 c | c b | c1 | \bar "||"
}
AltoMusic = \relative c' {
e1 | g2 g | f1 |
f1 | f2 e | d d | e1 |
}
TenorMusic = \relative a {
c1 | c2 c | c1 |
d1 | g,2 g | g g | g1 |
}
BassMusic = \relative c {
c1 | e2 e | f1 |
d1 | b2 c | g' g | c,1 |
}
global = {
\time 2/2
}
dot = \markup {
\raise #0.7 \musicglyph "dots.dot"
}
tick = \markup {
\raise #1 \fontsize #-5 \musicglyph "scripts.rvarcomma"
}
% Use markup to center the chant on the page
\markup {
\fill-line {
\score { % centered
<<
\new ChoirStaff <<
\new Staff <<
\global
\clef "treble"
\new Voice = "Soprano" <<
\voiceOne
\SopranoMusic
>>
\new Voice = "Alto" <<
\voiceTwo
\AltoMusic
>>
>>
\new Staff <<
\clef "bass"
\global
\new Voice = "Tenor" <<
\voiceOne
\TenorMusic
>>
\new Voice = "Bass" <<
\voiceTwo
\BassMusic
>>
>>
>>
>>
\layout {
\context {
\Score
\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/2)
}
\context {
\Staff
\remove "Time_signature_engraver"
}
}
} % End score
}
} % End markup
\markup {
\fill-line {
\column {
\left-align {
\null \null \null
\line {
\fontsize #5 O
\fontsize #3 come
let us \bold sing | unto \dot the | Lord : let
}
\line {
us heartily
\concat { re \bold joice }
in the | strength of | our
}
\line {
sal | vation.
}
\null
\line {
\hspace #2.5 8. Today if ye will hear his voice *
}
\line {
\concat { \bold hard en }
\tick not your \tick hearts : as in the pro-
}
\line {
vocation * and as in the \bold day of tempt- \tick
}
\line {
-ation \tick in the \tick wilderness.
}
}
}
}
}
![[image of music]](../21/lily-7c85d971.png)
Arranging separate lyrics on a single line
Sometimes you may want to put lyrics for different performers on a
single line: where there is rapidly alternating text, for
example. This snippet shows how this can be done with
\override VerticalAxisGroup.nonstaff-nonstaff-spacing.minimum-distance = ##f
.
\layout {
\context {
\Lyrics
\override VerticalAxisGroup.nonstaff-nonstaff-spacing.minimum-distance = ##f
}
}
aliceSings = \markup { \smallCaps "Alice" }
eveSings = \markup { \smallCaps "Eve" }
<<
\new Staff <<
\new Voice = "alice" {
f'4^\aliceSings g' r2 |
s1 |
f'4^\aliceSings g' r2 |
s1 | \break
% ...
\voiceOne
s2 a'8^\aliceSings a' b'4 |
\oneVoice
g'1
}
\new Voice = "eve" {
s1 |
a'2^\eveSings g' |
s1 |
a'2^\eveSings g'
% ...
\voiceTwo
f'4^\eveSings a'8 g' f'4 e' |
\oneVoice
s1
}
>>
\new Lyrics \lyricsto "alice" {
may -- be
sec -- ond
% ...
Shut up, you fool!
}
\new Lyrics \lyricsto "eve" {
that the
words are
% ...
…and then I was like–
}
>>
![[image of music]](../59/lily-ccb92354.png)
Modificar el tipus de lletra per a cada estrofa
Es poden canviar els tipus de lletra de forma independent per a cada
estrofa, inclosa la font que s’usa per imprimir el número d’estrofa.
%{
You may have to install additional fonts.
Red Hat Fedora
dejavu-fonts-all
Debian GNU/Linux, Ubuntu
fonts-dejavu-core
fonts-dejavu-extra
%}
\relative c'' {
\time 3/4
g2 e4
a2 f4
g2.
}
\addlyrics {
\set stanza = #"1. "
Hi, my name is Bert.
}
\addlyrics {
\override StanzaNumber.font-name = #"DejaVu Sans"
\set stanza = #"2. "
\override LyricText.font-family = #'typewriter
Oh, ché -- ri, je t'aime
}
![[image of music]](../b8/lily-15d41485.png)
Notació de responsos o salms
Aquest tipus de notació s’utilitza per als cants salmòdics, en les
quals les estrofes no sempre tenen la mateixa longitud.
stemOff = \hide Staff.Stem
stemOn = \undo \stemOff
\score {
\new Staff \with { \remove "Time_signature_engraver" }
{
\key g \minor
\cadenzaOn
\stemOff a'\breve bes'4 g'4
\stemOn a'2 \bar "||"
\stemOff a'\breve g'4 a'4
\stemOn f'2 \bar "||"
\stemOff a'\breve^\markup { \italic flexe }
\stemOn g'2 \bar "||"
}
}
![[image of music]](../d6/lily-d92e75de.png)
Forçar la visibilitat dels guions separadors de síl·labes
Si el LilyPond considera que no hi ha lloc suficient per a un
guionet separador de síl·labes, l’ometrà. Es pot sobreescriure
aquest comportament amb la propietat minimum-distance
de
LyricHyphen
.
\relative c'' {
c32 c c c
c32 c c c
c32 c c c
c32 c c c
}
\addlyrics {
syl -- lab word word
\override LyricHyphen.minimum-distance = #1.0
syl -- lab word word
\override LyricHyphen.minimum-distance = #2.0
syl -- lab word word
\revert LyricHyphen.minimum-distance
syl -- lab word word
}
![[image of music]](../09/lily-fd5f099d.png)
Donar format a síl·labes de la lletra
És possible usar el mode de marcatge per donar format a síl·labes
individualment dins de la lletra.
mel = \relative c'' { c4 c c c }
lyr = \lyricmode {
Lyrics \markup { \italic can } \markup { \with-color #red contain }
\markup { \fontsize #8 \bold Markup! }
}
<<
\new Voice = melody \mel
\new Lyrics \lyricsto melody \lyr
>>
![[image of music]](../35/lily-8ba0205c.png)
Com posar lligadures entre síl·labes de la lletra
Es pot fer separant les síl·labes mitjançant símbols de titlle corb.
\lyrics {
wa~o~a
}
![[image of music]](../9b/lily-37b1aa7a.png)
Plantilla per a himnes
Aquest fragment de codi mostra una forma de preparar un himne
quan cada línia comença amb un compàs parcial. També mostra com
afegir els versos com a text independent a sota de la música.
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"
}
}
}
""
}
}
\paper { % Start paper block
indent = 0 % don't indent first system
line-width = 130 % shorten line length to suit music
} % End paper block
![[image of music]](../85/lily-15135afe.png)
Alineació de la lletra
L’alineació horitzontal de la lletra es pot ajustar sobreescrivint
la propietat self-alignment-X
de l’objecte LyricText
.
#-1
és esquerra, #0
és centrat #1
es dreta;
tanmateix, podem usar també #LEFT
, #CENTER
i
#RIGHT
.
\layout { ragged-right = ##f }
\relative c'' {
c1
c1
c1
}
\addlyrics {
\once \override LyricText.self-alignment-X = #LEFT
"This is left-aligned"
\once \override LyricText.self-alignment-X = #CENTER
"This is centered"
\once \override LyricText.self-alignment-X = #1
"This is right-aligned"
}
![[image of music]](../79/lily-66ab81a4.png)
Marking notes of spoken parts with a cross on the stem (Sprechstimme)
This example shows how to put crosses on stems. Mark the beginning of
a spoken section with the \speakOn
keyword, and end it with the
\speakOff
keyword.
speakOn = {
\override Stem.stencil =
#(lambda (grob)
(let* ((x-parent (ly:grob-parent grob X))
(is-rest? (ly:grob? (ly:grob-object x-parent 'rest))))
(if is-rest?
empty-stencil
(ly:stencil-combine-at-edge
(ly:stem::print grob)
Y
(- (ly:grob-property grob 'direction))
(grob-interpret-markup grob
(markup #:center-align #:fontsize -4
#:musicglyph "noteheads.s2cross"))
-2.3))))
}
speakOff = {
\revert Stem.stencil
\revert Flag.stencil
}
\score {
\new Staff {
\relative c'' {
a4 b a c
\speakOn
g4 f r g
b4 r d e
\speakOff
c4 a g f
}
}
}
![[image of music]](../19/lily-285dc9cf.png)
Aconseguir l’espaiat de la lletra de la versió 2.12 en versions més recent
El motor d’espaiat vertical va canviar a la versió 2.14. Això pot
fer que s’alteri l’espaiat de la lletra de les cançons. És
possible fixar propietats per als contextos Lyric
i
Staff
de forma que el motor d’espaiat es comporti com ho
feia a la versió 2.12.
global = {
\key d \major
\time 3/4
}
sopMusic = \relative c' {
% VERSE ONE
fis4 fis fis | \break
fis4. e8 e4
}
altoMusic = \relative c' {
% VERSE ONE
d4 d d |
d4. b8 b4 |
}
tenorMusic = \relative c' {
a4 a a |
b4. g8 g4 |
}
bassMusic = \relative c {
d4 d d |
g,4. g8 g4 |
}
words = \lyricmode {
Great is Thy faith -- ful -- ness,
}
\score {
\new ChoirStaff <<
\new Lyrics = sopranos
\new Staff = women <<
\new Voice = "sopranos" {
\voiceOne
\global \sopMusic
}
\new Voice = "altos" {
\voiceTwo
\global \altoMusic
}
>>
\new Lyrics = "altos"
\new Lyrics = "tenors"
\new Staff = men <<
\clef bass
\new Voice = "tenors" {
\voiceOne
\global \tenorMusic
}
\new Voice = "basses" {
\voiceTwo \global \bassMusic
}
>>
\new Lyrics = basses
\context Lyrics = sopranos \lyricsto sopranos \words
\context Lyrics = altos \lyricsto altos \words
\context Lyrics = tenors \lyricsto tenors \words
\context Lyrics = basses \lyricsto basses \words
>>
\layout {
\context {
\Lyrics
\override VerticalAxisGroup.staff-affinity = ##f
\override VerticalAxisGroup.staff-staff-spacing =
#'((basic-distance . 0)
(minimum-distance . 2)
(padding . 2))
}
\context {
\Staff
\override VerticalAxisGroup.staff-staff-spacing =
#'((basic-distance . 0)
(minimum-distance . 2)
(padding . 2))
}
}
}
![[image of music]](../c5/lily-6104da5c.png)
Plantilla d’orquestra amb cor i piano
Aquesta plantilla mostra l’ús de contextos StaffGroup
i
GrandStaff
niuats per sub-agrupar instruments del mateix
tipus, i una forma d’usar \transpose
de manera que unes
variables continguin la música per a instruments transpositors en
afinació de concert.
#(set-global-staff-size 17)
\paper {
indent = 3.0\cm % add space for instrumentName
short-indent = 1.5\cm % add less space for shortInstrumentName
}
fluteMusic = \relative c' { \key g \major g'1 b }
% Pitches as written on a manuscript for Clarinet in A
% are transposed to concert pitch.
clarinetMusic = \transpose c' a
\relative c'' { \key bes \major bes1 d }
trumpetMusic = \relative c { \key g \major g''1 b }
% Key signature is often omitted for horns
hornMusic = \transpose c' f
\relative c { d'1 fis }
percussionMusic = \relative c { \key g \major g1 b }
sopranoMusic = \relative c'' { \key g \major g'1 b }
sopranoLyrics = \lyricmode { Lyr -- ics }
altoIMusic = \relative c' { \key g \major g'1 b }
altoIIMusic = \relative c' { \key g \major g'1 b }
altoILyrics = \sopranoLyrics
altoIILyrics = \lyricmode { Ah -- ah }
tenorMusic = \relative c' { \clef "treble_8" \key g \major g1 b }
tenorLyrics = \sopranoLyrics
pianoRHMusic = \relative c { \key g \major g''1 b }
pianoLHMusic = \relative c { \clef bass \key g \major g1 b }
violinIMusic = \relative c' { \key g \major g'1 b }
violinIIMusic = \relative c' { \key g \major g'1 b }
violaMusic = \relative c { \clef alto \key g \major g'1 b }
celloMusic = \relative c { \clef bass \key g \major g1 b }
bassMusic = \relative c { \clef "bass_8" \key g \major g,1 b }
\score {
<<
\new StaffGroup = "StaffGroup_woodwinds" <<
\new Staff = "Staff_flute" \with { instrumentName = "Flute" }
\fluteMusic
\new Staff = "Staff_clarinet" \with {
instrumentName = \markup { \concat { "Clarinet in B" \flat } }
}
% Declare that written Middle C in the music
% to follow sounds a concert B flat, for
% output using sounded pitches such as MIDI.
%\transposition bes
% Print music for a B-flat clarinet
\transpose bes c' \clarinetMusic
>>
\new StaffGroup = "StaffGroup_brass" <<
\new Staff = "Staff_hornI" \with { instrumentName = "Horn in F" }
% \transposition f
\transpose f c' \hornMusic
\new Staff = "Staff_trumpet" \with { instrumentName = "Trumpet in C" }
\trumpetMusic
>>
\new RhythmicStaff = "RhythmicStaff_percussion"
\with { instrumentName = "Percussion" }
<<
\percussionMusic
>>
\new PianoStaff \with { instrumentName = "Piano" }
<<
\new Staff { \pianoRHMusic }
\new Staff { \pianoLHMusic }
>>
\new ChoirStaff = "ChoirStaff_choir" <<
\new Staff = "Staff_soprano" \with { instrumentName = "Soprano" }
\new Voice = "soprano"
\sopranoMusic
\new Lyrics \lyricsto "soprano" { \sopranoLyrics }
\new GrandStaff = "GrandStaff_altos"
\with { \accepts Lyrics } <<
\new Staff = "Staff_altoI" \with { instrumentName = "Alto I" }
\new Voice = "altoI"
\altoIMusic
\new Lyrics \lyricsto "altoI" { \altoILyrics }
\new Staff = "Staff_altoII" \with { instrumentName = "Alto II" }
\new Voice = "altoII"
\altoIIMusic
\new Lyrics \lyricsto "altoII" { \altoIILyrics }
>>
\new Staff = "Staff_tenor" \with { instrumentName = "Tenor" }
\new Voice = "tenor"
\tenorMusic
\new Lyrics \lyricsto "tenor" { \tenorLyrics }
>>
\new StaffGroup = "StaffGroup_strings" <<
\new GrandStaff = "GrandStaff_violins" <<
\new Staff = "Staff_violinI" \with { instrumentName = "Violin I" }
\violinIMusic
\new Staff = "Staff_violinII" \with { instrumentName = "Violin II" }
\violinIIMusic
>>
\new Staff = "Staff_viola" \with { instrumentName = "Viola" }
\violaMusic
\new Staff = "Staff_cello" \with { instrumentName = "Cello" }
\celloMusic
\new Staff = "Staff_bass" \with { instrumentName = "Double Bass" }
\bassMusic
>>
>>
\layout { }
}
![[image of music]](../e8/lily-5075d091.png)
Plantilla de piano amb melodia i lletra
Vet aquí el típic format d’una cançó: un pentagrama amb la melodia i
la lletra, i el acompanyament de piano per sota.
melody = \relative c'' {
\clef treble
\key c \major
\time 4/4
a b c d
}
text = \lyricmode {
Aaa Bee Cee Dee
}
upper = \relative c'' {
\clef treble
\key c \major
\time 4/4
a4 b c d
}
lower = \relative c {
\clef bass
\key c \major
\time 4/4
a2 c
}
\score {
<<
\new Voice = "mel" { \autoBeamOff \melody }
\new Lyrics \lyricsto mel \text
\new PianoStaff <<
\new Staff = "upper" \upper
\new Staff = "lower" \lower
>>
>>
\layout {
\context { \Staff \RemoveEmptyStaves }
}
\midi { }
}
![[image of music]](../79/lily-f94b1786.png)
Posar lletra dins del pentagrama
Es poden moure les línies de lletra verticalment per imprimir-les dins
del pentagrama. Les lletres es mouen amb \override
LyricText.extra-offset = #'(0 . dy)
i hi ha instruccions per
moure les línies d’extensió i els guions. El desplaçament necessari
s’estableix mitjançant un procés d’assaig i error.
<<
\new Staff <<
\new Voice = "voc" \relative c' { \stemDown a bes c8 b c4 }
>>
\new Lyrics \with {
\override LyricText.extra-offset = #'(0 . 8.6)
\override LyricExtender.extra-offset = #'(0 . 8.6)
\override LyricHyphen.extra-offset = #'(0 . 8.6)
} \lyricsto "voc" { La la -- la __ _ la }
>>
![[image of music]](../dd/lily-2d7557f7.png)
Plantilla de cor SATB, a quatre pentagrames
Plantilla de cor SATB (en quatre pentagrames)
global = {
\key c \major
\time 4/4
\dynamicUp
}
sopranonotes = \relative c'' {
c2 \p \< d c d \f
}
sopranowords = \lyricmode { do do do do }
altonotes = \relative c'' {
c2\p d c d
}
altowords = \lyricmode { re re re re }
tenornotes = {
\clef "G_8"
c2\mp d c d
}
tenorwords = \lyricmode { mi mi mi mi }
bassnotes = {
\clef bass
c2\mf d c d
}
basswords = \lyricmode { mi mi mi mi }
\score {
\new ChoirStaff <<
\new Staff <<
\new Voice = "soprano" <<
\global
\sopranonotes
>>
\new Lyrics \lyricsto "soprano" \sopranowords
>>
\new Staff <<
\new Voice = "alto" <<
\global
\altonotes
>>
\new Lyrics \lyricsto "alto" \altowords
>>
\new Staff <<
\new Voice = "tenor" <<
\global
\tenornotes
>>
\new Lyrics \lyricsto "tenor" \tenorwords
>>
\new Staff <<
\new Voice = "bass" <<
\global
\bassnotes
>>
\new Lyrics \lyricsto "bass" \basswords
>>
>>
}
![[image of music]](../62/lily-ca86a573.png)
Plantilla de pentagrama únic amb música, lletra i acords
Aquesta plantilla facilita la preparació d’una cançó amb melodia,
lletra i acords.
melody = \relative c' {
\clef treble
\key c \major
\time 4/4
a4 b c d
}
text = \lyricmode {
Aaa Bee Cee Dee
}
harmonies = \chordmode {
a2 c
}
\score {
<<
\new ChordNames {
\set chordChanges = ##t
\harmonies
}
\new Voice = "one" { \autoBeamOff \melody }
\new Lyrics \lyricsto "one" \text
>>
\layout { }
\midi { }
}
![[image of music]](../27/lily-fb320a7f.png)
Plantilla per a un pentagrama únic amb música, lletra, acords i trastos
A continuació presentem un exemple de plantilla per a un full guia
d’acords amb melodia, lletra, acords i diagrama de trastos.
verseI = \lyricmode {
\set stanza = #"1."
This is the first verse
}
verseII = \lyricmode {
\set stanza = #"2."
This is the second verse.
}
theChords = \chordmode {
% insert chords for chordnames and fretboards here
c2 g4 c
}
staffMelody = \relative c' {
\key c \major
\clef treble
% Type notes for melody here
c4 d8 e f4 g
\bar "|."
}
\score {
<<
\context ChordNames { \theChords }
\context FretBoards { \theChords }
\new Staff {
\context Voice = "voiceMelody" { \staffMelody }
}
\new Lyrics = "lyricsI" {
\lyricsto "voiceMelody" \verseI
}
\new Lyrics = "lyricsII" {
\lyricsto "voiceMelody" \verseII
}
>>
\layout { }
\midi { }
}
![[image of music]](../98/lily-56ce2502.png)
Plantilla de pentagrama únic amb notes i lletra
Aquesta petita plantilla mostra una melodia senzilla amb
lletra. Talleu-la i pegueu-la, escriviu les notes i després la
lletra. Aquest exemple desactiva el barrat automàtic, que és
el més freqüent a les parts vocals antigues. Per usar el barrat
automàtic modifiqueu o marqueu com un comentari la línia
corresponent.
melody = \relative c' {
\clef treble
\key c \major
\time 4/4
a4 b c d
}
text = \lyricmode {
Aaa Bee Cee Dee
}
\score{
<<
\new Voice = "one" {
\autoBeamOff
\melody
}
\new Lyrics \lyricsto "one" \text
>>
\layout { }
\midi { }
}
![[image of music]](../56/lily-0abc7ced.png)
Silencis de separació en mode de lletra (2)
Tot i que no es poden usar els silencis de separació s
dins
de \lyricmode
(s’agafen com una “s”, literal, no com un
espai), sí hi ha disponibles les comtes dobles (""
) i la
barra baixa (_
). Així com per exemple:
<<
\relative c'' { a4 b c d }
\new Lyrics \lyricmode { a4 "" _ gap }
>>
![[image of music]](../40/lily-eda4424f.png)
Silencis de separació en mode de lletra
La sintaxi s
per als silencis de desplaçament sols està
disponible als modes de nota i d’acord. En altres situacions,
per exemple en escriure la lletra de les cançons, es recomana
usar l’ordre \skip
.
<<
\relative c'' { a1 | a }
\new Lyrics \lyricmode { \skip 1 bla1 }
>>
![[image of music]](../f5/lily-e39444b8.png)
Ús de arpeggioBracket per fer més visible un divisi
El corxet d’arpegis arpeggioBracket
es pot usar per indicar
la divisió de veus quan no hi ha pliques que puguin oferir aquesta
informació. Se sol trobar a la múśica coral.
\include "english.ly"
\score {
\relative c'' {
\key a \major
\time 2/2
<<
\new Voice = "upper"
<<
{ \voiceOne \arpeggioBracket
a2( b2
<b d>1\arpeggio)
<cs e>\arpeggio ~
<cs e>4
}
\addlyrics { \lyricmode { A -- men. } }
>>
\new Voice = "lower"
{ \voiceTwo
a1 ~
a
a ~
a4 \bar "|."
}
>>
}
\layout { ragged-right = ##t }
}
![[image of music]](../62/lily-d97e44da.png)
Using tags to produce mensural and modern music from the same source
By using tags, it’s possible to use the same music to produce both
mensural and modern music. In this snippet, a function menrest
is introduced, allowing mensural rests to be pitched as in the
original, but with modern rests in the standard staff position. Tags
are used to produce different types of bar line at the end of the
music, but tags can also be used where other differences are needed:
for example using “whole measure rests” (R1, R\breve etc.) in modern
music, but normal rests (r1, r\breve, etc.) in the mensural
version. Note that converting mensural music to its modern equivalent
is usually referred to as transcription
.
menrest = #(define-music-function (note)
(ly:music?)
#{
\tag #'mens $(make-music 'RestEvent note)
\tag #'mod $(make-music 'RestEvent note 'pitch '())
#})
MensStyle = {
\autoBeamOff
\override NoteHead.style = #'petrucci
\override Score.BarNumber.transparent = ##t
\override Stem.neutral-direction = #up
}
finalis = {
\once \override BreathingSign.stencil = #ly:breathing-sign::finalis
\once \override BreathingSign.Y-offset = #0
\once \override BreathingSign.minimum-X-extent = #'(-1.0 . 0.0)
\once \override BreathingSign.minimum-Y-extent = #'(-2.5 . 2.5)
\breathe
}
Music = \relative c'' {
\set Score.tempoHideNote = ##t
\key f \major
\time 4/4
g1 d'2 \menrest bes4 bes2 a2 r4 g4 fis2.
\tag #'mens { \finalis }
\tag #'mod { \bar "||" }
}
MenLyr = \lyricmode { So farre, deere life, deare life }
ModLyr = \lyricmode { So far, dear life, dear life }
\score {
\keepWithTag #'mens {
<<
\new MensuralStaff
{
\new MensuralVoice = Cantus
\clef "mensural-c1" \MensStyle \Music
}
\new Lyrics \lyricsto Cantus \MenLyr
>>
}
}
\score {
\keepWithTag #'mod {
\new ChoirStaff <<
\new Staff
{
\new Voice = Sop \with {
\remove "Note_heads_engraver"
\consists "Completion_heads_engraver"
\remove "Rest_engraver"
\consists "Completion_rest_engraver" }
{
\shiftDurations #1 #0 { \autoBeamOff \Music }
}
}
\new Lyrics \lyricsto Sop \ModLyr
>>
}
}
![[image of music]](../e7/lily-bf3bcd02.png)
Alineació vertical de la lletra i els compassos d’ossia
Aquest fragment de codi mostra l’ús de les propietats de context
alignBelowContext
i alignAboveContext
per a
controlar la posició de la lletra i els compassos d’ossia.
\paper {
ragged-right = ##t
}
\relative c' <<
\new Staff = "1" { c4 c s2 }
\new Staff = "2" { c4 c s2 }
\new Staff = "3" { c4 c s2 }
{ \skip 2
<<
\lyrics {
\set alignBelowContext = #"1"
lyrics4 below
}
\new Staff \with {
alignAboveContext = #"3"
fontSize = #-2
\override StaffSymbol.staff-space = #(magstep -2)
\remove "Time_signature_engraver"
} {
\tuplet 6/4 {
\override TextScript.padding = #3
c8[^"ossia above" d e d e f]
}
}
>>
}
>>
![[image of music]](../77/lily-f9438051.png)
Lletra comuna centrada verticalment
A una peça vocal en la qual hi ha diverses línies de lletra (dues, quatre
o més) i hi ha lletres comunes a totes les veus en algun punt, es
pot fer que les lletres comunes se centrin verticalment com es
mostra a l’exemple següent:
dropLyrics = {
\override LyricText.extra-offset = #'(0 . -4.5)
\override LyricHyphen.extra-offset = #'(0 . -4.5)
\override LyricExtender.extra-offset = #'(0 . -4.5)
\override StanzaNumber.extra-offset = #'(0 . -4.5)
}
raiseLyrics = {
\revert LyricText.extra-offset
\revert LyricHyphen.extra-offset
\revert LyricExtender.extra-offset
\revert StanzaNumber.extra-offset
}
skipFour = \repeat unfold 4 { \skip 8 }
lyricsA = \lyricmode {
The first verse has
\dropLyrics
\set stanza = #" All:"
the com -- mon __ words
\raiseLyrics
used in all four.
}
lyricsB = \lyricmode { In stan -- za two, \skipFour al -- so ap -- pear. }
lyricsC = \lyricmode { By the third verse, \skipFour are get -- ting dull. }
lyricsD = \lyricmode { Last stan -- za, and \skipFour get used once more. }
melody = \relative c' {
c4 d e f |
g f e8( e f) d |
c4 e d c |
}
\score {
<<
\new Voice = m \melody
\new Lyrics \lyricsto m \lyricsA
\new Lyrics \lyricsto m \lyricsB
\new Lyrics \lyricsto m \lyricsC
\new Lyrics \lyricsto m \lyricsD
>>
}
![[image of music]](../67/lily-4c71e960.png)
Plantilla de conjunt vocal amb reducció de piano automàtica
Aquesta plantilla afegeix una reducció de piano automàtica a la
partitura vocal SATB estàndard que es va mostrar a la
“Plantilla de conjunt vocal”. Això presenta un dels punts
forts del LilyPond: podem usar una definició de música més d’un
cop. Si es fa qualsevol canvi a les notes de la part vocal
(diguem tenorMusic
), aleshores els canvis s’aplicaran també
a la reducció de piano.
\paper {
top-system-spacing.basic-distance = #10
score-system-spacing.basic-distance = #20
system-system-spacing.basic-distance = #20
last-bottom-spacing.basic-distance = #10
}
global = {
\key c \major
\time 4/4
}
sopMusic = \relative {
c''4 c c8[( b)] c4
}
sopWords = \lyricmode {
hi hi hi hi
}
altoMusic = \relative {
e'4 f d e
}
altoWords =\lyricmode {
ha ha ha ha
}
tenorMusic = \relative {
g4 a f g
}
tenorWords = \lyricmode {
hu hu hu hu
}
bassMusic = \relative {
c4 c g c
}
bassWords = \lyricmode {
ho ho ho ho
}
\score {
<<
\new ChoirStaff <<
\new Lyrics = "sopranos" \with {
% This is needed for lyrics above a staff
\override VerticalAxisGroup.staff-affinity = #DOWN
}
\new Staff = "women" <<
\new Voice = "sopranos" { \voiceOne << \global \sopMusic >> }
\new Voice = "altos" { \voiceTwo << \global \altoMusic >> }
>>
\new Lyrics = "altos"
\new Lyrics = "tenors" \with {
% This is needed for lyrics above a staff
\override VerticalAxisGroup.staff-affinity = #DOWN
}
\new Staff = "men" <<
\clef bass
\new Voice = "tenors" { \voiceOne << \global \tenorMusic >> }
\new Voice = "basses" { \voiceTwo << \global \bassMusic >> }
>>
\new Lyrics = "basses"
\context Lyrics = "sopranos" \lyricsto "sopranos" \sopWords
\context Lyrics = "altos" \lyricsto "altos" \altoWords
\context Lyrics = "tenors" \lyricsto "tenors" \tenorWords
\context Lyrics = "basses" \lyricsto "basses" \bassWords
>>
\new PianoStaff <<
\new Staff <<
\set Staff.printPartCombineTexts = ##f
\partCombine
<< \global \sopMusic >>
<< \global \altoMusic >>
>>
\new Staff <<
\clef bass
\set Staff.printPartCombineTexts = ##f
\partCombine
<< \global \tenorMusic >>
<< \global \bassMusic >>
>>
>>
>>
}
![[image of music]](../55/lily-10e56886.png)
Plantilla per a conjunt amb lletres alineades a sobre i a sota dels pentagrames
Aquesta plantilla és, bàsicament, la mateixa que la senzilla plantilla
“Conjunt vocal”, excepte que aquí totes les línies de lletra es
col·loquen utilitzant alignAboveContext
i alignBelowContext
.
global = {
\key c \major
\time 4/4
}
sopMusic = \relative c'' {
c4 c c8[( b)] c4
}
sopWords = \lyricmode {
hi hi hi hi
}
altoMusic = \relative c' {
e4 f d e
}
altoWords = \lyricmode {
ha ha ha ha
}
tenorMusic = \relative c' {
g4 a f g
}
tenorWords = \lyricmode {
hu hu hu hu
}
bassMusic = \relative c {
c4 c g c
}
bassWords = \lyricmode {
ho ho ho ho
}
\score {
\new ChoirStaff <<
\new Staff = "women" <<
\new Voice = "sopranos" { \voiceOne << \global \sopMusic >> }
\new Voice = "altos" { \voiceTwo << \global \altoMusic >> }
>>
\new Lyrics \with { alignAboveContext = #"women" }
\lyricsto "sopranos" \sopWords
\new Lyrics \with { alignBelowContext = #"women" }
\lyricsto "altos" \altoWords
% we could remove the line about this with the line below, since
% we want the alto lyrics to be below the alto Voice anyway.
% \new Lyrics \lyricsto "altos" \altoWords
\new Staff = "men" <<
\clef bass
\new Voice = "tenors" { \voiceOne << \global \tenorMusic >> }
\new Voice = "basses" { \voiceTwo << \global \bassMusic >> }
>>
\new Lyrics \with { alignAboveContext = #"men" }
\lyricsto "tenors" \tenorWords
\new Lyrics \with { alignBelowContext = #"men" }
\lyricsto "basses" \bassWords
% again, we could replace the line above this with the line below.
% \new Lyrics \lyricsto "basses" \bassWords
>>
}
![[image of music]](../66/lily-e881dcf8.png)
Estrofa per a solista i tornada a dues veus
Aquesta plantilla crea una partitura que comença amb una estrofa
per a solista i continua amb una tornada a dues veus. També mostra
l’ús de silencis de separació dins de la variable \global
per definit canvis de compàs (i altres exemple que són comuns a
totes les parts) al llarg de tota la partitura.
global = {
\key g \major
% verse
\time 3/4
s2.*2
\break
% refrain
\time 2/4
s2*2
\bar "|."
}
SoloNotes = \relative g' {
\clef "treble"
% verse
g4 g g |
b4 b b |
% refrain
R2*2 |
}
SoloLyrics = \lyricmode {
One two three |
four five six |
}
SopranoNotes = \relative c'' {
\clef "treble"
% verse
R2.*2 |
% refrain
c4 c |
g4 g |
}
SopranoLyrics = \lyricmode {
la la |
la la |
}
BassNotes = \relative c {
\clef "bass"
% verse
R2.*2 |
% refrain
c4 e |
d4 d |
}
BassLyrics = \lyricmode {
dum dum |
dum dum |
}
\score {
<<
\new Voice = "SoloVoice" << \global \SoloNotes >>
\new Lyrics \lyricsto "SoloVoice" \SoloLyrics
\new ChoirStaff <<
\new Voice = "SopranoVoice" << \global \SopranoNotes >>
\new Lyrics \lyricsto "SopranoVoice" \SopranoLyrics
\new Voice = "BassVoice" << \global \BassNotes >>
\new Lyrics \lyricsto "BassVoice" \BassLyrics
>>
>>
\layout {
ragged-right = ##t
\context { \Staff
% these lines prevent empty staves from being printed
\RemoveEmptyStaves
\override VerticalAxisGroup.remove-first = ##t
}
}
}
![[image of music]](../3e/lily-28a9f990.png)
Plantilla de conjunt vocal
Vet aquí una partitura vocal estàndard per a quatre veus SATB. Amb
grups més grans, sol ser útil incloure una secció que aparegui a
totes les parts. Per exemple, el compàs i l’armadura gairebé sempre
son els mateixos per a totes. Com a la plantilla “Himne”, les
quatre veus es reagrupen en sols dos pentagrames.
\paper {
top-system-spacing.basic-distance = #10
score-system-spacing.basic-distance = #20
system-system-spacing.basic-distance = #20
last-bottom-spacing.basic-distance = #10
}
global = {
\key c \major
\time 4/4
}
sopMusic = \relative {
c''4 c c8[( b)] c4
}
sopWords = \lyricmode {
hi hi hi hi
}
altoMusic = \relative {
e'4 f d e
}
altoWords = \lyricmode {
ha ha ha ha
}
tenorMusic = \relative {
g4 a f g
}
tenorWords = \lyricmode {
hu hu hu hu
}
bassMusic = \relative {
c4 c g c
}
bassWords = \lyricmode {
ho ho ho ho
}
\score {
\new ChoirStaff <<
\new Lyrics = "sopranos" \with {
% this is needed for lyrics above a staff
\override VerticalAxisGroup.staff-affinity = #DOWN
}
\new Staff = "women" <<
\new Voice = "sopranos" {
\voiceOne
<< \global \sopMusic >>
}
\new Voice = "altos" {
\voiceTwo
<< \global \altoMusic >>
}
>>
\new Lyrics = "altos"
\new Lyrics = "tenors" \with {
% this is needed for lyrics above a staff
\override VerticalAxisGroup.staff-affinity = #DOWN
}
\new Staff = "men" <<
\clef bass
\new Voice = "tenors" {
\voiceOne
<< \global \tenorMusic >>
}
\new Voice = "basses" {
\voiceTwo << \global \bassMusic >>
}
>>
\new Lyrics = "basses"
\context Lyrics = "sopranos" \lyricsto "sopranos" \sopWords
\context Lyrics = "altos" \lyricsto "altos" \altoWords
\context Lyrics = "tenors" \lyricsto "tenors" \tenorWords
\context Lyrics = "basses" \lyricsto "basses" \bassWords
>>
}
![[image of music]](../6b/lily-7ce8c9f0.png)