| [Part superior][Continguts][Índex][ ? ] |
LilyPond — Referència de la notació
|
Aquest manual ofereix una referència per a tota la notació musical que es pot produir amb el LilyPond versió 2.19.82. S’entén que el lector està familiaritzat amb el material que hi ha a Manual d’aprenentatge. |
| 1. Notació musical | Notació que es fa servir a gairebé tots els projectes. | |
| 2. Notació especialitzada | Notació que sols s’usa per a fins específics. | |
| 3. Entrada i sortida generals | Informació general sobre l’entrada i la sortida del LilyPond. | |
| 4. Spacing issues | Presentació del resultat en paper. | |
| 5. Changing defaults | Ajust fi del resultat | |
Annexos | ||
|---|---|---|
| A. Notation manual tables | Taules i quadres | |
| B. Cheat sheet | Resum de la sintaxi del LilyPond | |
| C. GNU Free Documentation License | Llicència d’aquest document | |
| D. Índex d’ordres del LilyPond | ||
| E. Índex del LilyPond | ||
|
Per a més informació sobre la forma en la qual aquest manual es relaciona amb la resta de la documentació, o per llegir aquest manual en altres formats, consulteu Manuals. Si us falta algun manual, trobareu tota la documentació a http://lilypond.org/. |
| [ << Top ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Top ] | [ Amunt : Top ] | [ Altures > ] | ||
1. Notació musical
Aquest capítol explica com crear notació musical.
| 1.1 Altures | Escriptura i presentació de les duracions de les notes. | |
| 1.2 Duracions | Escriptura i presentació de les duracions de les notes. | |
| 1.3 Expressions | Addició d’expressió a les notes. | |
| 1.4 Repeticions | Repeticions de música. | |
| 1.5 Notes simultànies | Més d’una nota a l’hora. | |
| 1.6 Notació dels pentagrames | Impressió dels pentagrames. | |
| 1.7 Anotacions editorials | Notació especial per augmentar la llegibilitat. | |
| 1.8 Text | Addició de text a les partitures. |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Notació musical ] | [ Amunt : Notació musical ] | [ Escriptura de notes > ] | ||
1.1 Altures
A aquesta secció es discuteix com especificar l’altura de les notes. Aquest procés es composa de tres fases: entrada, modificació i sortida.
| 1.1.1 Escriptura de notes | ||
| 1.1.2 Modificació de diverses notes a l’hora | ||
| 1.1.3 Impressió de les altures | ||
| 1.1.4 Cap de les notes |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Altures ] | [ Amunt : Altures ] | [ Escriptura d'octava absoluta > ] | ||
1.1.1 Escriptura de notes
A aquesta secció es descriu la manera d’introduir l’altura de les notes. Hi ha dues formes diferents de col·locar les notes a la seva octava corresponent: el mode absolut i el relatiu. A gairebé totes les ocasions, serà més pràctic el mode relatiu.
| Escriptura d’octava absoluta | ||
| Escriptura d’octava relativa | ||
| Alteracions accidentals | ||
| Noms de les notes en altres llengües |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Escriptura de notes ] | [ Amunt : Escriptura de notes ] | [ Escriptura d'octava relativa > ] | ||
Escriptura d’octava absoluta
El nom d’una nota s’especifica usant les lletres minúscules de
l’a a la g. Les notes els noms dels quals van des
de la c fins la b s’imprimeixen a l’octava inferior
al Do central.
{
\clef bass
c4 d e f
g4 a b c
d4 e f g
}
Es poden especificar d’altres octaves mitjançant una cometa simple
quote (') o una coma (,) .
Cada ' eleva l’altura en una octava;
cada , baixa l’altura una octava.
{
\clef treble
c'4 e' g' c''
c'4 g b c'
\clef bass
c,4 e, g, c
c,4 g,, b,, c,
}
Les marques d’octava comunes es poden escriure una sola vegada
sobre una nota de referència si es fa servir \fixed abans
de la música. A les notes dins de \fixed sols els calen
les marques d’apòstrof ' o de coma , quan
estan per sobre o per sota de l’octava de la nota de referència.
{
\fixed c' {
\clef treble
c4 e g c'
c4 g, b, c
}
\clef bass
\fixed c, {
c4 e g c'
c4 g, b, c
}
}
L’altura de les notes de l’expressió musical que segueix a
\fixed no resulta afectada per un \relative que
l’envolta, que s’estudia a continuació.
Vegeu també
Glossari musical: Pitch names.
Fragments de codi: Pitches.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Escriptura d'octava absoluta ] | [ Amunt : Escriptura de notes ] | [ Alteracions accidentals > ] | ||
Escriptura d’octava relativa
L’entrada d’octava absoluta requereix que s’especifiqui l’octava per a totes i cadascuna de les notes. En contrast amb això, el mode d’entrada d’octava relativa especifica cada octava en relació amb la nota anterior: si es canvia l’octava d’una nota això afectarà a totes les notes següents.
El mode relatiu de notes s’ha d’introduir de forma explícita usant
l’ordre \relative:
\relative altura_inicial expressió_musical
En el mode relatiu, se suposa que cada nota es troba el més a prop
possible de la nota anterior. Això significa que l’octava d’una
nota que està dins de expresión_musical es calcula
com segueix:
- Si no s’usa cap marca de canvi d’octava en una nota, la seva octava es calcula de forma que l’interval que formi amb la nota anterior sigui menor d’una quinta. Aquest interval es determina sense considerar les alteracions.
-
Es pot afegir una marca de canvi d’octava
'o,per elevar o baixar l’altura, respectivament, en una octava més en relació con l’altura calculada sense aquesta marca. -
Es poden usar diverses marques de canvi d’octava. Per exemple,
''i,,alteren l’altura en dues octaves. -
L’altura de la primera nota és relativa a
altura_inicial.altura_inicials’especifica en mode d’octava absoluta. Quines opcions tenen sentit?-
c(Do), en qualsevol octava La identificació del Do central amb
c'és quelcom força bàsica, per la qual cosa sol ser fàcil trobar octaves dec. Si la nostra música comença ambgis(un Sol sostingut) per sobre dec''', hauríem d’escriure quelcom com\relative { gis''' … }- una nota que està una o dues octaves de la primera nota
Escriure
\relative { gis''' … }fa que sigui fàcil determinar l’altura absoluta de la primera nota de dins.- cap altura d’inici explícita
La forma
\relative { gis''' … }serveix com una versió més compacta de l’opció anterior: la primera nota de dins s’escriu ella mateixa en altura absoluta (això resulta ser equivalent a escollirf(Fa) como l’altura de referència).
La documentació sol utilitzar aquesta última opció.
-
Aquí podem ver el mode relatiu en acció:
\relative {
\clef bass
c d e f
g a b c
d e f g
}
Les marques de canvi d’octava s’utilitzen per a intervals majors de la quarta:
\relative {
c'' g c f,
c' a, e'' c
}
Una sèrie de notes sense cap marca d’octava pot, malgrat tot, abastar intervals molt grans:
\relative {
c f b e
a d g c
}
Quan hi ha uns blocs \relative niuats dins d’altres, el bloc
\relative més intern comença amb la seva pròpia nota de
referència independentment del \relative exterior.
\relative {
c' d e f
\relative {
c'' d e f
}
}
\relative no té efecte sobre els blocs
\chordmode.
\new Staff {
\relative c''' {
\chordmode { c1 }
}
\chordmode { c1 }
}
\relative no es permet dins des bloques
\chordmode.
La música que està dins d’un bloc \transpose és absoluta, a
no ser que s’inclogui una ordre \relative.
\relative {
d' e
\transpose f g {
d e
\relative {
d' e
}
}
}
Si l’element anterior és un acord, la primera nota de l’acord s’utilitza per determinar la primera nota del següent acord. Dins dels acords, la següent nota sempre està en relació a l’anterior.
\relative {
c'
<c e g>
<c' e g'>
<c, e, g''>
}
Com es va explicar més a dalt, l’octava de les notes es calcula solament a partir dels seus noms, sense tenir en compte cap alteració. Per tant, un Mi doble sostingut després d’un Si s’escriurà més greu. En altres paraules, es considera a la quarta doble augmentada un interval menor que la quinta doble disminuïda, independentment del número de semitons de cada un d’ells.
\relative {
c''2 fis
c2 ges
b2 eisis
b2 feses
}
Vegeu també
Glossari musical: fifth, interval, Pitch names.
Referència de la notació: Comprovació d’octava.
Fragments de codi: Pitches.
Referència de funcionament intern: RelativeOctaveMusic.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Escriptura d'octava relativa ] | [ Amunt : Escriptura de notes ] | [ Noms de les notes en altres llengües > ] | ||
Alteracions accidentals
Nota: Les alteracions accidentals i les armadures són una
freqüent causa de confusió per als nous usuaris. Al LilyPond, els
noms de les notes específiques les altures; l’armadura i la clau
determinen de quin forma es presenten aquestes altures. Una nota
sense alteració com c significa ‘Do natural’, i sí que
l’afecten l’armadura ni la clau. Per veure més informació, consulteu
Alteracions accidentals i armadures.
S’escriu una nota sostinguda afegint is al
nom de la nota, i un bemoll afegint es.
Com és d’esperar, un doble sostingut i un
doble bemoll s’obté afegint isis o
eses. Aquesta sintaxi deriva dels noms de les notes en
holandès. Per utilitzar altres noms per a les alteracions,
consulteu Noms de les notes en altres llengües.
\relative c'' { ais1 aes aisis aeses }
Una nota natural s’introdueix com el nom de la nota, sense més; no cal cap sufix. S’imprimeix un símbol de becaire si cal per cancel·lar l’efecte d’una alteració o armadura anterior.
\relative c'' { a4 aes a2 }
Es poden escriure mig bemolls i els mig sostinguts; a continuació presentem una sèrie de DOs cada com més aguts:
\relative c'' { ceseh1 ces ceh c cih cis cisih }
Normalment les alteracions accidentals s’imprimeixen
automàticament, però també pot imprimir-les manualment. Una
alteració recordatòria es pot forçar afegint un signe de
admiració ! després de l’altura de la nota. Es pot
obtenir una alteració de precaució (o sigui, una alteració entre
parèntesi) afegint el signe de interrogació ? després
del nom de la nota.
\relative c'' { cis cis cis! cis? c c c! c? }
Les alteracions sobre notes unides per lligadura sols s’imprimeixen al començament d’un sistema:
\relative c'' {
cis1~ 1~
\break
cis
}
Fragments de codi seleccionats
Hiding accidentals on tied notes at the start of a new system
This shows how to hide accidentals on tied notes at the start of a new system.
\relative c'' {
\override Accidental.hide-tied-accidental-after-break = ##t
cis1~ cis~
\break
cis
}
Preventing extra naturals from being automatically added
In accordance with traditional typesetting rules, a natural sign is
printed before a sharp or flat if a previous double sharp or flat on
the same note is canceled. To change this behavior to contemporary
practice, set the extraNatural property to f in the
Staff context.
\relative c'' {
aeses4 aes ais a
\set Staff.extraNatural = ##f
aeses4 aes ais a
}
Vegeu també
Glossari musical: sharp, flat, double sharp, double flat, Pitch names, quarter tone.
Manual d’aprenentatge: Alteracions accidentals i armadures.
Referència de la notació: Alteracions accidentals automàtiques, Alteracions d’anotació (musica ficta), Noms de les notes en altres llengües.
Fragments de codi: Pitches.
Referència de funcionament intern: Accidental_engraver, Accidental, AccidentalCautionary, accidental-interface.
Advertiments i problemes coneguts
No hi ha estàndards reconeguts àmpliament per denotar els bemolls de tres quarts, de manera que els símbols del LilyPond no s’ajusten a cap estàndard.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Alteracions accidentals ] | [ Amunt : Escriptura de notes ] | [ Modificació de diverses notes a l'hora > ] | ||
Noms de les notes en altres llengües
Hi ha conjunts predefinits de noms de notes i les seves alteracions per a algunes llengües a part de l’anglès. La selecció de la llengua dels noms de les notes se sol fer al principi del fitxer: l’exemple següent està escrit utilitzant els noms italians de les notes:
\language "italiano"
\relative {
do' re mi sib
}
Les llengües disponibles i els noms de les notes que defineixen són els següents:
Llengua
Nom de les notes
nederlandsc d e f g a bes b
catalando re mi fa sol la sib si
deutschc d e f g a b h
englishc d e f g a bf b
espanoloespañoldo re mi fa sol la sib si
françaisdo ré/re mi fa sol la sib si
italianodo re mi fa sol la sib si
norskc d e f g a b h
portuguesdo re mi fa sol la sib si
suomic d e f g a b h
svenskac d e f g a b h
vlaamsdo re mi fa sol la sib si
A més dels noms de les notes, els sufixos de les alteracions poden també variar depenent de la llengua:
Llengua
sostingut
bemoll
doble sostingut
doble bemoll
nederlands-
is-
es-
isis-
eses
catalan-
d/-s-
b-
dd/-ss-
bb
deutsch-
is-
es-
isis-
eses
english-
s/--sharp-
f/--flat-
ss/-x/--sharpsharp-
ff/--flatflat
espanolorespañol-
s-
b-
ss/-x-
bb
français-
d-
b-
dd/-x-
bb
italiano-
d-
b-
dd-
bb
norsk-
iss/-is-
ess/-es-
ississ/-isis-
essess/-eses
portugues-
s-
b-
ss-
bb
suomi-
is-
es-
isis-
eses
svenska-
iss-
ess-
ississ-
essess
vlaams-
k-
b-
kk-
bb
A l’holandès, aes es contrau com as, però les dues
formes s’accepten al LilyPond. De forma semblant, s’accepten tant
es com ees. Això s’aplica també a
aeses / ases i a
eeses / eses. A vegades es defineixen
sols aquest noms abreujats als fitxers de llengua corresponents.
\relative c'' { a2 as e es a ases e eses }
Algunes músiques utilitzen microtons les alteracions dels quals són fraccions d’un sostingut o bemoll ‘normals’. La taula següent relaciona els noms de les notes per a les alteracions d’un quart de to en diferents llengües; aquí, els prefixos semi- i sesqui- respectivament signifiquen ‘mig’ i ‘u i mig’. Les llengües que no apareixen a aquesta taula no aporten encara noms especials per a les notes.
Llengua
semi-sostingut
semi-bemoll
sesqui-sostingut
sesqui-bemoll
nederlands-ih
-eh
-isih
-eseh
deutsch-ih
-eh
-isih
-eseh
english-qs
-qf
-tqs
-tqf
espanoloespañol-cs
-cb
-tcs
-tcb
français-sd
-sb
-dsd
-bsb
italiano-sd
-sb
-dsd
-bsb
portugues-sqt
-bqt
-stqt
-btqt
Gairebé totes les llengües presentades aquí estan associades comunament amb la música clàssica occidental, també coneguda com Període de la pràctica comuna. Malgrat això, també estan contemplades les altures i els sistemes d’afinació alternatius: vegeu Notació comuna per a músiques no occidentals.
Vegeu també
Glossari musical: Pitch names, Common Practice Period.
Referència de la notació: Notació comuna per a músiques no occidentals.
Fitxers instal·lats: ‘scm/define-note-names.scm’.
Fragments de codi: Pitches.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Noms de les notes en altres llengües ] | [ Amunt : Altures ] | [ Comprovació d'octava > ] | ||
1.1.2 Modificació de diverses notes a l’hora
Aquesta secció tracta de la manera de modificar les altures.
| Comprovació d’octava | ||
| Transposició | ||
| Inversió | ||
| Retrogradació | ||
| Transformacions modals |
Comprovació d’octava
Al mode relatiu és fàcil oblidar una marca de canvi d’octava. Les comprovacions d’octava fan més fàcil trobar aquests errors, mitjançant la presentació d’un advertiment i corregint l’octava si la nota es troba a una octava diferent de l’esperat.
Per comprovar l’octava d’una nota, especifiqueu l’octava absoluta
després del símbol =. Aquest exemple genera un
missatge d’advertiment (i corregeix l’altura) perquè la segona
nota és l’octava absoluta d'' en lloc de d' com
indica la correcció d’octava.
\relative {
c''2 d='4 d
e2 f
}
L’octava de les notes es pot comprovar també amb l’ordre
\octaveCheck altura_de_control.
altura_de_control s’especifica en mode absolut. Això
comprova que l’interval entre la nota anterior i la
altura_de_control es troba dins d’una quarta (és a
dir, el càlcul normal per al mode relatiu). Si aquesta
comprovació fracassa, s’imprimeix un missatge d’advertiment. Tot
i que la nota prèvia no es modifica, les notes posteriors estan en
relació al valor corregit.
\relative {
c''2 d
\octaveCheck c'
e2 f
}
Compareu els dos compassos següents. La primera i tercera
comprovacions de \octaveCheck fracassen, però la segona és correcta.
\relative {
c''4 f g f
c4
\octaveCheck c'
f
\octaveCheck c'
g
\octaveCheck c'
f
}
Vegeu també
Fragments de codi: Pitches.
Referència de funcionament interno: RelativeOctaveCheck.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Comprovació d'octava ] | [ Amunt : Modificació de diverses notes a l'hora ] | [ Inversió > ] | ||
Transposició
Una expressió musical es pot transportar mitjançant
\transpose. La sintaxi és
\transpose nota_origen nota_destí expressió_musical
Això significa que la expressió_musical es transporta
l’interval que hi ha entre les notes nota_origen i
nota_destí: qualsevol nota amb l’altura de
nota_origen es canvia per nota_destí i
qualsevol altra nota es transporta el mateix interval. Les dues
notes s’introdueixen en mode absolut.
Nota: La música que està dins d’un bloc
\transpose és absoluta, a no ser que s’inclogui una introducció
\relative dins del bloc.
Per exemple, agafem una peça escrita en la tonalitat de Re major. Es pot transposar cap amunt a Mi major; observeu que també l’armadura de la tonalitat es transporta automàticament.
\transpose d e {
\relative {
\key d \major
d'4 fis a d
}
}
Si una particel·la escrita en Do (afinació de concert normal) es pot tocar amb un clarinet en La (per al qual un La s’escriu com un Do, i que sona una tercera menor per sota del que està escrit), la particel·la corresponent es produeix mitjançant:
\transpose a c' {
\relative {
\key c \major
c'4 d e g
}
}
Observeu que especifiquem \key c \major de forma explícita.
Si no especifiquem cap tonalitat, les notes es transporten però no
s’imprimeix l’armadura.
\transpose distingeix entre notes enarmòniques: tant
\transpose c cis com \transpose c des transporten
un semitò cap amunt. La primera versió imprimeix sostinguts i les
notes no es mouen del seu lloc a l’escala, en canvi la segona
imprimeix bemolls de la nota següent.
music = \relative { c' d e f }
\new Staff {
\transpose c cis { \music }
\transpose c des { \music }
}
\transpose també es pot usar per introduir notes escrites
per a un instrument transpositor. Els exemples interiors mostren
com escriure altures en Do (o en afinació de concert) i
gravar-les per a un instrument transpositor, però també és
possible el cas contrari si, per exemple, tenim un conjunt de
parts instrumentals i voleu fer un guió en Do per al director. Per
exemple, en introduir música per a trompeta en Si bemoll que
comença per un Mi a la partitura (Re de concert), es pot escriure:
musicaEnSiBemol = { e4 … }
\transpose c bes, \musicaEnSiBemol
Per imprimir aquesta música en Fa (per exemple, en arreglar-la per
a trompa) podeu envolta la música existent amb un altre
\transpose:
musicaEnSiBemol = { e4 … }
\transpose f c' { \transpose c bes, \musicaEnSiBemol }
Per veure més informació sobre instruments transpositors, consulteu Transposició dels instruments.
Fragments de codi seleccionats
Transposing pitches with minimum accidentals ("Smart" transpose)
This example uses some Scheme code to enforce enharmonic modifications for notes in order to have the minimum number of accidentals. In this case, the following rules apply:
Double accidentals should be removed
B sharp -> C
E sharp -> F
C flat -> B
F flat -> E
In this manner, the most natural enharmonic notes are chosen.
#(define (naturalize-pitch p)
(let ((o (ly:pitch-octave p))
(a (* 4 (ly:pitch-alteration p)))
;; alteration, a, in quarter tone steps,
;; for historical reasons
(n (ly:pitch-notename p)))
(cond
((and (> a 1) (or (eqv? n 6) (eqv? n 2)))
(set! a (- a 2))
(set! n (+ n 1)))
((and (< a -1) (or (eqv? n 0) (eqv? n 3)))
(set! a (+ a 2))
(set! n (- n 1))))
(cond
((> a 2) (set! a (- a 4)) (set! n (+ n 1)))
((< a -2) (set! a (+ a 4)) (set! n (- n 1))))
(if (< n 0) (begin (set! o (- o 1)) (set! n (+ n 7))))
(if (> n 6) (begin (set! o (+ o 1)) (set! n (- n 7))))
(ly:make-pitch o n (/ a 4))))
#(define (naturalize music)
(let ((es (ly:music-property music 'elements))
(e (ly:music-property music 'element))
(p (ly:music-property music 'pitch)))
(if (pair? es)
(ly:music-set-property!
music 'elements
(map naturalize es)))
(if (ly:music? e)
(ly:music-set-property!
music 'element
(naturalize e)))
(if (ly:pitch? p)
(begin
(set! p (naturalize-pitch p))
(ly:music-set-property! music 'pitch p)))
music))
naturalizeMusic =
#(define-music-function (m)
(ly:music?)
(naturalize m))
music = \relative c' { c4 d e g }
\score {
\new Staff {
\transpose c ais { \music }
\naturalizeMusic \transpose c ais { \music }
\transpose c deses { \music }
\naturalizeMusic \transpose c deses { \music }
}
\layout { }
}
Vegeu també
Referència de la notació: Transposició dels instruments, Inversió, Transformacions modals, Escriptura d’octava relativa, Retrogradació.
Fragments de codi: Pitches.
Referència de funcionament intern: TransposedMusic.
Advertiments i problemes coneguts
La conversió relativa no afecta a les seccions
\transpose, \chordmode ni \relative dins del
seu argument. Per usar el mode relatiu dins de música
transportada, es pot col·locar un altre \relative dins de
\transpose.
No s’imprimeixen alteracions accidentals triples quan s’usa
\transpose. En lloc d’això, s’usarà una nota
‘equivalent enarmònicament’ (p.ex., Re bemoll en lloc de Mi
triple bemoll).
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Transposició ] | [ Amunt : Modificació de diverses notes a l'hora ] | [ Retrogradació > ] | ||
Inversió
Una expressió musical es pot invertir i transportar en una sola operació amb:
\inversion nota_pivot nota_destí expressió_musical
La expressió_musical s’inverteix interval a interval
al voltant de nota_pivot, i després es transport de
manera que nota_pivot es fa correspondre amb
nota_destí.
music = \relative { c' d e f }
\new Staff {
\music
\inversion d' d' \music
\inversion d' ees' \music
}
Nota: Els motius a invertir haurien de venir expressats en mode
absolut o convertir-se prèviament a la forma absoluta
envoltant-los en un bloc relative.
Vegeu també
Referència de la notació: Transformacions modals, Retrogradació, Transposició.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Inversió ] | [ Amunt : Modificació de diverses notes a l'hora ] | [ Transformacions modals > ] | ||
Retrogradació
Es pot revertir una expressió musical per produir la seva retrogradació:
music = \relative { c'8. ees16( fis8. a16 b8.) gis16 f8. d16 }
\new Staff {
\music
\retrograde \music
}
Advertiments i problemes coneguts
Les lligadures d’unió manuals dins de \retrograde es
trencaran i generaran advertiments. Es poden generar algunes
lligadures automàticament activant
Divisió automàtica de les notes.
Vegeu també
Referència de la notació: Inversió, Transformacions modals, Transposició.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Retrogradació ] | [ Amunt : Modificació de diverses notes a l'hora ] | [ Impressió de les altures > ] | ||
Transformacions modals
En una composició musical que està basada en una escala amb freqüència es transformen els motius de diverses formes. Un motiu es pot transportar perquè comenci en diferents llocs de l’escala o pot invertir-se al voltant d’una nota pivot de l’escala. També es pot revertir per produir una retrogradació, vegeu Retrogradació.
Nota: Qualsevol nota que no entri a la escala donada, es deixarà sense transformar.
Transposició modal
Es pot transportar un motiu dins d’una escala donada amb:
\modalTranspose nota_origen nota_destí escala motiu
Les notes del motiu es desplacen dins de la escala el nombre de graus de l’escala donats per l’interval entre nota_destí y nota_origen:
diatonicScale = \relative { c' d e f g a b }
motif = \relative { c'8 d e f g a b c }
\new Staff {
\motif
\modalTranspose c f \diatonicScale \motif
\modalTranspose c b, \diatonicScale \motif
}
Es poden especificar escales ascendents de qualsevol longitud i amb qualssevol intervals:
pentatonicScale = \relative { ges aes bes des ees }
motif = \relative { ees'8 des ges,4 <ges' bes,> <ges bes,> }
\new Staff {
\motif
\modalTranspose ges ees' \pentatonicScale \motif
}
Quan es fa servir amb una escola cromàtica, \modalTranspose
té un efecte semblant a \transpose, però amb la
possibilitat d’especificar els noms de les notes que es vulguin usar:
chromaticScale = \relative { c' cis d dis e f fis g gis a ais b }
motif = \relative { c'8 d e f g a b c }
\new Staff {
\motif
\transpose c f \motif
\modalTranspose c f \chromaticScale \motif
}
Inversió modal
Es pot invertir un motiu dins d’una escala donada al voltant d’una nota pivot donada i transportada al mateix temps en una única operaćió, amb:
\modalInversion nota-pivote nota-destino escala motivo
Les notes del motiu col·loquen al mateix nombre de graus de distància de l’escala a partir de la nota_pivot dins de l’escala, però en la direcció oposada, i el resultat es desplaça després dins de l’escala el nombre de grados de l’escala donats per l’interval entre la nota_destí i la nota_pivot.
Així doncs, per invertir senzillament al voltant d’una nota de l’escala, utilitzeu el mateix valor per a nota_pivot i nota_destí:
octatonicScale = \relative { ees' f fis gis a b c d }
motif = \relative { c'8. ees16 fis8. a16 b8. gis16 f8. d16 }
\new Staff {
\motif
\modalInversion fis' fis' \octatonicScale \motif
}
Per invertir al voltant d’una nota pivot entre dues notes de l’escala, invertiu al voltant d’una de les notes i després transporteu en un grau de l’escala. les dues notes especificades es poden interpretar com que fan una forquilla entre elles a la nota pivot:
scale = \relative { c' g' }
motive = \relative { c' c g' c, }
\new Staff {
\motive
\modalInversion c' g' \scale \motive
}
L’operació combinada d’inversió i retrogradació produeix la inversió retrògrada:
octatonicScale = \relative { ees' f fis gis a b c d }
motif = \relative { c'8. ees16 fis8. a16 b8. gis16 f8. d16 }
\new Staff {
\motif
\retrograde \modalInversion c' c' \octatonicScale \motif
}
Vegeu també
Referència de la notació: Inversió, Retrogradació, Transposició.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Transformacions modals ] | [ Amunt : Altures ] | [ Clau > ] | ||
1.1.3 Impressió de les altures
Aquesta secció tracta de com alterar la presentació de l’altura de les notes.
| Clau | ||
| Armadura de la tonalitat | ||
| Indicadors d’octava | ||
| Transposició dels instruments | ||
| Alteracions accidentals automàtiques | ||
| Tessitura |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Impressió de les altures ] | [ Amunt : Impressió de les altures ] | [ Armadura de la tonalitat > ] | ||
Clau
Sense cap ordre explícita, la clau predeterminada al LilyPond és la clau “treble” (o clau de Sol).
c'2 c'
Tanmateix, es pot canviar la clau usant l’ordre
\clef i el nom de la clau corresponent. Als exemples
següents es mostra la posició del Do central en diferents claus.
\clef treble c'2 c' \clef alto c'2 c' \clef tenor c'2 c' \clef bass c'2 c'
Per veure el repertori complet dels possibles noms per a les claus, consulteu Estils de clau.
Les claus especials, com les utilitzades a la música antiga, es descriuen a Claus de la música mensural i a Claus de cant gregorià. La música que requereix claus de tabulatura s’estudia a Tabulatures predeterminades i a Tabulatures personalitzades.
Per fer servir claus a les notes guia, vegeu les ordres
\cueClef i \cueDuringWithClef a
Format de les notes guia.
En afegir _8 o ^8 al nom de la clau, la clau es
transposa una octava cap avall o cap amunt, respectivament, i
_15 i ^15 la transposa dos octaves. Si cal
es poden usar altres nombres enters. L’argument
nom_de_clau s’ha de envoltar entre cometes si conté
caràcters no alfabètics:
\clef treble c'2 c' \clef "treble_8" c'2 c' \clef "bass^15" c'2 c' \clef "alto_2" c'2 c' \clef "G_8" c'2 c' \clef "F^5" c'2 c'
Es pot obtenir una indicació d’octava opcional envoltant l’argument numèric entre parèntesis o claudàtors:
\clef "treble_(8)" c'2 c' \clef "bass^[15]" c'2 c'
Les altures s’imprimeixen com si l’argument numèric no tingués els parèntesis o claudàtors.
De forma predeterminada, un canvi de clau que es produeix en un salt de línia provoca que el símbol de clau nou s’imprimeixi al final de la línia anterior, com una clau de cortesia, així com al principi del següent. Aquesta clau de cortesia es pot suprimir.
\clef treble { c'2 c' } \break
\clef bass { c'2 c' } \break
\clef alto
\set Staff.explicitClefVisibility = #end-of-line-invisible
{ c'2 c' } \break
\unset Staff.explicitClefVisibility
\clef bass { c'2 c' } \break
De forma predeterminada, una clau que s’ha imprès prèviament no es
torna a imprimir si es fa servir un altre cop la mateixa ordre
\clef, i s’ignora. La instrucció \set
Staff.forceClef = ##t modifica aquest comportament.
\clef treble c'1 \clef treble c'1 \set Staff.forceClef = ##t c'1 \clef treble c'1
Quan hi ha un canvi de clau manual, el glif de la clau modificada és més petit del normal. Es pot sobreescriure aquest comportament.
\clef "treble" c'1 \clef "bass" c'1 \clef "treble" c'1 \override Staff.Clef.full-size-change = ##t \clef "bass" c'1 \clef "treble" c'1 \revert Staff.Clef.full-size-change \clef "bass" c'1 \clef "treble" c'1
Fragments de codi seleccionats
Tweaking clef properties
Changing the Clef glyph, its position, or the ottavation does not
change the position of subsequent notes on the staff. To get key
signatures on their correct staff lines middleCClefPosition must
also be specified, with positive or negative values moving middle
C up or down respectively, relative to the staff’s center line.
For example, \clef "treble_8" is equivalent to setting the
clefGlyph, clefPosition (the vertical position of the
clef itself on the staff), middleCPosition and
clefTransposition. Note that when any of these properties
(except middleCPosition) are changed a new clef symbol is
printed.
The following examples show the possibilities when setting these properties manually. On the first line, the manual changes preserve the standard relative positioning of clefs and notes, whereas on the second line, they do not.
{
% The default treble clef
\key f \major
c'1
% The standard bass clef
\set Staff.clefGlyph = #"clefs.F"
\set Staff.clefPosition = #2
\set Staff.middleCPosition = #6
\set Staff.middleCClefPosition = #6
\key g \major
c'1
% The baritone clef
\set Staff.clefGlyph = #"clefs.C"
\set Staff.clefPosition = #4
\set Staff.middleCPosition = #4
\set Staff.middleCClefPosition = #4
\key f \major
c'1
% The standard choral tenor clef
\set Staff.clefGlyph = #"clefs.G"
\set Staff.clefPosition = #-2
\set Staff.clefTransposition = #-7
\set Staff.middleCPosition = #1
\set Staff.middleCClefPosition = #1
\key f \major
c'1
% A non-standard clef
\set Staff.clefPosition = #0
\set Staff.clefTransposition = #0
\set Staff.middleCPosition = #-4
\set Staff.middleCClefPosition = #-4
\key g \major
c'1 \break
% The following clef changes do not preserve
% the normal relationship between notes, key signatures
% and clefs:
\set Staff.clefGlyph = #"clefs.F"
\set Staff.clefPosition = #2
c'1
\set Staff.clefGlyph = #"clefs.G"
c'1
\set Staff.clefGlyph = #"clefs.C"
c'1
\set Staff.clefTransposition = #7
c'1
\set Staff.clefTransposition = #0
\set Staff.clefPosition = #0
c'1
% Return to the normal clef:
\set Staff.middleCPosition = #0
c'1
}
Vegeu també
Referencia de la notación: Claus de la música mensural, Claus de cant gregorià, Tabulatures predeterminades Tabulatures personalitzades. Format de les notes guia.
Fitxers instal·lats: ‘scm/parser-clef.scm’.
Fragments de codi: Pitches.
Referència de funcionament intern: Clef_engraver, Clef, ClefModifier, clef-interface.
Advertiments i problemes coneguts
Els números d’octava adjunts a les claus es tracten com grobs
diferents. Així doncs, qualsevol \override
(sobreescriptura) efectuada a l’objecte Clef s’haurà
d’aplicar també al grob ClefModifier com un \override
diferent.
\new Staff \with {
\override Clef.color = #blue
\override ClefModifier.color = #red
}
\clef "treble_8" c'4
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Clau ] | [ Amunt : Impressió de les altures ] | [ Indicadors d'octava > ] | ||
Armadura de la tonalitat
Nota: Les alteracions accidentals i les armadures són una causa
freqüent de confusió per al nous usuaris. Al LilyPond, el noms de
les notes són el codi d’entrada en brut; l’armadura i la clau
determinen de quina forma es presenta aquest codi en brut. Una
nota sense alteració com c significa ‘Do natural’,
sense que l’afectin l’armadura o la clau. Per veure més
informació, consulteu
Alteracions accidentals i armadures.
L’armadura indica la tonalitat en la qual es toca una peça. Està
denotada per un conjunt d’alteracions (bemolls o sostinguts) al
començament del pentagrama. L’establiment o modificació de
l’armadura es fa amb l’ordre \key:
\key nota modo
Aquí, mode ha de ser \major o \minor
per obtenir la tonalitat nota major o noms estàndard
de mode (també coneguts com modes eclesiàstics):
\ionian (jònic), \dorian (dòric),
\phrygian (frigi), \lydian (lidi),
\mixolydian (mixolidi), \aeolian (eoli) i
\locrian (locri).
\relative {
\key g \major
fis''1
f
fis
}
Es poden definir modes addicionals, escrivint una llista amb l’alteració que porta cada nota de l’escala quan el mode comença amb Do.
freygish = #`((0 . ,NATURAL) (1 . ,FLAT) (2 . ,NATURAL)
(3 . ,NATURAL) (4 . ,NATURAL) (5 . ,FLAT) (6 . ,FLAT))
\relative {
\key c \freygish c'4 des e f
\bar "||" \key d \freygish d es fis g
}
Les alteracions de l’armadura de la tonalitat es poden imprimir en
una octava diferent que en les seves posicions tradicionals, o en
més d’una octava, usat les propietats flat-positions i
sharp-positions de KeySignature. Les entrades en
aquestes propietats especifiquen el rang de posicions de
pentagrama en el qual s’imprimiran les alteracions, les
alteracions es col·loquen dins de l’octava que acaba en aquesta
posició del pentagrama.
\override Staff.KeySignature.flat-positions = #'((-5 . 5)) \override Staff.KeyCancellation.flat-positions = #'((-5 . 5)) \clef bass \key es \major es g bes d' \clef treble \bar "||" \key es \major es' g' bes' d'' \override Staff.KeySignature.sharp-positions = #'(2) \bar "||" \key b \major b' fis' b'2
Fragments de codi seleccionats
Preventing natural signs from being printed when the key signature changes
When the key signature changes, natural signs are automatically printed
to cancel any accidentals from previous key signatures. This may be
prevented by setting to f the printKeyCancellation
property in the Staff context.
\relative c' {
\key d \major
a4 b cis d
\key g \minor
a4 bes c d
\set Staff.printKeyCancellation = ##f
\key d \major
a4 b cis d
\key g \minor
a4 bes c d
}
Non-traditional key signatures
The commonly used \key command sets the keyAlterations
property, in the Staff context.
To create non-standard key signatures, set this property directly. The format of this command is a list:
\set Staff.keyAlterations = #`(((octave . step) . alter) ((octave
. step) . alter) ...) where, for each element in the list,
octave specifies the octave (0 being the octave from middle C to
the B above), step specifies the note within the octave (0 means
C and 6 means B), and alter is ,SHARP ,FLAT ,DOUBLE-SHARP
etc. (Note the leading comma.)
Alternatively, for each item in the list, using the more concise format
(step . alter) specifies that the same alteration should hold in
all octaves.
For microtonal scales where a “sharp” is not 100 cents, alter
refers to the alteration as a proportion of a 200-cent whole tone.
Here is an example of a possible key signature for generating a whole-tone scale:
\relative {
\set Staff.keyAlterations = #`((6 . ,FLAT)
(5 . ,FLAT)
(3 . ,SHARP))
c'4 d e fis
aes4 bes c2
}
Vegeu també
Glossari musical: church mode, scordatura.
Manual de aprenentatge: Alteracions accidentals i armadures.
Fragments de codi: Pitches.
Referència de funcionament interno: KeyChangeEvent, Key_engraver, Key_performer, KeyCancellation, KeySignature, key-signature-interface.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Armadura de la tonalitat ] | [ Amunt : Impressió de les altures ] | [ Transposició dels instruments > ] | ||
Indicadors d’octava
Els indicadors d’octava introdueixen un transport addicional d’una octava per al pentagrama.
\relative a' {
a2 b
\ottava #-2
a2 b
\ottava #-1
a2 b
\ottava #0
a2 b
\ottava #1
a2 b
\ottava #2
a2 b
}
Fragments de codi seleccionats
Ottava text
Internally, \ottava sets the properties ottavation (for
example, to 8va or 8vb) and middleCPosition. To
override the text of the bracket, set ottavation after invoking
\ottava.
{
\ottava #1
\set Staff.ottavation = #"8"
c''1
\ottava #0
c'1
\ottava #1
\set Staff.ottavation = #"Text"
c''1
}
Adding an ottava marking to a single voice
If you have more than one voice on the staff, setting octavation in one voice will transpose the position of notes in all voices for the duration of the ottava bracket. If the ottavation is only intended to apply to one voice, the middleCPosition and ottava bracket may be set explicitly. In this snippet, the bass clef usually has middleCPosition set to 6, six positions above the center line, so in the 8va portion middleCPosition is 7 positions (one octave) higher still.
{
\clef bass
<< { <g d'>1~ q2 <c' e'> }
\\
{
r2.
\set Staff.ottavation = #"8vb"
\once \override Staff.OttavaBracket.direction = #DOWN
\set Voice.middleCPosition = #(+ 6 7)
<b,,, b,,>4 ~ |
q2
\unset Staff.ottavation
\unset Voice.middleCPosition
<c e>2
}
>>
}
Modifying the Ottava spanner slope
It is possible to change the slope of the Ottava spanner.
\relative c'' {
\override Staff.OttavaBracket.stencil = #ly:line-spanner::print
\override Staff.OttavaBracket.bound-details =
#`((left . ((Y . 0) ; Change the integer here
(attach-dir . ,LEFT)
(padding . 0)
(stencil-align-dir-y . ,CENTER)))
(right . ((Y . 5) ; Change the integer here
(padding . 0)
(attach-dir . ,RIGHT)
(text . ,(make-draw-dashed-line-markup (cons 0 -1.2))))))
\override Staff.OttavaBracket.left-bound-info =
#ly:line-spanner::calc-left-bound-info-and-text
\override Staff.OttavaBracket.right-bound-info =
#ly:line-spanner::calc-right-bound-info
\ottava #1
c1
c'''1
}
Vegeu també
Glossari musical: octavation.
Fragments de codi: Pitches.
Referència de funcionament interno: Ottava_spanner_engraver, OttavaBracket, ottava-bracket-interface.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Indicadors d'octava ] | [ Amunt : Impressió de les altures ] | [ Alteracions accidentals automàtiques > ] | ||
Transposició dels instruments
En gravar partitures on participen instruments transpositors, certes partes es poden gravar en un to diferent del to de concert. En aquests casos s’ha d’especificar la tonalitat del instrumento transpositor; si no es fa així, la sortida MIDI i les notes guia a altres parts produiran altures incorrectes. Per veure més informació sobre parts citades com a guia, consulteu Cites a altres veus.
\transposition pitch
El to usat per a \transposition s’ha de correspondre amb el
so real que s’escolta quan l’instrument transpositor interpreta un
Do central c' escrit al pentagrama. Aquesta nota s’escriu
en altura absoluta, per tant un instrument que produeix un so real
un to més agut que la música impresa (un instrument en Re) ha d’usar
\transposition d'. L’ordre \transposition s’ha
d’usar solament si les notes no s’escriuran en
afinació de concert.
A continuació es poden veure algunes notes per a violí i per a clarinet en Si bemoll, on les parts s’han introduït usant les notes i l’armadura tal i com apareixen a la partitura del director. El que toquen els dos instruments està sonant a l’uníson.
\new GrandStaff <<
\new Staff = "violin" {
\relative c'' {
\set Staff.instrumentName = #"Vln"
\set Staff.midiInstrument = #"violin"
% no estrictament necessari, però un bon recordatori
\transposition c'
\key c \major
g4( c8) r c r c4
}
}
\new Staff = "clarinet" {
\relative c'' {
\set Staff.instrumentName = \markup { Cl (B\flat) }
\set Staff.midiInstrument = #"clarinet"
\transposition bes
\key d \major
a4( d8) r d r d4
}
}
>>
L’ordre \transposition es pot canviar durant la peça. Per
exemple, un clarinetista pot canviar del clarinet en La al
clarinet en Si bemoll.
flute = \relative c'' {
\key f \major
\cueDuring #"clarinet" #DOWN {
R1 _\markup\tiny "clarinet"
c4 f e d
R1 _\markup\tiny "clarinet"
}
}
clarinet = \relative c'' {
\key aes \major
\transposition a
aes4 bes c des
R1^\markup { muta in B\flat }
\key g \major
\transposition bes
d2 g,
}
\addQuote "clarinet" \clarinet
<<
\new Staff \with { instrumentName = #"Flute" }
\flute
\new Staff \with { instrumentName = #"Cl (A)" }
\clarinet
>>
Vegeu també
Glossari musical: concert pitch, transposing instrument.
Referència de la notació: Cites a altres veus, Transposició.
Fragments de codi: Pitches.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Transposició dels instruments ] | [ Amunt : Impressió de les altures ] | [ Tessitura > ] | ||
Alteracions accidentals automàtiques
Hi ha moltes convencions diferents sobre la forma de gravar les alteracions. El LilyPond proporciona una funció per especificar quin estil d’alteracions usar. Aquesta funció s’invoca de la manera següent:
\new Staff <<
\accidentalStyle voice
{ … }
>>
L’estil d’alteracions s’aplica al Staff en curs de forma
predeterminada (amb l’excepció dels estils piano i
piano-cautionary, que s’expliquen més
endavant). Opcionalment, la funció pot agafar un segon argument
que determina en quin àmbit s’ha de canviar l’estil. Per exemple,
per usar el mateix estil en tots els pentagrames del
StaffGroup en curs, useu
\accidentalStyle StaffGroup.voice
Estan contemplats els següents estils d’alteració. Per donar una mostra de cada u dels estils, utilitzem l’exemple següent:
musicA = {
<<
\relative {
cis''8 fis, bes4 <a cis>8 f bis4 |
cis2. <c, g'>4 |
}
\\
\relative {
ais'2 cis, |
fis8 b a4 cis2 |
}
>>
}
musicB = {
\clef bass
\new Voice {
\voiceTwo \relative {
<fis a cis>8[ <fis a cis>
\change Staff = up
cis' cis
\change Staff = down
<fis, a> <fis a>]
\showStaffSwitch
\change Staff = up
dis'4 |
\change Staff = down
<fis, a cis>4 gis <f a d>2 |
}
}
}
\new PianoStaff {
<<
\context Staff = "up" {
\accidentalStyle default
\musicA
}
\context Staff = "down" {
\accidentalStyle default
\musicB
}
>>
}
Observeu que les últimes línies d’aquest exemple es poden substituir per les següents, sempre i quan vulguem usar el mateix estil als dos pentagrames.
\new PianoStaff {
<<
\context Staff = "up" {
%%% canvieu la línia següent com desitgeu:
\accidentalStyle Score.default
\musicA
}
\context Staff = "down" {
\musicB
}
>>
}
-
default (predeterminat) -
Es el comportament de gravat predeterminat per a composició. Correspon a la pràctica comuna del segle XVIII: les alteracions accidentals es recorden fins al final del compàs en el qual apareixen i sols en la mateixa octava. Així, a l’exemple següent, no s’imprimeixen becaires abans del Si natural al segon compàs ni a l’últim Do:
-
voice (veu) -
El comportament normal és recordar les alteracions accidentals al nivell de
Staff. En aquest estil, tanmateix, es graven les alteracions individualment per a cada veu. A part d’això la regla és semblant adefault.Com a resultat, les alteracions d’una veu no es cancel·len a les altres veus, el que amb freqüència porta a un resultat no desitjat: a l’exemple següent és difícil determinar si el segon La s’ha de tocar natural o sostingut. Per tant, l’opció
voices’ha d’usar sols si les veus es llegiran individualment per músics diferents. Si el pentagrama s’utilitzarà per part d’un sols músic (per exemple un director, o a una partitura de piano), aleshores s’han d’usar en el seu lloc els estilsmodernomodern-cautionary. -
modern -
Aquesta regla correspon a la pràctica comuna del segle XX. Omet alguns becaires addicionals, que tradicionalment s’imprimien precedint a un sostingut que segueix a un doble sostingut, o a un bemoll que segueix a un doble bemoll. La regla
modernimprimeix les mateix alteracions que l’estildefault, amb dos addicions que serveixen per evitar la ambigüitat: després d’alteracions temporals s’imprimeixen indicacions de cancel·lació també al compàs següent (per a notes a la mateixa octava) i, al mateix compàs, per a notes a octaves diferents. D’aquí els becaires abans del Si natural i del Do al segon compàs del pentagrama superior: -
modern-cautionary (modern de precaució) -
Aquesta regla és semblant a
modern, però les alteracions ‘afegides’ se imprimeixen como alteracions de precaució (entre parèntesis). També es poden imprimir en una mida diferent sobreescrivint la propietatfont-sizede l’objecteAccidentalCautionary. -
modern-voice (modern, per a veus) -
Aquesta regla s’usa perquè puguin llegir les alteracions a diverses veus, tant els músics que toquen una veu com els musics que toquen totes les veus. S’imprimeixen les alteracions per a cada veu, però es cancel·len entre veus dins del mateix
Staff. Per tant, el La a l’últim compàs es cancel·la perquè la cancel·lació anterior estava a una veu diferent, i el Re al pentagrama inferior es cancel·la a causa de l’alteració a una altra veu al compàs previ: -
modern-voice-cautionary (modern, veu, de precaució) -
Aquesta regla és la mateixa que
modern-voice, però amb les alteracions afegides (les que l’estilovoiceno imprimeix) composades com de precaució. Fins i tot malgrat que totes les alteracions impreses per l’estildefaultsón impreses amb aquesta regla, algunes d’elles es graven com de precaució. -
piano -
Aquesta regla reflexa la pràctica del segle XX per a la notació de piano. El seu comportament és molt semblant a l’estil
modern, però aquí les alteracions també es cancel·len entre diferents pentagrames del mateix grupGrandStaffoPianoStaff, d’aquí totes les cancel·lacions de les últimes notes.Aquest estil d’alteració s’aplica de manera predeterminada al grup
GrandStaffoPianoStaffen curs. -
piano-cautionary (piano, de precaució) -
Igual que
\accidentalStyle pianoperò amb les alteracions afegides composades com de precaució. -
neo-modern -
Aquesta regla reprodueix una pràctica comuna a la música contemporània: les alteracions accidentals s’imprimeixen com a
modern, però es tornen a imprimir si apareix la mateixa nota una altra vegada al mateix compàs (excepte si la nota es repeteix immediatament). -
neo-modern-cautionary -
Aquesta regla és sembla a
neo-modern, però les alteracions ‘addicionals’ s’imprimeixen com alteracions de precaució (amb parèntesis). També es poden imprimir a una mida diferent sobreescrivint la propietatfont-sizede l’objecteAccidentalCautionary. -
neo-modern-voice -
Aquesta regla s’usa per alteracions accidentals sobre diverses veus que s’han de llegir per part de músics que toquen una veu, així com per músics que toquen totes les veus. Les alteracions s’imprimeixen per a cada veu com amb
neo-modern, però es cancel·len per a altres veus que estan al mateix pentagramaStaff. -
neo-modern-voice-cautionary -
Aquesta regla és semblant a
neo-modern-voice, però les alteracions addicionals s’imprimeixen com alteracions de precaució. -
dodecaphonic -
Aquesta regla reflexa una pràctica introduïda pels compositors de principis del segle XX, en un intent d’abolir la jerarquia entre notes naturals i alterades. Amb aquest estil, totes les notes porten alteració, fins i tot becaires.
-
dodecaphonic-no-repeat -
Com amb l’estil d’alteracions dodecafònic totes les notes porten una alteració de forma predeterminada, però les alteracions se suprimeixen quan hi ha notes repetides immediatament al mateix pentagrama.
-
dodecaphonic-first -
Semblant a l’estil d’alteracions dodecafònic, totes les notes porten una alteració, però sols la primera vegada que es troben al compàs. Les alteracions es recorden sols per a l’octava actual però a través de les veus.
-
teaching (ensenyament) -
Aquesta regla està pensada per a estudiants, i fa més senzill crear automàticament fulls d’escales amb alteracions de precaució. Les alteracions s’imprimeixen com a l’estil
modern, però s’afegeixen alteracions de precaució per a totes les notes sostingudes o bemolls especificats per l’armadura, excepte si la nota es repeteix immediatament. -
no-reset (sense restabliment) -
És el mateix que
defaultperò amb alteracions que duren ‘per sempre’ i no sols dins del mateix compàs: -
forget (oblit) -
És l’oposat a
sense restabliment: Les alteracions no es recorden en absolut: d’aquí que totes les alteracions es gravin en relació a l’armadura de la tonalitat, sense que es vegin afectades pel que hi ha abans.
Vegeu també
Fragments de codi: Pitches.
Referència de funcionament intern: Accidental, Accidental_engraver, GrandStaff, PianoStaff, Staff, AccidentalSuggestion, AccidentalPlacement, accidental-suggestion-interface.
Advertiments i problemes coneguts
Les notes simultànies no es tenen en compte per a la determinació
automàtica de les alteracions accidentals; sols es consideren les
notes anteriors i l’armadura de la tonalitat. Pot ser necessari
forçar les alteracions accidentals amb with !
o ? quan la mateixa nota, amb al mateix nom, aparegui
simultàniament amb diferents alteracions, com a ‘<f! fis!>’.
La cancel·lació de precaució d’alteracions es fa mirant el compàs
previ. Malgrat això, al bloc \alternative que segueix a
una secció de repetició de primera i segona vegada \repeat
volta N, s’esperaria que la cancel·lació es calculés utilitzant
el compàs previ que s’ha tocat, no el compàs previ
que s’ha imprès. A l’exemple següent al Do natural de la
casella de segona vegada no li cal becaire:
Es pot usar la següent solució del problema: definir una funció
que canviï localment l’estil d’alteracions a forget:
forget = #(define-music-function (music) (ly:music?) #{
\accidentalStyle forget
#music
\accidentalStyle modern
#})
{
\accidentalStyle modern
\time 2/4
\repeat volta 2 {
c'2
}
\alternative {
cis'
\forget c'
}
}
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Alteracions accidentals automàtiques ] | [ Amunt : Impressió de les altures ] | [ Cap de les notes > ] | ||
Tessitura
El terme ambitus o àmbit denota el rang de notes que abasta una veu donada a una part musical. També pot denotar el marge de notes que és capaç de tocar un determinat instrument musical. Els àmbits s’imprimeixen a les parts vocals de tal manera que els intèrprets puguin determinar amb facilitat si compleixen amb les seves pròpies possibilitats.
Els àmbits es presenten al començament de la peça junt a la clau inicial. El rang s’especifica gràficament mitjançant dos caps de nota que representen a les notes inferior i superior. Sols s’imprimeixen alteracions si no formen part de l’armadura de la tonalitat.
\layout {
\context {
\Voice
\consists "Ambitus_engraver"
}
}
\relative {
aes' c e2
cis,1
}
Fragments de codi seleccionats
Adding ambitus per voice
Ambitus can be added per voice. In this case, the ambitus must be moved manually to prevent collisions.
\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
}
>>
Ambitus with multiple voices
Adding the Ambitus_engraver to the Staff context creates
a single ambitus per staff, even in the case of staves with multiple
voices.
\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
}
>>
Changing the ambitus gap
It is possible to change the default gap between the ambitus noteheads and the line joining them.
\layout {
\context {
\Voice
\consists "Ambitus_engraver"
}
}
\new Staff {
\time 2/4
% Default setting
c'4 g''
}
\new Staff {
\time 2/4
\override AmbitusLine.gap = #0
c'4 g''
}
\new Staff {
\time 2/4
\override AmbitusLine.gap = #1
c'4 g''
}
\new Staff {
\time 2/4
\override AmbitusLine.gap = #1.5
c'4 g''
}
Vegeu també
Glossri musical: ambitus.
Fragments de codi: Pitches.
Referència de funcionament interno: Ambitus_engraver, Voice, Staff, Ambitus, AmbitusAccidental, AmbitusLine, AmbitusNoteHead, ambitus-interface.
Advertiments i problemes coneguts
No s’efectua un tractament de les possibles col·lisions en cas de diverses indicacions d’àmbit simultànies a veus diferents.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Tessitura ] | [ Amunt : Altures ] | [ Caps de nota especials > ] | ||
1.1.4 Cap de les notes
Aquesta secció proposa formes d’alterar els caps de les figures.
| Caps de nota especials | ||
| Caps de notes de Notació Fàcil | ||
| Caps de notes amb formes diverses | ||
| Improvisació |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Cap de les notes ] | [ Amunt : Cap de les notes ] | [ Caps de notes de Notació Fàcil > ] | ||
Caps de nota especials
Es pot modificar l’aparença del cap de les notes:
\relative c'' {
c4 b
\override NoteHead.style = #'cross
c4 b
\revert NoteHead.style
a b
\override NoteHead.style = #'harmonic
a b
\revert NoteHead.style
c4 d e f
}
Per veure totes els estils de caps de les notes, consulteu Estils de caps de nota.
L’estil cross (aspes) es fa servir per representar una
àmplia varietat d’intencions musicals. Les següent ordres
genèriques predefinides modifiquen la forma del cap de les figures
tant al context del pentagrama normal com al de tabulatura, i es
poden fer servir per representar qualsevol significat musical:
\relative {
c''4 b
\xNotesOn
a b c4 b
\xNotesOff
c4 d
}
La forma de funció musical d’aquesta ordre predefinida es pot usar dins i fora dels acords per generar caps de nota en aspa, tant al context de pentagrama normal com al de tabulatura:
\relative {
c''4 b
\xNote { e f }
c b < g \xNote c f > b
}
Como sinònims de \xNote, \xNotesOn i
\xNotesOff, se poden usar \deadNote,
\deadNotesOn i \deadNotesOff. El terme
dead note (nota morta) s’utilitza habitualment per part
dels guitarristes.
També hi ha una abreviatura semblant per a les formes en rombe:
\relative c'' {
<c f\harmonic>2 <d a'\harmonic>4 <c g'\harmonic> f\harmonic
}
Instruccions predefinides
\harmonic,
\xNotesOn,
\xNotesOff,
\xNote.
Vegeu també
Fragments de codi: Pitches.
Referència de la notació: Estils de caps de nota, Notes a un acord, Indicació d’harmònics i notes tapades.
Referència de funcionament interno: note-event, Note_heads_engraver, Ledger_line_engraver, NoteHead, LedgerLineSpanner, note-head-interface, ledger-line-spanner-interface.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Caps de nota especials ] | [ Amunt : Cap de les notes ] | [ Caps de notes amb formes diverses > ] | ||
Caps de notes de Notació Fàcil
Les notes amb cap de ‘notació facilitada’ tenen el nom de la nota (en angles) dins del cap. S’usen a la música per a principiants. Perquè que les lletres siguin llegibles, s’han d’imprimir en una mida gran de tipus de lletra. Per imprimir amb un tipus de lletra més gran, vegeu Establiment de la mida del pentagrama.
#(set-global-staff-size 26)
\relative c' {
\easyHeadsOn
c2 e4 f
g1
\easyHeadsOff
c,1
}
Instruccions predefinides
\easyHeadsOn,
\easyHeadsOff.
Fragments de codi seleccionats
Numbers as easy note heads
Easy notation note heads use the note-names property of the
NoteHead object to determine what appears inside the note head.
By overriding this property, it is possible to print numbers
representing the scale-degree.
A simple engraver can be created to do this for every note head object it sees.
#(define Ez_numbers_engraver
(make-engraver
(acknowledgers
((note-head-interface engraver grob source-engraver)
(let* ((context (ly:translator-context engraver))
(tonic-pitch (ly:context-property context 'tonic))
(tonic-name (ly:pitch-notename tonic-pitch))
(grob-pitch
(ly:event-property (event-cause grob) 'pitch))
(grob-name (ly:pitch-notename grob-pitch))
(delta (modulo (- grob-name tonic-name) 7))
(note-names
(make-vector 7 (number->string (1+ delta)))))
(ly:grob-set-property! grob 'note-names note-names))))))
#(set-global-staff-size 26)
\layout {
ragged-right = ##t
\context {
\Voice
\consists \Ez_numbers_engraver
}
}
\relative c' {
\easyHeadsOn
c4 d e f
g4 a b c \break
\key a \major
a,4 b cis d
e4 fis gis a \break
\key d \dorian
d,4 e f g
a4 b c d
}
Vegeu també
Referència de la notació: Establiment de la mida del pentagrama.
Fragments de codi: Pitches.
Referència de funcionament interno: note-event, Note_heads_engraver, NoteHead, note-head-interface.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Caps de notes de Notació Fàcil ] | [ Amunt : Cap de les notes ] | [ Improvisació > ] | ||
Caps de notes amb formes diverses
A la notació de caps amb forma, la forma del cap correspon a la funció harmònica d’una nota dins de l’escala. Aquesta notació es va fer popular als llibres americans de cançons durant el segle XIX. Els caps de nota amb formes es poden produir amb els estils ‘Arpa Sacra’, ‘Southern Harmony’, Funk (Harmonia Sacra), Walker i Aiken ‘(Christian Harmony)’:
\relative c'' {
\aikenHeads
c, d e f g2 a b1 c \break
\sacredHarpHeads
c,4 d e f g2 a b1 c \break
\southernHarmonyHeads
c,4 d e f g2 a b1 c \break
\funkHeads
c,4 d e f g2 a b1 c \break
\walkerHeads
c,4 d e f g2 a b1 c \break
}
Les formes es determinen en funció del grau de l’escala, on la
tònica està determinada per l’ordre \key. Quan s’escriu en
un to menor, la nota de l’escala es pot determinar a partir del
relatiu major:
\relative c'' {
\key a \minor
\aikenHeads
a b c d e2 f g1 a \break
\aikenHeadsMinor
a,4 b c d e2 f g1 a \break
\sacredHarpHeadsMinor
a,2 b c d \break
\southernHarmonyHeadsMinor
a2 b c d \break
\funkHeadsMinor
a2 b c d \break
\walkerHeadsMinor
a2 b c d \break
}
Instruccions predefinides
\aikenHeads,
\aikenHeadsMinor,
\funkHeads,
\funkHeadsMinor,
\sacredHarpHeads,
\sacredHarpHeadsMinor,
\southernHarmonyHeads,
\southernHarmonyHeadsMinor,
\walkerHeads,
\walkerHeadsMinor.
Fragments de codi seleccionats
Applying note head styles depending on the step of the scale
The shapeNoteStyles property can be used to define various note
head styles for each step of the scale (as set by the key signature or
the tonic property). This property requires a set of symbols,
which can be purely arbitrary (geometrical expressions such as
triangle, cross, and xcircle are allowed) or based
on old American engraving tradition (some latin note names are also
allowed).
That said, to imitate old American song books, there are several
predefined note head styles available through shortcut commands such as
\aikenHeads or \sacredHarpHeads.
This example shows different ways to obtain shape note heads, and demonstrates the ability to transpose a melody without losing the correspondence between harmonic functions and note head styles.
fragment = {
\key c \major
c2 d
e2 f
g2 a
b2 c
}
\new Staff {
\transpose c d
\relative c' {
\set shapeNoteStyles = ##(do re mi fa
#f la ti)
\fragment
}
\break
\relative c' {
\set shapeNoteStyles = ##(cross triangle fa #f
mensural xcircle diamond)
\fragment
}
}
Per veure tots els estils de formes de cap de nota, consulteu Estils de caps de nota,
Vegeu també
Fragments de codi: Pitches.
Referència de la notació: Estils de caps de nota,
Referencia de funcionament interno: note-event, Note_heads_engraver, NoteHead, note-head-interface.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Caps de notes amb formes diverses ] | [ Amunt : Cap de les notes ] | [ Duracions > ] | ||
Improvisació
La improvisació es denota a vegades mitjançant caps de nota en forma de barra inclinada, on l’executant pot escollir qualsevol nota però amb el ritme especificat. Aquests cap de nota es creen així:
\new Voice \with {
\consists "Pitch_squash_engraver"
} \relative {
e''8 e g a a16( bes) a8 g
\improvisationOn
e8 ~
2 ~ 8 f4 f8 ~
2
\improvisationOff
a16( bes) a8 g e
}
Instruccions predefinides
\improvisationOn,
\improvisationOff.
Vegeu també
Fragments de codi: Pitches.
Referència de funcionament interno: Pitch_squash_engraver, Voice, RhythmicStaff.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Improvisació ] | [ Amunt : Notació musical ] | [ Escriptura de les duracions (valors rítmics) > ] | ||
1.2 Duracions
Aquesta secció tracta dels ritmes, els silencis, les duracions, les barres i els compassos.
| 1.2.1 Escriptura de les duracions (valors rítmics) | ||
| 1.2.2 Escriptura dels silencis | ||
| 1.2.3 Impressió de les duracions | ||
| 1.2.4 Barres | ||
| 1.2.5 Compassos | ||
| 1.2.6 Temes especials de ritme |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Duracions ] | [ Amunt : Duracions ] | [ Duració de les notes > ] | ||
1.2.1 Escriptura de les duracions (valors rítmics)
| Duració de les notes | ||
| Grups especials | ||
| Escalat de les duracions | ||
| Lligadures d’unió |
Duració de les notes
Les duracions es designen mitjançant nombres i punts. Les
duracions s’introdueixen en relació als seus valores recíproc
respecte de la rodona. Per exemple, una negra s’escriu usant un
4 (atès que és 1/4 de rodona), mentre que una blanca
s’escriu amb un 2 (per ser 1/2 de rodona). Per a notes
majors de la rodona s’han d’usar les instruccions \longa
(que és una breu doble) i \breve. Es poden especificar
duracions tan curtes com la garrapatea (amb el número 128). Es
poden fer valors més curts, però sols com a notes unides per una
barra.
\relative {
\time 8/1
c''\longa c\breve c1 c2
c4 c8 c16 c32 c64 c128 c128
}
Aquí es poden veure les mateixes duracions amb el barrat automàtic desactivat.
\relative {
\time 8/1
\autoBeamOff
c''\longa c\breve c1 c2
c4 c8 c16 c32 c64 c128 c128
}
Es pot escriure una nota amb la duració d’una quàdruple breu
mitjançant \maxima, però això es permet sols dins de la
notació musical antiga. Per veure més detalls, consulteu
Notació antiga.
Si la duració s’omet, el seu valor serà el de la duració de la nota anterior. Per omissió, el valor de la primera nota és el d’una negra.
\relative { a' a a2 a a4 a a1 a }
Les duracions aïllades a una seqüència musical agafen l’altura de la nota o acord anterior.
\relative {
\time 8/1
c'' \longa \breve 1 2
4 8 16 32 64 128 128
}
Per obtenir duracions de notes amb puntet, escriviu un punt
(.) després del numero. Les notes amb doble puntet
s’especifiquen escrivint dos punts, i així successivament.
\relative { a'4 b c4. b8 a4. b4.. c8. }
Certes duracions no es poden representar sols amb duracions binaries i puntets; l’única forma de representar-les és lligat dos o més notes. Per veure més detalls, consulteu Lligadures d’unió.
Per veure de quina manera es poden especificar les duracions de les síl·labes de la lletra i com alinear la lletra a les notes, consulteu Música vocal.
De forma opcional es poden espaiar les notes de forma estrictament proporcional a les seves duracions. Per veure més detalls sobre aquest ajust i altres ajustos que controlen la notació proporciona, consulteu Notació proporcional.
Normalment els puntets es desplacen cap amunt per evitar les línies del pentagrama, excepte en situacions de polifonia. Es poden situar els puntets manualment a sobre o a sota de les línies de la pauta; vegeu Direcció i col·locació.
Instruccions predefinides
\autoBeamOn,
\autoBeamOff,
\dotsUp,
\dotsDown,
\dotsNeutral.
Fragments de codi seleccionats
Alternative breve notes
Breve notes are also available with two vertical lines on each side of the notehead instead of one line and in baroque style.
\relative c'' {
\time 4/2
c\breve |
\override Staff.NoteHead.style = #'altdefault
b\breve
\override Staff.NoteHead.style = #'baroque
b\breve
\revert Staff.NoteHead.style
a\breve
}
Changing the number of augmentation dots per note
The number of augmentation dots on a single note can be changed indepently of the dots placed after the note.
\relative c' {
c4.. a16 r2 |
\override Dots.dot-count = #4
c4.. a16 r2 |
\override Dots.dot-count = #0
c4.. a16 r2 |
\revert Dots.dot-count
c4.. a16 r2 |
}
Vegeu també
Glossari musical: breve, longa, maxima, note value, Duration names notes and rests.
Referència de la notació: Barres automàtiques, Lligadures d’unió, Pliques, Escriptura de les duracions (valors rítmics), Escriptura dels silencis, Música vocal, Notació antiga, Notació proporcional.
Fragments de codi: Rhythms.
Referència de funcionament intern: Dots, DotColumn.
Advertiments i problemes coneguts
No hi ha un límit fonamental per a les duracions dels silencis (tant per al més llarg com per al més curt), però el nombre dels glifs és limitat; sols es poden imprimir des del silenci de garrapatea (128) fins el de màxima (8 rodones).
Grups especials
Els grups especials s’obtenen a partir d’una expressió musical amb
la instrucció \tuplet, multiplicant la rapidesa de
l’expressió musical per una fracció:
\tuplet fracció { música }
El numerador de la fracció s’imprimeix a sobre o a sota de les notes, opcionalment amb una clau. El grup especial més comú és el treset, en el qual 3 notes tenen el valor que normalment tenen 2:
\relative {
a'2 \tuplet 3/2 { b4 4 4 }
c4 c \tuplet 3/2 { b4 a g }
}
Si s’estan escrivint passatges amb molts grups de valoració
especial, resulta fastigós haver d’escriure una ordre
\tuplet diferent per a cada grup. És possible especificar
la duració d’un conjunt de grups directament abans de la música
perquè així s’agrupin automàticament:
\relative {
g'2 r8 \tuplet 3/2 8 { cis16 d e e f g g f e }
}
Es poden col·locar manualment les claus de treset a sobre o a sota de la pauta:
\relative {
\tupletUp \tuplet 3/2 { c''8 d e }
\tupletNeutral \tuplet 3/2 { c8 d e }
\tupletDown \tuplet 3/2 { f,8 g a }
\tupletNeutral \tuplet 3/2 { f8 g a }
}
Els grups poden niuar-se uns a dins dels altres:
\relative {
\autoBeamOff
c''4 \tuplet 5/4 { f8 e f \tuplet 3/2 { e[ f g] } } f4
}
La modificació dels grups especials niuats que comencen al mateix
instant musical s’han de fer amb \tweak.
Per modificar la duració de les notes sense imprimir una de grup especial, vegeu
Instruccions predefinides
\tupletUp,
\tupletDown,
\tupletNeutral.
Fragments de codi seleccionats
Entering several tuplets using only one \tuplet command
The property tupletSpannerDuration sets how long each of the
tuplets contained within the brackets after \tuplet should
last. Many consecutive tuplets can then be placed within a single
\tuplet expression, thus saving typing.
There are several ways to set tupletSpannerDuration. The
command \tupletSpan sets it to a given duration, and clears it
when instead of a duration \default is specified. Another way
is to use an optional argument with \tuplet.
\relative c' {
\time 2/4
\tupletSpan 4
\tuplet 3/2 { c8^"\\tupletSpan 4" c c c c c }
\tupletSpan \default
\tuplet 3/2 { c8^"\\tupletSpan \\default" c c c c c }
\tuplet 3/2 4 { c8^"\\tuplet 3/2 4 {...}" c c c c c }
}
Changing the tuplet number
By default, only the numerator of the tuplet number is printed over the
tuplet bracket, i.e., the numerator of the argument to the
\tuplet command.
Alternatively, num:den of the tuplet number may be printed, or the tuplet number may be suppressed altogether.
\relative c'' {
\tuplet 3/2 { c8 c c }
\tuplet 3/2 { c8 c c }
\override TupletNumber.text = #tuplet-number::calc-fraction-text
\tuplet 3/2 { c8 c c }
\omit TupletNumber
\tuplet 3/2 { c8 c c }
}
Non-default tuplet numbers
LilyPond also provides formatting functions to print tuplet numbers different than the actual fraction, as well as to append a note value to the tuplet number or tuplet fraction.
\relative c'' {
\once \override TupletNumber.text =
#(tuplet-number::non-default-tuplet-denominator-text 7)
\tuplet 3/2 { c4. c4. c4. c4. }
\once \override TupletNumber.text =
#(tuplet-number::non-default-tuplet-fraction-text 12 7)
\tuplet 3/2 { c4. c4. c4. c4. }
\once \override TupletNumber.text =
#(tuplet-number::append-note-wrapper
(tuplet-number::non-default-tuplet-fraction-text 12 7) "8")
\tuplet 3/2 { c4. c4. c4. c4. }
\once \override TupletNumber.text =
#(tuplet-number::append-note-wrapper
tuplet-number::calc-denominator-text "4")
\tuplet 3/2 { c8 c8 c8 c8 c8 c8 }
\once \override TupletNumber.text =
#(tuplet-number::append-note-wrapper
tuplet-number::calc-fraction-text "4")
\tuplet 3/2 { c8 c8 c8 c8 c8 c8 }
\once \override TupletNumber.text =
#(tuplet-number::fraction-with-notes "4." "8")
\tuplet 3/2 { c4. c4. c4. c4. }
\once \override TupletNumber.text =
#(tuplet-number::non-default-fraction-with-notes 12 "8" 4 "4")
\tuplet 3/2 { c4. c4. c4. c4. }
}
Controlling tuplet bracket visibility
The default behavior of tuplet-bracket visibility is to print a bracket
unless there is a beam of the same length as the tuplet. To control the
visibility of tuplet brackets, set the property
'bracket-visibility to either #t (always print a
bracket), #f (never print a bracket) or #'if-no-beam
(only print a bracket if there is no beam).
music = \relative c'' {
\tuplet 3/2 { c16[ d e } f8]
\tuplet 3/2 { c8 d e }
\tuplet 3/2 { c4 d e }
}
\new Voice {
\relative c' {
<< \music s4^"default" >>
\override TupletBracket.bracket-visibility = #'if-no-beam
<< \music s4^"'if-no-beam" >>
\override TupletBracket.bracket-visibility = ##t
<< \music s4^"#t" >>
\override TupletBracket.bracket-visibility = ##f
<< \music s4^"#f" >>
%% v2.18 :
\omit TupletBracket
<< \music s4^"omit" >>
}
}
Permitting line breaks within beamed tuplets
This artificial example shows how both manual and automatic line breaks may be permitted to within a beamed tuplet. Note that such off-beat tuplets have to be beamed manually.
\layout {
\context {
\Voice
% Permit line breaks within tuplets
\remove "Forbid_line_break_engraver"
% Allow beams to be broken at line breaks
\override Beam.breakable = ##t
}
}
\relative c'' {
a8
\repeat unfold 5 { \tuplet 3/2 { c[ b a] } }
% Insert a manual line break within a tuplet
\tuplet 3/2 { c[ b \bar "" \break a] }
\repeat unfold 5 { \tuplet 3/2 { c[ b a] } }
c8
}
Vegeu també
Glossari musical: triplet, tuplet, polymetric.
Manual de aprenentatge: Mètodes d'ajustament.
Referència de la notació: Direcció i posició, Gestió del temps, Escalat de les duracions, L’ordre tweak, Notació polimètrica.
Fragments de codi: Rhythms.
Referència de funcionament intern: TupletBracket, TupletNumber, TimeScaledMusic.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Grups especials ] | [ Amunt : Escriptura de les duracions (valors rítmics) ] | [ Lligadures d'unió > ] | ||
Escalat de les duracions
La duració de les figures, silencis o acords es pot multiplicar
per un factor N/M afegint *N/M (o *N si
M és 1) a la duració. Aixo no afectarà a l’aparença de les
notes o silencis que es produeixen, però la duració alterada
s’usarà per calcular la posició dins del compàs i per establir la
duració en la sortida MIDI. Els factors de multiplicació es poden
combinar en la forma *L*M/N. Els factors són part de la
duració: si no especifiquem una duració per a les notes següents,
la duració per omissió que s’agafa de la nota anterior inclourà
qualsevol factor d’escala que s’hagi aplicat.
Al següent exemple les tres primeres notes duren exactament dues parts, però no s’imprimeix cap clau de treset.
\relative {
\time 2/4
% Altera les duracions a tresets
a'4*2/3 gis a
% Duracions normals
a4 a
% Duplica la duració de l'acord
<a d>4*2
% Duració de negra, sembla de corxera
b16*4 c4
}
La duració dels silencis espaiadors també es pot modificar
mitjançant un multiplicador. Això és útil per saltar molts
compassos, com per exemple s1*23.
De la mateixa forma, es poden comprimir per una fracció trossos de música més llargs, com si cada nota, acord o silenci tingués la fracció com a multiplicador.. Això deixarà intacte l’aparença de la música, però la duració interna de les notes es multiplicarà per la fracció numerador/denominador. Vet aquí un exemple que mostra com es pot comprimir i expandir la música:
\relative {
\time 2/4
% Duracions normals
<c'' a>4 c8 a
% Escala la música per *2/3
\scaleDurations 2/3 {
<c a f>4. c8 a f
}
% Escala la música per *2
\scaleDurations 2/1 {
<c' a>4 c8 b
}
}
Una aplicació d’aquesta ordre es troba a la notació polimètrica, vegeu Notació polimètrica.
Vegeu també
Referència de la notació: Grups especials, Silencis invisibles, Notació polimètrica.
Fragments de codi: Rhythms.
Advertiments i problemes coneguts
El càlcul de la posició dins d’un compàs ha de tenir en compte tots els factors d’escalat que s’han aplicat a les notes dins d’aquest compàs, i qualsevol arrossegament fraccionat des dels compassos anteriors. Aquest càlcul s’efectua utilitzant nombres racionals. Si un numerador o denominador intermedi en aquest procés de càlcul sobrepassa la quantitat de 2^30, la execució i el gravat es detindran a aquest punt sense indicar cap error.
Lligadures d’unió
Un lligadura d’unió connecta dues notes adjacents de la mateixa altura. La lligadura de fet estén la longitud d’una nota.
Nota: No s’han de confondre’s les lligadures d’unió amb les lligadures d’expressió, que indiquen articulació, ni amb les lligadures de fraseig, que indiquen el fraseig musical. Una lligadura d’unió és tan sols na manera d’estendre la duració d’una nota, quelcom semblant al que fa el puntet.
S’introdueix una lligadura d’unió escrivint el símbol de la titlla
corba (~) després de la primera de cada parella de notes
que es volen unir. Això indica que la nota s’uneix a la següent,
que ha de tenir la mateixa altura.
{ a'2~ 4~ 16 r r8 }
Les lligadures d’unió poden fer ús de la interpretació ‘última altura explícita’ per a les duracions aïllades:
{ a'2~ 4~ 16 r r8 }
Es fan servir lligadures d’unió o bé quan la nota travessa la barra de compàs o bé quan no es poden usar puntets per denotar el ritme. També s’han d’usar lligadures quan les notes travessen subdivisions del compàs de major duració:
\relative {
r8^"sí" c'~ 2 r4 |
r8^"no" c2~ 8 r4
}
Si ens calen lligar moltes notes a través de les línies divisòries, ens podria resultar més fàcil utilitzar la divisió automàtica de les notes, vegeu Divisió automàtica de les notes. Aquest mecanisme divideix automàticament les notes llargues i les lliga a través de les barres de compàs.
Quan s’aplica una lligadura d’unió a un acord, es connecten tots els caps de les notes les altures de les quals coincideixen. Si no coincideix cap parell de caps, no es crea cap lligadura. Els acords es poden lligar parcialment col·locant les lligadures dins de l’acord.
\relative c' {
<c e g>2~ 2 |
<c e g>4~ <c e g c>
<c~ e g~ b> <c e g b> |
}
Quan la segona vegada d’una repetició comença amb una nota lligada, cal especificar la lligadura repetida com segueix:
\relative {
\repeat volta 2 { c'' g <c e>2~ }
\alternative {
% Primera alternativa: la nota següent es lliga normalment
{ <c e>2. r4 }
% Segona alternativa: la nota següent té una lligadura repetida
{ <c e>2\repeatTie d4 c }
}
}
Les lligadures L.v. (laissez vibrer, deixar vibrar) indiquen que les notes no es poden apagar al final. S’usen en la notació per a piano, arpa i altres instruments de corda i percussió. Es poden introduir de la manera següent:
<c' f' g'>1\laissezVibrer
És possible fer manualment que les lligadures d’unió es corbin cap amunt o cap avall; vegeu placement Direcció i posició.
Es pot fer que les lligadures d’expressió siguin discontínues, puntejades o un combinació de contínues i discontínues.
\relative c' {
\tieDotted
c2~ 2
\tieDashed
c2~ 2
\tieHalfDashed
c2~ 2
\tieHalfSolid
c2~ 2
\tieSolid
c2~ 2
}
Es poden especific patrons de discontinuïtat personalitzats:
\relative c' {
\tieDashPattern #0.3 #0.75
c2~ 2
\tieDashPattern #0.7 #1.5
c2~ 2
\tieSolid
c2~ 2
}
Les definicions de patrons de discontinuïtat per a les lligadures d’unió tenen la mateixa estructura que les definicions de patrons de discontinuïtat per a les lligadures d’expressió. Per veure més informació sobre els patrons de discontinuïtat complexos, consulteu els fragments de codi sota Lligadures d’expressió.
Sobreescriviu les propietats de disposició whiteout i layer dels objectes que poden causar una discontinuïtat en les lligadures d’unió.
\relative {
\override Tie.layer = #-2
\override Staff.TimeSignature.layer = #-1
\override Staff.KeySignature.layer = #-1
\override Staff.TimeSignature.whiteout = ##t
\override Staff.KeySignature.whiteout = ##t
b'2 b~
\time 3/4
\key a \major
b r4
}
Instruccions predefinides
\tieUp,
\tieDown,
\tieNeutral,
\tieDotted,
\tieDashed,
\tieDashPattern,
\tieHalfDashed,
\tieHalfSolid,
\tieSolid.
Fragments de codi seleccionats
Using ties with arpeggios
Ties are sometimes used to write out arpeggios. In this case, two tied
notes need not be consecutive. This can be achieved by setting the
tieWaitForNote property to #t. The same feature is also
useful, for example, to tie a tremolo to a chord, but in principle, it
can also be used for ordinary consecutive notes.
\relative c' {
\set tieWaitForNote = ##t
\grace { c16[ ~ e ~ g] ~ } <c, e g>2
\repeat tremolo 8 { c32 ~ c' ~ } <c c,>1
e8 ~ c ~ a ~ f ~ <e' c a f>2
\tieUp
c8 ~ a
\tieDown
\tieDotted
g8 ~ c g2
}
Engraving ties manually
Ties may be engraved manually by changing the tie-configuration
property of the TieColumn object. The first number indicates the
distance from the center of the staff in half staff-spaces, and the
second number indicates the direction (1 = up, -1 = down).
\relative c' {
<c e g>2~ <c e g>
\override TieColumn.tie-configuration =
#'((0.0 . 1) (-2.0 . 1) (-4.0 . 1))
<c e g>2~ <c e g>
}
Vegeu també
Glossari musical: tie, laissez vibrer.
Referència de la notació: Lligadures d’expressió, Divisió automàtica de les notes.
Fragments de codi: slurs, Rhythms.
Referència de funcionament interno: LaissezVibrerTie, LaissezVibrerTieColumn, TieColumn, Tie.
Advertiments i problemes coneguts
Un canvi de pentagrama quan hi ha una lligadura activa no produirà una lligadura inclinada.
Els canvis de clau o d’octava durant una lligadura d’unió no estan ben definits realment. En aquests casos pot ser preferible una lligadura d’expressió.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Lligadures d'unió ] | [ Amunt : Duracions ] | [ Silencis > ] | ||
1.2.2 Escriptura dels silencis
Els silencis s’escriuen com a part de la música dins de les expressions musicals.
| Silencis | ||
| Silencis invisibles | ||
| Silencis de compas complet |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Escriptura dels silencis ] | [ Amunt : Escriptura dels silencis ] | [ Silencis invisibles > ] | ||
Silencis
Els silencis s’introdueixen com a notes amb el nom r. Les
duracions majors que la rodona utilitzen les instruccions
predefinides que es mostren aquí:
\new Staff {
% Aquestes dues línies sols son per embellir aquest exemple
\time 16/1
\omit Staff.TimeSignature
% Imprimeix un silenci de maxima, igual a quatre breves
r\maxima
% Imprimeix un silenci de longa, igual a dos breves
r\longa
% Imprimeix un silenci de breve
r\breve
r1 r2 r4 r8 r16 r32 r64 r128
}
Els silencis d’un compàs, centrats en mig del compàs, s’han de fer amb silencis multicompàs. Es poden usar per un sol compàs així com per a molts compassos, i s’estudien a Silencis de compas complet.
Per especificar explícitament la posició vertical d’un silenci,
escriviu una nota seguida de \rest. Es col·locarà un
silenci en la posició en la qual hauria d’aparèixer la nota. Això
possibilita l’aplicació manual precisa de format a la música
polifònica, ja que el gravador automàtic de col·lisions de
silencis no mou aquests silencis.
\relative { a'4\rest d4\rest }
Fragments de codi seleccionats
Rest styles
Rests may be used in various styles.
\new Staff \relative c {
\omit Score.TimeSignature
\cadenzaOn
\override Staff.Rest.style = #'mensural
r\maxima^\markup \typewriter { mensural }
r\longa r\breve r1 r2 r4 r8 r16 s32 s64 s128 s128
\bar ""
\break
\override Staff.Rest.style = #'neomensural
r\maxima^\markup \typewriter { neomensural }
r\longa r\breve r1 r2 r4 r8 r16 s32 s64 s128 s128
\bar ""
\break
\override Staff.Rest.style = #'classical
r\maxima^\markup \typewriter { classical }
r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 s128
\bar ""
\break
\override Staff.Rest.style = #'z
r\maxima^\markup \typewriter { z-style }
r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 s128
\bar ""
\break
\override Staff.Rest.style = #'default
r\maxima^\markup \typewriter { default }
r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 s128
}
Vegeu també
Glossari musical: breve, longa, maxima.
Referència de la notació: Silencis de compas complet.
Fragments de codi: Rhythms.
Referencia de funcionament interno: Rest.
Advertiments i problemes coneguts
No hi ha un límit fonamental respecte de les duracions dels silencis (tant per al més curt com per al més llarg), però el nombre de glifs és limitat: hi ha silencis des de la garrapatea (128) fins la màxima (8 rodones).
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Silencis ] | [ Amunt : Escriptura dels silencis ] | [ Silencis de compàs complet > ] | ||
Silencis invisibles
Un silenci invisible (també conegut com ‘skip’ o desplaçament)
es pot introduir com una nota amb el nom s:
\relative c'' {
c4 c s c |
s2 c |
}
Els silencis de separació sols estan disponible en el mode de
notes i en el mode d’acords. En altres situacions, per exemple,
quan s’introdueix la lletra, s’usa l’ordre \skip per
produir un desplaçament d’una certa magnitud temporal.
\skip requereix una duració explícita, però s’ignora si les
síl·labes de la lletra agafen les seves duracions de les notes
d’una melodia associada, a través de \addlyrics o de
\lyricsto.
<<
{
a'2 \skip2 a'2 a'2
}
\new Lyrics {
\lyricmode {
foo2 \skip 1 bla2
}
}
>>
Atès que \skip es una ordre, no afecta a les duracions per
omissió de les notes següents, a diferència de s.
<<
{
\repeat unfold 8 { a'4 }
}
{
a'4 \skip 2 a' |
s2 a'
}
>>
Un silenci de separació produeix implícitament contextos
Staff i Voice si no hi ha cap, igual que les notes i
els silencis normals:
{ s1 s s }
\skip tan sols desplaça un temps musical; no produeix cap
sortida, de cap classe.
% Això és entrada valida, però no fa res
{ \skip 1 \skip1 \skip 1 }
Vegeu també
Manual de aprenentatge: Visibilitat i color dels objectes.
Referència de la notació: Notes ocultes, Visibilitat dels objectes.
Fragments de codi: Rhythms.
Referència de funcionament intern: SkipMusic.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Silencis invisibles ] | [ Amunt : Escriptura dels silencis ] | [ Impressió de les duracions > ] | ||
Silencis de compas complet
Els silencis d’un o més compassos complets s’introdueixen com a
notes amb el nom R en majúscula:
% Compassos de silencis contrets a un compàs únic
\compressMMRests {
R1*4
R1*24
R1*4
b'2^"Tutti" b'4 a'4
}
La duració dels silencis de compàs complet és idèntica a la notació de la duració que s’usa per a les notes. La duració d’un silenci multicompàs ha de ser sempre un nombre enter de compassos, per la qual cosa freqüentment s’han d’utilitzar puntets o fraccions:
\compressMMRests {
\time 2/4
R1 | R2 |
\time 3/4
R2. | R2.*2 |
\time 13/8
R1*13/8 | R1*13/8*12 |
\time 10/8
R4*5*4 |
}
Un silenci d’un compàs complet s’imprimeix com un silenci de rodona o de breve, centrat en el compàs, segons el tipus de compàs vigent.
\time 4/4 R1 | \time 6/4 R1*3/2 | \time 8/4 R1*2 |
De forma predeterminada un silenci multicompàs s’expandeix en la partitura impresa per mostrar explícitament tots els compassos de silenci. De forma alternativa, un silenci multicompàs es pot presentar com un sols compàs que conté un símbol de silenci multicompàs, amb el nombre de compassos imprès sobre el compàs:
% Default behavior
\time 3/4 r2. | R2.*2 |
\time 2/4 R2 |
\time 4/4
% Rest measures contracted to single measure
\compressMMRests {
r1 | R1*17 | R1*4 |
}
% Rest measures expanded again
\time 3/4
R2.*2 |
Es poden afegir elements de marcatge als silencis multicompàs. Es
proporciona l’ordre predefinida \fermataMarkup per afegir
calderons.
\compressMMRests {
\time 3/4
R2.*10^\markup { \italic "ad lib." }
R2.^\fermataMarkup
}
Nota: Els elements de marcatge que s’afegeixen a un silenci
multicompàs són objectes del tipus MultiMeasureRestText, no
TextScript. Les sobreescriptures de propietats han d’anar
dirigides cap a l’objecte correcte, o s’ignoraran. Vegeu
l’exemple següent:
% Això no funciona, atès que s'especifica el nom incorrecte d'objecte \override TextScript.padding = #5 R1^"wrong" % Aquest és el nom d'objecte correcte que s'ha d'especificar \override MultiMeasureRestText.padding = #5 R1^"right"
Quan un silenci multicompàs segueix immediatament a l’establiment
d’un compàs parcial amb \partial, és possible que no es
mostrin els advertiments corresponents de comprovació de compàs.
Instruccions predefinides
\textLengthOn,
\textLengthOff,
\fermataMarkup,
\compressMMRests.
Fragments de codi seleccionats
Changing form of multi-measure rests
If there are ten or fewer measures of rests, a series of longa and
breve rests (called in German “Kirchenpausen” - church rests) is
printed within the staff; otherwise a simple line is shown. This
default number of ten may be changed by overriding the
expand-limit property.
\relative c'' {
\compressMMRests {
R1*2 | R1*5 | R1*9
\override MultiMeasureRest.expand-limit = #3
R1*2 | R1*5 | R1*9
}
}
Positioning multi-measure rests
Unlike ordinary rests, there is no predefined command to change the staff position of a multi-measure rest symbol of either form by attaching it to a note. However, in polyphonic music multi-measure rests in odd-numbered and even-numbered voices are vertically separated. The positioning of multi-measure rests can be controlled as follows:
\relative c'' {
% Multi-measure rests by default are set under the fourth line
R1
% They can be moved using an override
\override MultiMeasureRest.staff-position = #-2
R1
\override MultiMeasureRest.staff-position = #0
R1
\override MultiMeasureRest.staff-position = #2
R1
\override MultiMeasureRest.staff-position = #3
R1
\override MultiMeasureRest.staff-position = #6
R1
\revert MultiMeasureRest.staff-position
\break
% In two Voices, odd-numbered voices are under the top line
<< { R1 } \\ { a1 } >>
% Even-numbered voices are under the bottom line
<< { a1 } \\ { R1 } >>
% Multi-measure rests in both voices remain separate
<< { R1 } \\ { R1 } >>
% Separating multi-measure rests in more than two voices
% requires an override
<< { R1 } \\ { R1 } \\
\once \override MultiMeasureRest.staff-position = #0
{ R1 }
>>
% Using compressed bars in multiple voices requires another override
% in all voices to avoid multiple instances being printed
\compressMMRests
<<
\revert MultiMeasureRest.direction
{ R1*3 }
\\
\revert MultiMeasureRest.direction
{ R1*3 }
>>
}
Multi-measure rest markup
Markups attached to a multi-measure rest will be centered above or below it. Long markups attached to multi-measure rests do not cause the measure to expand. To expand a multi-measure rest to fit the markup, use an empty chord with an attached markup before the multi-measure rest.
Text attached to a spacer rest in this way is left-aligned to the position where the note would be placed in the measure, but if the measure length is determined by the length of the text, the text will appear to be centered.
\relative c' {
\compressMMRests {
\textLengthOn
<>^\markup { [MAJOR GENERAL] }
R1*19
<>_\markup { \italic { Cue: ... it is yours } }
<>^\markup { A }
R1*30^\markup { [MABEL] }
\textLengthOff
c4^\markup { CHORUS } d f c
}
}
Vegeu també
Glossari musical: multi-measure rest.
Referència de la notació: Duracions, Text, Donar format al text, Scripts de text.
Fragments de codi: Rhythms.
Referència de funcionament intern: MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestText.
Advertiments i problemes coneguts
En les digitacions a sobre silencis multicompàs
(per exemple, R1*10-4), la xifra de la digitació pot xocar
amb el número del compàs.
No hi ha cap manera de condensar automàticament molts silencis en un sols silenci multicompàs.
Els silencis multicompàs no estan involucrats en les col·lisiones de silencis.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Silencis de compàs complet ] | [ Amunt : Duracions ] | [ Indicació de compàs > ] | ||
1.2.3 Impressió de les duracions
| Indicació de compàs | ||
| Indicacions metronòmiques | ||
| Anacrusis | ||
| Música sense compassos | ||
| Notació polimètrica | ||
| Divisió automàtica de les notes | ||
| Mostrar els ritmes de la melodia |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Impressió de les duracions ] | [ Amunt : Impressió de les duracions ] | [ Indicacions metronòmiques > ] | ||
Indicació de compàs
La indicació de compàs s’estableix como segueix:
\time 2/4 c''2 \time 3/4 c''2.
Se estudien els canvis d’indicació de compàs al mig d’un compàs a Anacrusis.
La indicació de compàs s’imprimeix al començament d’una peça i sempre que hi hagi un canvi de compàs. Si es produeix un canvi al final d’una línia, s’imprimeix una indicació d’advertiment a aquest lloc. Es pot modificar aquest comportament predeterminat, vegeu Visibilitat dels objectes
\relative c'' {
\time 2/4
c2 c
\break
c c
\break
\time 4/4
c c c c
}
El símbol de compàs que s’usa 2/2 i 4/4 es pot canviar a un estil numèric:
\relative c'' {
% Estil predeterminat
\time 4/4 c1
\time 2/2 c1
% Canvia a estil numèric
\numericTimeSignature
\time 4/4 c1
\time 2/2 c1
% Torna al estil predeterminat
\defaultTimeSignature
\time 4/4 c1
\time 2/2 c1
}
Les indicacions de compàs de la música mensural s’estudien a Indicacions de compàs de la música mensural.
A més d’ajustar la indicació de compàs que s’imprimeix, l’ordre
\time estableix els valors de les propietats basades en el
tipus de compàs baseMoment, beatStructure i
beamExceptions. Els valors predefinits d’aquestes
propietats estan a
‘scm/time-signature-settings.scm’.
El valor predeterminat de beatStructure pot sobreescriure’s
dins de la pròpia ordre \time escrivint-lo com a primer
argument opcional:
\score {
\new Staff {
\relative {
\time 2,2,3 7/8
\repeat unfold 7 { c'8 } |
\time 3,2,2 7/8
\repeat unfold 7 { c8 } |
}
}
}
De forma alternativa, els valors predeterminats de totes aquestes
variables basades en la indicació de compàs, incloses
baseMoment i beamExceptions, es poden establir totes
a l’hora. Els valors es poden fixar independentment per a
diversos tipus de compàs diferents. Els nous valors tenen efecte
quan s’executa una ordre \time posterior amb el mateix
valor del tipus de compàs:
\score {
\new Staff {
\relative c' {
\overrideTimeSignatureSettings
4/4 % timeSignatureFraction
1/4 % baseMomentFraction
3,1 % beatStructure
#'() % beamExceptions
\time 4/4
\repeat unfold 8 { c8 } |
}
}
}
\overrideTimeSignatureSettings pren quatre arguments:
-
timeSignatureFraction, una fracció que descriu el tipus de compàs al que s’apliquen aquests valors. -
baseMomentFraction, una fracció que conté el numerador i denominador de la unitat de mesura bàsica d’aquest tipus de compàs. -
beatStructure, una llista d’Scheme que indica l’estructura de les pulsacions del compàs, en unitats del moment base. -
beamExceptions, una llista-A que conté qualssevol regles de barrat per al tipus de compàs que vagin més enllà d’acabar de cada pulsació, com es descriu a Establir el comportament de les barres automàtiques.
Els valors modificats de les propietats predeterminades del tipus de compàs es poden restaurar als valors originals:
\score{
\relative {
\repeat unfold 8 { c'8 } |
\overrideTimeSignatureSettings
4/4 % timeSignatureFraction
1/4 % baseMomentFraction
3,1 % beatStructure
#'() % beamExceptions
\time 4/4
\repeat unfold 8 { c8 } |
\revertTimeSignatureSettings 4/4
\time 4/4
\repeat unfold 8 { c8 } |
}
}
Es poden establir diferents valors de les propietats
predeterminades del tipus de compàs per als diferents pentagrames
movent el Timing_translator i el
Default_bar_line_engraver del context Score al
context Staff.
\score {
\new StaffGroup <<
\new Staff {
\overrideTimeSignatureSettings
4/4 % timeSignatureFraction
1/4 % baseMomentFraction
3,1 % beatStructure
#'() % beamExceptions
\time 4/4
\repeat unfold 8 {c''8}
}
\new Staff {
\overrideTimeSignatureSettings
4/4 % timeSignatureFraction
1/4 % baseMomentFraction
1,3 % beatStructure
#'() % beamExceptions
\time 4/4
\repeat unfold 8 {c''8}
}
>>
\layout {
\context {
\Score
\remove "Timing_translator"
\remove "Default_bar_line_engraver"
}
\context {
\Staff
\consists "Timing_translator"
\consists "Default_bar_line_engraver"
}
}
}
Un altre mètode per a canviar aquestes variables relacionades amb el tipus de compàs, que impedeix la reimpressió de la indicació de compàs en el moment del canvi, es mostra a Establir el comportament de les barres automàtiques.
Instruccions predefinides
\numericTimeSignature,
\defaultTimeSignature.
Fragments de codi seleccionats
Time signature printing only the numerator as a number (instead of the fraction)
Sometimes, a time signature should not print the whole fraction (e.g.
7/4), but only the numerator (7 in this case). This can be easily done
by using \override Staff.TimeSignature.style = #'single-digit
to change the style permanently. By using \revert
Staff.TimeSignature.style, this setting can be reversed. To apply the
single-digit style to only one time signature, use the
\override command and prefix it with a \once.
\relative c'' {
\time 3/4
c4 c c
% Change the style permanently
\override Staff.TimeSignature.style = #'single-digit
\time 2/4
c4 c
\time 3/4
c4 c c
% Revert to default style:
\revert Staff.TimeSignature.style
\time 2/4
c4 c
% single-digit style only for the next time signature
\once \override Staff.TimeSignature.style = #'single-digit
\time 5/4
c4 c c c c
\time 2/4
c4 c
}
Vegeu també
Glossari musical: time signature
Referència de la notació: Indicacions de compàs de la música mensural, Establir el comportament de les barres automàtiques, Gestió del temps.
Fitxers instal·lats ‘scm/time-signature-settings.scm’.
Fragments de codi: Rhythms.
Referència de funcionament intern: TimeSignature, Timing_translator.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Indicació de compàs ] | [ Amunt : Impressió de les duracions ] | [ Anacrusis > ] | ||
Indicacions metronòmiques
És molt senzill escriure una indicació metronòmica bàsica:
\relative {
\tempo 4 = 120
c'2 d
e4. d8 c2
}
També es poden imprimir indicacions metronòmiques com un interval entre dos números:
\relative {
\tempo 4 = 40 - 46
c'4. e8 a4 g
b,2 d4 r
}
Es poden usar indicacions de tempo amb text:
\relative {
\tempo "Allegretto"
c''4 e d c
b4. a16 b c4 r4
}
La combinació d’una indicació metronòmica i un text fa que la marca de metrònom es tanqui entre parèntesis automàticament:
\relative {
\tempo "Allegro" 4 = 160
g'4 c d e
d4 b g2
}
En general, el text pot ser qualsevol objecte de marcatge:
\relative {
\tempo \markup { \italic Faster } 4 = 132
a'8-. r8 b-. r gis-. r a-. r
}
Es pot escriure una indicació metronòmica entre parèntesis sens cap indicació textual, escrivint una cadena buida a l’entrada:
\relative {
\tempo "" 8 = 96
d''4 g e c
}
A una particel·la d’un instrument amb períodes de silenci llargs,
en ocasions es succeeixen molt a prop diferents indicacions de
tempo. L’ordre \markLengthOn aporta un espai horitzontal
addicional per evitar que les indicacions de temps se superposin,
i \markLengthOff restableix el comportament predeterminat
d’ignorar les indicacions de tempo per a l’espaiat horitzontal.
\compressMMRests {
\markLengthOn
\tempo "Molto vivace"
R1*12
\tempo "Meno mosso"
R1*16
\markLengthOff
\tempo "Tranquillo"
R1*20
}
Fragments de codi seleccionats
Printing metronome and rehearsal marks below the staff
By default, metronome and rehearsal marks are printed above the staff.
To place them below the staff simply set the direction property
of MetronomeMark or RehearsalMark appropriately.
\layout {
indent = 0
ragged-right = ##f
}
{
% Metronome marks below the staff
\override Score.MetronomeMark.direction = #DOWN
\tempo 8. = 120
c''1
% Rehearsal marks below the staff
\override Score.RehearsalMark.direction = #DOWN
\mark \default
c''1
}
Changing the tempo without a metronome mark
To change the tempo in MIDI output without printing anything, make the metronome mark invisible.
\score {
\new Staff \relative c' {
\tempo 4 = 160
c4 e g b
c4 b d c
\set Score.tempoHideNote = ##t
\tempo 4 = 96
d,4 fis a cis
d4 cis e d
}
\layout { }
\midi { }
}
Creating metronome marks in markup mode
New metronome marks can be created in markup mode, but they will not change the tempo in MIDI output.
\relative c' {
\tempo \markup {
\concat {
(
\smaller \general-align #Y #DOWN \note #"16." #1
" = "
\smaller \general-align #Y #DOWN \note #"8" #1
)
}
}
c1
c4 c' c,2
}
Para veure més detalls, consulteu Donar format al text.
Vegeu també
Glossari musical: metronome, metronomic indication, tempo indication, metronome mark.
Referència de la notació: Donar format al text, Creació de sortida MIDI.
Fragments de codi: Staff notation.
Referència de funcionament intern:: MetronomeMark.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Indicacions metronòmiques ] | [ Amunt : Impressió de les duracions ] | [ Música sense compassos > ] | ||
Anacrusis
Els compassos parcials com les anacrusis o parts en
començar s’escriuen usant l’ordre \partial:
\partial duración
Quan s’usa \partial al principi de la partitura,
duració és el temps d’anacrusis, la longitud de la
música que precedeix al primer compàs.
\relative {
\time 3/4
\partial 4.
r4 e'8 | a4 c8 b c4 |
}
Quan s’usa \partial després del començament de la
partitura, duració és la longitud restant
del compàs actual. No crea un nou compàs amb numeració.
\relative {
\set Score.barNumberVisibility = #all-bar-numbers-visible
\override Score.BarNumber.break-visibility =
#end-of-line-invisible
\time 9/8
d''4.~ 4 d8 d( c) b | c4.~ 4. \bar "||"
\time 12/8
\partial 4.
c8( d) e | f2.~ 4 f8 a,( c) f |
}
L’ordre \partial és necessària quan canvia la
indicació de compàs en mig d’un compàs, però també pot usar-se
sol.
\relative {
\set Score.barNumberVisibility = #all-bar-numbers-visible
\override Score.BarNumber.break-visibility =
#end-of-line-invisible
\time 6/8
\partial 8
e'8 | a4 c8 b[ c b] |
\partial 4
r8 e,8 | a4 \bar "||"
\partial 4
r8 e8 | a4
c8 b[ c b] |
}
L’ordre \partial fixa la propietat
Timing.measurePosition, que és un nombre racional que
indica quant temps ha transcorregut dins del compàs actual.
Vegeu també
Glossari musical: anacrusis.
Referència de la notació: Notes d’adorn.
Fragments de codi: Rhythms.
Referència de funcionament intern: Timing_translator.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Anacrusis ] | [ Amunt : Impressió de les duracions ] | [ Notació polimètrica > ] | ||
Música sense compassos
En la música mesurada s’insereixen línies divisòries i es calculen
els números de compàs automàticament. A la música sense metre (és
a dir, cadències) això no és desitjable i es pot ‘desactivar’
usant l’ordre \cadenzaOn, per després ‘reactivar-lo’ en
el lloc adequat usant \cadenzaOff.
\relative c'' {
c4 d e d
\cadenzaOn
c4 c d8[ d d] f4 g4.
\cadenzaOff
\bar "|"
d4 e d c
}
La numeració de compassos es continua al final de la cadència.
\relative c'' {
% Mostra tots els números de barra
\override Score.BarNumber.break-visibility = #all-visible
c4 d e d
\cadenzaOn
c4 c d8[ d d] f4 g4.
\cadenzaOff
\bar "|"
d4 e d c
}
En inserir una ordre \bar dins d’una cadència no s’inicia
un compàs nou, fins i tot que s’imprimeixi una línia divisòria.
Així doncs, les alteracions accidentals (l’efecte de les quals se
suposa que roman fins al final del compàs) seran vàlides encara
després de la línia divisòria que s’imprimeix per part de
\bar. Si es volen imprimir alteracions accidentals
posteriors tindran que inserir-se manualment alteracions forçades
o de cortesia, vegeu Alteracions accidentals.
\relative c'' {
c4 d e d
\cadenzaOn
cis4 d cis d
\bar "|"
% El primer cis s'imprimeix sense alteració fins i tot si està després de un \bar
cis4 d cis! d
\cadenzaOff
\bar "|"
}
El barat automàtic es desactiva mitjançant \cadenzaOn.
Per tant, tot el barrat en les cadències s’ha d’introduir
manualment. Vegeu Barres manuals.
\relative {
\repeat unfold 8 { c''8 }
\cadenzaOn
cis8 c c c c
\bar"|"
c8 c c
\cadenzaOff
\repeat unfold 8 { c8 }
}
Aquestes ordres predefinides afecten a totes les pautes de la
partitura, tot i que apareguin en un sol context Voice.
Per canviar això, traslladeu el Timing_translator del
context Score al context Staff, Vegeu
Notació polimètrica.
Instruccions predefinides
\cadenzaOn,
\cadenzaOff.
Vegeu també
Glossari musical: cadenza.
Referència de la notació: Visibilitat dels objectes, Notació polimètrica, Barres manuals, Alteracions accidentals.
Fragments de codi: Rhythms.
Advertiments i problemes coneguts
Sols s’insereixen salts de línia i de pàgina automàticament en les línies divisòries, per la qual cosa cal inserir manualment línies divisòries ‘invisibles’ en fragments llargs de música sense mesurar per permetre els salts:
\bar ""
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Música sense compassos ] | [ Amunt : Impressió de les duracions ] | [ Divisió automàtica de les notes > ] | ||
Notació polimètrica
Està contemplada la notació polimètrica, ja sigui explícitament o mitjançant la modificació manual de la indicació visible del compàs i/o l’escalat de la duració de les notes.
Pentagrames amb diferents indicacions de compàs i compassos d’igual longitud
Establiu una indicació de copàs comuna per a cada pentagrama, i
fixeu timeSignatureFraction a la fracció desitjada.
Després useu la funció \scaleDurations per escalar les
duracions de les notes a cada pauta a la indicació de compàs comú.
Al següent exemple, s’usa en paral·lel música amb compassos de 3/4, 9/8 i 10/8. Al segon pentagrama, les duracions mostrades es multipliquen per 2/3 (atès que 2/3 * 9/8 = 3/4), i en el tercer pentagrama, les duracions que es mostren estan multiplicades per 3/5 (atès que 3/5 * 10/8 = 3/4). Amb freqüència haurà que inserir les barres de forma manual, atès que l’escalat de les duracions afecta a les regles de barrat automàtic.
\relative <<
\new Staff {
\time 3/4
c'4 c c |
c4 c c |
}
\new Staff {
\time 3/4
\set Staff.timeSignatureFraction = 9/8
\scaleDurations 2/3
\repeat unfold 6 { c8[ c c] }
}
\new Staff {
\time 3/4
\set Staff.timeSignatureFraction = 10/8
\scaleDurations 3/5 {
\repeat unfold 2 { c8[ c c] }
\repeat unfold 2 { c8[ c] } |
c4. c \tuplet 3/2 { c8[ c c] } c4
}
}
>>
Pentagrames amb diferents indicacions de compàs i longituds de compàs diferents
Es pot donar a cada pentagrama la seva pròpia indicació de compàs
independent traslladant els gravadors Timing_translator
i Default_bar_line_engraver al context de Staff.
\layout {
\context {
\Score
\remove "Timing_translator"
\remove "Default_bar_line_engraver"
}
\context {
\Staff
\consists "Timing_translator"
\consists "Default_bar_line_engraver"
}
}
% Ara cada pentagrama té la seva pròpia indicació de temps
\relative <<
\new Staff {
\time 3/4
c'4 c c |
c4 c c |
}
\new Staff {
\time 2/4
c4 c |
c4 c |
c4 c |
}
\new Staff {
\time 3/8
c4. |
c8 c c |
c4. |
c8 c c |
}
>>
Indicacions de compàs compost
Es creen usant la funció \compoundMeter. La sintaxi és:
\compoundMeter #'(llista de llistes)
La construcció més simple és una llista única, en la qual l’últim número indica el denominador de la indicació de compàs i les anteriors són els numeradors.
\relative {
\compoundMeter #'((2 2 2 8))
\repeat unfold 6 c'8 \repeat unfold 12 c16
}
Es poden construir compassos més complexos utilitzant llistes addicionals. Així mateix, els ajustos de barrat s’ajustaran depenent dels valors.
\relative {
\compoundMeter #'((1 4) (3 8))
\repeat unfold 5 c'8 \repeat unfold 10 c16
}
\relative {
\compoundMeter #'((1 2 3 8) (3 4))
\repeat unfold 12 c'8
}
Vegeu també
Glossari musical: polymetric, polymetric time signature, meter.
Referència de la notació: Barres automàtiques, Barres manuals, Indicació de compàs, Escalat de les duracions.
Fragments de codi: Rhythms.
Referència de funcionament intern: TimeSignature, Timing_translator, Default_bar_line_engraver, Staff.
Advertiments i problemes coneguts
En usar diferents compassos en paral·lel, les notes que estiguin en el mateix instant de temps es col·loquen en la mateixa posició horitzontal. Tanmateix, les barres de compàs als diferents pentagrames faran que l’espaiat de notes sigui menys regular en cada pentagrama individual del que seria normal sense les diferents indicacions de compàs.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Notació polimètrica ] | [ Amunt : Impressió de les duracions ] | [ Mostrar els ritmes de la melodia > ] | ||
Divisió automàtica de les notes
Les notes llargues es poden convertir automàticament en notes
lligades. Es fa mitjançant la substitució de
Note_heads_engraver per
Completion_heads_engraver. De forma semblant, els silencis
llargs que sobrepassen línies de compàs es divideixen
automàticament substituint el gravador Rest_engraver amb el
gravador Completion_rest_engraver. A l’exemple següent,
les notes i els silencis que travessen la barra de compàs es
divideixen, i a més les notes s’uneixen mitjançant una lligadura.
\new Voice \with {
\remove "Note_heads_engraver"
\consists "Completion_heads_engraver"
\remove "Rest_engraver"
\consists "Completion_rest_engraver"
}
\relative {
c'2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2 r1*2
}
Aquests gravadors divideixen totes les notes i silencis llargs en la barra de compàs, e insereix lligadures en les notes. Un dels seus usos és depurar partitures complexes: si els compassos no estan complets, les lligadures mostraran exactament quant li falta a cada compàs.
La propietat completionUnit fixa una duració preferida per
a les notes dividides.
\new Voice \with {
\remove "Note_heads_engraver"
\consists "Completion_heads_engraver"
} \relative {
\time 9/8 g\breve. d''4. \bar "||"
\set completionUnit = #(ly:make-moment 3 8)
g\breve. d4.
}
Aquests gravadors divideixen les notes que tenen la duració escalada, com la dels tresets, en notes que tenen el mateix factor d’escala que la nota original de l’entrada.
\new Voice \with {
\remove "Note_heads_engraver"
\consists "Completion_heads_engraver"
} \relative {
\time 2/4 r4
\tuplet 3/2 {g'4 a b}
\scaleDurations 2/3 {g a b}
g4*2/3 a b
\tuplet 3/2 {g4 a b}
r4
}
Vegeu també
Glossari musical: tie
Manual d’aprenentatge: Explicació dels gravadors, Afegir i eliminar gravadors
Fragments de codi: Rhythms.
Referència de funcionament intern: Note_heads_engraver, Completion_heads_engraver, Rest_engraver, Completion_rest_engraver, Forbid_line_break_engraver.
Advertiments i problemes coneguts
Per consistència amb el comportament anterior, les notes i
silencis que tenen un duració major d’un compàs, com
c1*2, es divideixen en notes sense cap factor d’escala,
{ c1 c1 }. La propietat completionFactor controla
aquest comportament, i en donar-li el valor #f podem fer
que les notes i silencis dividits tinguin el mateix factor
d’escala que les duracions de les notes originals de l’entrada.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Divisió automàtica de les notes ] | [ Amunt : Impressió de les duracions ] | [ Barres > ] | ||
Mostrar els ritmes de la melodia
En algunes ocasiones volem mostrar solament el ritme d’una melodia. Això es pot fer amb un pentagrama de ritme. Totes les altures de les notes es converteixen en barres inclinades, i el pentagrama te una sola línia:
<<
\new RhythmicStaff {
\new Voice = "myRhythm" \relative {
\time 4/4
c'4 e8 f g2
r4 g g f
g1
}
}
\new Lyrics {
\lyricsto "myRhythm" {
This is my song
I like to sing
}
}
>>
Les taules d’acords de guitarra ofereixen sovint els ritmes
d’acompanyament. Això es pot fer amb el gravador
Pitch_squash_engraver i \improvisationOn.
<<
\new ChordNames {
\chordmode {
c1 f g c
}
}
\new Voice \with {
\consists "Pitch_squash_engraver"
} \relative c'' {
\improvisationOn
c4 c8 c c4 c8 c
f4 f8 f f4 f8 f
g4 g8 g g4 g8 g
c4 c8 c c4 c8 c
}
>>
Instruccions predefinides
\improvisationOn,
\improvisationOff.
Fragments de codi seleccionats
Guitar strum rhythms
For guitar music, it is possible to show strum rhythms, along with melody notes, chord names and fret diagrams.
\include "predefined-guitar-fretboards.ly"
<<
\new ChordNames {
\chordmode {
c1 | f | g | c
}
}
\new FretBoards {
\chordmode {
c1 | f | g | c
}
}
\new Voice \with {
\consists "Pitch_squash_engraver"
} {
\relative c'' {
\improvisationOn
c4 c8 c c4 c8 c
f4 f8 f f4 f8 f
g4 g8 g g4 g8 g
c4 c8 c c4 c8 c
}
}
\new Voice = "melody" {
\relative c'' {
c2 e4 e4
f2. r4
g2. a4
e4 c2.
}
}
\new Lyrics {
\lyricsto "melody" {
This is my song.
I like to sing.
}
}
>>
Vegeu també
Fragments de codi: Rhythms.
Referència de funcionament intern: RhythmicStaff, Pitch_squash_engraver.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Mostrar els ritmes de la melodia ] | [ Amunt : Duracions ] | [ Barres automàtiques > ] | ||
1.2.4 Barres
| Barres automàtiques | ||
| Establir el comportament de les barres automàtiques | ||
| Barres manuals | ||
| Barres progressives |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Barres ] | [ Amunt : Barres ] | [ Establir el comportament de les barres automàtiques > ] | ||
Barres automàtiques
De manera predeterminada, las barres de corxera s’insereixen automàticament:
\relative c'' {
\time 2/4 c8 c c c
\time 6/8 c8 c c c8. c16 c8
}
Quan aquestes decisions automàtiques no són prou bones, es poden escriure els barrats de forma explícita; vegeu Barres manuals. Les barres s’han d’introduir manualment si es volen estendre per sobre els silencis.
Si no cal el barrat automàtic, es pot desactivar amb
\autoBeamOff i activar-se amb \autoBeamOn:
\relative c' {
c4 c8 c8. c16 c8. c16 c8
\autoBeamOff
c4 c8 c8. c16 c8.
\autoBeamOn
c16 c8
}
Nota: Si s’usen barres per indicar els melismes de les cançons,
aleshores s’ha de desactivar el barrat automàtic amb
\autoBeamOff i indicar les barres manualment. La
utilització de \partcombine amb \autoBeamOff
pot produir resultats no desitjats. Vegeu els fragments de codi
per a més informació.
Es poden crear patrons de barrat que difereixin dels valors automàtics predeterminats; vegeu Establir el comportament de les barres automàtiques.
Instruccions predefinides
\autoBeamOff,
\autoBeamOn.
Fragments de codi seleccionats
Beams across line breaks
Line breaks are normally forbidden when beams cross bar lines. This behavior can be changed as shown:
\relative c'' {
\override Beam.breakable = ##t
c8 c[ c] c[ c] c[ c] c[ \break
c8] c[ c] c[ c] c[ c] c
}
Changing beam knee gap
Kneed beams are inserted automatically when a large gap is detected
between the note heads. This behavior can be tuned through the
auto-knee-gap property. A kneed beam is drawn if the gap is
larger than the value of auto-knee-gap plus the width of the
beam object (which depends on the duration of the notes and the slope
of the beam). By default auto-knee-gap is set to 5.5 staff
spaces.
{
f8 f''8 f8 f''8
\override Beam.auto-knee-gap = #6
f8 f''8 f8 f''8
}
Partcombine and autoBeamOff
The function of \autoBeamOff when used with
\partcombine can be difficult to understand.
It may be preferable to use
\set Staff.autoBeaming = ##f
instead, to ensure that autobeaming will be turned off for the entire staff.
\partcombine apparently works with 3 voices – stem up single,
stem down single, stem up combined.
An \autoBeamOff call in the first argument to partcombine will
apply to the voice that is active at the time the call is processed,
either stem up single or stem up combined. An \autoBeamOff call
in the second argument will apply to the voice that is stem down single.
In order to use \autoBeamOff to stop all autobeaming when used
with \partcombine, it will be necessary to use three calls to
\autoBeamOff.
{
%\set Staff.autoBeaming = ##f % turns off all autobeaming
\partcombine
{
\autoBeamOff % applies to split up stems
\repeat unfold 4 a'16
%\autoBeamOff % applies to combined up stems
\repeat unfold 4 a'8
\repeat unfold 4 a'16
}
{
\autoBeamOff % applies to down stems
\repeat unfold 4 f'8
\repeat unfold 8 f'16 |
}
}
Vegeu també
Referència de la notació: Barres manuals, Establir el comportament de les barres automàtiques.
Fitxers instal·lats: ‘scm/auto-beam.scm’.
Fragments de codi: Rhythms.
Referència de funcionament interno: Auto_beam_engraver, Beam_engraver, Beam, BeamEvent, BeamForbidEvent, beam-interface, unbreakable-spanner-interface.
Advertiments i problemes coneguts
Les propietats d’una barra venen determinades al començament de la seva construcció i qualsevol canvi addicional en les propietats de la barra que es produeixi abans que la barra s’hagi completat no tindrà efecte fins que inicieu la següent barra nova.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Barres automàtiques ] | [ Amunt : Barres ] | [ Barres manuals > ] | ||
Establir el comportament de les barres automàtiques
Quan està habilitat el barrat automàtic, la col·locació de les
barres automàtiques ve determinada per tres propietats de context:
baseMoment, beatStructure i beamExceptions.
Els valores predeterminats d’aquestes variables es poden
sobreescriure com es descriu més a baix, o de forma alternativa
els propis valors predeterminats es poden canviar com s’explica a
Indicació de compàs.
Si hi ha definida una regla de beamExceptions per al compàs
en curs, s’usa aquesta regla per determinar la col·locació de les
barres; s’ignoren els valores de baseMoment i
beatStructure.
Si no hi ha definida cap regla de beamExceptions per al
tipus de compàs en curs, la col·locació de les barres està
determinada pels valors de baseMoment i
beatStructure.
Barrat basat en baseMoment i beatStructure
De forma predeterminada, les regles de beamExceptions estan
definides per als compassos més comuns, i les regles de
beamExceptions s’han de desactivar si pretenem que el
barrat automàtic estigui basat en baseMoment i
beatStructure. Les regles de beamExceptions es
desactiven mitjançant
\set Timing.beamExceptions = #'()
Quan el valor de beamExceptions s’ha establert a
#'(), ja sigui degut a un ajust explícit o a causa que no
hi ha cap regla de beamExceptions definida internament per
al compàs actual, els punts finals de les barres estan en les
pulsacions segons vingui determinat per les propietats de context
baseMoment i beatStructure.
beatStructure és una llista d’Scheme que defineix la
longitud de cada pulsació dins del compàs en unitats de
baseMoment. De forma predeterminada, cada unitat de
longitud baseMoment és una única pulsació.
Observeu que hi ha valors de beatStructure i de
baseMoment diferents per a cada indicació de compàs. Els
canvis que es fan a aquestes variables s’apliquen sols al tipus de
compàs vigent, per la qual cosa aquests canvis s’han d’escriure
després de l’ordre \time que dóna començament a una secció
nova amb un tipus de compàs diferent, no abans. Els valors nous
que es donen a una indicació de compàs concreta es retenen i es
tornen a aplicar quan aquest tipus de compàs torna a establir-se.
\relative c'' {
\time 5/16
c16^"default" c c c c |
% beamExceptions no és probable que es defineixi per a un tempo 5/16
% però els desactivarem igual per assegurar-nos
\set Timing.beamExceptions = #'()
\set Timing.beatStructure = 2,3
c16^"(2+3)" c c c c |
\set Timing.beatStructure = 3,2
c16^"(3+2)" c c c c |
}
\relative {
\time 4/4
a'8^"default" a a a a a a a
% Desactiva beamExceptions perquè sí que està
% definit per a un tempo 4/4
\set Timing.beamExceptions = #'()
\set Timing.baseMoment = #(ly:make-moment 1/4)
\set Timing.beatStructure = 1,1,1,1
a8^"changed" a a a a a a a
}
Els canvis als ajustament de barrat es poden limitar a contextos específics. Si no s’inclou cap ajustament a un context de nivell més baix, s’apliquen els ajustament del context que l’envolta.
\new Staff {
\time 7/8
% No cal beamExceptions
% atès que no està definit per al tempo 7/8
\set Staff.beatStructure = 2,3,2
<<
\new Voice = one {
\relative {
a'8 a a a a a a
}
}
\new Voice = two {
\relative {
\voiceTwo
\set Voice.beatStructure = 1,3,3
f'8 f f f f f f
}
}
>>
}
En cas d’usar diverses veus, s’ha d’especificar el context
Staff si volem aplicar el barrat a totes les veus del
pentagrama:
\time 7/8
% ritme 3-1-1-2
% Canvi aplicat a Voice per defecte -- no funciona correctament
% A causa de veus autogenerades, totes les pulsacions estaran a
% baseMoment (1 . 8)
\set beatStructure = 3,1,1,2
<< \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >>
% Funciona correctament amb el context Staff especificat
\set Staff.beatStructure = 3,1,1,2
<< \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >>
El valor de baseMoment es pot ajustar per canviar el
comportament de les barres, si es desitja. Quan es fa, el
valor de beatStructure s’ha de fixar de manera que sigui
compatible amb el nou valor de baseMoment.
\time 5/8
% No cal desactivar beamExceptions
% atès que no està definit per al tempo 5/8
\set Timing.baseMoment = #(ly:make-moment 1/16)
\set Timing.beatStructure = 7,3
\repeat unfold 10 { a'16 }
baseMoment és un moment, una unitat de duració
musical. Es crea una quantitat del tipus moment per mitjà de
la funció d’Scheme ly:make-moment. Per veure més
informació sobre aquest funció, consulteu
Gestió del temps.
De forma predeterminada baseMoment està fixat a una unitat
més que el denominador del compàs. Totes les excepcions a aquest
valor predeterminat estan a
‘scm/time-signature-settings.scm’.
Barrat basat en beamExceptions
Les regles d’autobarrat especials (diferents a acabar una barra
sobre una pulsació) estan definides a la propietat
beamExceptions.
El valor de beamExceptions, que és una estructura de dades
força complexa, es genera fàcilment amb la funció
\beamExceptions. Aquesta funció rep un o més patrons
rítmics barrats manualment i amb un compàs de duració (els
compassos s’han de separar amb una barra de comprovació de
compàs | perquè la funció no té cap altra manera
d’esbrinar la longitud del compàs). Vet aquí un exemple senzill:
\relative c'' {
\time 3/16
\set Timing.beatStructure = 2,1
\set Timing.beamExceptions =
\beamExceptions { 32[ 32] 32[ 32] 32[ 32] }
c16 c c |
\repeat unfold 6 { c32 } |
}
Nota: Un valor de beamExceptions ha de ser una llista
d’excepcions completa. És a dir, tota excepció que s’hagi
d’aplicar ha d’estar inclosa a aquest ajustament. No és possible
afegir, eliminar o canviar sols una de les excepcions. Tot i que
això pot semblar fastigós, vol dir que no és necessari conèixer
els ajustaments de barrat actuals per poder especificar un patró
de barrat nou.
Quan canvia el compàs es fixen els valors predeterminats de
Timing.baseMoment, Timing.beatStructure i
Timing.beamExceptions. Un ajustament en el tipus de compàs
dóna com a resultat un reinici dels ajustaments de barrat
automàtic per al context Timing al comportament predeterminat.
\relative a' {
\time 6/8
\repeat unfold 6 { a8 }
% grup (4 + 2)
\set Timing.beatStructure = 4,2
\repeat unfold 6 { a8 }
% torna al comportament predeterminat
\time 6/8
\repeat unfold 6 { a8 }
}
Els ajustament de barrat automàtic predeterminat per a un tipus de compàs estan determinats en el fitxer ‘scm/time-signature-settings.scm’. La forma de canviar els ajustament predeterminats de barrat automàtic per a un tipus de compas es descriu a Indicació de compàs.
Molts ajustaments de barrat automàtics per a un tipus de compàs
contenen una entrada per a beamExceptions. Per exemple, el
compàs de 4/4 intenta unir el compàs en dues parts si sols hi ha
corxeres. La regla beamExceptions pot sobreescriure
l’ajustament beatStructure si no es reinicia
beamExceptions.
\time 4/4
\set Timing.baseMoment = #(ly:make-moment 1/8)
\set Timing.beatStructure = 3,3,2
% Això no barrarà (3 3 2) degut a beamExceptions
\repeat unfold 8 {c''8} |
% Això barrarà (3 3 2) perquè eliminem beamExceptions
\set Timing.beamExceptions = #'()
\repeat unfold 8 {c''8}
De forma semblant, les corxeres en compàs de 3/4 s’uneixen
mitjançant una sola barra per a tot el compàs, de forma
predeterminada. Per unir les corxeres en 3/4 mitjançant una barra
a cada part, reinicieu beamExceptions.
\time 3/4
% per defecte barrem a (6) degut a beamExceptions
\repeat unfold 6 {a'8} |
% Això barrarà (1 1 1) degut a baseMoment i beatStructure predeterminats
\set Timing.beamExceptions = #'()
\repeat unfold 6 {a'8}
A la música gravada dels períodes clàssic i romàntic, amb
freqüència les barres comencen a meitat d’un compàs de 3/4, però
la pràctic moderna és evitar la falsa impressió de 6/8 (vegeu
Gould, pàg. 153). Es produeixen situacions semblants al compàs de
3/8. Aquest comportament es controla mitjançant la propietat de
context beamHalfMeasure, que té efecte sobre indicacions de
compàs que tenen la xifra 3 al numerador:
\relative a' {
\time 3/4
r4. a8 a a |
\set Timing.beamHalfMeasure = ##f
r4. a8 a a |
}
Com funciona el barrat automàtic
Quan s’habilita el barrat automàtic, la col·locació de les barres
de corxera automàtiques es determinen per les propietats de
context baseMoment, beatStructure i
beamExceptions.
Són d’aplicació les següents regles, en ordre de prioritat, quan es determina l’aspecte de les barres:
-
Si està especificada una barra manual amb
[…], s’ha de fixar la barra tal com s’ha especificat; en cas contrari, -
Si està definida a
beamExceptionsuna regla de barrat per a aquest tipus de barra més llarg, s’ha d’utilitzar-la per determinar els llocs vàlids en els quals poden acabar les barres; en cas contrari, -
Si està definida a
beamExceptionsuna regla de final de barra per a un tipus de barra més llarg, s’ha d’utilitzar-la per determinar els llocs vàlids en els quals poden acabar les barres; en cas contrari, -
usar els valors de
baseMomenti debeatStructureper determinar els finals de les pulsacions del compàs, i terminar les barres al final de les pulsacions.
En les regles anteriors, el tipus de barra beam-type és la duració de la nota més breu dins del grup unit per una barra.
Les regles de barrat predefinides estan al fitxer ‘scm/time-signature-settings.scm’.
Fragments de codi seleccionats
Subdividing beams
The beams of consecutive 16th (or shorter) notes are, by default, not
subdivided. That is, the three (or more) beams stretch unbroken over
entire groups of notes. This behavior can be modified to subdivide the
beams into sub-groups by setting the property subdivideBeams.
When set, multiple beams will be subdivided at intervals defined by the
current value of baseMoment by reducing the multiple beams to
the number of beams that indicates the metric value of the subdivision.
If the group following the division is shorter than the current metric
value (usually because the beam is incomplete) the number of beams
reflects the longest possible subdivision group. However, if there is
only one note left after the division this restriction isn’t applied.
Note that baseMoment defaults to one over the denominator of the
current time signature if not set explicitly. It must be set to a
fraction giving the duration of the beam sub-group using the
ly:make-moment function, as shown in this snippet. Also, when
baseMoment is changed, beatStructure should also be
changed to match the new baseMoment:
\relative c'' {
c32[ c c c c c c c]
\set subdivideBeams = ##t
c32[ c c c c c c c]
% Set beam sub-group length to an eighth note
\set baseMoment = #(ly:make-moment 1/8)
\set beatStructure = 2,2,2,2
c32[ c c c c c c c]
% Set beam sub-group length to a sixteenth note
\set baseMoment = #(ly:make-moment 1/16)
\set beatStructure = 4,4,4,4
c32[ c c c c c c c]
% Shorten beam by 1/32
\set baseMoment = #(ly:make-moment 1/8)
\set beatStructure = 2,2,2,2
c32[ c c c c c c] r32
% Shorten beam by 3/32
\set baseMoment = #(ly:make-moment 1/8)
\set beatStructure = 2,2,2,2
c32[ c c c c] r16.
r2
}
Strict beat beaming
Beamlets can be set to point in the direction of the beat to which they belong. The first beam avoids sticking out flags (the default); the second beam strictly follows the beat.
\relative c'' {
\time 6/8
a8. a16 a a
\set strictBeatBeaming = ##t
a8. a16 a a
}
Conducting signs measure grouping signs
Beat grouping within a measure is controlled by the context property
beatStructure. Values of beatStructure are established
for many time signatures in scm/time-signature-settings.scm.
Values of beatStructure can be changed or set with \set.
Alternatively, \time can be used to both set the time signature
and establish the beat structure. For this, you specify the internal
grouping of beats in a measure as a list of numbers (in Scheme syntax)
before the time signature.
\time applies to the Timing context, so it will not
reset values of beatStructure or baseMoment that are set
in other lower-level contexts, such as Voice.
If the Measure_grouping_engraver is included in one of the
display contexts, measure grouping signs will be created. Such signs
ease reading rhythmically complex modern music. In the example, the 9/8
measure is grouped in two different patterns using the two different
methods, while the 5/8 measure is grouped according to the default
setting in scm/time-signature-settings.scm:
\score {
\new Voice \relative c'' {
\time 9/8
g8 g d d g g a( bes g) |
\set Timing.beatStructure = 2,2,2,3
g8 g d d g g a( bes g) |
\time 4,5 9/8
g8 g d d g g a( bes g) |
\time 5/8
a4. g4 |
}
\layout {
\context {
\Staff
\consists "Measure_grouping_engraver"
}
}
}
Beam endings in Score context
Beam-ending rules specified in the Score context apply to all
staves, but can be modified at both Staff and Voice
levels:
\relative c'' {
\time 5/4
% Set default beaming for all staves
\set Score.baseMoment = #(ly:make-moment 1/8)
\set Score.beatStructure = 3,4,3
<<
\new Staff {
c8 c c c c c c c c c
}
\new Staff {
% Modify beaming for just this staff
\set Staff.beatStructure = 6,4
c8 c c c c c c c c c
}
\new Staff {
% Inherit beaming from Score context
<<
{
\voiceOne
c8 c c c c c c c c c
}
% Modify beaming for this voice only
\new Voice {
\voiceTwo
\set Voice.beatStructure = 6,4
a8 a a a a a a a a a
}
>>
}
>>
}
Vegeu també
Referència de la notació: Indicació de compàs.
Fitxer d’inici: ‘scm/time-signature-settings.scm’.
Fragments de codi: Rhythms.
Referència de funcionament intern: Auto_beam_engraver, Beam, BeamForbidEvent, beam-interface.
Advertiments i problemes coneguts
Si una partitura acaba mentre una barra de corxera automàtica no
ha acabat i encara accepta notes, aquesta última barra no
s’imprimeix en absolut. El mateix serveix per a les veus
polifòniques introduïdes amb << … \\ … >>. Si
una veu polifònica acaba mentre una barra de corxera automàtica
encara admet notes, no s’imprimeix. La solució per a aquests
problemes és aplicar el barrat manual a l’última barra de la veu o
partitura.
De forma predeterminada, el traductor Timing rep el nom de
context Score como àlies. Això significa que l’establiment
del compàs a una pauta afectarà el barrat de les altres pautes
també. Així, un ajust en el compàs a un pentagrama tardà
reiniciarà el barrat personalitzat que s’havia ajustat a un
pentagrama més primerenc. Una forma d’evitar aquest problema és
ajustar la indicació de compàs a un pentagrama solament.
<<
\new Staff {
\time 3/4
\set Timing.baseMoment = #(ly:make-moment 1/8)
\set Timing.beatStructure = 1,5
\set Timing.beamExceptions = #'()
\repeat unfold 6 { a'8 }
}
\new Staff {
\repeat unfold 6 { a'8 }
}
>>
Els ajustos de barrat predeterminat per a aquest compàs també es poden canviar, de forma que sempre s’utilitzi el barrat desitjat. La menara d’efectuar canvis als ajustos de barrat automàtic per a una indicació de compàs es descriu a Indicació de compàs.
<<
\new Staff {
\overrideTimeSignatureSettings
3/4 % timeSignatureFraction
1/8 % baseMomentFraction
1,5 % beatStructure
#'() % beamExceptions
\time 3/4
\repeat unfold 6 { a'8 }
}
\new Staff {
\time 3/4
\repeat unfold 6 { a'8 }
}
>>
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Establir el comportament de les barres automàtiques ] | [ Amunt : Barres ] | [ Barres progressives > ] | ||
Barres manuals
En certs casos pot ser precís sobreescriure l’algoritme de barrat
automàtic. Per exemple, el mecanisme de barrat automàtic no
escriu barres per sobre els silencis o les línies divisòries, i a
les partitures corals el barrat s’ajusta amb freqüència perquè
segueixi la mesura de la lletra en comptes de la de les notes.
Aquestes barres s’especifiquen manualment marcant els punts de
començament i final amb [ y ].
\relative { r4 r8[ g' a r] r g[ | a] r }
La direcció de les barres es pot establir manualment utilitzant indicadors de direcció:
\relative { c''8^[ d e] c,_[ d e f g] }
Es poden marcar notes individuals amb \noBeam per evitar
que resultin unides per una barra:
\relative {
\time 2/4
c''8 c\noBeam c c
}
Es poden produir al mateix temps barres de notes d’adorn i barres normals. Les notes d’adorn sense barra no es col·loquen dins de les barres de notes normals.
\relative {
c''4 d8[
\grace { e32 d c d }
e8] e[ e
\grace { f16 }
e8 e]
}
Es pot aconseguir un control fins i tot més estricte sobres les
barres establint les propietats stemLeftBeamCount i
stemRightBeamCount. Especifiquen el nombre de barres que
es dibuixaran als costats esquerre i dret, respectivament, de la
nota següent. Si qualsevol d’aquestes dues propietats s’ajusta a
un valor, aquest valor s’usarà una sola vegada, i després
s’esborrarà. En aquest exemple, l’últim Fa s’imprimeix amb sols
una barra al costat esquerre, és a dir, la barra de corxera del
grup com un tot.
\relative a' {
a8[ r16 f g a]
a8[ r16
\set stemLeftBeamCount = #2
\set stemRightBeamCount = #1
f16
\set stemLeftBeamCount = #1
g16 a]
}
Instruccions predefinides
\noBeam.
Fragments de codi seleccionats
Flat flags and beam nibs
Flat flags on lone notes and beam nibs at the ends of beamed figures
are both possible with a combination of stemLeftBeamCount,
stemRightBeamCount and paired [] beam indicators.
For right-pointing flat flags on lone notes, use paired [] beam
indicators and set stemLeftBeamCount to zero (see Example 1).
For left-pointing flat flags, set stemRightBeamCount instead
(Example 2).
For right-pointing nibs at the end of a run of beamed notes, set
stemRightBeamCount to a positive value. And for left-pointing
nibs at the start of a run of beamed notes, set
stemLeftBeamCount instead (Example 3).
Sometimes it may make sense for a lone note surrounded by rests to
carry both a left- and right-pointing flat flag. Do this with paired
[] beam indicators alone (Example 4).
(Note that \set stemLeftBeamCount is always equivalent to
\once \set. In other words, the beam count settings are not
“sticky”, so the pair of flat flags attached to the lone
16[] in the last example have nothing to do with the
\set two notes prior.)
\score {
<<
% Example 1
\new RhythmicStaff {
\set stemLeftBeamCount = #0
c16[]
r8.
}
% Example 2
\new RhythmicStaff {
r8.
\set stemRightBeamCount = #0
16[]
}
% Example 3
\new RhythmicStaff {
16 16
\set stemRightBeamCount = #2
16 r r
\set stemLeftBeamCount = #2
16 16 16
}
% Example 4
\new RhythmicStaff {
16 16
\set stemRightBeamCount = #2
16 r16
16[]
r16
\set stemLeftBeamCount = #2
16 16
}
>>
}
Vegeu també
Referència de la notació: Direcció i posició, Notes d’adorn.
Fragments de codi: Rhythms.
Referència de funcionament intern: Beam, BeamEvent, Beam_engraver, beam-interface, Stem_engraver.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Barres manuals ] | [ Amunt : Barres ] | [ Compassos > ] | ||
Barres progressives
Les barres progressives s’usen per indicar que un petit grup de
notes s’ha de tocar a una velocitat creixent (o decreixent), sense
canviar el temps general de la peça. L’àmbit de la barra
progressiva s’ha d’indicar manualment usant [ i ],
l‘efecte d’angle de la barra s’inicia especificant una direcció de
la propietat grow-direction de l’objecte Beam.
Si volem que la col·locació de les notes i el so de la sortida
MIDI reflecteixi el ritardando o accelerando indicat
per la barra progressiva, les notes s’han d’agrupar com una
expressió musical delimitada per claus i precedida d’una ordre
featheredDurations que especifica la raó
entre les duracions de la primera i l’última notes dins del grup.
Els claudàtors rectes mostren l’àmbit de la barra i les claus mostren quines notes han de modificar les seves duracions. Normalment delimitarien el mateix grup de notes, però no és un requisit: les dues ordres són independents.
A l’exemple següent les vuit semicorxeres ocupen exactament el mateix temps que una blanca, però la primera nota té la meitat de duració que l’última, amb les notes intermèdies allargant-se gradualment. Les quatre primeres fuses s’acceleren gradualment, mentre que les últimes quatre fuses estan a un temps constant.
\relative c' {
\override Beam.grow-direction = #LEFT
\featherDurations #(ly:make-moment 2/1)
{ c16[ c c c c c c c] }
\override Beam.grow-direction = #RIGHT
\featherDurations #(ly:make-moment 2/3)
{ c32[ d e f] }
% retorna a barres sense ploma
\override Beam.grow-direction = #'()
{ g32[ a b c] }
}
L’espaiat a la sortida impresa representa les duracions de les notes d’una forma sols aproximada, però la sortida MIDI és exacta.
Instruccions predefinides
\featherDurations.
Vegeu també
Fragments de codi: Rhythms.
Advertiments i problemes coneguts
L’ordre \featherDurations sols funciona amb fragments
musicals molt breus, i quan els nombres de la fracció són petits.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Barres progressives ] | [ Amunt : Duracions ] | [ Barres de compàs > ] | ||
1.2.5 Compassos
| Barres de compàs | ||
| Numeració de compassos | ||
| Comprovació de compàs i de número de compàs | ||
| Marques d’assaig |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Compassos ] | [ Amunt : Compassos ] | [ Numeració de compassos > ] | ||
Barres de compàs
Les línies divisòries delimiten als compassos però també es poden usar per indicar les repeticions. Normalment, les línies divisòries normals s’insereixen de manera automàtica a la sortida impresa a llocs que estan basats en el compàs actual.
Les barres de compàs senzilles inserides automàticament es poden
canviar per altres tipus d’ordre \bar. Per exemple, se sol
posar una doble barra de tancament al final de la peça:
\relative { e'4 d c2 \bar "|." }
No deixa de ser vàlida l’última nota d’un compàs si no acaba sobre la línia divisòria automàtica: se suposa que la nota es perllonga sobre el compàs següent. Però una seqüència llarga de aquests compassos perllongats pot fer que la música aparegui comprimida o fins i tot que se surti de la pàgina. Això és a causa de què els salts de línia automàtics solament es produeixen al final de compassos complets, és a dir, quan totes les notes han finalitzat abans que el compàs acabi.
Nota: Una duració incorrecta pot fer que s’intenti evitar la producció de salts de línia, donant com a resultat una línia de música amb una compressió exagerada o música que se surt de la pàgina.
També es permeten salts de línia en les barres inserides manualment fins i tot dins de compassos incomplets. Per permetre un salt de línia on no hi ha cap línia divisòria visible. Utilitzeu el següent:
\bar ""
D’aquesta manera s’inserira una barra invisible de compàs i es farà possible el salt de línia a aquest punt, sense forçar-lo. No s’incrementa el comptador dels números de compàs. Per forçar un salt de línia, consulteu Salts de línia.
Aquesta i altres línies divisòries especials es poden inserir manualment en qualsevol punt. Quan coincideixen amb el final d’un compàs, substitueixen a la línia divisòria simple que s’hauria inserit automàticament en aquest lloc. Quan no coincideixen amb el final d’un compàs, s’insereix la línia especificada en aquest punt de la sortida impresa.
Observeu que les línies divisòries manuals són purament visuals. No afecten a cap de les propietats que una barra normal afectaria, com als números de compàs, alteracions, salts de línia, etc. No afecten tampoc el càlcul i col·locació de les línies divisòries subsegüents. Quan una divisòria es col·loca manualment on ja hi ha una divisòria normal, els efectes de la línia original no s’alteren.
Estan disponibles per a la seva inserció manual dos tipus de línies divisòries simples i cinc tipus de doble barra:
\relative {
f'1 \bar "|"
f1 \bar "."
g1 \bar "||"
a1 \bar ".|"
b1 \bar ".."
c1 \bar "|.|"
d1 \bar "|."
e1
}
així com la barra de punts i la discontínua:
\relative {
f'1 \bar ";"
g1 \bar "!"
a1
}
i nou tipus de barres de repetició:
\relative {
f'1 \bar ".|:"
g1 \bar ":..:"
a1 \bar ":|.|:"
b1 \bar ":|.:"
c1 \bar ":.|.:"
d1 \bar "[|:"
e1 \bar ":|][|:"
f1 \bar ":|]"
g1 \bar ":|."
a1
}
A més es pot imprimir una línia divisòria com una marca curta:
f'1 \bar "'" g'1
Malgrat això, donat que les mencionades marques s’utilitzen
usualment al cant gregorià, és preferible en aquest cas utilitzar
\divisioMinima, que es descriu en la secció
Divisiones dins de cant gregorià:
El LilyPond contempla la notació del cant kievà i ofereix una línia divisòria especial kievana:
f'1 \bar "k"
Poden veure’s detalls d’aquest notació explicats a Gravat del cant kievà en notació quadrada.
Per als símbols de segno en línia, hi ha tres tipus de barres de compàs que es diferencien en el seu comportament respecte als salts de línia:
\relative c'' {
c4 c c c
\bar "S"
c4 c c c \break
\bar "S"
c4 c c c
\bar "S-|"
c4 c c c \break
\bar "S-|"
c4 c c c
\bar "S-S"
c4 c c c \break
\bar "S-S"
c1
}
Tot i que es poden inserir manualment barres de compàs amb significat de repeticions, no es reconeixen com repeticions per part del LilyPond. Les seccions repetides s’introdueixen millor utilitzant les diverses ordres de repetició (vegeu Repeticions), que imprimeixen automàticament les barres corresponents.
A més es pot especificar ".|:-||", que equival a
".|:" excepte al salts de línia, en el qual es produeix una
doble barra al final de la línia i una repetició esquerra (de
començament) al principio de la línia següent.
\relative c'' {
c4 c c c
\bar ".|:-||"
c4 c c c \break
\bar ".|:-||"
c4 c c c
}
Per a combinacions de repeticions amb el símbol de segno, hi ha sis variants diferents:
\relative c'' {
c4 c c c
\bar ":|.S"
c4 c c c \break
\bar ":|.S"
c4 c c c
\bar ":|.S-S"
c4 c c c \break
\bar ":|.S-S"
c4 c c c
\bar "S.|:-S"
c4 c c c \break
\bar "S.|:-S"
c4 c c c
\bar "S.|:"
c4 c c c \break
\bar "S.|:"
c4 c c c
\bar ":|.S.|:"
c4 c c c \break
\bar ":|.S.|:"
c4 c c c
\bar ":|.S.|:-S"
c4 c c c \break
\bar ":|.S.|:-S"
c1
}
A més, hi ha una ordre \inStaffSegno que crea una barra de
compàs amb símbol de segno, situada en conjunció amb una línia de
repetició adequada si s’utilitza amb una ordre \repeat
volta, vegeu Repeticions normals.
Es poden definir tipus nous de línies divisòries amb
\defineBarLine:
\defineBarLine tipus_de_barra #'(final començament extensió)
Les variables de \defineBarline poden incloure la cadena de
caràcters ‘buida’ "", que equival a imprimir una línia
divisòria invisible. També es pot establir al valor fals#f
que no imprimeix cap línia divisòria.
Després de la definició, la nova línia divisòria es pot utilitzar
mitjançant \bar tipus_de_barra.
Actualment hi ha disponibles deu elements de barra de compàs:
\defineBarLine ":" #'("" ":" "")
\defineBarLine "=" #'("=" "" "")
\defineBarLine "[" #'("" "[" "")
\defineBarLine "]" #'("]" "" "")
\new Staff {
s1 \bar "|"
s1 \bar "."
s1 \bar "!"
s1 \bar ";"
s1 \bar ":"
s1 \bar "k"
s1 \bar "S"
s1 \bar "="
s1 \bar "["
s1 \bar "]"
s1 \bar ""
}
La línia divisòria "=" proporciona la barra de doble
extensió, usada en combinació amb el símbol de segno. No l’heu
d’usar com una doble línia divisòria fina aïllada; per això es
preferible \bar "||".
El signe "-" inicia anotacions a les barres de compàs, que
són útils per distingir entre aquelles que tenen idèntica aparença
però diferent comportament als salts de línia i/o diferents barres
d’extensió. La part que segueix al signe "-" no s’usa per
construir la barra de compàs.
\defineBarLine "||-dashedSpan" #'("||" "" "!!")
\new StaffGroup <<
\new Staff \relative c'' {
c1 \bar "||"
c1 \bar "||-dashedSpan"
c1
}
\new Staff \relative c'' {
c1
c1
c1
}
>>
A més, el caràcter de l’espai en blanc " " serveix com a
contenidor per definir barres d’extensió correctament alineats a
les barres principals:
\defineBarLine ":|.-wrong" #'(":|." "" "|.")
\defineBarLine ":|.-right" #'(":|." "" " |.")
\new StaffGroup <<
\new Staff \relative c'' {
c1 \bar ":|.-wrong"
c1 \bar ":|.-right"
c1
}
\new Staff \relative c'' {
c1
c1
c1
}
>>
Si calen elements addicionals, el LilyPond proveeix una forma senzilla de definir-los. Per veure més informació sobre com modificar o afegir barres de compàs, consulteu el fitxer ‘scm/bar-line.scm’.
En les partitures amb molts pentagrames, una ordre\bar a un
d’ells s’aplica automàticament a tots els altres. Les línies
resultants es connecten entre els diferents pentagrames d’un
StaffGroup, PianoStaff o GrandStaff.
<<
\new StaffGroup <<
\new Staff \relative {
e'4 d
\bar "||"
f4 e
}
\new Staff \relative { \clef bass c'4 g e g }
>>
\new Staff \relative { \clef bass c'2 c2 }
>>
L’ordre ‘\bar tipus de barra’ és forma curta de fer
‘\set Timing.whichBar = tipo de barra’. Quan
s’estableix whichBar amb el valor d’una cadena de
caràcters, es crea una línia divisòria d’aquest tipus.
El tipus de barra predeterminat que s’usa per a les línies
divisòries inserides automàticament és "|". Es pot canviar
en qualsevol moment amb ‘\set Timing.defaultBarType
= tipus de barra’.
Vegeu també
Referència de la notació: Salts de línia, Repeticions, Agrupament de pentagrames.
Fitxers instal·lats: ‘scm/bar-line.scm’.
Fragments de codi: Rhythms.
Referència de funcionament interno:
BarLine (creada al nivell de Staff (pentagrama)),
SpanBar (a través dels pentagrames),
Timing_translator (per a les propietats del comptador de temps Timing).
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Barres de compàs ] | [ Amunt : Compassos ] | [ Comprovació de compàs i de número de compàs > ] | ||
Numeració de compassos
Per defecte, els números de compàs s’imprimeixen al principi de la
línia, excepte la primera. El número pròpiament dit s’emmagatzema
a la propietat currentBarNumber, que normalment
s’actualitza automàticament per a cada compàs. També es pot
establir manualment:
\relative c' {
c1 c c c
\break
\set Score.currentBarNumber = #50
c1 c c c
}
Els números de compàs es poden gravar a intervals regulars en
comptes de al principi de cada línia. Per fer-lo, s’ha de
sobreescriure el comportament predeterminat de forma que es puguin
imprimir en altres llocs. Això ve controlat per la propietat
break-visibility de BarNumber. Agafa tres valors
que es poden establir al valor #t o #f per
especificar si el número de compàs corresponent és visible o no.
L’ordre dels tres valors és visible al final de la línia,
visible a la meitat de la línia, o visible al
principi de la línia. A l’exemple següent s’imprimeixen els
números de compàs en tots els llocs possibles:
\relative c' {
\override Score.BarNumber.break-visibility = ##(#t #t #t)
\set Score.currentBarNumber = #11
% Permet que s'imprimeixi el número del primer compàs
\bar ""
c1 | c | c | c |
\break
c1 | c | c | c |
}
Fragments de codi seleccionats
Printing the bar number for the first measure
By default, the first bar number in a score is suppressed if it is less
than or equal to ‘1’. By setting barNumberVisibility to
all-bar-numbers-visible, any bar number can be printed for the
first measure and all subsequent measures. Note that an empty bar line
must be inserted before the first note for this to work.
\layout {
indent = 0
ragged-right = ##t
}
\relative c' {
\set Score.barNumberVisibility = #all-bar-numbers-visible
\bar ""
c1 | d | e | f \break
g1 | e | d | c
}
Printing bar numbers at regular intervals
Bar numbers can be printed at regular intervals by setting the property
barNumberVisibility. Here the bar numbers are printed every two
measures except at the end of the line.
\relative c' {
\override Score.BarNumber.break-visibility = #end-of-line-invisible
\set Score.currentBarNumber = #11
% Permit first bar number to be printed
\bar ""
% Print a bar number every second measure
\set Score.barNumberVisibility = #(every-nth-bar-number-visible 2)
c1 | c | c | c | c
\break
c1 | c | c | c | c
}
Printing bar numbers with changing regular intervals
The bar number interval can be changed by changing the context function
{set-bar-number-visibility}.
\relative c' {
\override Score.BarNumber.break-visibility = #end-of-line-invisible
\context Score \applyContext #(set-bar-number-visibility 4)
\repeat unfold 10 c'1
\context Score \applyContext #(set-bar-number-visibility 2)
\repeat unfold 10 c
}
Printing bar numbers inside boxes or circles
Bar numbers can also be printed inside boxes or circles.
\relative c' {
% Prevent bar numbers at the end of a line and permit them elsewhere
\override Score.BarNumber.break-visibility = #end-of-line-invisible
\set Score.barNumberVisibility = #(every-nth-bar-number-visible 4)
% Increase the size of the bar number by 2
\override Score.BarNumber.font-size = #2
% Draw a box round the following bar number(s)
\override Score.BarNumber.stencil
= #(make-stencil-boxer 0.1 0.25 ly:text-interface::print)
\repeat unfold 5 { c1 }
% Draw a circle round the following bar number(s)
\override Score.BarNumber.stencil
= #(make-stencil-circler 0.1 0.25 ly:text-interface::print)
\repeat unfold 4 { c1 } \bar "|."
}
Alternative bar numbering
Two alternative methods for bar numbering can be set, especially for when using repeated music.
\relative c'{
\set Score.alternativeNumberingStyle = #'numbers
\repeat volta 3 { c4 d e f | }
\alternative {
{ c4 d e f | c2 d \break }
{ f4 g a b | f4 g a b | f2 a | \break }
{ c4 d e f | c2 d }
}
c1 \break
\set Score.alternativeNumberingStyle = #'numbers-with-letters
\repeat volta 3 { c,4 d e f | }
\alternative {
{ c4 d e f | c2 d \break }
{ f4 g a b | f4 g a b | f2 a | \break }
{ c4 d e f | c2 d }
}
c1
}
Aligning bar numbers
Bar numbers by default are right-aligned to their parent object. This is usually the left edge of a line or, if numbers are printed within a line, the left hand side of a bar line. The numbers may also be positioned directly over the bar line or left-aligned to the bar line.
\relative c' {
\set Score.currentBarNumber = #111
\override Score.BarNumber.break-visibility = #all-visible
% Increase the size of the bar number by 2
\override Score.BarNumber.font-size = #2
% Print a bar number every second measure
\set Score.barNumberVisibility = #(every-nth-bar-number-visible 2)
c1 | c1
% Center-align bar numbers
\override Score.BarNumber.self-alignment-X = #CENTER
c1 | c1
% Left-align bar numbers
\override Score.BarNumber.self-alignment-X = #LEFT
c1 | c1
}
Removing bar numbers from a score
Bar numbers can be removed entirely by removing the
Bar_number_engraver from the Score context.
\layout {
\context {
\Score
\omit BarNumber
% or:
%\remove "Bar_number_engraver"
}
}
\relative c'' {
c4 c c c \break
c4 c c c
}
Vegeu també
Fragments de codi: Rhythms.
Referència de funcionament intern: BarNumber, Bar_number_engraver.
Advertiments i problemes coneguts
Els números de compàs poden col·lisionar amb la clau
StaffGroup, si hi ha un a la part de dalt. Per
solucionar-lo es pot usar la propietat de farciment padding
de BarNumber per col·locar el número correctament.
Consulteu
StaffGroup i
BarNumber para
veure més informació.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Numeració de compassos ] | [ Amunt : Compassos ] | [ Marques d'assaig > ] | ||
Comprovació de compàs i de número de compàs
Les comprovacions de compàs ajuden a detectar errors a les
duracions. Una comprovació de compàs s’escriu usant el símbol de
la barra vertical, |, a qualsevol lloc on s’espera que
caigui una línia divisòria. Si es troben línies de comprovació de
compàs a altres llocs, s’imprimeix una llista d’advertiments al
fitxer log de registre, mostrant els números de línia i columna en
el qual han fallat les comprovacions de compàs. Al següent
exemple, la segona comprovació de compàs avisarà d’un error.
\time 3/4 c2 e4 | g2 |
Una duració incorrecte produeix una partitura completament desbaratada, especialment si la partitura es polifònica, de manera que la millor manera de començar a corregir l’entrada és buscar sistemàticament l’existència de comprovacions de compàs fallides i duracions incorrectes.
Si es produeixen diverses comprovacions de compàs seguides per valor de la mateixa duració musical, sols apareix el primer missatge d’advertiment. Així s’aconsegueix que el missatge estigui concentrat a la font d’error de la pulsació.
Les comprovacions de compàs també es poden inserir dins de la lletra de les cançons:
\lyricmode {
\time 2/4
Twin -- kle | Twin -- kle |
}
Observeu que les comprovacions de compàs dins de la lletra de les cançons s’avaluen al moment musical de la síl·laba següent a la comprovació de compàs que es processa. Si la lletra està associada amb les notes d’una veu que té un silenci al principi del compàs, no es pot posar cap síl·laba al comen ament d’aquest compàs i s’imprimeix un missatge d’advertiment si s’escriu una comprovació de compàs dins de la lletra, en aquesta posició.
També és possible redefinir l’acció que es fa quan es troba una
barra vertical o símbol de comprovació de compàs, |, al
codi d’entrada, de forma que faci quelcom diferent a una
comprovació de compàs. Es fa assignant una expressió musical a
"|", el símbol de barra vertical. A l’exemple següent
s’estableix | de forma que insereixi una doble línia
divisòria quan apareix al codi d’entrada, en comptes de comprovar
el final d’un compàs.
"|" = \bar "||"
{
c'2 c' |
c'2 c'
c'2 | c'
c'2 c'
}
En copiar peces musicals grans pot servir d’ajuda comprovar que el
número de compàs del LilyPond correspongui a l’original des del
qual s’està copiant. Això es pot comprovar amb
\barNumberCheck, por exemple:
\barNumberCheck #123
imprimeix un advertiment si el currentBarNumber (número del
compàs actual) no és el 123 en el moment de la compilació.
Vegeu també
Fragments de codi: Rhythms.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Comprovació de compàs i de número de compàs ] | [ Amunt : Compassos ] | [ Temes especials de ritme > ] | ||
Marques d’assaig
Per imprimir una lletra d’assaig, utilitzeu l’ordre \mark.
\relative c'' {
c1 \mark \default
c1 \mark \default
c1 \mark \default
c1 \mark \default
}
La lletra d’assaig s’incrementa automàticament si useu
\mark \default, però també podeu utilitzar un número enter
com argument per establir la indicació manualment. El valor que
s’utilitzarà s’emmagatzema dins de la propietat
rehearsalMark.
\relative c'' {
c1 \mark \default
c1 \mark \default
c1 \mark #8
c1 \mark \default
c1 \mark \default
}
La lletra ‘I’ se salta d’acord amb les tradicions de gravat. Si voleu incloure la la lletra ‘I’, useu una de les ordres següents, segons l’estil de marques d’assaig que desitgeu (sols lletres, lletres dins d’un rectangle o lletres dins d’un cercle).
\set Score.markFormatter = #format-mark-alphabet \set Score.markFormatter = #format-mark-box-alphabet \set Score.markFormatter = #format-mark-circle-alphabet
\relative c'' {
\set Score.markFormatter = #format-mark-box-alphabet
c1 \mark \default
c1 \mark \default
c1 \mark #8
c1 \mark \default
c1 \mark \default
}
L’estil es defineix per mitjà de la propietat
markFormatter. És una funció que agafa com arguments la
marca en curs (un nombre enter) i el context actual. Ha de tornar
un objecte de marcatge. A l’exemple següent, s’estableix
markFormatter amb el valor d’un procediment predefinit.
Després d’alguns compassos s’estableix amb un valor d’una funció
que produeix un número tancat a una capsa.
\relative c'' {
\set Score.markFormatter = #format-mark-numbers
c1 \mark \default
c1 \mark \default
\set Score.markFormatter = #format-mark-box-numbers
c1 \mark \default
\set Score.markFormatter = #format-mark-circle-numbers
c1 \mark \default
\set Score.markFormatter = #format-mark-circle-letters
c1
}
El fitxer ‘scm/translation-functions.scm’ conté les
definicions de format-mark-numbers (el format per omissió),
format-mark-box-numbers, format-mark-letters i
format-mark-box-letters. Es poden usar aquestes
definicions com a inspiració per a d’altres funcions de format.
Podem fer servir format-mark-barnumbers,
format-mark-box-barnumbers i
format-mark-circle-barnumbers per obtenir números de compas
en lloc de números de lletres seqüencials.
Es poden especificar altres estils de lletra d’assaig de forma manual:
\mark "A1"
Observeu que Score.markFormatter no afecta a las marque que
s’especifiquen de aquest forma. Malgrat això, és possible aplicar
un element \markup a la cadena.
\mark \markup{ \box A1 }
Els glifs musicals (como ara el segno) es poden imprimir dins d’un
element \mark
\relative c' {
c1 \mark \markup { \musicglyph "scripts.segno" }
c1 \mark \markup { \musicglyph "scripts.coda" }
c1 \mark \markup { \musicglyph "scripts.ufermata" }
c1
}
Consulteu
El tipus de lletra Emmentaler
per veure una llista dels símbols que es poden imprimir amb
\musicglyph.
Per veure formes comuns d’ajustar la col·locació de les lletres
d’assaig, consulteu Donar format al text.
Per a un control més precís, consulteu
break-alignable-interface a la secció
Alineació d’objectes.
El fitxer ‘scm/translation-functions.scm’ conté les
definicions de format-mark-numbers i de
format-mark-letters. Es poden utilitzar com a inspiració
per escriure altres funcions per donar format.
Vegeu també
Referència de la notació: El tipus de lletra Emmentaler, Donar format al text, Alineació d’objectes.
Fitxers d’inici: ‘scm/translation-functions.scm’.
Fragments de codi: Rhythms.
Referència de funcionament intern: MarkEvent, Mark_engraver, RehearsalMark.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Marques d'assaig ] | [ Amunt : Duracions ] | [ Notes d'adorn > ] | ||
1.2.6 Temes especials de ritme
| Notes d’adorn | ||
| Alinear amb una cadenza | ||
| Gestió del temps |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Temes especials de ritme ] | [ Amunt : Temes especials de ritme ] | [ Alinear amb una cadenza > ] | ||
Notes d’adorn
Els mordents i les notes d’adorn són ornaments musicals, impresos a un tipus de lletra més petita i no ocupen cap temps lògic addicional al compàs.
\relative {
c''4 \grace b16 a4(
\grace { b16 c16 } a2)
}
Hi ha tres tipus possibles de notes d’adorn; la
acciaccatura o mordent d’una nota (una nota d’adorn sense
mesura que s’indica mitjançant una nota lligada i amb la clau
ratllada) i la appoggiatura, que agafa una fracció fixa de
la nota principal a la que s’adjunta, i que s’imprimeix sense
ratllar. És possible escriure una nota d’adorn amb la plica
ratllada, com la acciaccatura però sense la lligadura, com
per col·locar-la entre notes que estan lligades entre sí,
utilitzant la funció \slashedGrace.
\relative {
\acciaccatura d''8 c4
\appoggiatura e8 d4
\acciaccatura { g16 f } e2
\slashedGrace a,8 g4
\slashedGrace b16 a4(
\slashedGrace b8 a2)
}
La col·locació de notes d’adorn se sincronitza entres els diferents pentagrames. A l’exemple següent, hi ha dues semicorxeres d’adorn per a cada corxera d’adorn:
<<
\new Staff \relative { e''2 \grace { c16 d e f } e2 }
\new Staff \relative { c''2 \grace { g8 b } c2 }
>>
Si volem acabar una nota amb un adorn, usem l’ordre
\afterGrace. Agafa dos argument: la nota principal, i les
notes d’adorn que segueixen a la nota principal.
\relative { c''1 \afterGrace d1 { c16[ d] } c1 }
Això posa les notes d’adorn després d’un espai que dura 3/4 de la
longitud de la nota principal. La fracció predeterminada de 3/4
es pot canviar establint afterGraceFraction. L’exemple
següent mostra el resultat d’establir l’espai en el seu valor
predeterminat, en 15/16, i per últim en 1/2 de la nota principal.
<<
\new Staff \relative {
c''1 \afterGrace d1 { c16[ d] } c1
}
\new Staff \relative {
#(define afterGraceFraction (cons 15 16))
c''1 \afterGrace d1 { c16[ d] } c1
}
\new Staff \relative {
#(define afterGraceFraction (cons 1 2))
c''1 \afterGrace d1 { c16[ d] } c1
}
>>
L’espai entre la nota principal i la d’adorn també es pot especificar usant espaiadors. L’exemple següent situa la nota d’adorn després d’un espai que dura 7/8 de la nota principal.
\new Voice \relative {
<<
{ d''1^\trill_( }
{ s2 s4. \grace { c16 d } }
>>
c1)
}
Una expressió musical \grace introdueix ajustos de tipus de
lletra especials, per exemple per produir un tipus de lletra més
petit i per fixes les direccions. Per això, quan s’introdueixen
ajustaments per a la presentació, han d’anar dins de l’expressió
d’adorn. Les sobreescriptures s’han de revertir també dins de
l’expressió d’adorn. Aquí, la direcció predeterminada de la plica
de la nota d’adorn se sobreescriu i després es reverteix.
\new Voice \relative {
\acciaccatura {
\stemDown
f''16->
\stemNeutral
}
g4 e c2
}
Fragments de codi seleccionats
Using grace note slashes with normal heads
The slash through the stem found in acciaccaturas can be applied in other situations.
\relative c'' {
\override Flag.stroke-style = #"grace"
c8( d2) e8( f4)
}
Tweaking grace layout within music
The layout of grace expressions can be changed throughout the music
using the functions add-grace-property and
remove-grace-property. The following example undefines the
Stem direction for this grace, so that stems do not always point
up, and changes the default note heads to crosses.
\relative c'' {
\new Staff {
$(remove-grace-property 'Voice 'Stem 'direction)
$(add-grace-property 'Voice 'NoteHead 'style 'cross)
\new Voice {
\acciaccatura { f16 } g4
\grace { d16 e } f4
\appoggiatura { f,32 g a } e2
}
}
}
Redefining grace note global defaults
The global defaults for grace notes are stored in the identifiers
startGraceMusic, stopGraceMusic,
startAcciaccaturaMusic, stopAcciaccaturaMusic,
startAppoggiaturaMusic and stopAppoggiaturaMusic, which
are defined in the file ly/grace-init.ly. By redefining them
other effects may be obtained.
startAcciaccaturaMusic = {
<>(
\override Flag.stroke-style = #"grace"
\slurDashed
}
stopAcciaccaturaMusic = {
\revert Flag.stroke-style
\slurSolid
<>)
}
\relative c'' {
\acciaccatura d8 c1
}
Positioning grace notes with floating space
Setting the property 'strict-grace-spacing makes the musical
columns for grace notes ’floating’, i.e., decoupled from the non-grace
notes: first the normal notes are spaced, then the (musical columns of
the) graces are put left of the musical columns for the main notes.
\relative c'' {
<<
\override Score.SpacingSpanner.strict-grace-spacing = ##t
\new Staff \new Voice {
\afterGrace c4 { c16[ c8 c16] }
c8[ \grace { b16 d } c8]
c4 r
}
\new Staff {
c16 c c c c c c c c4 r
}
>>
}
Vegeu també
Glossari musical: grace notes, acciaccatura, appoggiatura.
Referència de la notació: Escalat de les duracions, Barres manuals.
Fitxers d’inici: ‘ly/grace-init.ly’.
Fragments de codi: Rhythms.
Referència de funcionament intern: GraceMusic, Grace_beam_engraver, Grace_auto_beam_engraver, Grace_engraver, Grace_spacing_engraver.
Advertiments i problemes coneguts
Una acciaccatura de diverses notes amb una barra s’imprimeix sense ratllar, i té exactament la mateixa aparença que una appoggiatura de diverses notes amb barra.
La sincronització de les notes d’adorn també pot portar sorpreses. La notació de pentagrames, com ara armadures, línies divisòries, etc., també se sincronitzen. Aneu amb cura quan barregeu pentagrames amb adorns i sense adorns, per exemple
<<
\new Staff \relative { e''4 \bar ".|:" \grace c16 d2. }
\new Staff \relative { c''4 \bar ".|:" d2. }
>>
Això es pot remeiar inserint desplaçaments d’adorn de les duracions corresponents als altres pentagrames. Per a l’exemple anterior
<<
\new Staff \relative { e''4 \bar ".|:" \grace c16 d2. }
\new Staff \relative { c''4 \bar ".|:" \grace s16 d2. }
>>
És obligatori usar l’ordre \grace per a la part dels
desplaçaments, fins i tot si la part visual usa
\acciaccatura o \appoggiatura perquè en cas contrari
s’imprimeix una lligadura lletja que connecta a la nota d’adorn
invisible amb la nota següent.
Les seccions d’adorn sols s’han d’usar dins d’expressions de música seqüencials. No estan contemplats ni el niuat ni la juxtaposició de seccions d’adorn, i podria produir fallades i altres errors.
Cada nota d’adorn a la sortida MIDI té una longitud que és 1/4 de
la seva duració real. Si la duració combinada de les notes
d’adorn és més gran que la longitud de la nota precedent, es
genera un error “Retrocedint al temps MIDI”. Teniu dues
opcions: en primer lloc, podeu fer més curta la duració de les
notes d’adorn, per exemple:
c'8 \acciaccatura { c'8[ d' e' f' g'] }
es converteix a:
c'8 \acciaccatura { c'16[ d' e' f' g'] }
Una altra opció és canviar explícitament la duració musical:
c'8 \acciaccatura { \scaleDurations 1/2 { c'8[ d' e' f' g'] } }
Vegeu Escalat de les duracions.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Notes d'adorn ] | [ Amunt : Temes especials de ritme ] | [ Gestió del temps > ] | ||
Alinear amb una cadenza
A un context orquestral, les cadenzas presenten un problema espacial: en construir una partitura que te una cadenza, tots els altres instruments han de saltar tantes notes com la longitud de la cadenza, ja que en cas contrari començaran massa aviat o massa tard.
Una solució a aquest problema són les funcions
mmrest-of-length i skip-of-length. Aquestes
funcions de l’Scheme agafen un fragment de música com a argument i
generen un \skip o silenci multicompàs de la longitud
exacta del fragment.
MyCadenza = \relative {
c'4 d8 e f g g4
f2 g4 g
}
\new GrandStaff <<
\new Staff {
\MyCadenza c'1
\MyCadenza c'1
}
\new Staff {
#(mmrest-of-length MyCadenza)
c'1
#(skip-of-length MyCadenza)
c'1
}
>>
Vegeu també
Glossari musical: cadenza.
Fragments de codi: Rhythms.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Alinear amb una cadenza ] | [ Amunt : Temes especials de ritme ] | [ Expressions > ] | ||
Gestió del temps
El temps esta administrat per Timing_translator, que de
forma predeterminada es troba al context de Score.
S’afegeix un àlies, Timing, al context que en el qual es
col·loca el Timing_translator. Per assegurar que està
disponible l’àlies Timing, potser heu de crear
explícitament una instància del context contenidor (com Voice o
Staff).
S’usen les següents propietats de Timing per seguir la
pista del temps dins de la partitura.
-
currentBarNumber El número de compàs en curs. Per veure un exemple que mostra l’sú d’aquesta propietat, consulteu Numeració de compassos.
-
measureLength La longitud dels compassos dins de la indicació actual de compàs. Per a un 4/4 això és 1, i per al 6/8 és 3/4. El seu valor determina quan s’insereixen les línies divisòries i com es generen les barres automàtiques.
-
measurePosition El punt en el qual ens trobem dins del compàs. Aquesta quantitat es reinicia restant
measureLengthcada cop que s’assoleix o s’excedeixmeasureLength. Quan això passa, s’incrementacurrentBarNumber.-
timing Si té un valor vertader, les variables anteriors s’actualitzen a cada pas del temps, quan té un valor fals, el gravador es queda al compàs actual indefinidament.
El compte del temps es pot canviar establint el valor de qualsevol
d’aquestes variables explícitament. A l’exemple següent,
s’imprimeix la indicació de compàs predeterminada 4/4,
però measureLength s’ajusta a 5/4. Als 4/8 fins el tercer
compàs, la posició measurePosition s’avança en 1/8 fins a
5/8, escurçant aquest compàs en 1/8. Aleshores, la següent línia
divisòria cau en 9/8 en comptes de fer-ho en 5/4.
\new Voice \relative {
\set Timing.measureLength = #(ly:make-moment 5/4)
c'1 c4 |
c1 c4 |
c4 c
\set Timing.measurePosition = #(ly:make-moment 5/8)
b4 b b8 |
c4 c1 |
}
Com s’il·lustra a l’exemple, ly:make-moment n m construeix
una duració de la fracció d’una rodona. Per exemple,
ly:make-moment 1 8 és una duració d’una corxera i
ly:make-moment 7 16 és la duració de set semicorxeres.
Vegeu també
Referència de la notació: Numeració de compassos, Música sense compassos.
Fragments de codi: Rhythms.
Referència de funcionament interno: Timing_translator, Score.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Gestió del temps ] | [ Amunt : Notació musical ] | [ Expressions annexades a les notes > ] | ||
1.3 Expressions
Aquesta secció relaciona diverses marques d’expressió que es poden crear a una partitura.
| 1.3.1 Expressions annexades a les notes | ||
| 1.3.2 Marques expressives en forma corba | ||
| 1.3.3 Marques expressives en forma de línies |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Expressions ] | [ Amunt : Expressions ] | [ Articulacions i ornaments > ] | ||
1.3.1 Expressions annexades a les notes
Aquesta secció explica com crear marques expressives que estan aplicades a notes: articulacions, ornaments i matisos. També es tracten els mètodes per crear les marques dinàmiques.
| Articulacions i ornaments | ||
| Matisos dinàmics | ||
| Indicacions dinàmiques contemporànies |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Expressions annexades a les notes ] | [ Amunt : Expressions annexades a les notes ] | [ Matisos dinàmics > ] | ||
Articulacions i ornaments
Es poden annexar a les notes un ample ventall de símbols per denotar articulacions, adorns i altres indicacions d’execució, utilitzant la sintaxi següent:
nota\nom
La llista de possibles valors de nom està a
Llista d’articulacions. Per exemple
\relative {
c''4\staccato c\mordent b2\turn
c1\fermata
}
Algunes d’aquestes articulacions tenen abreviatures que faciliten
la seva escriptura. Les abreviatures s’escriuen a darrere del nom
de la nota, i la seva sintaxi consisteix en un guió -
seguit d’un símbol que especifica l’articulació. Existeixen
abreviatures prededefinides per al marcato,
stopped (nota apagada), tenuto, staccatissimo,
accent (acent), staccato (picat), i
portato. La sortida corresponent a aquestes
articulacions apareix de la manera següent:
\relative {
c''4-^ c-+ c-- c-!
c4-> c-. c2-_
}
Les regles per a la col·locació predeterminada de les articulacions es troben definides al fitxer ‘scm/script.scm’. Les articulacions i ornaments es poden col·locar manualment per sobre o per sota del pentagrama; vegeu Direcció i posició.
Les articulacions són objectes Script. Les seves
propietats es descriuen de forma més completa a
Script.
Les articulacions es poden adjuntar als silencis així com a les
notes, pero no es poden ajuntar a silencis multicompàs. Hi ha
disponible una ordre predefinida especial, \fermataMarkup,
per annexar un calderó a un silenci multicompàs (i sols a un
silenci multicompàs). L’ordre crea un objecte MultiMeasureRestText.
\override Script.color = #red \override MultiMeasureRestText.color = #blue a'2\fermata r\fermata R1\fermataMarkup
A més d’articulacions, es poden adjuntar textos i elements de marcatge de les notes. Vegeu Scripts de text.
Per veure més informació quant a l’ordenació dels elements Script i TextScript que s’annexen a les notes, consulteu Col·locació dels objectes.
Fragments de codi seleccionats
Modifying default values for articulation shorthand notation
The shorthands are defined in ‘ly/script-init.ly’, where the
variables dashHat, dashPlus, dashDash,
dashBar, dashLarger, dashDot, and
dashUnderscore are assigned default values. The default values
for the shorthands can be modified. For example, to associate the
-+ (dashPlus) shorthand with the trill symbol instead of
the default + symbol, assign the value trill to the variable
dashPlus:
\relative c'' { c1-+ }
dashPlus = "trill"
\relative c'' { c1-+ }
Controlling the vertical ordering of scripts
The vertical ordering of scripts is controlled with the
'script-priority property. The lower this number, the closer it
will be put to the note. In this example, the TextScript (the
sharp symbol) first has the lowest priority, so it is put lowest in the
first example. In the second, the prall trill (the Script) has
the lowest, so it is on the inside. When two objects have the same
priority, the order in which they are entered determines which one
comes first.
\relative c''' {
\once \override TextScript.script-priority = #-100
a2^\prall^\markup { \sharp }
\once \override Script.script-priority = #-100
a2^\prall^\markup { \sharp }
}
Creating a delayed turn
Creating a delayed turn, where the lower note of the turn uses the
accidental, requires several overrides. The
outside-staff-priority property must be set to #f, as
otherwise this would take precedence over the avoid-slur
property. Changing the fractions 2/3 and 1/3 adjusts
the horizontal position.
\relative c'' {
c2*2/3 ( s2*1/3\turn d4) r
<<
{ c4.( d8) }
{ s4 s\turn }
>>
\transpose c d \relative c'' <<
{ c4.( d8) }
{
s4
\once \set suggestAccidentals = ##t
\once \override AccidentalSuggestion.outside-staff-priority = ##f
\once \override AccidentalSuggestion.avoid-slur = #'inside
\once \override AccidentalSuggestion.font-size = -3
\once \override AccidentalSuggestion.script-priority = -1
\single \hideNotes
b8-\turn \noBeam
s8
}
>>
}
Vegeu també
Glossari musical: tenuto, accent, staccato, portato.
Manual d’aprenentatge: Col·locació dels objectes.
Referència de la notació: Scripts de text, Direcció i posició, Llista d’articulacions, Refilets.
Fitxers instal·lats: ‘scm/script.scm’.
Fragments de codi: Expressive marks.
Referència de funcionament intern: Script, TextScript.
Matisos dinàmics
Les marques dinàmiques de matís absolut s’especifiquen usant una
ordre després d’una nota: c4\ff. Les marques dinàmiques
disponibles són \ppppp, \pppp,
\ppp, \pp, \p, \mp, \mf,
\f, \ff, \fff, \ffff, \fffff,
\fp, \sf, \sff, \sp, \spp,
\sfz i \rfz. Les indicaciones dinàmiques es poden
col·locar manulament per sobre o per sota del pentagrama; per veure
més detalls, consulteu
Direcció i posició.
\relative c'' {
c2\ppp c\mp
c2\rfz c^\mf
c2_\spp c^\ff
}
Una indicació de crescendo s’inicia amb \< i
s’acaba amb \!, amb un matís absolut o amb una altra
indicació de crescendo o de descrescendo. Una indicació de
decrescendo comença amb \> i acaba també amb
\!, amb un matís dinàmic absolut o amb una altra indicació
de crescendo o de decrescendo. Es poden usar \cr i
\decr en lloc de \< i \>. De forma
predeterminada, es graven reguladors en angle quan es fa servir
aquesta notació.
\relative c'' {
c2\< c\!
d2\< d\f
e2\< e\>
f2\> f\!
e2\> e\mp
d2\> d\>
c1\!
}
Un regulador acabat mitjançant \! finalitza a la vora dreta
de la nota que porta el \! annexat. En el cas en el qual
estigui acabat amb el començament d’una altra indicació
crescendo o decrescendo, acabarà al centre
de la nota que té annexada la següent indicació
\< o \>. El regulador següent començarà aleshores a
la vora dreta de la mateixa nota en comptes de la vora esquerra,
com seria normal si hagués acabaat amb \! prèviament.
\relative {
c''1\< | c4 a c\< a | c4 a c\! a\< | c4 a c a\!
}
Els reguladors que acaben amb indicacions dinàmiques absolutes en
lloc d’amb \! també es graven de manera semblant.
Tanmateix, la longitud de la pròpia indicació dinàmica pot alterar
el punt en el qual finalitza el regulador anterior.
\relative {
c''1\< | c4 a c\mf a | c1\< | c4 a c\ffff a
}
Es requereixen silencis espaiadors per tipografiar diverses indicacions dinàmiques sobre una sola nota. Això és útil especialment per afegir un crescendo i un decrescendo a la mateixa nota:
\relative {
c''4\< c\! d\> e\!
<< f1 { s4 s4\< s4\> s4\! } >>
}
Es pot fer servir l’ordre \espressivo per indicar un
crescendo o un decrescendo sobra la mateixa nota. Tanmateix,
noteu que aquesta indicació està implementada com una articulació,
no com una expressió dinàmica.
\relative {
c''2 b4 a
g1\espressivo
}
Les indicacions de crescendo textuals s’inicien amb
\cresc. Els decrescendos textuals s’inicien amb
\decresc o amb \dim. Es tracen líniies extensores
quan cal.
\relative {
g'8\cresc a b c b c d e\mf |
f8\decresc e d c e\> d c b |
a1\dim ~ |
a2. r4\! |
}
També poden substituir-se els reguladors gràfics per canvis de dinàmica textuals:
\relative c'' {
\crescTextCresc
c4\< d e f\! |
\dimTextDecresc
g4\> e d c\! |
\dimTextDecr
e4\> d c b\! |
\dimTextDim
d4\> c b a\! |
\crescHairpin
\dimHairpin
c4\< d\! e\> d\! |
}
Per crear noves indicacions de matís absolut o de text que s’han d’alinear amb els matisos; vegeu Indicacions dinàmiques contemporànies.
La col·locació vertical de les indicacions de dinàmica es gestiona per part de DynamicLineSpanner.
Hi ha disponible un context Dynamics per gravar les
indicacions de matís dinàmic en la seva pròpia línia
horitzontal. Useu silencis de separació per indicar els temps
(les notes que estan dins d’un context Dynamics també
ocupen temps musical, però no s’imprimeixen). El context
Dynamics pot contenir altres elements com inscripcions
textuals, objectes extensors de text i indicacions de pedal de
piano.
<<
\new Staff \relative {
c'2 d4 e |
c4 e e,2 |
g'4 a g a |
c1 |
}
\new Dynamics {
s1\< |
s1\f |
s2\dim s2-"rit." |
s1\p |
}
>>
Instruccions predefinides
\dynamicUp,
\dynamicDown,
\dynamicNeutral,
\crescTextCresc,
\dimTextDim,
\dimTextDecr,
\dimTextDecresc,
\crescHairpin,
\dimHairpin.
Fragments de codi seleccionats
Setting hairpin behavior at bar lines
If the note which ends a hairpin falls on a downbeat, the hairpin stops
at the bar line immediately preceding. This behavior can be controlled
by overriding the 'to-barline property.
\relative c'' {
e4\< e2.
e1\!
\override Hairpin.to-barline = ##f
e4\< e2.
e1\!
}
Setting the minimum length of hairpins
If hairpins are too short, they can be lengthened by modifying the
minimum-length property of the Hairpin object.
\relative c'' {
c4\< c\! d\> e\!
<< f1 { s4 s\< s\> s\! } >>
\override Hairpin.minimum-length = #5
<< f1 { s4 s\< s\> s\! } >>
}
Printing hairpins using al niente notation
Hairpin dynamics may be printed with a circled tip (“al niente”
notation) by setting the circled-tip property of the
Hairpin object to #t.
\relative c'' {
\override Hairpin.circled-tip = ##t
c2\< c\!
c4\> c\< c2\!
}
Printing hairpins in various styles
Hairpin dynamics may be created in a variety of styles.
\relative c'' {
\override Hairpin.stencil = #flared-hairpin
a4\< a a a\f
a4\p\< a a a\ff
a4\sfz\< a a a\!
\override Hairpin.stencil = #constante-hairpin
a4\< a a a\f
a4\p\< a a a\ff
a4\sfz\< a a a\!
\override Hairpin.stencil = #flared-hairpin
a4\> a a a\f
a4\p\> a a a\ff
a4\sfz\> a a a\!
\override Hairpin.stencil = #constante-hairpin
a4\> a a a\f
a4\p\> a a a\ff
a4\sfz\> a a a\!
}
Vertically aligned dynamics and textscripts
All DynamicLineSpanner objects (hairpins and dynamic texts) are
placed with their reference line at least 'staff-padding from
the staff, unless other notation forces them to be farther. Setting
'staff-padding to a sufficiently large value aligns the dynamics.
The same idea, together with \textLengthOn, is used to align
the text scripts along their baseline.
music = \relative c' {
a'2\p b\f
e4\p f\f\> g, b\p
c2^\markup { \huge gorgeous } c^\markup { \huge fantastic }
}
{
\music
\break
\override DynamicLineSpanner.staff-padding = #3
\textLengthOn
\override TextScript.staff-padding = #1
\music
}
Hiding the extender line for text dynamics
Text style dynamic changes (such as cresc. and dim.) are printed with a dashed line showing their extent. This line can be suppressed in the following way:
\relative c'' {
\override DynamicTextSpanner.style = #'none
\crescTextCresc
c1\< | d | b | c\!
}
Changing text and spanner styles for text dynamics
The text used for crescendos and decrescendos can be changed by
modifying the context properties crescendoText and
decrescendoText.
The style of the spanner line can be changed by modifying the
'style property of DynamicTextSpanner. The default value
is 'dashed-line, and other possible values include 'line,
'dotted-line and 'none.
\relative c'' {
\set crescendoText = \markup { \italic { cresc. poco } }
\set crescendoSpanner = #'text
\override DynamicTextSpanner.style = #'dotted-line
a2\< a
a2 a
a2 a
a2 a\mf
}
Vegeu també
Glossari musical: al niente, crescendo, decrescendo, hairpin.
Manual d’aprenentatge: Articulacions i matisos dinàmics.
Referència de la notació: Direcció i posició, Indicacions dinàmiques contemporànies, Enriquiment de la sortida MIDI, Control de les dinàmiques del MIDI.
Fragments de codi: Expressive marks.
Referència de funcionament intern: DynamicText, Hairpin, DynamicLineSpanner, Dynamics.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Matisos dinàmics ] | [ Amunt : Expressions annexades a les notes ] | [ Marques expressives en forma corba > ] | ||
Indicacions dinàmiques contemporànies
La menara més fàcil de crear indicacions dinàmiques és usar
objectes de marcatge (\markup).
moltoF = \markup { molto \dynamic f }
\relative {
<d' e>16_\moltoF <d e>
<d e>2..
}
En el mode de marcatge es poden crear indicacions dinàmiques editorials (entre parèntesis o claus). La sintaxi del mode de marcatge es descriu a Donar format al text.
roundF = \markup {
\center-align \concat { \bold { \italic ( }
\dynamic f \bold { \italic ) } } }
boxF = \markup { \bracket { \dynamic f } }
\relative {
c'1_\roundF
c1_\boxF
}
Les indicacions dinàmiques senzilles i centrades es creen
fàcilment amb la funció make-dynamic-script.
sfzp = #(make-dynamic-script "sfzp")
\relative {
c'4 c c\sfzp c
}
En general make-dynamic-script agafa qualsevol objecte de
marcatge com a argument. El tipus de lletra de matisos sols conté
els caràcters f, m, p, r, s y z, per la qual cosa si
desitgeu obtenir una indicació dinàmica que inclogui text normal o
signes de puntuació, cal fer servir ordres de marcatge que
retornin els ajustaments de la família de tipus de lletra i la
seva codificació a las del text normal, per exemple
\normal-text. L’interès de la utilització de
make-dynamic-script en lloc d’un element de marcatge
corrent radica en assegurar l’alineació vertical dels objectes de
marcatge i reguladors que s’apliquen al mateix cap de nota.
roundF = \markup { \center-align \concat {
\normal-text { \bold { \italic ( } }
\dynamic f
\normal-text { \bold { \italic ) } } } }
boxF = \markup { \bracket { \dynamic f } }
mfEspress = \markup { \center-align \line {
\hspace #3.7 mf \normal-text \italic espress. } }
roundFdynamic = #(make-dynamic-script roundF)
boxFdynamic = #(make-dynamic-script boxF)
mfEspressDynamic = #(make-dynamic-script mfEspress)
\relative {
c'4_\roundFdynamic\< d e f
g,1~_\boxFdynamic\>
g1
g'1~\mfEspressDynamic
g1
}
Es pot utilitzar en el seu lloc la forma Scheme del mode de marcatge. La seva sintaxi s’explica a
Se puede utilizar en su lugar la forma Scheme del modo de marcado. Su sintaxis se explica en Construcció de marcatge en Scheme.
moltoF = #(make-dynamic-script
(markup #:normal-text "molto"
#:dynamic "f"))
\relative {
<d' e>16 <d e>
<d e>2..\moltoF
}
Per alinear el text del matís dinàmic a l’esquerra en lloc de
centrar-lo sobre una nota, utilitzeu un \tweak:
moltoF = \tweak DynamicText.self-alignment-X #LEFT
#(make-dynamic-script
(markup #:normal-text "molto"
#:dynamic "f"))
\relative {
<d' e>16 <d e>
<d e>2..\moltoF <d e>1
}
Els ajustos per als tipus de lletra en mode de marcatge es descriuen a Selecció del tipus de lletra i la seva mida.
Vegeu també
Referència de la notació: Donar format al text, Selecció del tipus de lletra i la seva mida, Enriquiment de la sortida MIDI, Control de les dinàmiques del MIDI.
Extensió del LilyPond: Construcció de marcatge en Scheme.
Fragments de codi: Expressive marks.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Indicacions dinàmiques contemporànies ] | [ Amunt : Expressions ] | [ Lligadures d'expressió > ] | ||
1.3.2 Marques expressives en forma corba
Aquesta secció explica com crear diverses marques expressives amb forma corba: lligagures d’expressió i de fraseig, respiracions, caigudes i elevacions de to.
| Lligadures d’expressió | ||
| Lligadures de fraseig | ||
| Marques de respiració | ||
| Caigudes i elevacions |
Lligadures d’expressió
Les lligadures d’expressió s’introdueixen utilitzant parèntesis:
Nota: A la música polifònica, les lligadures d’expressió han d’acabar a la mateixa veu en la qual comencen.
\relative {
f''4( g a) a8 b(
a4 g2 f4)
<c e>2( <b d>2)
}
Les lligadures d’expressió es poden col·locar manualment per sobre o per sota de les notes; vegeu Direcció i posició.
S’ha de tenir cura amb les lligadures d’expressió simultànies o
superposades. En gairebé tots els casos, les lligadures
d’expressió externes indiquen, certament, fraseig, i les
lligadures de fraseig poden superposar-se amb les lligadures
d’expressió normals, vegeu Lligadures de fraseig. Quan
calen diverses lligadures d’expressió normals dins d’una sola
veu, els començament i els finals corresponents de les lligadures
s’han d’etiquetar precedint-los per \= seguit d’un número o
cadena de caràcters que la identifiqui.
\fixed c' {
<c~ f\=1( g\=2( >2 <c e\=1) a\=2) >
}
Les lligadures d’expressió poden ser contínues, discontínues o de punts. L’estil predeterminat de les lligadures d’expressió és el continu:
\relative {
c'4( e g2)
\slurDashed
g4( e c2)
\slurDotted
c4( e g2)
\slurSolid
g4( e c2)
}
També es pot fer que les lligadures d’expressió siguin semi-discontínues (la primera meitat discontínua i la segona meitat contínua) o semi-contínues (la primera meitat contínua i la segona discontínua):
\relative {
c'4( e g2)
\slurHalfDashed
g4( e c2)
\slurHalfSolid
c4( e g2)
\slurSolid
g4( e c2)
}
Es poden definir patrons de discontinuïtat per a les lligadures d’expressió:
\relative {
c'4( e g2)
\slurDashPattern #0.7 #0.75
g4( e c2)
\slurDashPattern #0.5 #2.0
c4( e g2)
\slurSolid
g4( e c2)
}
Instruccions predefinides
\slurUp,
\slurDown,
\slurNeutral,
\slurDashed,
\slurDotted,
\slurHalfDashed,
\slurHalfSolid,
\slurDashPattern,
\slurSolid.
Fragments de codi seleccionats
Using double slurs for legato chords
Some composers write two slurs when they want legato chords. This can
be achieved by setting doubleSlurs.
\relative c' {
\set doubleSlurs = ##t
<c e>4( <d f> <c e> <d f>)
}
Positioning text markups inside slurs
Text markups need to have the outside-staff-priority property
set to false in order to be printed inside slurs.
\relative c'' {
\override TextScript.avoid-slur = #'inside
\override TextScript.outside-staff-priority = ##f
c2(^\markup { \halign #-10 \natural } d4.) c8
}
Making slurs with complex dash structure
Slurs can be made with complex dash patterns by defining the
dash-definition property. dash-definition is a list of
dash-elements. A dash-element is a list of parameters
defining the dash behavior for a segment of the slur.
The slur is defined in terms of the bezier parameter t which ranges
from 0 at the left end of the slur to 1 at the right end of the slur.
dash-element is a list (start-t stop-t dash-fraction
dash-period). The region of the slur from start-t to
stop-t will have a fraction dash-fraction of each
dash-period black. dash-period is defined in terms of
staff spaces. dash-fraction is set to 1 for a solid slur.
\relative c' {
\once \override
Slur.dash-definition = #'((0 0.3 0.1 0.75)
(0.3 0.6 1 1)
(0.65 1.0 0.4 0.75))
c4( d e f)
\once \override
Slur.dash-definition = #'((0 0.25 1 1)
(0.3 0.7 0.4 0.75)
(0.75 1.0 1 1))
c4( d e f)
}
Vegeu també
Glossari musical: slur.
Manual d’aprenentatge: Quant a la impossibilitat de niuar claus i lligadures
Referència de la notació: Direcció i posició, Lligadures de fraseig.
Fragments de codi: Expressive marks.
Referència de funcionament interno: Slur.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Lligadures d'expressió ] | [ Amunt : Marques expressives en forma corba ] | [ Marques de respiració > ] | ||
Lligadures de fraseig
Les lligadures de fraseig (o marques de fraseig) que
indiquen una frase musical s’escriuen usant les ordres
\( i \) respectivament:
\relative {
c''4\( d( e) f(
e2) d\)
}
Tipogràficament, la lligadura de fraseig es comporta gairebé
exactament igual que una lligadura d’expressió normal. Tanmateix,
es tracten com a objectes diferents. Una \slurUp no tindrà
cap efecte sobre una lligadura de fraseig. El fraseig es pot
col·locar manualment per sobre o per sota de les notes; vegeu
Direcció i posició.
Les lligadures de fraseig simultànies o superposades
s’introdueixen usant \= igual que es fa amb les lligadures
d’expressió normals, vegeu Lligadures d’expressió.
Les lligadures de fraseig poden ser contínues, de punts o de ratlles. L’estil predeterminat per a les lligadures de fraseig és el continu:
\relative {
c'4\( e g2\)
\phrasingSlurDashed
g4\( e c2\)
\phrasingSlurDotted
c4\( e g2\)
\phrasingSlurSolid
g4\( e c2\)
}
Es pot fer també que les lligadures de fraseig siguin semi-dicontínues (la primera meitat discontínua i la segona meitat contínua) o semi-continues (la primera meitat contínua i la segona meitat discontínua):
\relative {
c'4\( e g2\)
\phrasingSlurHalfDashed
g4\( e c2\)
\phrasingSlurHalfSolid
c4\( e g2\)
\phrasingSlurSolid
g4\( e c2\)
}
Es poden definir patrons de discontinuïtat per a les lligadures de fraseig:
\relative {
c'4\( e g2\)
\phrasingSlurDashPattern #0.7 #0.75
g4\( e c2\)
\phrasingSlurDashPattern #0.5 #2.0
c4\( e g2\)
\phrasingSlurSolid
g4\( e c2\)
}
Les definicions de patrons de discontinuïtat tenen la mateixa estructura que les definicions de patrons de discontinuïtat de les lligadures d’expressió. Per veure més informació sobre els patrons de discontinuïtat complexos, consulteu els fragments de codi sota Lligadures d’expressió.
Instruccions predefinides
\phrasingSlurUp,
\phrasingSlurDown,
\phrasingSlurNeutral,
\phrasingSlurDashed,
\phrasingSlurDotted,
\phrasingSlurHalfDashed,
\phrasingSlurHalfSolid,
\phrasingSlurDashPattern,
\phrasingSlurSolid.
Vegeu també
Manual de aprenentatge: Quant a la impossibilitat de niuar claus i lligadures
Referència de la notació: Direcció i posició, Lligadures d’expressió.
Fragments de codi: Expressive marks.
Referència de funcionament intern: PhrasingSlur.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Lligadures de fraseig ] | [ Amunt : Marques expressives en forma corba ] | [ Caigudes i elevacions > ] | ||
Marques de respiració
Les respiracions s’introdueixen utilitzant \breathe:
{ c''2. \breathe d''4 }
A diferència d’altres marques d’expressió, els símbols de
respiració no estan associats amb la nota anterior, sinó que són
esdeveniments independents. Per això, totes les marques
d’expressió que estan annexades a la nota anterior, qualsevol
claudàtor que indiqui barrat manual i qualsevol parèntesi
que indiqui lligadures d’expressió i de fraseig, s’han d’escriure
abans de \breathe.
Les marques de respiració donen per acabades les barres automàtiques; per anul·lar aquest comportament, consulteu Barres manuals.
\relative { c''8 \breathe d e f g2 }
A la notació antiga, es contemplen els indicadors musicals per a les marques de respiració, o divisiones. Per veure més detalls, consulteu Divisiones.
Fragments de codi seleccionats
Changing the breath mark symbol
The glyph of the breath mark can be tuned by overriding the text
property of the BreathingSign layout object with any markup
text.
\relative c'' {
c2
\override BreathingSign.text =
\markup { \musicglyph "scripts.rvarcomma" }
\breathe
d2
}
Using a tick as the breath mark symbol
Vocal and wind music frequently uses a tick mark as a breathing sign. This indicates a breath that subtracts a little time from the previous note rather than causing a short pause, which is indicated by the comma breath mark. The mark can be moved up a little to take it away from the stave.
\relative c'' {
c2
\breathe
d2
\override BreathingSign.Y-offset = #2.6
\override BreathingSign.text =
\markup { \musicglyph "scripts.tickmark" }
c2
\breathe
d2
}
Inserting a caesura
Caesura marks can be created by overriding the 'text property of
the BreathingSign object. A curved caesura mark is also
available.
\relative c'' {
\override BreathingSign.text = \markup {
\musicglyph "scripts.caesura.straight"
}
c8 e4. \breathe g8. e16 c4
\override BreathingSign.text = \markup {
\musicglyph "scripts.caesura.curved"
}
g8 e'4. \breathe g8. e16 c4
}
Vegeu també
Glossari musical: caesura.
Referència de la notació: Divisiones.
Fragments de codi: Expressive marks.
Referència de funcionament intern: BreathingEvent, BreathingSign, Breathing_sign_engraver.
Caigudes i elevacions
Es poden expressar caigudes y elevacions de
to (falls i doits) afegides a les notes mitjançant l’ordre
\bendAfter. La direcció de la caiguda i elevació s’indica
amb un signe de més o menys (a dalt o a sota). El número indica
l’interval d’alçades sobre el qual s’estén la caiguda o elevació
partint de la nota principal.
\relative c'' {
c2\bendAfter #+4
c2\bendAfter #-4
c2\bendAfter #+6.5
c2\bendAfter #-6.5
c2\bendAfter #+8
c2\bendAfter #-8
}
Fragments de codi seleccionats
Adjusting the shape of falls and doits
The shortest-duration-space property may be tweaked to adjust
the shape of falls and doits.
\relative c'' {
\override Score.SpacingSpanner.shortest-duration-space = #4.0
c2-\bendAfter #5
c2-\bendAfter #-4.75
c2-\bendAfter #8.5
c2-\bendAfter #-6
}
Vegeu també
Fragments de codi Expressive marks.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Caigudes i elevacions ] | [ Amunt : Expressions ] | [ Glissando > ] | ||
1.3.3 Marques expressives en forma de línies
Aquesta secció explica com crear diverses marques d’expressió que segueixen un camí lineal: glissandi, arpegis i refilets.
| Glissando | ||
| Arpegi | ||
| Refilets |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Marques expressives en forma de línies ] | [ Amunt : Marques expressives en forma de línies ] | [ Arpegi > ] | ||
Glissando
Es crea un glissando afegint \glissando
després de la nota:
\relative {
g'2\glissando g'
c2\glissando c,
\afterGrace f,1\glissando f'16
}
Un glissando pot connectar notes d’un pentagrama a un altre:
\new PianoStaff <<
\new Staff = "right" {
e'''2\glissando
\change Staff = "left"
a,,4\glissando
\change Staff = "right"
b''8 r |
}
\new Staff = "left" {
\clef bass
s1
}
>>
Un glissando pot connectar les notes dins d’un acord. Si cal fer
quelcom que no sigui una connexió d’una nota amb una altra entre
els dos acords, les connexions entre les notes venen definides per
mitjà de \glissandoMap, on les notes d’un acord se suposen
numerades, començant de zero, en l’ordre en el qual apareixen en
el codi d’entrada del fitxer ‘.ly’.
\relative {
<c' e>1\glissando g' |
<c, e>1\glissando |
<g' b> |
\break
\set glissandoMap = #'((0 . 1) (1 . 0))
<c, g'>1\glissando |
<d a'> |
\set glissandoMap = #'((0 . 0) (0 . 1) (0 . 2))
c1\glissando |
<d f a> |
\set glissandoMap = #'((2 . 0) (1 . 0) (0 . 1))
<f d a'>1\glissando |
<c c'> |
}
Es poden crear diversos tipus de glissando. Per veure més detalls, consulteu Estils de línia.
Fragments de codi seleccionats
Contemporary glissando
A contemporary glissando without a final note can be typeset using a hidden note and cadenza timing.
\relative c'' {
\time 3/4
\override Glissando.style = #'zigzag
c4 c
\cadenzaOn
c4\glissando
\hideNotes
c,,4
\unHideNotes
\cadenzaOff
\bar "|"
}
Adding timing marks to long glissandi
Skipped beats in very long glissandi are sometimes indicated by timing marks, often consisting of stems without noteheads. Such stems can also be used to carry intermediate expression markings.
If the stems do not align well with the glissando, they may need to be repositioned slightly.
glissandoSkipOn = {
\override NoteColumn.glissando-skip = ##t
\hide NoteHead
\override NoteHead.no-ledgers = ##t
}
glissandoSkipOff = {
\revert NoteColumn.glissando-skip
\undo \hide NoteHead
\revert NoteHead.no-ledgers
}
\relative c'' {
r8 f8\glissando
\glissandoSkipOn
f4 g a a8\noBeam
\glissandoSkipOff
a8
r8 f8\glissando
\glissandoSkipOn
g4 a8
\glissandoSkipOff
a8 |
r4 f\glissando \<
\glissandoSkipOn
a4\f \>
\glissandoSkipOff
b8\! r |
}
Making glissandi breakable
Setting the breakable property to #t in combination with
after-line-breaking allows a glissando to break if it occurs at
a line break:
glissandoSkipOn = {
\override NoteColumn.glissando-skip = ##t
\hide NoteHead
\override NoteHead.no-ledgers = ##t
}
\relative c'' {
\override Glissando.breakable = ##t
\override Glissando.after-line-breaking = ##t
f1\glissando |
\break
a4 r2. |
f1\glissando
\once \glissandoSkipOn
\break
a2 a4 r4 |
}
Extending glissandi across repeats
A glissando which extends into several \alternative blocks can
be simulated by adding a hidden grace note with a glissando at the
start of each \alternative block. The grace note should be at
the same pitch as the note which starts the initial glissando. This is
implemented here with a music function which takes the pitch of the
grace note as its argument.
Note that in polyphonic music the grace note must be matched with corresponding grace notes in all other voices.
repeatGliss = #(define-music-function (grace)
(ly:pitch?)
#{
% the next two lines ensure the glissando is long enough
% to be visible
\once \override Glissando.springs-and-rods
= #ly:spanner::set-spacing-rods
\once \override Glissando.minimum-length = #3.5
\once \hideNotes
\grace $grace \glissando
#})
\score {
\relative c'' {
\repeat volta 3 { c4 d e f\glissando }
\alternative {
{ g2 d }
{ \repeatGliss f g2 e }
{ \repeatGliss f e2 d }
}
}
}
music = \relative c' {
\voiceOne
\repeat volta 2 {
g a b c\glissando
}
\alternative {
{ d1 }
{ \repeatGliss c \once \omit StringNumber e1\2 }
}
}
\score {
\new StaffGroup <<
\new Staff <<
\context Voice { \clef "G_8" \music }
>>
\new TabStaff <<
\context TabVoice { \clef "moderntab" \music }
>>
>>
}
Vegeu també
Glossari musical: glissando.
Referència de la notació: Estils de línia.
Fragments de codi: Expressive marks.
Referència de funcionament interno: Glissando.
Advertiments i problemes coneguts
La impressió de text sobre la línia (com a gliss.), no està contemplada.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Glissando ] | [ Amunt : Marques expressives en forma de línies ] | [ Refilets > ] | ||
Arpegi
Un signe de acord arpegiat (conegut també com acord
trencat) sobre un acord, es denota annexant \arpeggio a
l’acord:
\relative { <c' e g c>1\arpeggio }
Es poden escriure diversos tipus d’acords arpegiats.
\arpeggioNormal produeix la volta a l’arpegi normal:
\relative {
<c' e g c>2\arpeggio
\arpeggioArrowUp
<c e g c>2\arpeggio
\arpeggioArrowDown
<c e g c>2\arpeggio
\arpeggioNormal
<c e g c>2\arpeggio
}
Es poden crear símbols especials d’arpegi amb parèntesis:
\relative {
<c' e g c>2
\arpeggioBracket
<c e g c>2\arpeggio
\arpeggioParenthesis
<c e g c>2\arpeggio
\arpeggioParenthesisDashed
<c e g c>2\arpeggio
\arpeggioNormal
<c e g c>2\arpeggio
}
Les propietats de discontinuïtat del parèntesi de l’arpegi es
controlen mitjançant la propietat 'dash-definition, que es
descriu a Lligadures d’expressió.
Els acords arpegiats es poden desenvolupar explícitament utilitzant lligadures d’unió. Vegeu Lligadures d’unió.
Instruccions predefinides
\arpeggio,
\arpeggioArrowUp,
\arpeggioArrowDown,
\arpeggioNormal,
\arpeggioBracket,
\arpeggioParenthesis
\arpeggioParenthesisDashed.
Fragments de codi seleccionats
Creating cross-staff arpeggios in a piano staff
In a PianoStaff, it is possible to let an arpeggio cross between
the staves by setting the property PianoStaff.connectArpeggios.
\new PianoStaff \relative c'' <<
\set PianoStaff.connectArpeggios = ##t
\new Staff {
<c e g c>4\arpeggio
<g c e g>4\arpeggio
<e g c e>4\arpeggio
<c e g c>4\arpeggio
}
\new Staff {
\clef bass
\repeat unfold 4 {
<c,, e g c>4\arpeggio
}
}
>>
Creating cross-staff arpeggios in other contexts
Cross-staff arpeggios can be created in contexts other than
GrandStaff, PianoStaff and StaffGroup if the
Span_arpeggio_engraver is included in the Score context.
\score {
\new ChoirStaff {
\set Score.connectArpeggios = ##t
<<
\new Voice \relative c' {
<c e>2\arpeggio
<d f>2\arpeggio
<c e>1\arpeggio
}
\new Voice \relative c {
\clef bass
<c g'>2\arpeggio
<b g'>2\arpeggio
<c g'>1\arpeggio
}
>>
}
\layout {
\context {
\Score
\consists "Span_arpeggio_engraver"
}
}
}
Creating arpeggios across notes in different voices
An arpeggio can be drawn across notes in different voices on the same
staff if the Span_arpeggio_engraver is added to the Staff
context:
\new Staff \with {
\consists "Span_arpeggio_engraver"
}
\relative c' {
\set Staff.connectArpeggios = ##t
<<
{ <e' g>4\arpeggio <d f> <d f>2 }
\\
{ <d, f>2\arpeggio <g b>2 }
>>
}
Vegeu també
Glossari musical: arpeggio.
Referència de la notació: Lligadures d’expressió, Lligadures d’unió.
Fragments de codi: Expressive marks.
Referència de funcionament intern: Arpeggio, Slur, PianoStaff.
Advertiments i problemes coneguts
No és possible barrejat arpegis connectats i no connectat a un
PianoStaff al mateix moment de temps.
La forma senzilla d’especificar el parèntesis als arpegis de parèntesis no funciona per als arpegis de pentagrama creuat; vegeu Pliques de pentagrama creuat.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Arpegi ] | [ Amunt : Marques expressives en forma de línies ] | [ Repeticions > ] | ||
Refilets
Els refilets curts sense línia extensora es graven amb
\trill; vegeu Articulacions i ornaments.
Els refilets llargs mantinguts, amb línia d’extensió,
es fan amb \startTrillSpan i \stopTrillSpan:
\relative {
d''1\startTrillSpan
d1
c2\stopTrillSpan
r2
}
Un refilet estès que travessa un salt de línia recomença exactament a sobre de la primera nota de la línia nova.
\relative {
d''1\startTrillSpan
\break
d1
c2\stopTrillSpan
r2
}
Els refilets estesos consecutius funcionen sense necessitat
d’ordres \stopTrillSpan explícites, perquè cada refilet es
convertirà automàticament a la vora dreta del refilet anterior.
\relative {
d''1\startTrillSpan
d1
b1\startTrillSpan
d2\stopTrillSpan
r2
}
També es poden combinar els refilets amb notes d’adorn. La sintaxi d’aquesta construcció i el mètode per col·locar les notes d’adorn amb precisió es descriuen a Notes d’adorn.
\relative {
d''1~\afterGrace
d1\startTrillSpan { c32[ d]\stopTrillSpan }
c2 r2
}
Els refilets que s’han d’executar sobre notes auxiliars explícites
es poden gravar amb l’ordre pitchedTrill. El primer
argument és la nota principal, i el segon és la nota
refilada, que es grava com un cap de nota, sense plica i
entre parèntesis.
\relative {
\pitchedTrill
d''2\startTrillSpan fis
d2
c2\stopTrillSpan
r2
}
Cal afegir manualment les alteracions subsegüents de la mateixa nota dins del mateix compàs. Sols s’imprimeix l’alteració del primer refilet amb nota, dins d’un compàs.
\relative {
\pitchedTrill
eis''4\startTrillSpan fis
eis4\stopTrillSpan
\pitchedTrill
eis4\startTrillSpan cis
eis4\stopTrillSpan
\pitchedTrill
eis4\startTrillSpan fis
eis4\stopTrillSpan
\pitchedTrill
eis4\startTrillSpan fis!
eis4\stopTrillSpan
}
Instruccions predefinides
\startTrillSpan,
\stopTrillSpan.
Vegeu també
Glossari musical: trill.
Referència de la notació: Articulacions i ornaments, Notes d’adorn.
Fragments de codi: Expressive marks.
Referència de funcionament intern: TrillSpanner.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Refilets ] | [ Amunt : Notació musical ] | [ Repeticions llargues > ] | ||
1.4 Repeticions
La repetició és un concepte fonamental a la música, i hi ha diversos tipus de notació per a les repeticions. El LilyPond dóna suport als següents tipus de repetició:
-
volta (primera i segona vegada) La repetició de la músic no s’imprimeix de forma desenvolupada, sinó que s’indica envoltant-la entre barres de repetició. Si el salt de la repetició es troba al començament de la peça, la barra de repetició sols s’imprimeix al final del fragment. S’imprimeixen una sèrie de finals alternatius (volta) d’esquerra a dreta indicats mitjançant claus. Aquesta és la notació estàndard per a les repeticions amb finals alternatius.
-
unfold (desplegada) La música repetida s’escriu i s’interpreta completament tantes vegades com especifiqueu el valor
nombre_de_repeticions. És útil quan s’està escrivint música repetitiva.-
percent (percentatge) Fer repeticions de compassos o part d’ells. Tenen un aspecte semblant a un signe de percentatge. Les repeticions de percentatge s’han de declarar dins d’un context
Voice.-
tremolo (trèmol) Fer barres de trèmol.
| 1.4.1 Repeticions llargues | ||
| 1.4.2 Repeticions curtes |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Repeticions ] | [ Amunt : Repeticions ] | [ Repeticions normals > ] | ||
1.4.1 Repeticions llargues
Aquesta secció tracta sobre la forma d’introduir repeticions llargues, normalment de diversos compassos. Les repeticions adopten dues formes: repeticions envoltades entre signes de repetició, o repeticions explícites, que s’usen per escriure música repetitiva. També es poden controlar manualment els signes de repetició.
| Repeticions normals | ||
| Marques de repetició manual | ||
| Repeticions explícites |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Repeticions llargues ] | [ Amunt : Repeticions llargues ] | [ Marques de repetició manual > ] | ||
Repeticions normals
La sintaxi d’una repetició normal és
\repeat volta nombre_de_repeticions expressió_musical
on expressió_musical és una expressió musical.
Una repetició simple sense finals alternatius:
\relative {
\repeat volta 2 { c''4 d e f }
c2 d
\repeat volta 2 { d4 e f g }
}
De forma predeterminada no s’imprimeixen les dobles barres
d’obertura de repetició al primer compàs complet. Malgrat això és
possible imprimir-les usant \bar ".|:" abans de la primera nota.
\relative {
\repeat volta 2 { \bar ".|:" c''4 d e f }
c2 d
\repeat volta 2 { d4 e f g }
}
Els finals alternatius (celes de primera i segona vegada) es
poden generar utilitzant \alternative. Cada grup
d’alternatives ha d’estar envoltat pel seu compte entre claus.
\repeat volta nombre_de_repeticions expressió_musical
\alternative {
{ expressió_musical }
}
on expressió_musical és una expressió musical.
Si hi ha més repeticions que finals alternatius, s’assigna el primer final alternatiu a les repeticions més antigues.
Repetició única amb primera i segona vegada:
\relative {
\repeat volta 2 { c''4 d e f | }
\alternative {
{ c2 e | }
{ f2 g | }
}
c1
}
Diverses repeticions amb primera i segona vegada:
\relative {
\repeat volta 4 { c''4 d e f | }
\alternative {
{ c2 e | }
{ f2 g | }
}
c1
}
Més d’una repetició amb més d’un final alternatiu:
\relative {
\repeat volta 3 { c''4 d e f | }
\alternative {
{ c2 e | }
{ f2 g | }
{ a2 g | }
}
c1
}
Nota: Si hi ha dos o més alternatives, no ha d’aparèixer res
entre la clau de tancament d’una i la d’obertura de l’altra
dins d’un bloc \alternative, atès que en cas contrari
no obtindrem el nombre de finals esperat.
Nota: Si incloem \relative dins d’un
\repeat sense instancia el context Voice
explícitament, apareixeran pentagrames addicionals no desitjats.
Vegeu
Apareix un pentagrama de més.
Si una repetició sense celes de primera i segona vegada comença
en mig d’un compàs, normalment acaba en el lloc corresponent a
meitat d’un altre compàs posterior (de tal forma que els dos sumen
un compàs complet). En aquest cas, els símbols de repetició no
són ‘veritables’ línies divisòries, per la qual cosa no s’han
d’escriure en aquest lloc comprovacions de compàs ni ordres
\partial:
c'4 e g
\repeat volta 4 {
e4 |
c2 e |
g4 g g
}
g4 |
a2 a |
g1 |
Si una repetició que no té celes de primera i segona vegada
comença amb un compàs parcial, aleshores s’aplica el mateix
principi, excepte que es requereix una ordre \partial
al començament del compàs:
\partial 4
\repeat volta 4 {
e'4 |
c2 e |
g4 g g
}
g4 |
a2 a |
g1 |
Es poden afegir lligadures d’unió al segon final:
\relative {
c''1
\repeat volta 2 { c4 d e f~ }
\alternative {
{ f2 d }
{ f2\repeatTie f, }
}
}
L’ordre \inStaffSegno es pot utilitzar per generar una
barra de compàs combinada que incorpora el símbol del segno junt
amb la barra de repetició, quan s’usa amb la instrucció
\repeat volta. Se selecciona automàticament el tipus
correcte de línia divisòria de repetició, ja sigui de començament
o fi de repetició, o de doble repetició. Observeu que la
indicació “D.S.” corresponent s’ha d’afegir manualment.
Sortida d’una repetició:
\relative {
e'1
\inStaffSegno
f2 g a b
c1_"D.S." \bar "|."
}
Al començament d’una repetició:
\relative {
e'1
\repeat volta 2 {
\inStaffSegno % inicia repetició
f2 g a b
}
c1_"D.S." \bar "|."
}
Al final de una repetición:
\relative {
e'1
\repeat volta 2 {
f2 g a b
\inStaffSegno % finalitza repetició
}
f2 g a b
c1_"D.S." \bar "|."
}
Entre dues repeticions:
\relative {
e'1
\repeat volta 2 {
f2 g a b
}
\inStaffSegno % doble repetició
\repeat volta 2 {
f2 g a b
}
c1_"D.S." \bar "|."
}
Es poden obtenir símbols de línia divisòria alternatius mitjançant
l’establiment (en el context Score) de les propietats
segnoType, startRepeatSegnoType,
endRepeatSegnoType o doubleRepeatSegnoType al tipus
de línia requerit. Els tipus de línia divisòria alternatius s’han
de seleccionar a partir dels tipus predefinits o de tipus definits
anteriorment amb la instrucció \defineBarLine
(vegeu Barres de compàs).
\defineBarLine ":|.S[" #'(":|." "S[" "")
\defineBarLine "]" #'("]" "" "")
\relative {
e'1
\repeat volta 2 {
f2 g a b
\once \set Score.endRepeatSegnoType = ":|.S["
\inStaffSegno
}
f2 g \bar "]" a b
c1_"D.S." \bar "|."
}
Fragments de codi seleccionats
Shortening volta brackets
By default, the volta brackets will be drawn over all of the
alternative music, but it is possible to shorten them by setting
voltaSpannerDuration. In the next example, the bracket only
lasts one measure, which is a duration of 3/4.
\relative c'' {
\time 3/4
c4 c c
\set Score.voltaSpannerDuration = #(ly:make-moment 3/4)
\repeat volta 5 { d4 d d }
\alternative {
{
e4 e e
f4 f f
}
{ g4 g g }
}
}
Adding volta brackets to additional staves
The Volta_engraver by default resides in the Score
context, and brackets for the repeat are thus normally only printed
over the topmost staff. This can be adjusted by adding the
Volta_engraver to the Staff context where the brackets
should appear; see also the “Volta multi staff” snippet.
<<
\new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
\new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
\new Staff \with { \consists "Volta_engraver" } { c'2 g' e' a' }
\new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
>>
Setting the double repeat default for volte
There are three different styles of double repeats for volte, that can
be set using doubleRepeatType.
\relative c'' {
\repeat volta 1 { c1 }
\set Score.doubleRepeatType = #":..:"
\repeat volta 1 { c1 }
\set Score.doubleRepeatType = #":|.|:"
\repeat volta 1 { c1 }
\set Score.doubleRepeatType = #":|.:"
\repeat volta 1 { c1 }
}
Alternative bar numbering
Two alternative methods for bar numbering can be set, especially for when using repeated music.
\relative c'{
\set Score.alternativeNumberingStyle = #'numbers
\repeat volta 3 { c4 d e f | }
\alternative {
{ c4 d e f | c2 d \break }
{ f4 g a b | f4 g a b | f2 a | \break }
{ c4 d e f | c2 d }
}
c1 \break
\set Score.alternativeNumberingStyle = #'numbers-with-letters
\repeat volta 3 { c,4 d e f | }
\alternative {
{ c4 d e f | c2 d \break }
{ f4 g a b | f4 g a b | f2 a | \break }
{ c4 d e f | c2 d }
}
c1
}
Vegeu també
Glossari musical: repeat, volta.
Referència de la notació: Barres de compàs, Modificació dels complements (plug-ins) de context, Modificació de lligadures d’unió i d’expressió, Gestió del temps.
Fitxers instal·lats: ‘ly/engraver-init.ly’.
Fragments de codi: Repeats.
Referència de funcionament intern: VoltaBracket, RepeatedMusic, VoltaRepeatedMusic, UnfoldedRepeatedMusic.
Advertiments i problemes coneguts
Les lligadures d’expressió que abasten des d’un bloc
\repeat fins un bloc \alternative sols funcionen
per a la cela de primera vegada. L’aparença visual d’una
lligadura d’expressió que es continua introduint a d’altres
celes de repetició pot simular-se amb \repeatTie si la
lligadura s’estén fins una sola nota dins de la cela de
repetició, tot i que aquest mètode no funciona a TabStaff.
D’altres mètodes que poden servir per indicar lligadures que es
continuen per sobre de diverses notes a les celes de repetició,
i que també funcionen en contextos de tabulatura TabStaff,
s’expliquen a
Modificació de lligadures d’unió i d’expressió.
Així mateix, no és possible fer que les lligadures d’expressió es repleguin des del final d’una alternativa fins el començament de la repetició.
Els glissandos que s’estenen des d’un bloc \repeat fins un bloc
\alternative sols funcionen per a la cela de primera
vegada. Es pot indicar l’aparença visual d’un glissando que es
continua fin l’interior d’altres celes de repetició mitjançant
la codificació d’un glissando que comença a una nota d’adorn
oculta. Per veure un exemple, consulteu
“Extensió dels glissandos sobre les repeticions” sota l’epígraf
Fragments de codi seleccionats, a Glissando.
Si una repetició que comença amb un compàs incomplet té un bloc
\alternative que conté modificacions a la propietat
measureLength, la utilització de \unfoldRepeats
donarà lloc a línies divisòries erròniament col·locades i
advertiments de comprovació de compàs.
Una repetició niuada com
\repeat … \repeat … \alternative
és ambigua perquè no està clar a quin \repeat pertany la
\alternative. Aquesta ambigüitat es resol fent que la
\alternative pertanyi sempre a la \repeat més
interna. Per més claredat, es recomana usar claus en aquestes
situacions.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Repeticions normals ] | [ Amunt : Repeticions llargues ] | [ Repeticions explícites > ] | ||
Marques de repetició manual
Nota: Aquests mètodes sols s’utilitzen per realitzar
construccions de repetició poc usuals. A gairebé totes les
situacions s’han de crear les repeticions utilitzant l’ordre
estàndard \repeat o imprimint les barres de compàs
corresponents. Per veure més informació, consulteu
Barres de compàs.
Es pot usar la propietat repeatCommands per controlar la
disposició de les repeticions. El seu valor és una llista de
l’Scheme d’ordres de repetició.
-
start-repeat Impressió d’una barra de compàs
.|:\relative { c''1 \set Score.repeatCommands = #'(start-repeat) d4 e f g c1 }A la pràctica habitual del gravat no s’imprimeixen signes de repetició al principi de la peça.
-
end-repeat Impressió d’una barra de compàs
:|.\relative { c''1 d4 e f g \set Score.repeatCommands = #'(end-repeat) c1 }-
(volta number) … (volta #f) Creació d’una nova cela de repetició amb el número que s’especifica. El parèntesi de vegada s’ha de finalitzar de forma explícita, en cas contrari no s’imprimeix.
\relative { f''4 g a b \set Score.repeatCommands = #'((volta "2")) g4 a g a \set Score.repeatCommands = #'((volta #f)) c1 }
Es poden produir diverses ordres de repetició amb el mateix punt:
\relative {
f''4 g a b
\set Score.repeatCommands = #'((volta "2, 5") end-repeat)
g4 a g a
c1
\set Score.repeatCommands = #'((volta #f) (volta "95") end-repeat)
b1
\set Score.repeatCommands = #'((volta #f))
}
Es pot incloure text dins de la cela de primera i segona vegada. El text pot ser un número o números, o un element de marcatge, vegeu Donar format al text. La forma més fàcil d’usar text de marcatge és definir el marcatge prèviament, i després incloure’l dins d’una llista de l’Scheme.
voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
\relative {
c''1
\set Score.repeatCommands =
#(list(list 'volta voltaAdLib) 'start-repeat)
c4 b d e
\set Score.repeatCommands = #'((volta #f) (volta "4.") end-repeat)
f1
\set Score.repeatCommands = #'((volta #f))
}
Vegeu també
Referència de la notació: Barres de compàs, Donar format al text.
Fragments de codi: Repeats.
Referència de funcionament intern: VoltaBracket, RepeatedMusic, VoltaRepeatedMusic.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Marques de repetició manual ] | [ Amunt : Repeticions llargues ] | [ Repeticions curtes > ] | ||
Repeticions explícites
Mitjançant la utilització de l’ordre unfold es poden usar
les repeticions per simplificar l’escriptura desplegada de música
repetitiva. La sintaxi és:
\repeat unfold número_de_repeticions expressió_musical
donde expressió_musical és una musical i
nombre_de_repeticions és el nombre de vegades que
expressió_musical es repeteix.
\relative {
\repeat unfold 2 { c''4 d e f }
c1
}
En certs casos, especialment dins d’un context
\relative, la funció \repeat unfold no és
exactament igual que escriure l’expressió musical diverses
vegades. Per exemple:
\repeat unfold 2 { a'4 b c }
no equival a
a'4 b c | a'4 b c
Es poden fer repeticions desplegades amb finals alternatius.
\relative {
\repeat unfold 2 { c''4 d e f }
\alternative {
{ c2 g' }
{ c,2 b }
}
c1
}
Si hi ha repeticions amb finals alternatius, el primer final alternatiu s’aplica les vegades que calguin fins que les alternatives restants completen el nombre total de repeticions.
\relative {
\repeat unfold 4 { c''4 d e f }
\alternative {
{ c2 g' }
{ c,2 b }
{ e2 d }
}
c1
}
Si hi ha més finals alternatius que repeticions, s’apliquen sols els primers finals alternatius. Les alternatives restants s’ignoren i no s’imprimeixen.
\relative {
\repeat unfold 2 { c''4 d e f }
\alternative {
{ c2 g' }
{ c,2 b }
{ e2 d }
}
c1
}
És possible també niuar diverses funcions unfold (amb
finals alternatius o sense ells).
\relative {
\repeat unfold 2 {
\repeat unfold 2 { c''4 d e f }
\alternative {
{ c2 g' }
{ c,2 b }
}
}
c1
}
Les construccions d’acord es poden repetir mitjançant el símbol de
repetició d’acords q. Vegeu
Repetició d’acords.
Nota: Si poseu \relative dins d’un bloc
\repeat sense instanciar explícitament el context
Voice, apareixeran pentagrames no desitjats. Vegeu
Apareix un pentagrama de més.
Vegeu també
Referència de la notació: Repetició d’acords.
Fragments de codi: Repeats.
Referència de funcionament intern: RepeatedMusic, UnfoldedRepeatedMusic.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Repeticions explícites ] | [ Amunt : Repeticions ] | [ Repeticions de compàs o part d'ells > ] | ||
1.4.2 Repeticions curtes
Aquesta secció tracta de com introduir repeticions curtes. Les repeticions curtes poden adoptar dues formes: barres inclinades o signes de percentatge si estem representant repeticions d’una sola nota, un compàs o dos compassos, i trèmols en cas contrari.
| Repeticions de compàs o part d’ells | ||
| Repeticions de trèmol |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Repeticions curtes ] | [ Amunt : Repeticions curtes ] | [ Repeticions de trèmol > ] | ||
Repeticions de compàs o part d’ells
Els patrons curts que es repeteixen s’imprimeixen d’un sol cop, i el patró repetit se substitueix per un símbol especial.
La sintaxi és:
\repeat percent número expressió_musical
on expressió_musical és una expressió musical.
Els patrons més curts que un compàs se substitueixen per barres inclinades.
\relative c'' {
\repeat percent 4 { c128 d e f }
\repeat percent 4 { c64 d e f }
\repeat percent 5 { c32 d e f }
\repeat percent 4 { c16 d e f }
\repeat percent 4 { c8 d }
\repeat percent 4 { c4 }
\repeat percent 2 { c2 }
}
Els patrons de repetició d’un o dos compassos se substitueixen per signes semblants al símbol de percentatge.
\relative c'' {
\repeat percent 2 { c4 d e f }
\repeat percent 2 { c2 d }
\repeat percent 2 { c1 }
}
\relative {
\repeat percent 3 { c''4 d e f | c2 g' }
}
Els patrons més curts que un compàs però que contenen duracions barrejades utilitzen un símbol de percentatge doble.
\relative {
\repeat percent 4 { c''8. <d f>16 }
\repeat percent 2 { \tuplet 3/2 { r8 c d } e4 }
}
Fragments de codi seleccionats
Percent repeat counter
Measure repeats of more than two repeats can get a counter when the convenient property is switched, as shown in this example:
\relative c'' {
\set countPercentRepeats = ##t
\repeat percent 4 { c1 }
}
Percent repeat count visibility
Percent repeat counters can be shown at regular intervals by setting
the context property repeatCountVisibility.
\relative c'' {
\set countPercentRepeats = ##t
\set repeatCountVisibility = #(every-nth-repeat-count-visible 5)
\repeat percent 10 { c1 } \break
\set repeatCountVisibility = #(every-nth-repeat-count-visible 2)
\repeat percent 6 { c1 d1 }
}
Isolated percent repeats
Isolated percents can also be printed.
makePercent =
#(define-music-function (note) (ly:music?)
"Make a percent repeat the same length as NOTE."
(make-music 'PercentEvent
'length (ly:music-length note)))
\relative c'' {
\makePercent s1
}
Vegeu també
Glossari musical: percent repeat, simile.
Fragments de codi: Repeats.
Referència de funcionament intern: RepeatSlash, RepeatSlashEvent, DoubleRepeatSlash, PercentRepeat, PercentRepeatCounter, PercentRepeatedMusic, Percent_repeat_engraver, DoublePercentEvent, DoublePercentRepeat, DoublePercentRepeatCounter, Double_percent_repeat_engraver, Slash_repeat_engraver.
Advertiments i problemes coneguts
Les repeticions de percentatge no contenen res més a part del propi signe de percentatge; especialment, els canvis d’indicació de compàs no es repeteixen.
\repeat percent 3 { \time 5/4 c2. 2 \time 4/4 2 2 }
Qualsevol canvi de compàs o ordre \partial s’ha de produir
en passatges paral·lels fora de la repetició de
percentatge, per exemple en una pista especial per a la gestió del
compàs.
<<
\repeat percent 3 { c2. 2 2 2 }
\repeat unfold 3 { \time 5/4 s4*5 \time 4/4 s1 }
>>
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Repeticions de compàs o part d'ells ] | [ Amunt : Repeticions curtes ] | [ Notes simultànies > ] | ||
Repeticions de trèmol
Els trèmols poden adoptar dues formes: alternança entre dos acords o dues notes, i repetició ràpida d’una sola nota o acord. Els trèmols que consisteixen en una alternança s’indiquen per mitjà de l’addició de barres entres les notes o acords que s’alternen, mentre que els trèmols que consisteixen en la repetició ràpida d’una sola nota s’indiquen mitjançant l’addició de barres creuades a una nota única.
Per col·locar marques de trèmol entre les notes, useu
\repeat amb l’estil tremolo (trèmol):
\relative c'' {
\repeat tremolo 8 { c16 d }
\repeat tremolo 6 { c16 d }
\repeat tremolo 2 { c16 d }
}
La sintaxi de \repeat tremolo espera que s’escriguin
exactament dues notes dins de les claus, i el nombre de
repeticions s’ha de correspondre amb un valor que es pugui
expressar amb figures normals o amb puntet. Així, \repeat
tremolo 7 és vàlida i produeix una nota amb doble puntet, però
\repeat tremolo 9 no és vàlid.
La duració del trèmol és igual a la duració de l’expressió entre
claus, multiplicada pel número de repeticions:
\repeat tremolo 8 { c16 d16 } dóna com a resultat un
trèmol de rodona, escrit com dues rodones unides per barres de trèmol.
Hi ha dues maneres de col·locar marques de trèmol sobre una única
nota. Fins i tot aquí es pot utilitzar la sintaxi \repeat
tremolo, i en aquest cas la nota no ha d’anar envoltada entre claus:
\repeat tremolo 4 c'16
El mateix resultat es pot obtenir escrivint :N
després d’una nota, on N indica la duració de la
subdivisió (ha de ser 8 com a mínim). Si N és 8,
s’afegeix una barra de corxera a la plica de la nota. Si
N s’omet, s’utilitza l’últim valor:
\relative {
c''2:8 c:32
c: c:
}
Fragments de codi seleccionats
Cross-staff tremolos
Since \repeat tremolo expects exactly two musical arguments for
chord tremolos, the note or chord which changes staff within a
cross-staff tremolo should be placed inside curly braces together with
its \change Staff command.
\new PianoStaff <<
\new Staff = "up" \relative c'' {
\key a \major
\time 3/8
s4.
}
\new Staff = "down" \relative c'' {
\key a \major
\time 3/8
\voiceOne
\repeat tremolo 6 {
<a e'>32
{
\change Staff = "up"
\voiceTwo
<cis a' dis>32
}
}
}
>>
Vegeu també
Fragments de codi: Repeats.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Repeticions de trèmol ] | [ Amunt : Notació musical ] | [ Una veu única > ] | ||
1.5 Notes simultànies
La paraula ‘polifonia’ en música fa referència a tenir més d’una veu en una peça qualsevol de música. Al LilyPond la polifonia fa referència a tenir més d’una veu al mateix pentagrama.
| 1.5.1 Una veu única | ||
| 1.5.2 Veus múltiples |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Notes simultànies ] | [ Amunt : Notes simultànies ] | [ Notes a un acord > ] | ||
1.5.1 Una veu única
Aquesta secció tracta de les notes simultànies dins de la mateixa veu.
| Notes a un acord | ||
| Repetició d’acords | ||
| Expressions simultànies | ||
| Clústers |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Una veu única ] | [ Amunt : Una veu única ] | [ Repetició d'acords > ] | ||
Notes a un acord
Un acord es forma envoltant un conjunt de notes entre < i
>. Un acord pot anar seguit d’una duració, com si fos una
nota simple.
\relative {
<a' c e>1 <a c e>2 <f a c e>4 <a c>8. <g c e>16
}
Els acords també poden anar seguit d’articulacions, com si fos una nota simple.
\relative {
<a' c e>1\fermata <a c e>2-> <f a c e>4\prall <a c>8.^! <g c e>16-.
}
Les notes dins del propi acord amb poden anar seguides d’articulacions i ornaments.
\relative {
<a' c\prall e>1 <a-> c-^ e>2 <f-. a c-. e-.>4
<a-+ c-->8. <g\fermata c e\turn>16
}
Tanmateix alguns elements de notació com ara les expressions de matisos dinàmics i els reguladors han d’annexar-se a l’acord i no a les notes que l’integren, atès que en cas contrari no s’imprimiran. Altres elements de notació com les digitacions i les lligadures d’expressió es posicionen de forma molt diferent quan s’adjunten a les notes d’un acord en lloc de fer-lo a rodones i notes aïllades.
\relative {
<a'\f c( e>1 <a c) e>\f <a\< c e>( <a\! c e>)
<a c e>\< <a c e> <a c e>\!
}
Un acord funciona com un simple contenidor per a les notes que ho composen, a més de les seves articulacions i altres elements adjunts. Com a conseqüència, un acord sense cap nota al seu interior no té realment cap duració. Qualsevol articulació annexa es produirà en el mateix moment musical que la nota o acord següent i es pot combinar amb ells (per veure possibilitats més complexes de combinacions d’aquests elements, consulteu Expressions simultànies):
\relative {
\grace { g'8( a b }
<> ) \p \< -. -\markup \italic "sempre staccato"
\repeat unfold 4 { c4 e } c1\f
}
Es pot usar el mode relatiu per a l’alçada de les notes dels acords. La primera nota de l’acord sempre és relativa a la primera nota de l’acord anterior, o en cas que l’element precedent no sigui un acord, l’alçada de l’última nota que va vindre abans de l’acord. La resta de les notes de l’acord són relatives a la nota anterior dins del mateix acord.
\relative {
<a' c e>1 <f a c> <a c e> <f' a c> <b, e b,>
}
Per veure més informació sobre els acords, consulteu Notació d’acords.
Vegeu també
Glossari musical: chord.
Manual d’aprenentatge: Combinar notes per formar acords.
Referència de la notació: Notació d’acords, Articulacions i ornaments, Escriptura d’octava relativa, Veus múltiples.
Fragments de codi: Simultaneous notes.
Advertiments i problemes coneguts
Els acords que contenen més de dues alçades al mateix espai de pentagrama, com ara ‘<e f! fis!>’, creen notes els caps de les quals se superposen. Depenent de la situació, un representació millor pot requerir:
- l’ús temporal de diverses veus, vegeu Veus múltiples, ‘<< f! \\ <e fis!> >>’,
- la transcripció enharmònica d’una o més notes, ‘<e f ges>’, o
- Clústers; vegeu Clústers.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Notes a un acord ] | [ Amunt : Una veu única ] | [ Expressions simultànies > ] | ||
Repetició d’acords
Per reduir l’entrada d’acords, es pot usar una abreviatura de
repetició de l’acord anterior. El símbol de repetició d’acords és
q:
\relative {
<a' c e>1 q <f a c>2 q
}
Com als acords normals, el símbol de repetició d’acords pot usar-se amb duracions, articulacions, elements de marcatge, lligadures d’expressió, barres, etc., atès que sols es dupliquen les notes de l’acord precedent.
\relative {
<a' c e>1\p^"text" q2\<( q8)[-! q8.]\! q16-1-2-3 q8\prall
}
El símbol de repetició d’acords sempre recorda l’última aparició d’un acord, per la qual cosa és possible repetir l’acord més recent fins i tot si s’han escrit en mig d’altres notes que no estiguin a l’acord, o silencis.
\relative {
<a' c e>1 c'4 q2 r8 q8 |
q2 c, |
}
Tanmateix, el símbol de repetició d’acords no reté els matisos dinàmics, les articulacions ni els ornaments que conté o que estan annexats a l’acord anterior.
\relative {
<a'-. c\prall e>1\sfz c'4 q2 r8 q8 |
q2 c, |
}
Per poder retenir alguns d’ells, es poden cridar explícitament a
la funció \chordRepeats amb un argument addicional que
especifiqui una llista de tipus d’esdeveniment a conservar,
a no ser que els esdeveniments d’aquest tipus ja estiguin presents
al propi acord q.
\relative {
\chordRepeats #'(articulation-event)
{ <a'-. c\prall e>1\sfz c'4 q2 r8 q8-. } |
q2 c, |
}
Aquí, l’ús de \chordRepeats dins d’una construcció
\relative produeix un resultat inesperat: un cop s’han
expandit els esdeveniments d’acord, no poden distingir-se dels que
es van introduir com acords normals, fent que \relative
assigni una octava basada en el context original.
Atès que les instàncies niuades de \relative no s’afecten
mútuament, es pot usar una altra ordre \relative dins de
\chordRepeats per establir les relacions d’octava abans
d’expandir els acords repetits. En aquest cas, tot el contingut
de l’ordre \relative interior no afecta a l’exterior;
d’aquí l’escriptura diferent d’octava a l’última nota d’aquest
exemple.
\relative {
\chordRepeats #'(articulation-event)
\relative
{ <a'-. c\prall e>1\sfz c'4 q2 r8 q8-. } |
q2 c'' |
}
Les interaccions amb \relative es produeixen sols amb les
crides explícites de \chordRepeats: l’expansió implícita al
començament del procés de gravat es fa en un moment en el
qual totes les instàncies de \relative ja s’han processat.
Vegeu també
Referència de la notació: Notació d’acords, Articulacions i ornaments.
Fitxers d’inici: ‘ly/chord-repetition-init.ly’.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Repetició d'acords ] | [ Amunt : Una veu única ] | [ Clústers > ] | ||
Expressions simultànies
Una o més expressions musicals envoltades entre angles dobles s’entenen com a simultànies. Si la primera expressió comença amb una sola nota o si tota l’expressió simultània apareix explícitament dins d’una sola veu, l’expressió completa se situa sobre un sol pentagrama; en cas contrari els elements de l’expressió simultània se situen en pentagrames diferents.
Els exemples següents mostren expressions simultànies sobre un sol pentagrama:
\new Voice { % veu única explícita
<< \relative { a'4 b g2 }
\relative { d'4 g c,2 } >>
}
\relative {
% single first note
a' << \relative { a'4 b g }
\relative { d'4 g c, } >>
}
Això pot ser d’utilitat si les seccions simultànies tenen duracions idèntiques, però es produiran errors si s’intenten posar notes de diferent duració sobre la mateixa plica. Les notes, articulacions i canvis de propietats que esta dins de un sol context ‘Voice’ es recol·lecten i representen a l’ordre musical:
\relative {
<a' c>4-. <>-. << c a >> << { c-. <c a> } { a s-. } >>
}
Intentar posar més d’una pica o barra de corxera, o diferents duracions o propietats al mateix moment musical, requereix l’ús de més d’una veu.
L’exemple següent mostra com les expressions simultànies poden generar diversos pentagrames de forma implícita:
% no single first note
<< \relative { a'4 b g2 }
\relative { d'4 g2 c,4 } >>
Aquí no hi ha problema en tenir tenir diferents duracions perquè s’interpreten en veus diferents.
Advertiments i problemes coneguts
Si hi ha notes que procedeixen de dues o més veus, sense especificar cap desplaçament horitzontal, i tenen les pliques en la mateixa direcció, apareix el missatge
Advertiment: aquesta veu requereix un ajust de \voiceXx o \shiftXx
durant la compilació. Aquest missatge es pot suprimir mitjançant
\override NoteColumn.ignore-collision = ##t
Tanmateix, això no sols suprimeix l’advertiment sinó que pot evitar qualsevol resolució de col·lisions i pot tenir altres efectes no desitjats (consulteu també Problemes coneguts a Resolució de les col·lisions).
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Expressions simultànies ] | [ Amunt : Una veu única ] | [ Veus múltiples > ] | ||
Clústers
Un «clúster» indica que s’han de tocar simultàniament un conjunt
de notes consecutives. S’escriuen aplicant la funció
\makeClusters a una seqüència d’acords, per exemple:
\relative \makeClusters { <g' b>2 <c g'> }
Es poden barrejar al mateix pentagrama notes normals i clústers, fins i tot al mateix temps. En aquest cas, no es fa cap intent d’evitar automàticament les col·lisions entre clústers i notes normals.
Vegeu també
Glossari musical: cluster.
Fragments de codi: Simultaneous notes.
Referència de funcionament intern: ClusterSpanner, ClusterSpannerBeacon, Cluster_spanner_engraver.
Advertiments i problemes coneguts
Els clústers sols tenen un bon aspecte quan abasten un mínim de dos acords. En cas contrari apareixeran excessivament prims.
Els clústers no porten plica i per si mateixos no poden indicar les duracions, però la longitud del clúster que s’imprimeix ve determinada per la duració dels acords que el defineixen. Als clústers separats els calen silencis de separació entre ells.
Els clústers no produeixen cap sortida MIDI.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Clústers ] | [ Amunt : Notes simultànies ] | [ Polifonia en un sol pentagrama > ] | ||
1.5.2 Veus múltiples
Aquesta secció tracta de les notes simultànies en diverses veus o diversos pentagrames.
| Polifonia en un sol pentagrama | ||
| Estils de veu | ||
| Resolució de les col·lisions | ||
| Combinació automàtica de les parts | ||
| Escriptura de música en paral·lel |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Veus múltiples ] | [ Amunt : Veus múltiples ] | [ Estils de veu > ] | ||
Polifonia en un sol pentagrama
Instanciar les veus explícitament
L’estructura bàsica necessària per obtenir diverses veus independents a un mateix pentagrama s’il·lustra a l’exemple següent:
\new Staff <<
\new Voice = "primera"
\relative { \voiceOne r8 r16 g'' e8. f16 g8[ c,] f e16 d }
\new Voice= "segona"
\relative { \voiceTwo d''16 c d8~ 16 b c8~ 16 b c8~ 16 b8. }
>>
Aquí es creen explícitament instàncies de veus, cadascuna de les
quals rep un nom. Les instruccions \voiceOne
… \voiceFour (veu una fins a veu quatre) preparen les
veus de manera que la primera i la segona veus porten les pliques
cap amunt, les veus segona i quarta porten les pliques cap avall,
els caps de les notes en les veus tercera i quarta es desplacen
horitzontalment, i els silencis de les veus respectives es
desplacen també automàticament per evitar les col·lisions.
L’ordre \oneVoice (una veu) retorna tots els ajustaments de
les veus a l’estat neutre predeterminat.
Passatges polifònics temporals
Es pot crear un passatge polifònic temporal amb la construcció següent:
<< { \voiceOne … }
\new Voice { \voiceTwo … }
>> \oneVoice
Aquí, la primera expressió dins d’un passatge polifònic temporal
es col·loca al context Voice que estava en ús immediatament
abans del passatge polifònic, i aquest mateix context
Voice continua després de la secció temporal. Altres
expressions dins dels angles s’assignen a diferents veus
temporals. Això permet assignar la lletra de forma contínua a una
veu abans, durant i després de la secció polifònica:
\relative <<
\new Voice = "melodia" {
a'4
<<
{
\voiceOne
g f
}
\new Voice {
\voiceTwo
d2
}
>>
\oneVoice
e4
}
\new Lyrics \lyricsto "melodia" {
This is my song.
}
>>
Aquí, les instruccions \voiceOne i \voiceTwo calen
per definir els ajustaments de cada veu.
La construcció de la doble barra invertida
La construcció << {…} \\ {…} >>, en la qual
dues expressions (o més) estan separades per doble barra
invertida, es comporta de manera diferent a la construcció
semblant sense les doble barres invertides: totes les
expressions dins d’aquesta construcció s’assignen a contextos
Voice nous. Aquests contextos Voice nous es creen
implícitament i reben els noms fixos "1", "2", etc.
El primer exemple podria haver-se escrit de la manera següent:
<<
\relative { r8 r16 g'' e8. f16 g8[ c,] f e16 d }
\\
\relative { d''16 c d8~ 16 b c8~ 16 b c8~ 16 b8. }
>>
Aquesta sintaxi es pot usar sempre que no ens importi que es creïn
noves veus temporals que després seran descartades. Aquestes veus
creades implícitament reben ajustos equivalents a l’efecte de les
ordres \voiceOne…\voiceFour, a l’ordre que
apareixen al codi.
Al següent exemple, la veu intermèdia porta les pliques cap amunt, de manera que la introduïm en tercer lloc perquè passi a ser la veu tres, que té les pliques cap amunt tal i com volem. S’usen silencis de separació per evitar l’aparició de silencis duplicats.
<<
\relative { r8 g'' g g g f16 ees f8 d }
\\
\relative { ees'8 r ees r d r d r }
\\
\relative { d''8 s c s bes s a s }
>>
A totes les partitures excepte les més simples, es recomana crear
contextos Voice explícits com apareix explicat a
Contextos i gravadors i a
Veus explícites.
Ordre de les veus
En escriure diverses veus al fitxer d’entrada, useu l’ordre següent:
Veu 1: la més aguda Veu 2: la més greu Veu 3: la segona més aguda Veu 4: la segona més greu Veu 5: la tercera més aguda Veu 6: la tercera més greu etc.
Malgrat que això pot semblar contrari a la intuïció, simplifica el procés de disposició automàtica de les figures. Observeu que les veus de numeració imparell reben pliques cap amunt, i les de numeració parell reben pliques cap avall:
\new Staff <<
\time 2/4
{ f''2 } % 1: més alta
\\
{ c'2 } % 2: més baixa
\\
{ d''2 } % 3: segona més alta
\\
{ e'2 } % 4: segona més baixa
\\
{ b'2 } % 5: tercera més alta
\\
{ g'2 } % 6: tercera més baixa
>>
Nota: No es poden crear lletres ni elements d’extensió (com lligadures, reguladors, etc.) que es creuen d’una veu a una altra.
Duracions idèntiques
Al cas especial en el qual volem gravar fragments de música que s’executa en paral·lel i amb les mateixes duracions, es poden combinar en un sol context de veu, formant d’aquesta manera acords. Per aconseguir-lo, les incorporem dins d’una construcció de música simultània, dins d’una veu creada explícitament.
\new Voice <<
\relative { e''4 f8 d e16 f g8 d4 }
\relative { c''4 d8 b c16 d e8 b4 }
>>
Aquest mètode condueix a barrats estranys i advertiments si els fragments de música no tenen les mateixes duracions exactes.
Instruccions predefinides
\voiceOne,
\voiceTwo,
\voiceThree,
\voiceFour,
\oneVoice.
Vegeu també
Manual d’aprenentatge: Les veus contenen música, Veus explícites.
Referència de la notació: Pautes de percussió, Silencis invisibles, Pliques.
Fragments de codi: Simultaneous notes.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Polifonia en un sol pentagrama ] | [ Amunt : Veus múltiples ] | [ Resolució de les col·lisions > ] | ||
Estils de veu
Es poden aplicar colors i formes diferents a les veus per permetre identificar-les fàcilment:
<<
\relative { \voiceOneStyle d''4 c2 b4 }
\\
\relative { \voiceTwoStyle e'2 e }
\\
\relative { \voiceThreeStyle b2. c4 }
\\
\relative { \voiceFourStyle g'2 g }
>>
Per recuperar la presentació normal s’utilitza l’ordre
\voiceNeutralStyle.
Instruccions predefinides
\voiceOneStyle,
\voiceTwoStyle,
\voiceThreeStyle,
\voiceFourStyle,
\voiceNeutralStyle.
Vegeu també
Manual d’aprenentatge Sento veus, Altres fonts d'informació
Fragments de codi: Simultaneous notes.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Estils de veu ] | [ Amunt : Veus múltiples ] | [ Combinació automàtica de les parts > ] | ||
Resolució de les col·lisions
Els caps de notes que estan a diferents veus i tenen la mateixa alçada, la mateixa forma de cap, i direcció oposada a la plica, es combinen automàticament, però els que tenen caps diferents o la mateixa direcció de plica no es combinen. Els silencis que es troben al costat oposat d’una plica a una altra veu es desplacen verticalment. L’exemple següent mostra tres circumstàncies diferents, sobre la pulsació 1 i 3 al primer compàs i sobre la pulsació 1 del segon compàs, on la combinació automàtica falla.
<<
\relative {
c''8 d e d c d c4
g'2 fis
} \\
\relative {
c''2 c8. b16 c4
e,2 r
} \\
\relative {
\oneVoice
s1
e'8 a b c d2
}
>>
Els caps de notes diferents es poden com binar com es mostra més a sota. A aquest exemple els caps de la pulsació 1 del primer compàs sí que es combinen:
<<
\relative {
\mergeDifferentlyHeadedOn
c''8 d e d c d c4
g'2 fis
} \\
\relative {
c''2 c8. b16 c4
e,2 r
} \\
\relative {
\oneVoice
s1
e'8 a b c d2
}
>>
Les figures negres i blanques no es combinen d’aquesta manera, atès que fora difícil distingir-les.
També es poden combinar caps amb puntets diferents, com es mostra a la tercera pulsació del primer compàs:
<<
\relative {
\mergeDifferentlyHeadedOn
\mergeDifferentlyDottedOn
c''8 d e d c d c4
g'2 fis
} \\
\relative {
c''2 c8. b16 c4
e,2 r
} \\
\relative {
\oneVoice
s1
e'8 a b c d2
}
>>
La blanca i la corxera al començament del segon compàs no estan
correctament combinades perquè la combinació automàtica no és
capaç de completar-se satisfactòriament quan es troben tres o més
notes alineades a la mateixa columna de notes, i en aquest cas el
cap combinat és incorrecte. Per aconseguir que la combinació
seleccioni el cap correcte, s’ha d’aplicar un \shift o
desplaçament a la nota que no es pot combinar. Aquí s’aplica
\shiftOn per moure el sol agut fora de la columna, i
aleshores \mergeDifferentlyHeadedOn fa el seu treball
correctament.
<<
\relative {
\mergeDifferentlyHeadedOn
\mergeDifferentlyDottedOn
c''8 d e d c d c4
\shiftOn
g'2 fis
} \\
\relative {
c''2 c8. b16 c4
e,2 r
} \\
\relative {
\oneVoice
s1
e'8 a b c d2
}
>>
L’ordre \shiftOn permet (tot i que obliga a) que les notes
d’una veu es puguin desplaçar. Quan \shiftOn s’aplica a
una veu, una nota o acord d’aquesta veu es desplaça solament si la
seva plica xoqués en cas contrari amb una plica d’una altra veu, i
sols si les pliques que xoquen apunten cap a la mateixa
direcció. L’ordre \shiftOff evita la possibilitat d’aquest
tipus de desplaçament.
De forma predeterminada, les veus externes (normalment les veus u
i dos) tenen \shiftOff especificat (desplaçament
desactivat), mentre que les veus interiors (tres i següents) tenen
especificat \shiftOn (desplaçament activat). Quan s’aplica
un desplaçament, les veus amb pliques cap amunt (veus de numeració
imparell) es desplacen cap a la dreta, i les veus amb les pliques
cap avall (veus amb numeració parell) es desplacen cap a l’esquerra.
Aquí es pot veure un exemple que us ajudarà a visualitzar la forma en la qual s’expandirà internament una expressió polifònica.
Nota: Observeu que amb tres o més veus, l’ordre vertical de les veus dins del seu fitxer d’entrada no seria el mateix que l’ordre vertical de les veus al pentagrama.
\new Staff \relative {
%% abbreviated entry
<<
{ f''2 } % 1: highest
\\
{ g,2 } % 2: lowest
\\
{ d'2 } % 3: upper middle
\\
{ b2 } % 4: lower middle
>>
%% internal expansion of the above
<<
\new Voice = "1" { \voiceOne \shiftOff f'2 }
\new Voice = "2" { \voiceTwo \shiftOff g,2 }
\new Voice = "3" { \voiceThree \shiftOn d'2 } % shifts right
\new Voice = "4" { \voiceFour \shiftOn b2 } % shifts left
>>
}
Dues ordres addicionals, \shiftOnn i
\shiftOnnn, ofereixen nivells de desplaçament majors que es
poden especificar temporalment per resoldre col·lisions en
situacions complexes; vegeu
Exemple real de música.
Sols es combinen les notes si tenen les pliques en direccions oposades (com la tenen, per exemple, a les veus u i dos de forma predeterminada o quan les pliques s’estableixen explícitament en direccions oposades).
Instruccions predefinides
\mergeDifferentlyDottedOn,
\mergeDifferentlyDottedOff,
\mergeDifferentlyHeadedOn,
\mergeDifferentlyHeadedOff.
\shiftOn,
\shiftOnn,
\shiftOnnn,
\shiftOff.
Fragments de codi seleccionats
Additional voices to avoid collisions
In some instances of complex polyphonic music, additional voices are
necessary to prevent collisions between notes. If more than four
parallel voices are needed, additional voices can be added by defining
a variable using the Scheme function context-spec-music.
voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice)
\relative c'' {
\time 3/4
\key d \minor
\partial 2
<<
\new Voice {
\voiceOne
a4. a8
e'4 e4. e8
f4 d4. c8
}
\new Voice {
\voiceTwo
d,2
d4 cis2
d4 bes2
}
\new Voice {
\voiceThree
f'2
bes4 a2
a4 s2
}
\new Voice {
\voiceFive
s2
g4 g2
f4 f2
}
>>
}
Forcing horizontal shift of notes
When the typesetting engine cannot cope, the following syntax can be used to override typesetting decisions. The units of measure used here are staff spaces.
\relative c' <<
{
<d g>2 <d g>
}
\\
{
<b f'>2
\once \override NoteColumn.force-hshift = #1.7
<b f'>2
}
>>
Vegeu també
Glossari musical: polyphony.
Manual d’aprenentatge: Diverses notes a l'hora, Les veus contenen música. Exemple real de música.
Fragments de codi: Simultaneous notes.
Referència de funcionament intern: NoteColumn, NoteCollision, RestCollision.
Advertiments i problemes coneguts
L’ús de \override NoteColumn.ignore-collision = ##t fa
que les notes de cap diferent a veus diferents es barregin incorrectament.
\mergeDifferentlyHeadedOn
<< \relative { c'16 a' b a } \\ \relative { c'2 } >>
\override NoteColumn.ignore-collision = ##t
<< \relative { c'16 a' b a } \\ \relative { c'2 } >>
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Resolució de les col·lisions ] | [ Amunt : Veus múltiples ] | [ Escriptura de música en paral·lel > ] | ||
Combinació automàtica de les parts
La combinació automàtica de particel·les s’usa per barrejar dues parts musicals diferents sobre un pentagrama. Això pot ser de gran ajuda especialment en gravar partitures orquestrals. S’imprimeix una sola veu quan la música de les dues veus és la mateixa, però en aquells llocs on difereixen, s’imprimeix una segona veu. Les direccions de les pliques s’estableixen cap amunt o cap avall segons procedeixi, a l’hora que s’identifiquen i queden marcades les parts de solista i de duo.
La sintaxi per a la combinació automàtica de les parts és:
\partcombine expressió_musical_1 expressió_musical_2
L’exemple següent exemplifica la funcionalitat bàsica, posant les parts en un sol pentagrama en forma polifònica, i establint les direccions de les pliques de forma adequada. S’utilitzen les mateixes variables per a les parts independents i el pentagrama combinat.
instrumentOne = \relative {
c'4 d e f |
R1 |
d'4 c b a |
b4 g2 f4 |
e1 |
}
instrumentTwo = \relative {
R1 |
g'4 a b c |
d4 c b a |
g4 f( e) d |
e1 |
}
<<
\new Staff \instrumentOne
\new Staff \instrumentTwo
\new Staff \partcombine \instrumentOne \instrumentTwo
>>
Les dues parts tenen notes idèntiques al tercer compàs, per la
qual cosa apareixen sols un cop. Les direccions de les pliques i
lligadures s’estableixen de forma automàtica, segons es tracti
d’un sol o d’un uníson. Quan cal en situacions de polifonia, la
primera part (que rep el nom de context one) rep les
pliques cap amunt, mentre que la segona part (anomenada
two) sempre rep les pliques cap avall. Als fragments de
solo, les parts es marquen amb “Solo” i “Solo II”,
respectivament. Les parts en uníson (a due) es marquen
amb el text “a2”.
De forma predeterminada, el combinador de parts barreja dues notes
de la mateixa alçada com una nota a due, combina les
notes que tinguin la mateixa duració i estiguin a menys d’una
novena distància com acords, i disposa en veus separades les notes
que estiguin a més d’una novena de distància (o quan hi ha
creuament de veus). Aquest comportament es pot sobreescriure amb
un argument opcional que consisteix en una parella de números
després de l’ordre \partcombine: el primer especifica
l’interval on les notes comencen a estar combinades (el valor
predeterminat és zero) i el segon on les notes es divideixen en
veus distintes. L’ajust del segon argument al valor zero
significa que el combinador de parts separa les notes que estiguin
dins d’un interval de segona o més, establir-lo al valor u separa
les notes d’una tercera o més, i així successivament.
instrumentOne = \relative {
a4 b c d |
e f g a |
b c d e |
}
instrumentTwo = \relative {
c'4 c c c |
c c c c |
c c c c |
}
<<
\new Staff \partcombine \instrumentOne \instrumentTwo
\new Staff \partcombine #'(2 . 3) \instrumentOne \instrumentTwo
>>
Els dos arguments de \partcombine s’interpreten com
contextos de
Voice separats, per la qual cosa si la
música està escrita en mode relatiu, aleshores las dues
parts han d’incloure la funció \relative, és a dir:
\partcombine \relative … expresión_musical_1 \relative … expresión_musical_2
Una secció \relative que es troba fora de
\partcombine no té cap efecte sobre les notes de
expresión_musical_1 i
expresión_musical_2.
A les partitures professionals, sovint les veus es mantenen
separades entre sí durant passatges llargs fins i tot si algunes
notes coincideixen entre ambdues, i podrien escriure’s fàcilment
com un uníson. Per això, la combinació de les notes en un acord,
o la visualització d’una veu com un solo, no són solucions ideals
perquè la funció \partcombine considera cada nota de forma
individual. En aquest cas, el resultat de la funció
\partcombine es pot alterar o corregir amb una de les
ordres següents. Totes les ordres es poden antecedir per
\once perquè s’apliquin sols a la nota següent dins de
l’expressió musical.
-
\partcombineApartmanté les notes com dues veus separades fins i tot si es poden combinar en un acord o uníson. -
\partcombineChordscombina les notes d’un acord. -
\partcombineUnisonocombina les dues veus com uníson i marca el resultat com “unison”. -
\partcombineSoloImostra sols la veu u i la marca com “Solo”. -
\partcombineSoloIIimprimeix sols la veu dos i la marca com “Solo”. -
\partcombineAutomaticfinalitza l’efecte de les ordres anteriors i retorna a la funcionalitat estàndard de\partcombine.
instrumentOne = \relative c' {
\partcombineApart c2^"apart" e |
\partcombineAutomatic e2^"auto" e |
\partcombineChords e'2^"chord" e |
\partcombineAutomatic c2^"auto" c |
\partcombineApart c2^"apart" \once \partcombineChords e^"chord once" |
c2 c |
}
instrumentTwo = \relative {
c'2 c |
e2 e |
a,2 c |
c2 c' |
c2 c |
c2 c |
}
<<
\new Staff { \instrumentOne }
\new Staff { \instrumentTwo }
\new Staff { \partcombine \instrumentOne \instrumentTwo }
>>
Ús de \partcombine amb lletra
L’ordre \partcombine no està dissenyada per funcionar amb
la lletra de les cançons; si una de les veus rep un nom explícit
per poder adjuntar una lletra, el combinador de parts no
funciona. Tanmateix, es pot aconseguir aquest efecte usant un
context NullVoice. Vegeu
Polifonia amb lletres compartides.
Fragments de codi seleccionats
Combining two parts on the same staff
The part combiner tool ( \partcombine command ) allows the
combination of several different parts on the same staff. Text
directions such as “solo” or “a2” are added by default; to remove
them, simply set the property printPartCombineTexts to f.
For vocal scores (hymns), there is no need to add “solo/a2” texts,
so they should be switched off. However, it might be better not to use
it if there are any solos, as they won’t be indicated. In such cases,
standard polyphonic notation may be preferable.
This snippet presents the three ways two parts can be printed on a same
staff: standard polyphony, \partcombine without texts, and
\partcombine with texts.
musicDown = \relative c'' {
g4 e4.( d8) c4 |
r2 g'4( f8 e) |
d2 \stemDown a
}
\score {
<<
\new Staff \with { instrumentName = #"Standard polyphony" }
<< \musicUp \\ \musicDown >>
\new Staff \with {
instrumentName = #"PartCombine without text"
printPartCombineTexts = ##f
}
\partcombine \musicUp \musicDown
\new Staff \with { instrumentName = #"PartCombine with text" }
\partcombine \musicUp \musicDown
>>
\layout {
indent = 6.0\cm
\context {
\Score
\override SystemStartBar.collapse-height = #30
}
}
}
Changing partcombine texts
When using the automatic part combining feature, the printed text for the solo and unison sections may be changed:
\new Staff <<
\set Staff.soloText = #"girl"
\set Staff.soloIIText = #"boy"
\set Staff.aDueText = #"together"
\partcombine
\relative c'' {
g4 g r r
a2 g
}
\relative c'' {
r4 r a( b)
a2 g
}
>>
Vegeu també
Glossari musical: a due, part.
Referència de la notació: Escriptura de les particel·les.
Fragments de codi: Simultaneous notes.
Referència de funcionament intern: PartCombineMusic, Voice.
Advertiments i problemes coneguts
Totes les funcions \partcombine… admeten
exclusivament dues veus.
Les funcions \partcombine… no es poden escriure dins
dels blocs \tuplet ni \relative.
Si printPartCombineTexts està establert i les dues veus
executen i acaben les mateixes notes al mateix compàs, el
combinador de parts pot gravar a2 més d’un cop en aquest
compàs.
\partcombine sols té en compte el moment d’inici de les
notes dins d’una veu Voice; per exemple, no pot recordar si
una nota dins d’una veu ja ha començat quan les notes que es
combinen s’han iniciat just ara a l’altra veu. Això pot conduir a
cert nombre de problemes inesperats entre els que s’inclou la
impressió incorrecta de marques de “Solo” o de “Unison”.
\partcombine conserva tots els elements extensos
(lligadures, reguladors, etc.) dins del mateix context
Voice de forma que si qualsevol d’aquests elements extensos
inicia o acaba a un context Voice diferent, pot no
imprimir-se o fer-lo incorrectament.
Si la funció \partcombine no pot combinar les dues
expressions musicals (és a dir, quan les dues veus tenen duracions
diferents), atorgarà internament els seus propis noms a les veus:
one i two respectivament. Això significa que si es
produeix un canvi a un context Voice que tingui un nom
diferent, s’ignoraran els esdeveniments dins del context
Voice que té el nom diferent.
Consulteu també l’apartat
Advertiments i problemes coneguts a la sessió
Tabulatures predeterminades
en utilitzar\partcombine amb tabulatures, i la Nota
de Barres automàtiques en utilitzar el barrat automàtic.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Combinació automàtica de les parts ] | [ Amunt : Veus múltiples ] | [ Notació dels pentagrames > ] | ||
Escriptura de música en paral·lel
La música per diverses parts es pot intercalar dins del codi
d’entrada. La funció \parallelMusic admet una llista que
conté els noms de les variables que es crearan, i una expressió
musical. El contingut dels compassos alternatius estrets de
l’expressió es converteixen en el valor de les variables
respectives, de manera que podem utilitzar-les més tard per
imprimir la música.
Nota: És obligatori utilitzar comprovacions de compàs
|, y els compassos han de tenir la mateixa longitud.
\parallelMusic voiceA,voiceB,voiceC {
% Bar 1
r8 g'16 c'' e'' g' c'' e'' r8 g'16 c'' e'' g' c'' e'' |
r16 e'8.~ 4 r16 e'8.~ 4 |
c'2 c'2 |
% Bar 2
r8 a'16 d'' f'' a' d'' f'' r8 a'16 d'' f'' a' d'' f'' |
r16 d'8.~ 4 r16 d'8.~ 4 |
c'2 c'2 |
}
\new StaffGroup <<
\new Staff << \voiceA \\ \voiceB >>
\new Staff { \clef bass \voiceC }
>>
Es pot fer servir el mode relatiu. Observeu que l’ordre
\relative no s’utilitza dins del propi bloc
\parallelMusic. Les notes mantenen la relació amb la nota
anterior de la mateixa veu, no amb la nota anterior dins del codi
d’entrada (dit d’una altra manera, les notes relatives de
voiceA ignoren les notes que hi ha a voiceB.
\parallelMusic voiceA,voiceB,voiceC {
% Bar 1
r8 g16 c e g, c e r8 g,16 c e g, c e |
r16 e8.~ 4 r16 e8.~ 4 |
c2 c |
% Bar 2
r8 a,16 d f a, d f r8 a,16 d f a, d f |
r16 d8.~ 4 r16 d8.~ 4 |
c2 c |
}
\new StaffGroup <<
\new Staff << \relative c'' \voiceA \\ \relative c' \voiceB >>
\new Staff \relative c' { \clef bass \voiceC }
>>
Això funciona acceptablement bé per a música de piano. L’exemple següent assigna cada quatre compassos consecutius a quatre variables:
global = {
\key g \major
\time 2/4
}
\parallelMusic voiceA,voiceB,voiceC,voiceD {
% Compàs 1
a8 b c d |
d4 e |
c16 d e fis d e fis g |
a4 a |
% Compàs 2
e8 fis g a |
fis4 g |
e16 fis g a fis g a b |
a4 a |
% Compàs 3 ...
}
\score {
\new PianoStaff <<
\new Staff {
\global
<<
\relative c'' \voiceA
\\
\relative c' \voiceB
>>
}
\new Staff {
\global \clef bass
<<
\relative c \voiceC
\\
\relative c \voiceD
>>
}
>>
}
Vegeu també
Manual d’aprenentatge: Organitzar les peces mitjançant variables
Fragments de codi: Simultaneous notes.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Escriptura de música en paral·lel ] | [ Amunt : Notació musical ] | [ Visualització dels pentagrames > ] | ||
1.6 Notació dels pentagrames
Aquesta secció explica com infliur sobre l’aparença dels pentagrames, com imprimir partitures amb més d’un pentagrama i com afegir indicacions de temps i notes guia als pentagrames.
| 1.6.1 Visualització dels pentagrames | ||
| 1.6.2 Modificació de pentagrames separats | ||
| 1.6.3 Escriptura de les particel·les |
1.6.1 Visualització dels pentagrames
Aquesta secció descriu els diferents mètodes de creació de pentagrames i grups de pentagrames.
| Creació d’instàncies de pentagrames nous | ||
| Agrupament de pentagrames | ||
| Grups de pentagrames niuats | ||
| Separació de sistemes |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Visualització dels pentagrames ] | [ Amunt : Visualització dels pentagrames ] | [ Agrupament de pentagrames > ] | ||
Creació d’instàncies de pentagrames nous
Les pautes i els pentagrames o pautes de
cinc línies es creen amb les ordres \new o
\context. Per veure més detalls, consulteu
Creació i referència de contextos.
El context bàsic de pentagrama és Staff:
\new Staff \relative { c''4 d e f }
El context DrumStaff crea una pauta de cinc línies
preparada per a un conjunt de bateria típic. Cada instrument es
presenta amb un símbol diferent. Els instruments s’escriuen en el
mode de percussió que segueix a una ordre \drummode, amb
cada instrument identificat per un nom. Per veure més detalls,
consulteu Pautes de percussió.
\new DrumStaff {
\drummode { cymc hh ss tomh }
}
RhythmicStaff crea una pauta d’una sola línia que sols
mostra les duracions de l’entrada. Es preserven les duracions
reals. Per veure més detalls, consulteu
Mostrar els ritmes de la melodia.
\new RhythmicStaff { c4 d e f }
TabStaff crea una tabulatura amb sis cordes en l’afinació
estàndard de la guitarra. Per veure més detalls, consulteu
Tabulatures predeterminades.
\new TabStaff \relative { c''4 d e f }
Hi ha dos contextos de pauta específics per a la notació de música
antiga: MensuralStaff i VaticanaStaff. es descriuen
a Contextos predefinits.
GregorianTranscriptionStaff crea una pauta per a la notació
moderna de cant gregorià. No mostra línies divisòries.
\new GregorianTranscriptionStaff \relative { c''4 d e f e d }
Es poden definir contextos nous de pentagrama únic. Per veure més detalls, consulteu Definició de nous contextos.
Vegeu també
Glossari musical: staff, staves.
Referència de la notació: Creació i referència de contextos, Pautes de percussió, Mostrar els ritmes de la melodia, Tabulatures predeterminades, Contextos predefinits, El símbol del pentagrama, Contextos del cant gregorià, Contextos de la música mensural, Definició de nous contextos.
Fragments de codi: Staff notation.
Referència de funcionament intern: Staff, DrumStaff, GregorianTranscriptionStaff, RhythmicStaff, TabStaff, MensuralStaff, VaticanaStaff, StaffSymbol.
Agrupament de pentagrames
Hi ha diversos contextos per agrupar pentagrames individuals formant sistemes. Cada context d’agrupament estableix l’estil del delimitador de començament del sistema i el comportament de les barres de compàs.
Si no s’especifica cap context, s’usen les propietats predeterminades: el grup comença amb una línia vertical i les barres de compàs no estan connectades.
<<
\new Staff \relative { c''1 c }
\new Staff \relative { c''1 c }
>>
Al context StaffGroup, el grup s’inicia amb una clau i les
barres de compàs es dibuixen travessant tots els pentagrames.
\new StaffGroup <<
\new Staff \relative { c''1 c }
\new Staff \relative { c''1 c }
>>
A un ChoirStaff (sistema de cor), el grup s’inicia amb una
clau, però les barres de compàs no estan connectades.
\new ChoirStaff <<
\new Staff \relative { c''1 c }
\new Staff \relative { c''1 c }
>>
A un GrandStaff (sistema de piano), el grup s’inicia amb
una clau i les barres de compàs es connecten entre els pentagrames.
\new GrandStaff <<
\new Staff \relative { c''1 c }
\new Staff \relative { c''1 c }
>>
El PianoStaff (sistema de piano) es idèntic a
GrandStaff, excepte que contempla directament la impressió
del nom de l’instrument. Per veure més detalls, consulteu
Noms d’instruments.
\new PianoStaff <<
\set PianoStaff.instrumentName = #"Piano"
\new Staff \relative { c''1 c }
\new Staff \relative { \clef bass c1 c }
>>
Cada context de grup de pentagrames fixa la propietat del
delimitador d’inici systemStartDelimiter a un dels valors
següents: SystemStartBar (línia),
SystemStartBrace (clau) o SystemStartBracket
(claudàtor). També està disponible un quart delimitador,
SystemStartSquare (clau amb angles rectes), però s’ha
d’especificar explícitament.
Es poden definir contextos nous de grup de pentagrames. Per veure més detalls, consulteu Definició de nous contextos.
Fragments de codi seleccionats
Use square bracket at the start of a staff group
The system start delimiter SystemStartSquare can be used by
setting it explicitly in a StaffGroup or ChoirStaff
context.
\score {
\new StaffGroup { <<
\set StaffGroup.systemStartDelimiter = #'SystemStartSquare
\new Staff { c'4 d' e' f' }
\new Staff { c'4 d' e' f' }
>> }
}
Display bracket with only one staff in a system
If there is only one staff in one of the staff types ChoirStaff
or StaffGroup, by default the bracket and the starting bar line
will not be displayed. This can be changed by overriding
collapse-height to set its value to be less than the number of
staff lines in the staff.
Note that in contexts such as PianoStaff and GrandStaff
where the systems begin with a brace instead of a bracket, another
property has to be set, as shown on the second system in the example.
\score {
\new StaffGroup <<
% Must be lower than the actual number of staff lines
\override StaffGroup.SystemStartBracket.collapse-height = #4
\override Score.SystemStartBar.collapse-height = #4
\new Staff {
c'1
}
>>
}
\score {
\new PianoStaff <<
\override PianoStaff.SystemStartBrace.collapse-height = #4
\override Score.SystemStartBar.collapse-height = #4
\new Staff {
c'1
}
>>
}
Mensurstriche layout (bar lines between the staves)
The mensurstriche-layout where the bar lines do not show on the staves
but between staves can be achieved with a StaffGroup instead of
a ChoirStaff. The bar line on staves is blanked out using
\hide.
global = {
\hide Staff.BarLine
s1 s
% the final bar line is not interrupted
\undo \hide Staff.BarLine
\bar "|."
}
\new StaffGroup \relative c'' {
<<
\new Staff { << \global { c1 c } >> }
\new Staff { << \global { c c } >> }
>>
}
Vegeu també
Glossari musical: brace, bracket, grand staff.
Referència de la notació: Noms d’instruments, Definició de nous contextos.
Fragments de codi: Staff notation.
Referència de funcionament intern: Staff, StaffGroup, ChoirStaff, GrandStaff, PianoStaff, SystemStartBar, SystemStartBrace, SystemStartBracket, SystemStartSquare.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Agrupament de pentagrames ] | [ Amunt : Visualització dels pentagrames ] | [ Separació de sistemes > ] | ||
Grups de pentagrames niuats
Els contextos de grups de pentagrames es poden niuar fins a una profunditat arbitrària. En aquest cas, cada contest descendent crea una clau nova adjacent a la clau del seu grup pare.
\new StaffGroup <<
\new Staff \relative { c''2 c | c2 c }
\new StaffGroup <<
\new Staff \relative { g'2 g | g2 g }
\new StaffGroup \with {
systemStartDelimiter = #'SystemStartSquare
}
<<
\new Staff \relative { e'2 e | e2 e }
\new Staff \relative { c'2 c | c2 c }
>>
>>
>>
Es poden definir nous contextos de grups de pentagrames niuats. Per veure més detalls, consulteu Definició de nous contextos.
Fragments de codi seleccionats
Nesting staves
The property systemStartDelimiterHierarchy can be used to make
more complex nested staff groups. The command \set
StaffGroup.systemStartDelimiterHierarchy takes an alphabetical list of
the number of staves produced. Before each staff a system start
delimiter can be given. It has to be enclosed in brackets and takes as
much staves as the brackets enclose. Elements in the list can be
omitted, but the first bracket takes always the complete number of
staves. The possibilities are SystemStartBar,
SystemStartBracket, SystemStartBrace, and
SystemStartSquare.
\new StaffGroup
\relative c'' <<
\set StaffGroup.systemStartDelimiterHierarchy
= #'(SystemStartSquare (SystemStartBrace (SystemStartBracket a
(SystemStartSquare b) ) c ) d)
\new Staff { c1 }
\new Staff { c1 }
\new Staff { c1 }
\new Staff { c1 }
\new Staff { c1 }
>>
Vegeu també
Referència de la notació: Agrupament de pentagrames, Noms d’instruments, Definició de nous contextos.
Fragmentos de código: Staff notation.
Referència de funcionament intern: StaffGroup, ChoirStaff, SystemStartBar, SystemStartBrace, SystemStartBracket, SystemStartSquare.
Separació de sistemes
Si el nombre de sistemes per pàgina varia d’una pàgina a una
altra, s’acostuma a separar els sistemes col·locant una marca
separadora entre ells. De forma predeterminada, el separador de
sistemes està inhabilitat, però es pot activar amb una opció de
\paper.
\book {
\score {
\new StaffGroup <<
\new Staff {
\relative {
c''4 c c c
\break
c4 c c c
}
}
\new Staff {
\relative {
c''4 c c c
\break
c4 c c c
}
}
>>
}
\paper {
system-separator-markup = \slashSeparator
% les ordres següents sols calen per al format d'aquesta documentació
paper-width = 100\mm
paper-height = 100\mm
tagline = ##f
}
}
Vegeu també
Referència de la notació: Disposició de la pàgina.
Fragments de codi: Staff notation.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Separació de sistemes ] | [ Amunt : Notació dels pentagrames ] | [ El símbol del pentagrama > ] | ||
1.6.2 Modificació de pentagrames separats
Aquesta secció explica com canviar els atributs específics d’un pentagrama: per exemple, canviar el nombre de línies o la mida de la pauta. També es descriuen els mètodes per començar i acabar els pentagrames, i establir seccions d’ossia.
| El símbol del pentagrama | ||
| Pentagrames d’Ossia | ||
| Ocultament de pentagrames |
El símbol del pentagrama
Es poden usar les ordres \stopStaff i
\startStaff per aturar i (re)iniciar, respectivament, la
impressió de les línies de la pauta a qualsevol punt de la partitura.
\relative {
\stopStaff f''4 d \startStaff g, e
f'4 d \stopStaff g, e
f'4 d \startStaff g, e
}
Instruccions predefinides
\startStaff,
\stopStaff.
Les línies de la pauta pertanyen al grob StaffSymbol
(incloses les línies addicionals) i es poden modificar usant es
propietats de StaffSymbol, però aquestes modificacions
s’han de fer abans que el pentagrama es (re)iniciï.
Es pot canviar el nombre línies de la pauta:
\relative {
f''4 d \stopStaff
\override Staff.StaffSymbol.line-count = #2
\startStaff g, e |
f'4 d \stopStaff
\revert Staff.StaffSymbol.line-count
\startStaff g, e |
}
La posició de cada una de les línies de la pauta també poden
canviar-se. Una llista de números fixa la posició de cada línia.
0 correspon a la línia central normal, i les posicions
normals de les línies són
(-4 -2 0 2 4). S’imprimeix una sola
línia de pauta per cada valor que s’introdueix, de manera que el
nombre de línies així com la seva posició a la pauta poden
canviar-se amb una sola operació de sobreescriptura.
\relative {
f''4 d \stopStaff
\override Staff.StaffSymbol.line-positions = #'(1 3 5 -1 -3)
\startStaff g, e |
f'4 d \stopStaff
\override Staff.StaffSymbol.line-positions = #'(8 6.5 -6 -8 -0.5)
\startStaff g, e |
}
Per preservar les direccions típiques de les pliques (cap amunt per a la meitat inferior del pentagrama i cap avall per a la meitat superior), ham d’alinear la línia (o espai) central de la pauta personalitzada amb la posició de la línia central normal (0). Pot caldre un ajust de la posició de la clau i del Do central perquè es corresponguin a les línies noves. Vegeu Clau.
Pot canviar-se el gruix de les línies de la pauta. També resulten afectades, de forma predeterminada, les línies addicionals i no la plica de les figures.
\new Staff \with {
\override StaffSymbol.thickness = #3
} \relative {
f''4 d g, e
}
També és possible fixar el gruix de les línies addicionals de forma independent del de les línies de la pauta.
\new Staff \with {
\override StaffSymbol.thickness = #2
\override StaffSymbol.ledger-line-thickness = #'(0.5 . 0.4)
} \relative {
f'''4 a, a,, f
}
El primer valor es multiplica pel gruix de les línies del pentagrama, el segon per l’amplada d’un espai del pentagrama, i després els dos valors se sumen per obtenir el gruix de les línies addicionals.
Es poden alterar les posicions de les línies addicionals:
\new Staff \with {
\override StaffSymbol.ledger-positions = #'(-3 -2 -1 2 5 6)
} \relative {
f'''4 a, a,, f
}
Pot aconseguir-se que les línies addicionals afegides apareguin per sobre o per sota del cap de les figures, depenent de la posició actual relativa a d’altres caps de figura que tenen també les seves pròpies línies addicionals.
\new Staff \with {
\override StaffSymbol.ledger-extra = #4
} \relative {
f'''4 a, d, f,
}
També es pot fer que les línies addicionals apareguin dins del
pentagrama al lloc on es requereixin línies de pauta
personalitzades. L’exemple mostra la posició predeterminada de
les línies addicionals quan el valor de posició explícit
ledger-position se ha fixat o no. L’ordre
\stopStaff cal a l’exemple per revertir l’ordre de
sobreescriptura \override per a tot el
StaffSymbol (el símbol de pauta).
\relative d' {
\override Staff.StaffSymbol.line-positions = #'(-8 0 2 4)
d4 e f g
\stopStaff
\startStaff
\override Staff.StaffSymbol.ledger-positions = #'(-8 -6 (-4 -2) 0)
d4 e f g
}
Pot alterar-se la distància entre línies de pauta. Això afecta també l’espaiat de les línies addicionals.
\new Staff \with {
\override StaffSymbol.staff-space = #1.5
} \relative {
f'''4 d, g, e,
}
Fragments de codi seleccionats
Making some staff lines thicker than the others
For educational purposes, a staff line can be thickened (e.g., the
middle line, or to emphasize the line of the G clef). This can be
achieved by adding extra lines very close to the line that should be
emphasized, using the line-positions property of the
StaffSymbol object.
{
\override Staff.StaffSymbol.line-positions =
#'(-4 -2 -0.2 0 0.2 2 4)
d'4 e' f' g'
}
Vegeu també
Glossari musical: line, ledger line, staff.
Referència de la notació: Clau.
Fragments de codi: Staff notation.
Referència de funcionament intern: StaffSymbol, staff-symbol-interface.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < El símbol del pentagrama ] | [ Amunt : Modificació de pentagrames separats ] | [ Ocultament de pentagrames > ] | ||
Pentagrames d’Ossia
Els pentagrames Ossia es poden preparar mitjançant la creació d’un pentagrama simultani nou a la posició adequada:
\new Staff \relative {
c''4 b d c
<<
{ c4 b d c }
\new Staff { e4 d f e }
>>
c4 b c2
}
Tanmateix, l’exemple anterior no es el que normalment es desitja. Per crear pentagrames d’ossia que estiguin per sobre el pentagrama original, que no tinguin ni compàs ni clau, i que tinguin una mida menor de tipus de lletra, es poden fer servir diversos ajustaments. El Manual d’Aprenentatge descriu una tècnica específica per assolir aquest objectiu, començant per Niuat d'expressions musicals.
L’exemple següent fa servir la propietat alignAboveContext
per alinear el pentagrama d’ossia. Aquest mètode és molt
convenient quan calen sols alguns pentagrames d’ossia.
\new Staff = "main" \relative {
c''4 b d c
<<
{ c4 b d c }
\new Staff \with {
\remove "Time_signature_engraver"
alignAboveContext = #"main"
\magnifyStaff #2/3
firstClef = ##f
}
{ e4 d f e }
>>
c4 b c2
}
Si es requereixen molts pentagrames d’ossia aïllats, pot ser més
convenient la creació d’un context Staff buit amb
un identificador de context específic; després es poden
crear els pentagrames d’ossia cridant a aquest context i
usant \startStaff i \stopStaff als punts desitjats.
Els avantatges d’aquest mètode són més patents si la peça és més
llarga com a l’exemple següent.
<<
\new Staff = "ossia" \with {
\remove "Time_signature_engraver"
\hide Clef
\magnifyStaff #2/3
}
{ \stopStaff s1*6 }
\new Staff \relative {
c'4 b c2
<<
{ e4 f e2 }
\context Staff = "ossia" {
\startStaff e4 g8 f e2 \stopStaff
}
>>
g4 a g2 \break
c4 b c2
<<
{ g4 a g2 }
\context Staff = "ossia" {
\startStaff g4 e8 f g2 \stopStaff
}
>>
e4 d c2
}
>>
Com a alternativa, es pot usar l’ordre
\RemoveAllEmptyStaves per crear pentagrames d’ossia. Aquest
mètode és molt convenient quan els pentagrames d’ossia apareixen
immediatament després d’un salt de línia. Per veure més
informació sobre \RemoveAllEmptyStaves, consulteu
Ocultament de pentagrames.
<<
\new Staff = "ossia" \with {
\remove "Time_signature_engraver"
\hide Clef
\magnifyStaff #2/3
\RemoveAllEmptyStaves
} \relative {
R1*3
c''4 e8 d c2
}
\new Staff \relative {
c'4 b c2
e4 f e2
g4 a g2 \break
c4 b c2
g4 a g2
e4 d c2
}
>>
Fragments de codi seleccionats
Vertically aligning ossias and lyrics
This snippet demonstrates the use of the context properties
alignBelowContext and alignAboveContext to control the
positioning of lyrics and ossias.
\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]
}
}
>>
}
>>
Vegeu també
Glossari musical: ossia, staff, Frenched staff.
Manual d’aprenentatge: Niuat d'expressions musicals, Mida dels objectes, Longitud i gruix dels objectes.
Referència de la notació: Ocultament de pentagrames.
Fragments de codi: Staff notation.
Referència de funcionament intern: StaffSymbol.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Pentagrames d'Ossia ] | [ Amunt : Modificació de pentagrames separats ] | [ Escriptura de les particel·les > ] | ||
Ocultament de pentagrames
Es poden ocultar les línies del pentagrama traient el gravador
Staff_symbol_engraver del context de Staff. Com a
alternativa es pot utilitzar l’ordre \stopStaff.
\new Staff \with {
\remove "Staff_symbol_engraver"
}
\relative { a''8 f e16 d c b a2 }
Es poden ocultar els pentagrames buits (per fer el que es coneix
com a ‘partitura a la francesa’) aplicant l’ordre
\RemoveEmptyStaves sobre un context, cosa que es pot fer
globalment (dins del bloc \layout) així com per a pautes
específiques sols (dins d’un bloc \with). Aquest ordre
elimina totes les pautes buides de la partitura excepte les del
primer sistema. Si volem ocultar també les del primer sistema,
usem \RemoveAllEmptyStaves. Els contextos que estan
contemplats són Staff,
RhythmicStaff i VaticanaStaff.
Nota: Un pentagrama es considera buit quan conté sols silencis, silencis multicompàs, desplaçaments, silencis de separació o una combinació d’aquests elements.
\layout {
\context {
\Staff
\RemoveEmptyStaves
}
}
\relative <<
\new Staff {
e'4 f g a \break
b1 \break
a4 b c2
}
\new Staff {
c,4 d e f \break
R1 \break
f4 g c,2
}
>>
També es pot fer ser servir \RemoveAllEmptyStaves per crear
seccions d’ossia per a un pentagrama. Per veure més detalls, consulteu
Pentagrames d’Ossia.
Instruccions predefinides
\RemoveEmptyStaves,
\RemoveAllEmptyStaves.
Vegeu també
Glossari musical: Frenched staff.
Manual d’aprenentatge: Visibilitat i color dels objectes.
Referència de la notació: Canvi dels valores per defecte dels contextos, El símbol del pentagrama, Pentagrames d’Ossia, Notes ocultes, Silencis invisibles, Visibilitat dels objectes.
Fragments de codi: Staff notation.
Referència de funcionament intern: ChordNames, FiguredBass, Lyrics, Staff, VerticalAxisGroup, Staff_symbol_engraver.
Advertiments i problemes coneguts
L’eliminació del gravador Staff_symbol_engraver també
oculta les barres de compàs. Si es força la visibilitat de la
barra de compàs, poden ocórrer errors de format visual. En aquest
cas, utilitzeu les següents sobreescriptures de valors en comptes
de treure el gravador:
\omit StaffSymbol \override NoteHead.no-ledgers = ##t
Per veure els errors i problemes coneguts, així com els
advertiments associats amb \RemoveEmptyStaves, consulteu
Canvi dels valores per defecte dels contextos.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Ocultament de pentagrames ] | [ Amunt : Notació dels pentagrames ] | [ Noms d'instruments > ] | ||
1.6.3 Escriptura de les particel·les
Aquesta secció explica com inserir indicacions de temps i noms d’instruments a una partitura. També es descriuen mètodes per citar altres veus i donar format a les notes guia.
| Noms d’instruments | ||
| Cites a altres veus | ||
| Format de les notes guia |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Escriptura de les particel·les ] | [ Amunt : Escriptura de les particel·les ] | [ Cites a altres veus > ] | ||
Noms d’instruments
Es poden imprimir els noms dels instruments al costat esquerre
dels pentagrames dins dels contextos Staff,
PianoStaff, StaffGroup, GrandStaff i
ChoirStaff. El valor de instrumentName s’usa per al
primer pentagrama, i el valor de shortInstrumentName
s’usa per a tots los pentagrames següents..
\new Staff \with {
instrumentName = #"Violin "
shortInstrumentName = #"Vln. "
} \relative {
c'4.. g'16 c4.. g'16 \break | c1 |
}
També podem fer servir \markup per construir noms
d’instrument més complicats:
\new Staff \with {
instrumentName = \markup {
\column { "Clarinetti"
\line { "in B" \smaller \flat }
}
}
} \relative {
c''4 c,16 d e f g2
}
Quan s’agrupen dos o més contextos de pentagrama, els noms
d’instrument i els noms curts apareixen centrats de forma
predeterminada. Per centrar noms d’instrument de diverses línies,
s’ha d’utilitzar \center-column:
<<
\new Staff \with {
instrumentName = #"Flute"
} \relative {
f''2 g4 f
}
\new Staff \with {
instrumentName = \markup {
\center-column { "Clarinet"
\line { "in B" \smaller \flat }
}
}
} \relative { c''4 b c2 }
>>
Malgrat això, si els noms d’instrument són més llargs, no se
centren per a un grup de pentagrames a no ser que s’augmentin els
valors del sagnat, indent, i del sagnat curt,
short-indent. Per veure més detalls sobre aquests
ajustaments, consulteu
Variables de paper per a desplaçaments i sagnats.
<<
\new Staff \with {
instrumentName = #"Alto Flute in G"
shortInstrumentName = #"Flt."
} \relative {
f''2 g4 f \break
g4 f g2
}
\new Staff \with {
instrumentName = #"Clarinet"
shortInstrumentName = #"Clar."
} \relative {
c''4 b c2 \break
c2 b4 c
}
>>
\layout {
indent = 3.0\cm
short-indent = 1.5\cm
}
Per afegir noms d’instrument a d’altres contextos (com ara
ChordNames o FiguredBass), hem d’afegir el gravador
Instrument_name_engraver a aquest context. Per veure més
detalls, consulteu
Modificació dels connectors de context.
El nom d’instrument curt shortInstrumentName es pot canviar
a la meitat d’una peça, igual que d’altres ajustaments que poden
caldre per al nou instrument; tanmateix, sols el primer
instrumentName s’imprimeix i la resta d’ells s’ignoren:
prepPiccolo = <>^\markup \italic { muta in Piccolo }
setPiccolo = {
\set Staff.instrumentName = #"Piccolo"
\set Staff.shortInstrumentName = #"Picc."
\set Staff.midiInstrument = #"piccolo"
<>^\markup \bold { Piccolo }
\transposition c''
}
prepFlute = <>^\markup \italic { muta in Flauto }
setFlute = {
\set Staff.instrumentName = #"Flute"
\set Staff.shortInstrumentName = #"Flt."
\set Staff.midiInstrument = #"flute"
<>^\markup \bold { Flute }
\transposition c'
}
\new Staff \with {
instrumentName = #"Flute"
shortInstrumentName = #"Flt."
midiInstrument = #"flute"
}
\relative {
g'1 g g g \break
g1 g \prepPiccolo R R \break
\setPiccolo
g1 g g g \break
g1 g \prepFlute R R \break
\setFlute
g1 g g g
}
Vegeu també
Referència de la notació: Variables de paper per a desplaçaments i sagnats, Modificació dels connectors de context.
Fragments de codi: Staff notation.
Referència de funcionament intern: InstrumentName, PianoStaff, Staff.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Noms d'instruments ] | [ Amunt : Escriptura de les particel·les ] | [ Format de les notes guia > ] | ||
Cites a altres veus
És molt freqüent que una veu usi les mateixes notes que una altra veu. Per exemple, els violins primer i segon tocant la mateixa frase durant un determinat passatge musical. Això es fa deixant que una veuciti a l’altra, sense que s’hagi de tornar a introduir la música per segon cop.
L’ordre \addQuote, utilitzada a l’àmbit del nivell
sintàctic superior, defineix un flux de música des del qual és
possible citar fragments.
L’ordre \quoteDuring s’usa per indicar el punt en el qual
comença la cita. Va seguida per dos arguments: el nom de la veu
citada, tal i com es va definir amb \addQuote, i una
expressió musical que indica la duració de la cita.
fluteNotes = \relative {
a'4 gis g gis | b4^"quoted" r8 ais\p a4( f)
}
oboeNotes = \relative {
c''4 cis c b \quoteDuring #"flute" { s1 }
}
\addQuote "flute" { \fluteNotes }
\score {
<<
\new Staff \with { instrumentName = "Flute" } \fluteNotes
\new Staff \with { instrumentName = "Oboe" } \oboeNotes
>>
}
Si l’expressió musical que s’usa per \quoteDuring conté
qualsevol cosa que no sigui un silenci de separació o un silenci
multicompàs, es produeix una situació de polifonia, cosa que no és
habitualment desitjable:
fluteNotes = \relative {
a'4 gis g gis | b4^"quoted" r8 ais\p a4( f)
}
oboeNotes = \relative {
c''4 cis c b \quoteDuring #"flute" { e4 r8 ais b4 a }
}
\addQuote "flute" { \fluteNotes }
\score {
<<
\new Staff \with { instrumentName = "Flute" } \fluteNotes
\new Staff \with { instrumentName = "Oboe" } \oboeNotes
>>
}
Si cal imprimir una ordre \unfoldRepeat dins d’una
expressió musical en usar \quoteDuring, aleshores ha de
contenir també la seva pròpia ordre \unfoldRepeat:
fluteNotes = \relative {
\repeat volta 2 { a'4 gis g gis }
}
oboeNotesDW = \relative {
\repeat volta 2 \quoteDuring #"incorrecte" { s1 }
}
oboeNotesW = \relative {
\repeat volta 2 \quoteDuring #"correcte" { s1 }
}
\addQuote "incorrecte" { \fluteNotes }
\addQuote "correcte" { \unfoldRepeats \fluteNotes }
\score {
\unfoldRepeats
<<
\new Staff \with { instrumentName = "Flute" }
\fluteNotes
\new Staff \with { instrumentName = "Oboe (incorrecte)" }
\oboeNotesDW
\new Staff \with { instrumentName = "Oboe (correcte)" }
\oboeNotesW
>>
}
L’ordre \quoteDuring usa els ajustament de
\transposition tant de la part citada com de la que cita,
per produir notes que tenen la mateixa alçada de so a la part que
cita i en les de la part citada.
clarinetNotes = \relative c'' {
\transposition bes
\key d \major
b4 ais a ais | cis4^"citat" r8 bis\p b4( f)
}
oboeNotes = \relative {
c''4 cis c b \quoteDuring #"clarinet" { s1 }
}
\addQuote "clarinet" { \clarinetNotes }
\score {
<<
\new Staff \with { instrumentName = "Clarinet" } \clarinetNotes
\new Staff \with { instrumentName = "Oboe" } \oboeNotes
>>
}
De forma predeterminada, la música citada inclou totes les
articulacions, matisos dinàmics, elements de marcatge, etc., de
l’expressió citada. És possible escollir quins d’aquests
objectes de la música que se cita s’imprimeixen, mitjançant la
propietat de context quotedEventTypes.
fluteNotes = \relative {
a'2 g2 |
b4\<^"quoted" r8 ais a4\f( c->)
}
oboeNotes = \relative {
c''2. b4 |
\quoteDuring #"flute" { s1 }
}
\addQuote "flute" { \fluteNotes }
\score {
<<
\set Score.quotedEventTypes = #'(note-event articulation-event
crescendo-event rest-event
slur-event dynamic-event)
\new Staff \with { instrumentName = "Flute" } \fluteNotes
\new Staff \with { instrumentName = "Oboe" } \oboeNotes
>>
}
Las cites també es poden etiquetar, vegeu Ús d’etiquetes.
Vegeu també
Referència de la notació: Transposició dels instruments, Ús d’etiquetes.
Fitxers d’inici: ‘scm/define-event-classes.scm’.
Fragments de codio: Staff notation.
Referència de funcionament intern: Music classes, QuoteMusic, Voice.
Advertiments i problemes coneguts
Sols el contingut de la primera veu d’una ordre
\addQuote s’ha de tenir en compte per a la cita, de manera
que si l’expressió musical conté enunciats \new o
\context Voice, els seus continguts no seran citats. La
cita de notes d’adorn no està contemplada i pot fer que el
LilyPond acabi de forma abrupta; la cita d’uns tresets dins d’uns
altres pot donar com a resultat una notació de qualitat pobre.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Cites a altres veus ] | [ Amunt : Escriptura de les particel·les ] | [ Anotacions editorials > ] | ||
Format de les notes guia
La manera més senzilla de donar format a les notes guia és crear
explícitament un context CueVoice dins de la part.
\relative {
R1
<<
{ e'2\rest r4. e8 }
\new CueVoice {
\stemUp d'8^"flute" c d e fis2
}
>>
d,4 r a r
}
L’ordre \cueClef pot usar-se també amb un context
CueVoice explícit si es requereix un canvi de clau, i
imprimeix una clau de la mida adequada per a les notes guia.
Després pot utilitzar-se l’ordre \cueClefUnset per tornar a
la clau original, de nou amb un signe de clau de la mida adequada.
\relative {
\clef "bass"
R1
<<
{ e'2\rest r4. \cueClefUnset e,8 }
\new CueVoice {
\cueClef "treble" \stemUp d''8^"flute" c d e fis2
}
>>
d,,4 r a r
}
Les instruccions \cueClef i \cueClefUnset es poden
usar també sense un CueVoice si cal.
\relative {
\clef "bass"
R1
\cueClef "treble"
d''8^"flute" c d e fis2
\cueClefUnset
d,,4 r a r
}
En casos de col·locació més complexa de notes guia, per exemple
amb transposició o inserint notes guia, per més d’una font, poden
usar-se les ordres \cueDuring o \cueDuringWithClef.
Són una forma més especialitzada de \quoteDuring,
vegeu Cites a altres veus a la secció anterior.
La sintaxi és:
\cueDuring #nom_de_la_cita #direcció #música
i
\cueDuringWithClef #nom_de_la_cita #direcció #clau #música
La música procedent dels compassos corresponents de l’element
nom_de_la_cita s’ afegeix com un context
CueVoice y apareix simultàniament amb la
música, cosa que produeix una situació polifònica. La
direcció agafa un argument UP (amunt) o
DOWN (avall), i correspon amb les veus primera i segona,
respectivament, determinant com s’imprimeixen les notes guia en
relació a l’altra veu.
fluteNotes = \relative {
r2. c''4 | d8 c d e fis2 | g2 d |
}
oboeNotes = \relative c'' {
R1
<>^\markup \tiny { flute }
\cueDuring #"flute" #UP { R1 }
g2 c,
}
\addQuote "flute" { \fluteNotes }
\new Staff {
\oboeNotes
}
És possible ajustar quins aspectes de la música se citen amb
\cueDuring establint el valor de la propietat
quotedCueEventTypes. El seu valor per defecte és
'(note-event rest-event tie-event beam-event
tuplet-span-event), cosa que significa que sols les notes,
silencis, lligadures d’unió, barres i grups especials se citen,
però no les articulacions, maques dinàmiques, elements de
marcatge, etc.
Nota: Quan un context Voice comença amb
cueDuring, com a l’exemple següent, el context
Voice s’ha de declarar explícitament, ja que en cas
contrari tota l’expressió musical pertanyeria al context
CueVoice.
oboeNotes = \relative {
r2 r8 d''16(\f f e g f a)
g8 g16 g g2.
}
\addQuote "oboe" { \oboeNotes }
\new Voice \relative c'' {
\set Score.quotedCueEventTypes = #'(note-event rest-event tie-event
beam-event tuplet-span-event
dynamic-event slur-event)
\cueDuring #"oboe" #UP { R1 }
g2 c,
}
Es poden usar elements de marcatge per mostrar el nom de l’instrument citat. Si les notes guia requereixen un canvi de clau, pot fer-se manualment però la clau original s’ha de restaurar al final de les notes guia.
fluteNotes = \relative {
r2. c''4 d8 c d e fis2 g2 d2
}
bassoonNotes = \relative c {
\clef bass
R1
\clef treble
<>^\markup \tiny { flute }
\cueDuring #"flute" #UP { R1 }
\clef bass
g4. b8 d2
}
\addQuote "flute" { \fluteNotes }
\new Staff {
\bassoonNotes
}
De forma alternativa, pot usar-se la funció
\cueDuringWithClef en el seu lloc. Aquesta ordre admet un
argument addicional per especificar el canvi de clau que cal
imprimir per a les notes guia, però després imprimeix
automàticament la clau original un cop que ha finalitzat la sèrie
de notes guia.
fluteNotes = \relative {
r2. c''4 d8 c d e fis2 g2 d2
}
bassoonNotes = \relative c {
\clef bass
R1
<>^\markup { \tiny "flute" }
\cueDuringWithClef #"flute" #UP #"treble" { R1 }
g4. b8 d2
}
\addQuote "flute" { \fluteNotes }
\new Staff {
\bassoonNotes
}
Com \quoteDuring, \cueDuring té en compte les
transposicions instrumentals. Les notes guia es produeixen en les
alçades en les quals s’escriurien per a l’instrument que rep la
cita, per produir així les alçades de so de l’instrument original.
Per transportar les notes guia de forma diferent, useu
\transposedCueDuring. Aquesta ordre accepta un argument
addicional per especificar el so d’un Do central de concert. Això
és útil per agafar cites d’un instrument que està a un registre
completament diferent.
piccoloNotes = \relative {
\clef "treble^8"
R1
c'''8 c c e g2
c4 g g2
}
bassClarinetNotes = \relative c' {
\key d \major
\transposition bes,
d4 r a r
\transposedCueDuring #"piccolo" #UP d { R1 }
d4 r a r
}
\addQuote "piccolo" { \piccoloNotes }
<<
\new Staff \piccoloNotes
\new Staff \bassClarinetNotes
>>
L’ordre \killCues elimina les notes guia d’una expressió
musical, de forma que la mateixa expressió musical pugui
utilitzar-se per produir la particel·la instrumental (amb notes
guia) i la partitura de conjunt. L’ordre \killCues elimina
solament les notes i esdeveniments que s’han citat mitjançant
\cueDuring. Altres elements de marcatge associats amb les
guies, com els canvis de clau o una etiqueta identificativa de
l’instrument font, poden marcar-se per a la seva inclusió
selectiva dins de la partitura, vegeu
Ús d’etiquetes.
fluteNotes = \relative {
r2. c''4 d8 c d e fis2 g2 d2
}
bassoonNotes = \relative c {
\clef bass
R1
\tag #'part {
\clef treble
<>^\markup \tiny { flute }
}
\cueDuring #"flute" #UP { R1 }
\tag #'part \clef bass
g4. b8 d2
}
\addQuote "flute" { \fluteNotes }
\new Staff {
\bassoonNotes
}
\new StaffGroup <<
\new Staff {
\fluteNotes
}
\new Staff {
\removeWithTag #'part { \killCues { \bassoonNotes } }
}
>>
Com a alternativa, els canvis de clau i les etiquetes d’instrument
es poden recol·lectar dins d’una definició d’instrument per al seu
ús repetit, utilitzant
\addInstrumentDefinition que es descriu a
Noms d’instruments.
Vegeu també
Referència de la notació: Cites a altres veus, Transposició dels instruments, Noms d’instruments, Clau, Guies musicals, Ús d’etiquetes.
Fragments de codi: Staff notation.
Referència de funcionament intern: CueVoice, Voice.
Advertiments i problemes coneguts
Poden ocórrer col·lisions amb els silencis si s’usa
\cueDuring, entre els contextos de Voice i de
CueVoice. En usar \cueDuringWithClef o
\transposedCueDuring l’argument addicional requerit per a
cada cas ha d’anar després de la cita i de la direcció.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Format de les notes guia ] | [ Amunt : Notació musical ] | [ Dins del pentagrama > ] | ||
1.7 Anotacions editorials
Aquesta secció tracta de les diverses maneres de modificar l’aspecte de les notes i d’aplicar èmfasi analític o educatiu.
| 1.7.1 Dins del pentagrama | ||
| 1.7.2 Fora del pentagrama |
1.7.1 Dins del pentagrama
Aquesta secció tracta sobre com aplicar èmfasi als elements situats dins del pentagrama.
| Selecció del la mida del tipus de lletra per a la notació | ||
| Indicacions de digitació | ||
| Notes ocultes | ||
| Acoloriment d’objectes | ||
| Parèntesis | ||
| Pliques |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Dins del pentagrama ] | [ Amunt : Dins del pentagrama ] | [ Indicacions de digitació > ] | ||
Selecció del la mida del tipus de lletra per a la notació
Nota:
Per a la mida del tipus de lletra del text consulteu
Selecció del tipus de lletra i la seva mida.
Per a la mida del pentagrama, consulteu
Establiment de la mida del pentagrama.
Per a les notes guia, consulteu Format de les notes guia.
Per als pentagrames d’Ossia, consulteu Pentagrames d’Ossia.
Per modificar la mida de la notació sense canviar la mida del
pentagrama, especifiqueu un factor d’ampliació amb l’ordre
\magnifyMusic:
\new Staff <<
\new Voice \relative {
\voiceOne
<e' e'>4 <f f'>8. <g g'>16 <f f'>8 <e e'>4 r8
}
\new Voice \relative {
\voiceTwo
\magnifyMusic 0.63 {
\override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63)
r32 c'' a c a c a c r c a c a c a c
r c a c a c a c a c a c a c a c
}
}
>>
L’\override de l’exemple anterior és una solució
provisional per solucionar un error del programa. Consulteu
l’apartat de “Problemes i advertiments coneguts” al final
d’aquesta secció.
Si una figura amb una mida normal de cap es barreja amb una altra més petita, la mida de la menor podria de necessitar de canviar-se (amb ‘\once \normalsize’) perquè les pliques i les alteracions accidentals mantinguin una bona alineació:
\new Staff <<
\key fis \minor
\mergeDifferentlyDottedOn
\new Voice \relative {
\voiceOne
\magnifyMusic 0.63 {
\override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63)
\once \normalsize cis'32( cis' gis b a fis \once \normalsize d d'
\once \normalsize cis, cis' gis b a gis \once \normalsize fis fis'
\once \normalsize fis, fis' ais, cis b gis \once \normalsize eis eis'
\once \normalsize a, a' bis, d cis b \once \normalsize gis gis')
}
}
\new Voice \relative {
\voiceTwo
cis'8. d16 cis8. fis16 fis8. eis16 a8. gis16
}
>>
L’ordre \magnifyMusic no està pensada per a les notes guia,
d’adorn, o per als pentagrames d’Ossia; hi ha mètodes més
apropiats per a la introducció de cada un d’aquests elements. En
comptes d’això, és útil quan la mida de la notació canvia dins
d’una sola part instrumental sobre un pentagrama, i quan les notes
d’adorn no són adequades, com a passatges de cadència o en casos
com els dels exemples anteriors. Establir el valor de
\magnifyMusic a 0.63 duplica les dimensions del context
CueVoice.
Nota: L’ordre \magnifyMusic no ha d’utilitzar-se
si s’està canviant la mida del pentagrama al mateix temps. Consulteu
Establir la mida del pentagrama.
Canviar la mida dels objectes individuals
Es pot canviar de mida un objecte de presentació individual usant
les ordres \tweak o \override per ajustar la seva
propietat font-size:
\relative {
% resize a note head
<f' \tweak font-size -4 b e>-5
% resize a fingering
bes-\tweak font-size 0 -3
% resize an accidental
\once \override Accidental.font-size = -4 bes!-^
% resize an articulation
\once \override Script.font-size = 4 bes!-^
}
El valor predeterminat de font-size per a cada objecte de
presentació està explicat al Manual de Referència de Funcionament
Intern. La propietat font-size sols es pot fixar per als
objectes de presentació que respecten la interfície de presentació
font-interface. Si no està especificada font-size a
la llista de ‘Ajustos estàndard’ de l’objecte, el seu valor
és 0. Vegeu
All layout objects.
Comprensió de la propietat fontSize
La propietat de context fontSize ajusta la mida relativa de
tots els elements de notació basats en glifs dins d’un context:
\relative {
\time 3/4
d''4---5 c8( b a g) |
\set fontSize = -6
e'4-- c!8-4( b a g) |
\set fontSize = 0
fis4---3 e8( d) fis4 |
g2.
}
El valor fontSize és un número que indica la mida relativa
a la mida estàndard per a l’alçada actual del pentagrama. El
valor predeterminat de fontSize es 0; la addició de 6 a
qualsevol valor de fontSize duplica la mida impresa dels
glifs, i la substracció de 6 redueix la mida a la meitat. Cada
pas augmenta la mida en un 12% aproximadament.
La funció del Scheme magnification->font-size es proveeix
per conveniència, atès que les unitats logarítmiques de la propietat
font-size no són totalment intuïtives. Per exemple, per
ajustar la notació musical al 75% de la mida predeterminada, usem:
\set fontSize = #(magnification->font-size 0.75)
La funció de l’Scheme magstep té l’efecte oposat:
converteix un valor de font-size a un factor d’ampliació.
La propietat fontSize no afecta sols als elements
de notació que es dibuixen amb glifs, com el cap de les figures,
les alteracions accidentals, les inscripcions textuals, etc. No
afecta la mida de la pròpia pauta, ni canvia l’escala de les
pliques, barres, o espaiat horitzontal. Per canviar l’escala de
les pliques, barres i l’espaiat horitzontal junt amb la mida de la
notació (sense canviar la mida de la pauta), useu l’ordre
\magnifyMusic que s’ha explicat anteriorment. Per canviar
l’escala de la mida de tot, fins i tot la pauta, vegeu
Establiment de la mida del pentagrama.
Sempre que s’estableix el valor de la propietat de context
fontSize, el seu valor s’afegeix al valor de la
propietat d’objecte gràfic font-size per als objectes
de presentació individuals, abans que s’imprimeixi qualsevol dels
glifs. Això pot confondre quan s’estableix el valor de les propietats
font-size individuals mentre fontSize ja està establert:
% the default font-size for NoteHead is 0 % the default font-size for Fingering is -5 c''4-3 \set fontSize = -3 % the effective font size for NoteHead is now -3 % the effective font size for Fingering is now -8 c''4-3 \override Fingering.font-size = 0 % the effective font size for Fingering is now -3 c''4-3
També hi ha les següents ordres de drecera:
| Ordre | Equivalent a | Mida relativa |
\teeny | \set fontSize = -3 | 71% |
\tiny | \set fontSize = -2 | 79% |
\small | \set fontSize = -1 | 89% |
\normalsize | \set fontSize = 0 | 100% |
\large | \set fontSize = 1 | 112% |
\huge | \set fontSize = 2 | 126% |
\relative c'' {
\teeny
c4.-> d8---3
\tiny
c4.-> d8---3
\small
c4.-> d8---3
\normalsize
c4.-> d8---3
\large
c4.-> d8---3
\huge
c4.-> d8---3
}
Els canvis a la mida del tipus de lletra s’obtenen per mitjà de
l’escalat de la mida del disseny que es troba més a prop de la
mida desitjada. La mida estàndard per al tipus de lletra (per a
font-size = 0) depèn de l’alçada estàndard del
pentagrama. Per a un pentagrama de 20 punts, se selecciona un
tipus de lletra de 11 punts.
Instruccions predefinides
\magnifyMusic,
\teeny (ínfim),
\tiny (molt petit),
\small (petit),
\normalsize (normal),
\large (gran),
\huge (enorme).
Vegeu també
Referència de la notació: Selecció del tipus de lletra i la seva mida Establiment de la mida del pentagrama. Format de les notes guia, Pentagrames d’Ossia.
Fitxers instal·lats: ‘ly/music-functions-init.ly’, ‘ly/property-init.ly’.
Fragments de codi: Editorial annotations.
Referència de funcionament intern: font-interface.
Advertiments i problemes coneguts
Actualment hi ha dos errors del programa que impedeixen un espaiat
horitzontal correcte en usar \magnifyMusic. Solament hi ha
una forma rodejar l’error, i el seu funcionament correcte no està
garantit en tots els casos. A l’exemple que apareix a
continuació, substituïu la variable mag amb el vostre valor
preferit. També podeu intentar treure una o ambdues ordres
\newSpacingSection, i/o les ordres
\override i \revert:
\magnifyMusic mag {
\newSpacingSection
\override Score.SpacingSpanner.spacing-increment = #(* 1.2 mag)
[music]
\newSpacingSection
\revert Score.SpacingSpanner.spacing-increment
}
Indicacions de digitació
Les instruccions de digitació es poden introduir usant ‘nota-dígito’:
\relative { c''4-1 d-2 f-4 e-3 }
Per als canvis de dit es poden usar elements de marcatge de text o de cadenes de caràcters.
\relative {
c''4-1 d-2 f\finger \markup \tied-lyric "4~3" c\finger "2 - 3"
}
Podeu usar l’articulació de polze per indicar que una nota s’ha de tocar amb el polze (per exemple a música de violoncel).
\relative { <a'_\thumb a'-3>2 <b_\thumb b'-3> }
Les digitacions per als acords també es poden afegir a les notes individuals escrivint-les després de les altures.
\relative {
<c''-1 e-2 g-3 b-5>2 <d-1 f-2 a-3 c-5>
}
Les indicacions de digitació es poden situar manualment a sobre o a sota del pentagrama, vegeu Direcció i posició.
Fragments de codi seleccionats
Controlling the placement of chord fingerings
The placement of fingering numbers can be controlled precisely. For fingering orientation to apply, you must use a chord construct <> even if it is a single note.
\relative c' {
\set fingeringOrientations = #'(left)
<c-1 e-3 a-5>4
\set fingeringOrientations = #'(down)
<c-1 e-3 a-5>4
\set fingeringOrientations = #'(down right up)
<c-1 e-3 a-5>4
\set fingeringOrientations = #'(up)
<c-1 e-3 a-5>4
\set fingeringOrientations = #'(left)
<c-1>2
\set fingeringOrientations = #'(down)
<e-3>2
}
Allowing fingerings to be printed inside the staff
By default, vertically oriented fingerings are positioned outside the staff. However, this behavior can be canceled. Note: you must use a chord construct <>, even if it is only a single note.
\relative c' {
<c-1 e-2 g-3 b-5>2
\override Fingering.staff-padding = #'()
<c-1 e-2 g-3 b-5>4 <g'-0>
}
Avoiding collisions with chord fingerings
Fingerings and string numbers applied to individual notes will automatically avoid beams and stems, but this is not true by default for fingerings and string numbers applied to the individual notes of chords. The following example shows how this default behavior can be overridden.
\relative c' {
\set fingeringOrientations = #'(up)
\set stringNumberOrientations = #'(up)
\set strokeFingerOrientations = #'(up)
% Default behavior
r8
<f c'-5>8
<f c'\5>8
<f c'-\rightHandFinger #2 >8
% No tweak needed
r8
<f c'-5>8
<f c'\5>8
% Corrected to avoid collisions
\override StrokeFinger.add-stem-support = ##t
<f c'-\rightHandFinger #2 >8
}
Vegeu també
Referència de la notació: Direcció i posició.
Fragments de codi: Editorial annotations.
Referència de funcionament intern: FingeringEvent, fingering-event, Fingering_engraver, New_fingering_engraver, Fingering.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Indicacions de digitació ] | [ Amunt : Dins del pentagrama ] | [ Acoloriment d'objectes > ] | ||
Notes ocultes
Las notes ocultes (o invisibles, o transparents) poden ser d’utilitat en la preparació d’exercicis de teoria o de composició.
\relative {
c''4 d
\hideNotes
e4 f
\unHideNotes
g a
\hideNotes
b
\unHideNotes
c
}
El cap, la plica i la barra de les figures, així com els silencis, són invisibles. Les barres són invisibles si comencen en una nota oculta. Els objectes de notació que estan ancorats a notes invisibles, són, malgrat això, visibles.
\relative c'' {
e8(\p f g a)--
\hideNotes
e8(\p f g a)--
}
Instruccions predefinides
\hideNotes,
\unHideNotes.
Vegeu també
Manual d’aprenentatge: Visibilitat i color dels objectes
Referència de la notació: Silencis invisibles, Visibilitat dels objectes, Ocultament de pentagrames.
Fragments de codi: Editorial annotations.
Referència de funcionament intern: Note_spacing_engraver, NoteSpacing.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Notes ocultes ] | [ Amunt : Dins del pentagrama ] | [ Parèntesis > ] | ||
Acoloriment d’objectes
Es poden assignar colors als objectes individuals. Els noms de color vàlids es relacionen a la Llista de colors.
\override NoteHead.color = #red c''4 c'' \override NoteHead.color = #(x11-color 'LimeGreen) d'' \override Stem.color = #blue e''
Es pot accedir a l’espectre complet de colors definit per a X11
usant la funció de l’Scheme x11-color. Aquesta funció accepta un
únic argument; pot ser un símbol de la forma
'PauPereBerenguera o una cadena de la forma
"PauPereBerenguera". La primera forma és més ràpida
d’escriure i també més eficient. Tanmateix, en usar la segona
forma és possible accedir als colors d’X11 per mitjà de la forma
del nom que té diverses paraules.
Si x11-color no entén el paràmetre, el color predeterminat
que retorna és el negre.
\new Staff \with {
instrumentName = \markup {
\with-color #(x11-color 'red) "Clarinet"
}
}
\relative c'' {
\override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2)
gis8 a
\override Beam.color = #(x11-color "medium turquoise")
gis a
\override Accidental.color = #(x11-color 'DarkRed)
gis a
\override NoteHead.color = #(x11-color "LimeGreen")
gis a
% això és un absurd deliberadament; noteu que les barres romanen negres
\override Stem.color = #(x11-color 'Boggle)
b2 cis
}
Es poden especificar colors RGB exactes utilitzant la funció de
l’Scheme rgb-color.
\new Staff \with {
instrumentName = \markup {
\with-color #(x11-color 'red) "Clarinet"
}
}
\relative c'' {
\override Staff.StaffSymbol.color = #(x11-color 'SlateBlue2)
\override Stem.color = #(rgb-color 0 0 0)
gis8 a
\override Stem.color = #(rgb-color 1 1 1)
gis8 a
\override Stem.color = #(rgb-color 0 0 0.5)
gis4 a
}
Vegeu també
Referència de la notació: Llista de colors. L’ordre tweak.
Fragments de codi: Editorial annotations.
Advertiments i problemes coneguts
Un color d’X11 no és necessàriament de la mateixa tonalitat exacta que un color normal de nom semblant.
No tots els colors d’X11 es distingeixen entre ells a un navegador
web, és a dir, un navegador web podria no mostrar cap diferència
entre LimeGreen (verd llima) i ForestGreen (verd
bosc). Per a la web es recomanen els colors normals (o sigui:
blue, blau, green, verd, i red, vermell).
Les notes d’un acord no es poden acolorir individualment amb
\override; en el seu lloc useu \tweak o el seu
equivalent \single\override abans de la nota respectiva.
Consulteu
L’ordre tweak per veure
més detalls.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Acoloriment d'objectes ] | [ Amunt : Dins del pentagrama ] | [ Pliques > ] | ||
Parèntesis
Es poden tancar els objectes entre parèntesis anteposant
\parenthesize a l’esdeveniment musical. Si s’aplica a un
acord, envolta cada nota dins d’un parell de parèntesis. També es
poden posar entre parèntesis les notes individuals d’un acord.
\relative {
c''2 \parenthesize d
c2 \parenthesize <c e g>
c2 <c \parenthesize e g>
}
Els objectes que no són notes també es poden posar entre
parèntesis. Per a les articulacions cal un guió abans de l’ordre
\parenthesize.
\relative {
c''2-\parenthesize -. d
c2 \parenthesize r
}
Vegeu també
Fragments de codi: Editorial annotations.
Referència de funcionament intern: Parenthesis_engraver, ParenthesesItem, parentheses-interface.
Advertiments i problemes coneguts
En posar un acord entre parèntesis, s’envolta cada una de les notes individuals entre parèntesis, en comptes d’un sols parèntesis gran envoltant l’acord complet.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Parèntesis ] | [ Amunt : Dins del pentagrama ] | [ Fora del pentagrama > ] | ||
Pliques
Quan es troba amb una nota, es crea automàticament un objecte
Stem (plica). Per a les rodones i els silencis, també es
creen però es fan invisibles.
Es pot fer manualment que les pliques apuntin cap amunt o cap avall; vegeu Direcció i posició.
Instruccions predefinides
\stemUp,
\stemDown,
\stemNeutral.
Fragments de codi seleccionats
Default direction of stems on the center line of the staff
The default direction of stems on the center line of the staff is set
by the Stem property neutral-direction.
\relative c'' {
a4 b c b
\override Stem.neutral-direction = #up
a4 b c b
\override Stem.neutral-direction = #down
a4 b c b
}
Automatically changing the stem direction of the middle note based on the melody
LilyPond can alter the stem direction of the middle note on a staff so
that it follows the melody, by adding the Melody_engraver to the
Voice context and overriding the neutral-direction of Stem.
\relative c'' {
\time 3/4
a8 b g f b g |
c b d c b c |
}
\layout {
\context {
\Voice
\consists "Melody_engraver"
\autoBeamOff
\override Stem.neutral-direction = #'()
}
}
Vegeu també
Referència de la notació: Direcció i posició.
Fragments de codi: Editorial annotations.
Referència de funcionament intern: Stem_engraver, Stem, stem-interface.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Pliques ] | [ Amunt : Anotacions editorials ] | [ Globus d'ajuda > ] | ||
1.7.2 Fora del pentagrama
Aquest secció tracta sobre com emfatitzar element que estan dins del pentagrama, des de fora del pentagrama.
| Globus d’ajuda | ||
| Línies de reixeta | ||
| Claus d’anàlisi |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Fora del pentagrama ] | [ Amunt : Fora del pentagrama ] | [ Línies de reixeta > ] | ||
Globus d’ajuda
Els elements de notació es poden marcar i anomenar amb l’ajuda d’un cartell o globus d’ajuda rectangular. El propòsit principal d’aquesta funcionalitat és l’explicació de la notació.
\new Voice \with { \consists "Balloon_engraver" }
\relative c'' {
\balloonGrobText #'Stem #'(3 . 4) \markup { "Sóc una plica" }
a8
\balloonGrobText #'Rest #'(-4 . -4) \markup { "Sóc un silenci" }
r
<c, g'-\balloonText #'(-2 . -2) \markup { "Sóc un cap" } c>2.
}
Hi ha dues funcions musicals, balloonGrobText i
balloonText; el primer s’usa com \once\override per
adjuntar un text a qualsevol objecte gràfic, i l’últim s’usa com
\tweak, normalment dins d’acords, per adjuntar un text a
una nota individual.
Els textos de globus no influeixen a l’espaiat de les notes, però això es pot canviar:
\new Voice \with { \consists "Balloon_engraver" }
\relative c'' {
\balloonGrobText #'Stem #'(3 . 4) \markup { "Sóc una plica" }
a8
\balloonGrobText #'Rest #'(-4 . -4) \markup { "Sóc un silenci" }
r
\balloonLengthOn
<c, g'-\balloonText #'(-2 . -2) \markup { "Sóc un cap" } c>2.
}
Instruccions predefinides
\balloonLengthOn,
\balloonLengthOff.
Vegeu també
Fragments de codi: Editorial annotations.
Referència de funcionament intern: Balloon_engraver, BalloonTextItem, balloon-interface.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Globus d'ajuda ] | [ Amunt : Fora del pentagrama ] | [ Claus d'anàlisi > ] | ||
Línies de reixeta
Es poden dibuixar línies verticals entre els pentagrames sincronitzades amb les notes.
S’ha d’usar el gravador Grid_point_engraver per crear els
punts extrems de les línies, mentre que el gravador
Grid_line_span_engraver es pot utilitzar per traçar
efectivament les línies. De forma predeterminada, això centra les
línies de reixeta horitzontalment a sota i al costat esquerre del
cap de les notes. Les línies de reixeta s’estenen a partir de la
línia mitjana dels pentagrames. L’interval gridInterval ha
d’especificar la duració entre les línies de reixeta.
\layout {
\context {
\Staff
\consists "Grid_point_engraver"
gridInterval = #(ly:make-moment 1/4)
}
\context {
\Score
\consists "Grid_line_span_engraver"
}
}
\score {
\new ChoirStaff <<
\new Staff \relative {
\stemUp
c''4. d8 e8 f g4
}
\new Staff \relative {
\clef bass
\stemDown
c4 g' f e
}
>>
}
Fragments de codi seleccionats
Grid lines: changing their appearance
The appearance of grid lines can be changed by overriding some of their properties.
\score {
\new ChoirStaff <<
\new Staff {
\relative c'' {
\stemUp
c'4. d8 e8 f g4
}
}
\new Staff {
\relative c {
% this moves them up one staff space from the default position
\override Score.GridLine.extra-offset = #'(0.0 . 1.0)
\stemDown
\clef bass
\once \override Score.GridLine.thickness = #5.0
c4
\once \override Score.GridLine.thickness = #1.0
g'4
\once \override Score.GridLine.thickness = #3.0
f4
\once \override Score.GridLine.thickness = #5.0
e4
}
}
>>
\layout {
\context {
\Staff
% set up grids
\consists "Grid_point_engraver"
% set the grid interval to one quarter note
gridInterval = #(ly:make-moment 1/4)
}
\context {
\Score
\consists "Grid_line_span_engraver"
% this moves them to the right half a staff space
\override NoteColumn.X-offset = #-0.5
}
}
}
Vegeu també
Fragment de codi: Editorial annotations.
Referència de funcionament interno: Grid_line_span_engraver, Grid_point_engraver, GridLine, GridPoint, grid-line-interface, grid-point-interface.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Línies de reixeta ] | [ Amunt : Fora del pentagrama ] | [ Text > ] | ||
Claus d’anàlisi
Les claus s’usen en anàlisi musical per indicar l’estructura de les peces musicals. Es permeten les claus horitzontals simples.
\layout {
\context {
\Voice
\consists "Horizontal_bracket_engraver"
}
}
\relative {
c''2\startGroup
d\stopGroup
}
Les claus d’anàlisi es poden niuar.
\layout {
\context {
\Voice
\consists "Horizontal_bracket_engraver"
}
}
\relative {
c''4\startGroup\startGroup
d4\stopGroup
e4\startGroup
d4\stopGroup\stopGroup
}
Fragments de codi seleccionats
Analysis brackets above the staff
Simple horizontal analysis brackets are added below the staff by default. The following example shows a way to place them above the staff instead.
\layout {
\context {
\Voice
\consists "Horizontal_bracket_engraver"
}
}
\relative c'' {
\once \override HorizontalBracket.direction = #UP
c2\startGroup
d2\stopGroup
}
Analysis brackets with labels
Text may be added to analysis brackets through the text property
of the HorizontalBracketText grob. Adding different texts to
brackets beginning at the same time requires the \tweak command.
Bracket text will be parenthesized after a line break.
\layout {
\context {
\Voice
\consists "Horizontal_bracket_engraver"
\override HorizontalBracket.direction = #UP
}
}
{
\once\override HorizontalBracketText.text = "a"
c''\startGroup d''\stopGroup
\once\override HorizontalBracketText.text = "a'"
e''\startGroup d''\stopGroup
c''
-\tweak HorizontalBracketText.text \markup \bold \huge "b" \startGroup
-\tweak HorizontalBracketText.text "a" \startGroup
d''\stopGroup
e''-\tweak HorizontalBracketText.text "a'" \startGroup
d''\stopGroup\stopGroup
c''-\tweak HorizontalBracketText.text foo \startGroup d'' e'' f''
\break
g'' a'' b'' c'''\stopGroup
}
Vegeu també
Referència de funcionament intern: Horizontal_bracket_engraver, HorizontalBracket, horizontal-bracket-interface, HorizontalBracketText, horizontal-bracket-text-interface, Staff.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Claus d'anàlisi ] | [ Amunt : Notació musical ] | [ Escriptura del text > ] | ||
1.8 Text
Aquesta secció explica com incloure text (amb diversos estils de format) a les partitures.
Certs elements de text dels que no ens ocupem aquí es presenten a d’altres secciones específiques: Música vocal, Títols i encapçalaments.
| 1.8.1 Escriptura del text | ||
| 1.8.2 Donar format al text | ||
| 1.8.3 Tipus de lletra |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Text ] | [ Amunt : Text ] | [ Scripts de text > ] | ||
1.8.1 Escriptura del text
Aquesta secció presenta les diferents formes d’afegir text a una partitura.
Nota: Per escriure text amb caràcters accentuats i especials (com a les llengües diferents a l’anglès), senzillament inseriu els caràcters directament al fitxer del LilyPond. El fitxer s’ha de desar com a UTF-8. Per veure més informació, consulteu Codificació del text.
| Scripts de text | ||
| Extensions de text | ||
| Indicacions de text | ||
| Text separat |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Escriptura del text ] | [ Amunt : Escriptura del text ] | [ Extensions de text > ] | ||
Scripts de text
És possible afegir indicacions de “text entre cometes” a una partitura, com es mostra a l’exemple següent. Aquestes indicacions es poden col·locar manualment per sobre o per sota del pentagrama, utilitzant la sintaxi que es descriu a Direcció i posició.
\relative { a'8^"pizz." g f e a4-"scherz." f }
Aquesta sintaxi és en realitat una abreviatura; es pot afegir
explícitament a una nota un format de text més complex utilitzant
un bloc \markup, como es descriu a
Donar format al text.
\relative {
a'8^\markup { \italic pizz. } g f e
a4_\markup { \tiny scherz. \bold molto } f }
De format predeterminada, les indicacions de text no afecten a l’espaiat de les notes. Malgrat això, la seva amplada es podria tenir en compte: a l’exemple següent, la primera cadena de text no afecta l’espaiat, però la segon sí afecta.
\relative {
a'8^"pizz." g f e
\textLengthOn
a4_"scherzando" f
}
Es poden adjuntar articulacions a les notes, a més d’inscripcions de text. Per veure més informació, consulteu Articulacions i ornaments.
Per veure més informació sobre l’ordre relatiu de les inscripcions de text i les articulacions, consulteu Col·locació dels objectes.
Instruccions predefinides
\textLengthOn,
\textLengthOff.
Vegeu també
Manual de aprenentatge: Col·locació dels objectes.
Referència de la notació: Donar format al text, Direcció i posició, Articulacions i ornaments.
Fragments de codi: Text.
Referència de funcionament intern: TextScript.
Advertiments i problemes coneguts
La comprovació necessària per assegurar que les inscripcions de text i la lletra de les cançons es mantenen dins dels marges, requereix de càlculs addicionals. En cas que desitgeu un procés lleugerament més ràpid, podeu utilitzar
\override Score.PaperColumn.keep-inside-line = ##f
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Scripts de text ] | [ Amunt : Escriptura del text ] | [ Indicacions de text > ] | ||
Extensions de text
Certes indicacions d’execució, per exemple rallentando o accelerando, s’escriuen com a text i s’estenen sobre molts compassos mitjançant línies de punts. Aquests objectes, que reben el nom de ‘spanners’ o objectes d’extensió, es poden crear des d’una nota fins una altra usant la sintaxi següent:
\relative {
\override TextSpanner.bound-details.left.text = "rit."
b'1\startTextSpan
e,\stopTextSpan
}
La cadena de text que imprimeix s’estableix a través de propietats
d’objecte. De forma predeterminada s’imprimeix en estil cursiva,
però es poden aconseguir diferents efectes de format utilitzant blocs
\markup, com es descriue a
Donar format al text.
\relative {
\override TextSpanner.bound-details.left.text =
\markup { \upright "rit." }
b'1\startTextSpan c
e,\stopTextSpan
}
L’estil de la línia, així com la cadena de text, es definir com una propietat d’objecte. Aquest sintaxi es descriu a Estils de línia.
Instruccions predefinides
\textSpannerUp,
\textSpannerDown,
\textSpannerNeutral.
Advertiments i problemes coneguts
El LilyPond sols pot utilitzar un objecte d’extensió de text per cada veu.
Fragments de codi seleccionats
Dynamics text spanner postfix
Custom text spanners can be defined and used with hairpin and text
crescendos. \< and \> produce hairpins by default,
\cresc etc. produce text spanners by default.
% Some sample text dynamic spanners, to be used as postfix operators
crpoco =
#(make-music 'CrescendoEvent
'span-direction START
'span-type 'text
'span-text "cresc. poco a poco")
\relative c' {
c4\cresc d4 e4 f4 |
g4 a4\! b4\crpoco c4 |
c4 d4 e4 f4 |
g4 a4\! b4\< c4 |
g4\dim a4 b4\decresc c4\!
}
Dynamics custom text spanner postfix
Postfix functions for custom crescendo text spanners. The spanners should start on the first note of the measure. One has to use -\mycresc, otherwise the spanner start will rather be assigned to the next note.
% Two functions for (de)crescendo spanners where you can explicitly give the
% spanner text.
mycresc =
#(define-music-function (mymarkup) (markup?)
(make-music 'CrescendoEvent
'span-direction START
'span-type 'text
'span-text mymarkup))
mydecresc =
#(define-music-function (mymarkup) (markup?)
(make-music 'DecrescendoEvent
'span-direction START
'span-type 'text
'span-text mymarkup))
\relative c' {
c4-\mycresc "custom cresc" c4 c4 c4 |
c4 c4 c4 c4 |
c4-\mydecresc "custom decresc" c4 c4 c4 |
c4 c4\! c4 c4
}
Vegeu també
Referència de la notació: Estils de línia, Matisos dinàmics, Donar format al text.
Fragments de codi: Text, Expressive marks.
Referència de funcionament interno: TextSpanner.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Extensions de text ] | [ Amunt : Escriptura del text ] | [ Text separat > ] | ||
Indicacions de text
Es poden afegir a la partitura diversos elements de text amb la sintaxi que es descriue a Marques d’assaig.
\relative {
\mark "Verse"
c'2 g'
\bar "||"
\mark "Chorus"
g2 c,
\bar "|."
}
Aquesta sintaxi possibilitat col·locar qualsevol text sobre la
línia divisòria; es poden incorporar formats complexos per al text
usant un bloc \markup, como està explicat a
Donar format al text:
\relative {
<c' e>1
\mark \markup { \italic { colla parte } }
<d f>2 <e g>
<c f aes>1
}
Aquest sintaxi també permet imprimir símbols especials com crides, segno o calderons, especificant el nom del símbol corresponent com s’explica a Notació musical dins d’elements de marcatge:
\relative {
<bes' f>2 <aes d>
\mark \markup { \musicglyph "scripts.ufermata" }
<e g>1
}
Aquests objectes es graven sols sobre el pentagrama superior de la partitura; depenent de si estan especificats al final o al mig d’un compàs, es col·locaran sobre la línia divisòria o entre les notes. Si s’especifiquen a un salt de línia, les crides s’imprimeixen al principi de la línia següent.
\relative c'' {
\mark "Allegro"
c1 c
\mark "assai" \break
c c
}
Instruccions predefinides
\markLengthOn,
\markLengthOff.
Fragments de codi seleccionats
Printing marks at the end of a line
Marks can be printed at the end of the current line, instead of the beginning of the following line. In such cases, it might be preferable to align the right end of the mark with the bar line.
\relative c'' {
g2 c
d,2 a'
\once \override Score.RehearsalMark.break-visibility = #end-of-line-visible
\once \override Score.RehearsalMark.self-alignment-X = #RIGHT
\mark "D.C. al Fine"
\break
g2 b,
c1 \bar "||"
}
Printing marks on every staff
Although text marks are normally only printed above the topmost staff, they may also be printed on every staff.
\score {
<<
\new Staff { c''1 \mark "molto" c'' }
\new Staff { c'1 \mark "molto" c' }
>>
\layout {
\context {
\Score
\remove "Mark_engraver"
\remove "Staff_collecting_engraver"
}
\context {
\Staff
\consists "Mark_engraver"
\consists "Staff_collecting_engraver"
}
}
}
Vegeu també
Referència de la notació: Marques d’assaig, Donar format al text, Notació musical dins d’elements de marcatge, El tipus de lletra Emmentaler.
Fragments de codi: Text.
Referència de funcionament intern: MarkEvent, Mark_engraver, RehearsalMark.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Indicacions de text ] | [ Amunt : Escriptura del text ] | [ Donar format al text > ] | ||
Text separat
Un bloc \markup pot existir de forma independent, fora de
qualsevol bloc \score, como una “expressió de nivell
superior”. Aquesta sintaxi es descriu a
Estructura del fitxer.
\markup {
Tomorrow, and tomorrow, and tomorrow...
}
Això fa possible imprimir text separat de la música, cosa que és especialment útil quan el fitxer d’entrada conté diverses peces, tal i com es descriu a Diverses partitures a un llibre.
\score {
c'1
}
\markup {
Tomorrow, and tomorrow, and tomorrow...
}
\score {
c'1
}
Els blocs de text independent poden abastar diverses pàgines, possibilitat la impressió de document o text o llibres íntegrament des del LilyPond. Aquesta funcionalitat i la sintaxi que requereix es descriuen a Elements de marcatge de diverses pàgines.
Instruccions predefinides
\markup,
\markuplist.
Fragments de codi seleccionats
Stand-alone two-column markup
Stand-alone text may be arranged in several columns using
\markup commands:
\markup {
\fill-line {
\hspace #1
\column {
\line { O sacrum convivium }
\line { in quo Christus sumitur, }
\line { recolitur memoria passionis ejus, }
\line { mens impletur gratia, }
\line { futurae gloriae nobis pignus datur. }
\line { Amen. }
}
\hspace #2
\column \italic {
\line { O sacred feast }
\line { in which Christ is received, }
\line { the memory of His Passion is renewed, }
\line { the mind is filled with grace, }
\line { and a pledge of future glory is given to us. }
\line { Amen. }
}
\hspace #1
}
}
Vegeu també
Referència de la notació: Donar format al text, Estructura del fitxer, Diverses partitures a un llibre, Elements de marcatge de diverses pàgines.
Fragments de codi: Text.
Referència de funcionament intern: TextScript.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Text separat ] | [ Amunt : Text ] | [ Introducció al marcatge de text > ] | ||
1.8.2 Donar format al text
Aquesta secció presenta els formats bàsics i avançats de text,
usant la sintaxi específica del modo de \markup.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Donar format al text ] | [ Amunt : Donar format al text ] | [ Selecció del tipus de lletra i la seva mida > ] | ||
Introducció al marcatge de text
S’usa un bloc \markup per gravar text amb una sintaxi
ampliable que es denomina “modo de marcatge”.
La sintaxi del marcatge és semblant a la sintaxi usual del
LilyPond: una expressió \markup s’envolta entre claus
{ … }. Una sola paraula es considera com una
expressió mínima, i per tant no li cal estar envoltada entre
claus.
A diferència de les indicacions de “text entre cometes”
simples, els blocs \markup poden contenir expressions
niuades o ordres de marcatge, que s’introdueixen utilitzant el
caràcter de barra invertida \ . Aquestes ordres sols
afecten a l’expressió que segueix immediatament.
\relative {
a'1-\markup intenso
a2^\markup { poco \italic più forte }
c e1
d2_\markup { \italic "string. assai" }
e
b1^\markup { \bold { molto \italic agitato } }
c
}
Un bloc \markup pot contenir també cadenes de text entre
cometes. Aquestes cadenes es tracten com a expressions de text
mínimes, i per tant qualsevol ordre de marcatge o caràcter
especial (com \ i #) s’imprimeixen literalment
sense afectar el fomat del text. Es poden fer que s’imprimeixin
les pròpies cometes si se les anteposa una barra invertida.
\relative {
a'1^"\italic markup..."
a_\markup { \italic "... imprimeix lletres \"cursives\" !" }
a a
}
Perquè es tractin com a una expressió diferent, cal que les
llistes de paraules estiguin envoltades entre cometes o precedides
d’una ordre. La forma en la qual estan definides les expressions
de marcatge afecta com es sobreposen, se centren i s’alineen
aquestes expressions; a l’exemple següent, la segona expressió
\markup es tracta igual que la primera:
\relative c'' {
c1^\markup { \center-column { a bbb c } }
c1^\markup { \center-column { a { bbb c } } }
c1^\markup { \center-column { a \line { bbb c } } }
c1^\markup { \center-column { a "bbb c" } }
}
Els marcatges es poden emmagatzemar dins de variables. Aquests variables es poden adjuntar directament a les notes:
allegro = \markup { \bold \large Allegro }
{
d''8.^\allegro
d'16 d'4 r2
}
Es pot trobar una llista exhaustiva de les ordres específiques
\markup a
Ordres de marcatge de text.
Vegeu també
Referència de la notació: Ordres de marcatge de text.
Fragments de codi: Text.
Fitxers d’inici: ‘scm/markup.scm’.
Advertiments i problemes coneguts
Els missatges d’error de sintaxi per al mode de marcatge sovint produeixen confusió.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Introducció al marcatge de text ] | [ Amunt : Donar format al text ] | [ Alineació de text > ] | ||
Selecció del tipus de lletra i la seva mida
Es pot canviar de forma bàsica el tipus de lletra al mode de marcatge:
\relative {
d''1^\markup {
\bold { Più mosso }
\italic { non troppo \underline Vivo }
}
r2 r4 r8
d,_\markup { \italic quasi \smallCaps Tromba }
f1 d2 r
}
La mida del tipus de lletra es pot alterar en relació a la mida global del pentagrama de diverses maneres, com es veu a continuació.
Es pot fixar a una mida predefinida:
\relative b' {
b1_\markup { \huge Sinfonia }
b1^\markup { \teeny da }
b1-\markup { \normalsize camera }
}
Es pot establir a un amida relativa a la mida anterior:
\relative b' {
b1_\markup { \larger Sinfonia }
b1^\markup { \smaller da }
b1-\markup { \magnify #0.6 camera }
}
Es pot augmentar o disminuir de forma relativa al valor fixat per la mida global del pentagrama:
\relative b' {
b1_\markup { \fontsize #-2 Sinfonia }
b1^\markup { \fontsize #1 da }
b1-\markup { \fontsize #3 camera }
}
També es pot establir a una mida de punts fix, independentment de la mida global del pentagrama:
\relative b' {
b1_\markup { \abs-fontsize #20 Sinfonia }
b1^\markup { \abs-fontsize #8 da }
b1-\markup { \abs-fontsize #14 camera }
}
Si el text inclou espais, és millor escriure tot entre cometes, de forma que la mida de cada espai sigui correcte per a la mida dels altres caràcters.
\markup \fontsize #6 \bold { Sinfonia da camera }
\markup \fontsize #6 \bold { "Sinfonia da camera" }
El text es pot imprimir com subíndex o com superíndex. De forma predeterminada s’imprimeix en una mida menor, però també es pot usar una mida normal:
\markup {
\column {
\line { 1 \super st movement }
\line { 1 \normal-size-super st movement
\sub { (part two) } }
}
}
El mode de marcatge ofereix una manera fàcil d’escollir famílies de tipus de lletra alternatives. A no ser que s’especifiqui d’un altre mode, se selecciona automàticament el tipus de lletra predeterminada amb serifa, de tipus romà: en l’última línia de l’exemple següent, no hi ha diferència entre la primera i la segona paraula.
\markup {
\column {
\line { Act \number 1 }
\line { \sans { Scene I. } }
\line { \typewriter { Verona. An open place. } }
\line { Enter \roman Valentine and Proteus. }
}
}
Algunes d’aquestes famílies, usades per elements específics com números o matisos, no ofereixen tots els caràcters, com s’explica a Indicacions dinàmiques contemporànies i Marques de repetició manual.
Si s’usen dins d’una paraula, algunes instruccions de canvi de tipus de lletra o de format poden produir un espai buit no desitjat. Això es pot solucionar concatenant a un de sol els diferents elements de text:
\markup {
\column {
\line {
\concat { 1 \super st }
movement
}
\line {
\concat { \dynamic p , }
\italic { con dolce espressione }
}
}
}
Es pot trobar una llista exhaustiva d’ordres de canvi i utilització personalitzada dels tipus de lletres a Tipus de lletra.
També es possible definir conjunts personalitzats de tipus de lletra, tal i com s’explica a Explicació dels tipus de lletra.
Instruccions predefinides
\teeny,
\tiny,
\small,
\normalsize,
\large,
\huge,
\smaller,
\larger.
Vegeu també
Referència de la notació: Tipus de lletra, Indicacions dinàmiques contemporànies, Marques de repetició manual, Tipus de lletra.
Fitxers d’inici: ‘scm/define-markup-commands.scm’.
Fragments de codi: Text.
Referència de funcionament intern: TextScript.
Advertiments i problemes coneguts
La utilització de les ordres de mida de text
\teeny, \tiny, \small, \normalsize,
\large i \huge condueixen a un espaiat de les línies
inconsistent comparat amb l’ús de \fontsize.
Alineació de text
Aquesta subsecció tracta sobre com col·locar text al mode de marcatge. Els objecte de marcatge també es poden moure com un tot, usant la sintaxi que es descriu a Moviment d'objectes.
Els objectes de marcatge es poden alinear de diferents maneres. De forma predeterminada, una indicació de text s’alinea sobre la vora esquerra: a l’exemple següent, no hi ha diferència entre els marcatges primer i segon.
\relative {
d''1-\markup { poco }
f
d-\markup { \left-align poco }
f
d-\markup { \center-align { poco } }
f
d-\markup { \right-align poco }
}
Es pot realitzar un ajust fi de l’alineació horitzontal usant un valor numèric:
\relative {
a'1-\markup { \halign #-1 poco }
e'
a,-\markup { \halign #0 poco }
e'
a,-\markup { \halign #0.5 poco }
e'
a,-\markup { \halign #2 poco }
}
Certs objectes poden posseir els seus propis procediments d’alineació, i per tant no resulten afectats per aquestes ordres. És possible moure aquests objectes de marcatge com un tot, com es mostra per exemple a Indicacions de text.
L’alineació vertical és una mica més complexa. Com s’ha dit més a dalt, els objectes de marcatge es poden moure com un tot; tanmateix, també és possible moure element específics dins d’un bloc de marcatge. En aquest cas, l’element a moure s’ha de precedir d’un punt d’ancoratge, que pot ser un altre element de marcatge o un objecte invisible. L’exemple següent exemplifica aquestes dues possibilitats; l’últim marcatge en aquest exemple no té punt d’ancoratge i per això no resulta mogut.
\relative {
d'2^\markup {
Acte I
\raise #2 { Scène 1 }
}
a'
g_\markup {
\null
\lower #4 \bold { Très modéré }
}
a
d,^\markup {
\raise #4 \italic { Une forêt. }
}
a'4 a g2 a
}
Algunes ordres poden afectar tant a l’alineació horitzontal com a la vertical dels objectes de text en el mode de marcatge. Qualsevol objecte afectat per aquestes instruccions s’han de precedir d’un punt d’ancoratge:
\relative {
d'2^\markup {
Acte I
\translate #'(-1 . 2) "Scène 1"
}
a'
g_\markup {
\null
\general-align #Y #3.2 \bold "Très modéré"
}
a
d,^\markup {
\null
\translate-scaled #'(-1 . 2) \teeny "Une forêt."
}
a'4 a g2 a
}
Un objecte de marcatge pot incloure diverses línies de text. A l’exemple següent, cada element o expressió se situa a la seva pròpia línia, ja sigui alineada per l’esquerra o centrada:
\markup {
\column {
a
"b c"
\line { d e f }
}
\hspace #10
\center-column {
a
"b c"
\line { d e f }
}
}
De forma semblant, una llesta d’elements o expressions es pot repartir de forma que ompli per complet l’amplada de la línia horitzontal (si hi ha un sol element, se centra al paper). Al seu cop, aquestes expressions poden incloure text de diverses línies o qualsevol altre expressió de marcatge:
\markup {
\fill-line {
\line { William S. Gilbert }
\center-column {
\huge \smallCaps "The Mikado"
or
\smallCaps "The Town of Titipu"
}
\line { Sir Arthur Sullivan }
}
}
\markup {
\fill-line { 1885 }
}
Les indicacions de text llargues es poden també ajustar automàticament segons una amplada de línia donada. Estaran alineades per l’esquerra o justificades, com es mostra a l’exemple següent:
\markup {
\column {
\line \smallCaps { La vida breve }
\line \bold { Acto I }
\wordwrap \italic {
(La escena representa el corral de una casa de
gitanos en el Albaicín de Granada. Al fondo una
puerta por la que se ve el negro interior de
una Fragua, iluminado por los rojos resplandores
del fuego.)
}
\hspace #0
\line \bold { Acto II }
\override #'(line-width . 50)
\justify \italic {
(Calle de Granada. Fachada de la casa de Carmela
y su hermano Manuel con grandes ventanas abiertas
a través de las que se ve el patio
donde se celebra una alegre fiesta)
}
}
}
Hi ha una llista exhaustiva d’ordres d’alineació de text a Align.
Vegeu també
Manual d’aprenentage: Moviment d'objectes.
Referència de la notació: Align, Indicacions de text.
Fitxers d’inici: ‘scm/define-markup-commands.scm’.
Fragments de codi: Text.
Referència de funcionament intern: TextScript.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Alineació de text ] | [ Amunt : Donar format al text ] | [ Notació musical dins d'elements de marcatge > ] | ||
Notació gràfica dins d’elements de marcatge
Es poden afegir diversos objectes gràfics a una partitura, utilitzant ordres de marcatge.
Certes ordres de marcatge permeten la decoració d’elements de text amb gràfics, com es mostra a l’exemple següent.
\markup \fill-line {
\center-column {
\circle Jack
\box "in the box"
\null
\line {
Erik Satie
\hspace #3
\bracket "1866 - 1925"
}
\null
\rounded-box \bold Prelude
}
}
Algunes poden requerir un augment del farciment al voltant del text: això es pot aconseguir amb algunes instruccions de marcatge descrites exhaustivament a Align.
\markup \fill-line {
\center-column {
\box "Charles Ives (1874 - 1954)"
\null
\box \pad-markup #2 "THE UNANSWERED QUESTION"
\box \pad-x #8 "A Cosmic Landscape"
\null
}
}
\markup \column {
\line {
\hspace #10
\box \pad-to-box #'(-5 . 20) #'(0 . 5)
\bold "Largo to Presto"
}
\pad-around #3
"String quartet keeps very even time,
Flute quartet keeps very uneven time."
}
Es poden imprimir altres símbols o elements gràfics sense que es requereixi cap altre text. De igual manera que al cas de les expressions de marcatge, aquests objectes es poden combinar:
\markup {
\combine
\draw-circle #4 #0.4 ##f
\filled-box #'(-4 . 4) #'(-0.5 . 0.5) #1
\hspace #5
\center-column {
\triangle ##t
\combine
\draw-line #'(0 . 4)
\arrow-head #Y #DOWN ##f
}
}
Entre les funcionalitats gràfiques avançades es troben la possibilitat d’incloure fitxers d’imatge externs convertits als format PosScript Encapsulat (eps), i la inclusió directa de gràfics dins del fitxer d’entrada, usant codi PostScript nadiu. En tal cas pot ser d’utilitat l’especificació explícita de la mida del dibuix, com s’exemplifica a continuació:
c'1^\markup {
\combine
\epsfile #X #10 #"./context-example.eps"
\with-dimensions #'(0 . 6) #'(0 . 10)
\postscript "
-2 3 translate
2.7 2 scale
newpath
2 -1 moveto
4 -2 4 1 1 arct
4 2 3 3 1 arct
0 4 0 3 1 arct
0 0 1 -1 1 arct
closepath
stroke"
}
c'
Hi una llista exhaustiva d’ordres específiques de gràfics a Graphic.
Vegeu també
Referència de la notació: Align, Dimensions, Anotacions editorials, Graphic.
Fitxers d’inici: ‘scm/define-markup-commands.scm’, ‘scm/stencil.scm’.
Fragments de codi: Text.
Referència de funcionament intern: TextScript.
Notació musical dins d’elements de marcatge
Es poden afegir a la partitura diversos elements de notació musical, dins d’una objecte de marcatge.
Les notes i les alteracions es poden escriure utilitzant ordres de marcatge:
a'2 a'^\markup {
\note #"4" #1
=
\note-by-number #1 #1 #1.5
}
b'1_\markup {
\natural \semiflat \flat
\sesquiflat \doubleflat
}
\glissando
a'1_\markup {
\natural \semisharp \sharp
\sesquisharp \doublesharp
}
\glissando b'
Altres objectes de notació es poden també imprimir al mode de marcatge:
\relative {
g1 bes
ees\finger \markup \tied-lyric "4~1"
fis_\markup { \dynamic rf }
bes^\markup {
\beam #8 #0.1 #0.5
}
cis
d-\markup {
\markalphabet #8
\markletter #8
}
}
De forma més general, qualsevol símbol musical disponible es pot incloure per separat dins d’un objecte de marcatge, com s’exemplifica a continuació; hi ha una llista exhaustiva d’aquests símbols i els seus noms a El tipus de lletra Emmentaler.
\relative {
c''2
c'^\markup { \musicglyph "eight" }
c,4
c,8._\markup { \musicglyph "clefs.G_change" }
c16
c2^\markup { \musicglyph "timesig.neomensural94" }
}
Una altra forma d’imprimir glifs que no són de text es troba descrita a Explicació dels tipus de lletra. Serveix per imprimir claus de diferents mides.
El mode de marcatge també contempla diagrames per a instruments específics:
\relative {
c''1^\markup {
\fret-diagram-terse "x;x;o;2;3;2;"
}
c^\markup {
\harp-pedal "^-v|--ov^"
}
c
c^\markup {
\combine
\musicglyph "accordion.discant"
\combine
\raise #0.5 \musicglyph "accordion.dot"
\raise #1.5 \musicglyph "accordion.dot"
}
}
Aquests diagrames es troben documentats a Instrument Specific Markup.
Es pot incloure fins i tot una partitura completa dins d’un
objecte de marcatge. En tal cas, el bloc niuat \score ha
de contenir un bloc \layout, com es mostra aquí:
\relative {
c'4 d^\markup {
\score {
\relative { c'4 d e f }
\layout { }
}
}
e f |
c d e f
}
Hi ha una llista exhaustiva d’ordres relacionades amb la notació musical a Music.
Vegeu també
Referència de la notació: Music, El tipus de lletra Emmentaler, Explicació dels tipus de lletra.
Fitxers d’inici: ‘scm/define-markup-commands.scm’, ‘scm/fret-diagrams.scm’, ‘scm/harp-pedals.scm’.
Fragments de codi: Text.
Referència de funcionament intern: TextScript.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Notació musical dins d'elements de marcatge ] | [ Amunt : Donar format al text ] | [ Tipus de lletra > ] | ||
Elements de marcatge de diverses pàgines
Tot i que els objectes de marcatge estàndard no es poden dividir, una sintaxi específica fa possible la introducció de línies de text que poden abastar diverses pàgines:
\markuplist {
\justified-lines {
Un text molt llarg de línies justificades.
...
}
\wordwrap-lines {
Un altre paràgraf molt llarg.
...
}
...
}
Aquesta sintaxi accepta una llista d’elements de marcatge, que poden ser
- el resultat d’una ordre de llista de marcatge,
- una llista de marcatges,
- o una llista de llistes de marcatge.
Hi una llista exhaustiva de les ordres de llista de marcage a Ordres de llistes de marcatge de text.
Vegeu també
Referència de la notació: Ordres de llistes de marcatge de text.
Fitxers d’inici: ‘scm/define-markup-commands.scm’.
Manual de extensió: Definició de noves ordres de llista de marcatge.
Fragments de codi: Text.
Referència de funcionament intern: TextScript.
Instruccions predefinides
\markuplist.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Elements de marcatge de diverses pàgines ] | [ Amunt : Text ] | [ Explicació dels tipus de lletra > ] | ||
1.8.3 Tipus de lletra
Aquesta secció presenta la forma en la qual es gestionen els tipus de lletra, i com es poden canviar a les partitures.
| Explicació dels tipus de lletra | ||
| Tipus de lletra d’un sol element | ||
| Tipus de lletra del document complet |
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Tipus de lletra ] | [ Amunt : Tipus de lletra ] | [ Tipus de lletra d'un sol element > ] | ||
Explicació dels tipus de lletra
Els tipus de lletra es gestionen mitjançant diverses biblioteques. FontConfig s’utilitza per detectar els tipus de lletra disponibles al sistema; els tipus de lletra seleccionats es dibuixen fent servir Pango.
Els tipus de lletra de notació musical es poden descriure com un
conjunt de glifs específics, ordenats en diverses famílies. La
sintaxi següent permet usar directament diversos glifs del tipus
de lletra Feta del LilyPond diferents a les de text en el
mode de marcatge:
a'1^\markup {
\vcenter {
\override #'(font-encoding . fetaBraces)
\lookup "brace120"
\override #'(font-encoding . fetaText)
\column { 1 3 sf }
\override #'(font-encoding . fetaMusic)
\lookup "noteheads.s0petrucci"
}
}
Tanmateix, tots aquests glifs excepte les claus de diverses mides
que estan contingudes al tipus de lletra fetaBraces estan
disponibles utilitzant la sintaxi més senzilla que es descriu a
Notació musical dins d’elements de marcatge.
Quan s’usen els glifs del tipus de lletra de claus
fetaBraces, la mida de la clau s’especifica per la part
numèrica del nom del glif, en unitats arbitràries. Es pot
especificar qualsevol enter de 0 a 575 inclusiu,
sent 0 el que produeix la clau més petita. El valor òptim
s’ha de determinar per prova i error. Tots aquests glifs són
claus esquerra; les claus dreta es poden obtenir mitjançant
rotació, vegeu
Rotació d’objectes.
Estan disponibles tres famílies de tipus de lletra per al text:
- El tipus de lletra roman (serif), que de forma predeterminada és LilyPond Serif (un àlies de TeX Gyre Schola).
- El tipus de lletra sans, que de formam predeterminada és LilyPond Sans Serif (un àlies de TeX Gyre Heros).
- El tipus de lletra typewriter mecanogràfica (monoespaiada), que de forma predeterminada és LilyPond Monospace (un àlies de TeX Gyre Cursor).
Cada família pot incloure diferents formes i sèries. El següent
exemple mostra la possibilitat de seleccionar famílies, formes,
sèries i mides alternatius. El valor que es dóna a
font-size és el canvi requerit a partir de la mida
predeterminada.
\override Score.RehearsalMark.font-family = #'typewriter \mark \markup "Ouverture" \override Voice.TextScript.font-shape = #'italic \override Voice.TextScript.font-series = #'bold d''2.^\markup "Allegro" \override Voice.TextScript.font-size = #-3 c''4^smaller
Es pot usar una sintaxi semblant el mode de marcatge, tot i que en aquest cas és preferible usar la sintaxi senzilla que s’explica a Selecció del tipus de lletra i la seva mida.
\markup {
\column {
\line {
\override #'(font-shape . italic)
\override #'(font-size . 4)
Idomeneo,
}
\line {
\override #'(font-family . typewriter)
{
\override #'(font-series . bold)
re
di
}
\override #'(font-family . sans)
Creta
}
}
}
Tot i que és fàcil canviar entre els tipus de lletra preconfigurats, també és possible usar altres tipus de lletra, com s’explica a les seccions següents: Tipus de lletra d’un sol element i Tipus de lletra del document complet.
Vegeu també
Referència de la notació: El tipus de lletra Emmentaler, Notació musical dins d’elements de marcatge, Rotació d’objectes, Selecció del tipus de lletra i la seva mida, Font.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Explicació dels tipus de lletra ] | [ Amunt : Tipus de lletra ] | [ Tipus de lletra del document complet > ] | ||
Tipus de lletra d’un sol element
Es pot usar a una partitura qualsevol tipus de lletra que estigui instal·lada al sistema operatiu i reconeguda per part de FontConfig, usant la sintaxi següent:
\override Staff.TimeSignature.font-name = #"Bitstream Charter"
\override Staff.TimeSignature.font-size = #2
\time 3/4
a'1_\markup {
\override #'(font-name . "Bitstream Vera Sans,sans-serif, Oblique Bold")
{ Vera Oblique Bold }
}
Es pot descriure font-name usant una llista de ‘tipus de lletra’ separats per comes i una llista de ‘estils’ separats per espais. Sempre que el ‘tipus de lletra’ de la llista estigui instal·lat i contingui el glif sol·licitat, s’usarà. En cas contrari, s’usarà com a substitució el tipus de lletra següent de la llista.
L’execució del LilyPond amb l’opció següent presenta una llista de tots els tipus de lletra disponibles al sistema operatiu:
lilypond -dshow-available-fonts x
Vegeu també
Referència de la notació: Explicació dels tipus de lletra, Tipus de lletra del document complet.
Fragments de codi: Text.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Notació especialitzada >> ] | ||
| [ < Tipus de lletra d'un sol element ] | [ Amunt : Tipus de lletra ] | [ Notació especialitzada > ] | ||
Tipus de lletra del document complet
Es poden canviar els tipus de lletra que s’usen com tipus de lletra predeterminats a les famílies romana, sans-serif i monoespaiada, especificant-los en aquest ordre com es veu a l’exemple de sota, que escala els tipus de lletra automàticament amb el valor fixat per a la mida global del pentagrama. De forma semblant a Tipus de lletra d’un sol element, Es pot descriure usant una llista de ‘Tipus de lletra’ separats per comes. Tanmateix, els ‘estils’ de tipus de lletra no es poden descriure. Per llegir més explicacions sobre els tipus de lletra, consulteu Explicació dels tipus de lletra.
\paper {
#(define fonts
(make-pango-font-tree "Times New Roman"
"Nimbus Sans,Nimbus Sans L"
"Luxi Mono"
(/ staff-height pt 20)))
}
\relative c'{
c1-\markup {
roman,
\sans sans,
\typewriter typewriter. }
}
Vegeu també
Referència de la notació: Explicació dels tipus de lletra, Tipus de lletra d’un sol element, Selecció del tipus de lletra i la seva mida, Font.
| [ << Notació musical ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Tipus de lletra del document complet ] | [ Amunt : Top ] | [ Música vocal > ] | ||
2. Notació especialitzada
Aquest capítol explica com crear notació musical per a instruments d’un tipus específic o dins d’estils específics.
2.1 Música vocal
Aquesta secció explica com gravar música vocal, i com assegurar-se que la lletra s’alinea amb les notes de la seva melodia corresponent.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Música vocal ] | [ Amunt : Música vocal ] | [ Referències per a música vocal > ] | ||
2.1.1 Notació comuna per a música vocal
Aquesta secció s’ocupa de les qüestions comunes a la major part dels tipus de música vocal.
Referències per a música vocal
Aquesta secció indica on trobar els detalls de les qüestions de notació que poden sorgir a qualsevol tipus de música vocal.
- Gairebé tots els estils de música vocal utilitzen text escrit com a lletra. Hi ha una introducció a aquesta notació a Elaborar cançons senzilles.
-
La música vocal probablement requereix l’ús del mode de marcatge o
markup, ja sigui per a la lletra o per a d’altres elements de text (noms dels personatges, etc.). Aquesta sintaxi es descriu a Introducció al marcatge de text. - Els ambitus, o indicacions de tessitura vocal, es poden afegir al principi dels pentagrames vocals, com s’explica a Tessitura.
- De forma predeterminada, les indicacions dinàmiques se situen a sota del pentagrama, però a la música coral se solen disposar per sobre del pentagrama per evitar la lletra, com s’explica a Disposicions de la partitura per a música coral.
Vegeu també
Glossari musical: ambitus.
Manual d’aprenentatge: Elaborar cançons senzilles.
Referència de la notació: Introducció al marcatge de text, Tessitura, Disposicions de la partitura per a música coral.
Fragments de codi: Vocal music.
Introducció de la lletra
La lletra de les cançons s’introdueix en un mode d’entrada
especial que s’inicia mitjançant la paraula clau
\lyricmode, o bé mitjançant \addlyrics
\lyricsto. En aquest mode especial d’entrada, el caràcter
d no s’analitza com una nota, sinó més bé com una síl·laba
d’una sola lletra. Dit d’una altra forma, les síl·labes
s’introdueixen com les notes, però l’altura de les notes se
substitueix per text.
Per exemple:
\lyricmode { Three4 blind mice,2 three4 blind mice2 }
Hi ha dos mètodes principals per especificar la col·locació
horitzontal de les síl·labes: mitjançant la indicació de la
duració de cada síl·laba explícitament, com a l’exemple anterior,
o deixant que la lletra s’alinee automàticament amb una melodia o
una altra veu de música, utilitzant \addlyrics o
\lyricsto. El primer mètode es descriu a continuació sota
l’epígraf Duració manual de les síl·labes. El segon mètode
es descriu a Duració automàtica de les síl·labes.
Una paraula o síl·laba de la lletra comença amb un caràcter alfabètic (i alguns altres caràcters, vegeu a sota) i acaba amb un espai o dígit. La resta dels caràcters dins de la síl·laba poden ser qualssevol caràcters que no siguin dígit o espais.
A causa que qualsevol caràcter que no és un dígit o un espai es
considera part de la síl·laba, una paraula és vàlida fins i tot si
acaba amb }, cosa que sovint porta a l’error següent:
\lyricmode { la la la}
A aquest exemple, el símbol } està inclòs dins de la
síl·laba final, per tant la clau d’obertura no es compensa amb la
corresponent clau de tancament i el fitxer d’entrada probablement
no es podrà processar. En comptes d’allò, les claus sempre han
d’anar rodejades per espais:
\lyricmode { la la la }
Els signes de puntuació, les lletres amb caràcters accentuats o de qualsevol llengua diferent de l’anglès, o els caràcters especials (com el símbol de cor o les cometes inclinades), es poden inserir directament al fitxer d’entrada, sempre que es desi amb la codificació UTF-8. Per a més informació, consulteu Caràcters especials.
Els signes de puntuació, les lletres amb caràcters accentuats o de qualsevol llengua diferent de l’anglès, o els caràcters especials (com el símbol de cor, o les cometes inclinades), es poden inserir directament al fitxer d’entrada, sempre que es gravi amb la codificació UTF-8. Per a més informació, consulteu Caràcters especials.
\relative { d''8 c16 a bes8 f ees' d c4 }
\addlyrics { „Schad’ um das schö -- ne grü -- ne Band, }
Es poden usar les cometes normals dins de la lletra, però han d’anar precedides pel caràcter de barra invertida i la síl·laba en el seu conjunt s’ha d’envoltar en un altre parell de cometes. Per exemple,
\relative { \time 3/4 e'4 e4. e8 d4 e d c2. }
\addlyrics { "\"I" am so lone -- "ly,\"" said she }
La definició completa del començament d’una paraula al mode lyrics
(lletra) és quelcom més complexa. Una paraula al mode lyrics
comença per: un caràcter alfabètic, _, ?,
!, :, ', els caràcters de control des de
^A fins a ^F, des de ^Q fins a ^W,
^Y, ^^, qualsevol caràcter de 8 bits amb codi
consistent amb la combinació d’una barra invertida seguida per
`, ', " o ^.
L’ús d’elements de marcatge \markup dins de la pròpia
lletra dóna un enorme control sobre l’aparença de la lletra. Per
veure una explicació de moltes de les opcions, vegeu
Donar format al text.
Fragments de codi seleccionats
Formatting lyrics syllables
Markup mode may be used to format individual syllables in lyrics.
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
>>
Vegeu també
Manual d’aprenentatge; Cançons.
Referència de la notació: Duració automàtica de les síl·labes, Tipus de lletra, Donar format al text, Modes d’entrada, Duració manual de les síl·labes, Caràcters especials.
Referència de funcionament intern: LyricText.
Fragments de codi: Text.
Alineació de la lletra a una melodia
La lletra s’interpreta al mode \lyricmode y s’imprimeix
dins del context anomenat Lyrics,
\new Lyrics \lyricmode { … }
Dues variants de \lyricmode a més disposen d’un context
associat que s’usa per sincronitzar les síl·labes de la lletra amb
la música. \addlyrics, que és més convenient, segueix
immediatament al contingut musical del context de Voice amb el que
s’ha de sincronitzar, creant implícitament un context Lyrics
complet, \lyricsto és més versàtil i requereix tant que
s’especifiqui el context Voice associat pel seu nom, com que es
creï explícitament un context contenidor Lyrics. Per veure més
detalls, consulteu Duració automàtica de les síl·labes.
La lletra es pot alinear amb la melodia de dues maneres principals:
-
Es pot alinear la lletra automàticament, agafant-se les duracions
de les síl·labes d’una altra veu de musica, o (en circumstàncies
especials) una melodia associada, usant
\addlyrics,\lyricsto, o establint el valor de la propietatassociatedVoice. Per veure més detalls, consulteu Duració automàtica de les síl·labes.<< \new Staff << \time 2/4 \new Voice = "una" \relative { \voiceOne c''4 b8. a16 g4. r8 a4 ( b ) c2 } \new Voice = "dos" \relative { \voiceTwo s2 s4. f'8 e4 d c2 } >> % agafa les duracions i l'alineació de les notes a «una» \new Lyrics \lyricsto "una" { Life is __ _ love, live __ life. } % agafa les duracions i l'alineació de les notes a «una» inicialment % després canvia a «dos» \new Lyrics \lyricsto "una" { No more let \set associatedVoice = "dos" % s'ha d'establir una síl·laba més aviat sins and sor -- rows grow. } >>La primera línia de lletra mostra la forma normal d’introduir la lletra.
La segona línia de text mostra com es pot canviar la veu del la que s’agafen les duracions per a les síl·labes. Això és útil si el text de les diferents estrofes correspon amb les mateixes notes de formes diferents, i totes les duracions estan disponibles dins de contextos de veu. Per veure més detalls, consulteu Versos.
-
El text es pot alinear independentment de la duració de qualsevol
nota si les duracions de les síl·labes s’especifiquen
explícitament, i s’escriuen amb
\lyricmode.<< \new Voice = "one" \relative { \time 2/4 c''4 b8. a16 g4. f8 e4 d c2 } % usa la duració explícita prèvia de 2: \new Lyrics \lyricmode { Joy to the earth! } % duració explícita, establerta a un ritme diferent \new Lyrics \lyricmode { Life4 is love,2. live4 life.2 } >>El primer vers no està alineat amb les notes perquè no es van especificar les duracions, i s’utilitza el valor previ de 2 (blanca) per a totes les síl·labes.
El segon vers mostra com les paraules es poden alinear de forma independent de les notes. Això és útil si el text dels diversos versos es correspon amb les notes de maneres diferents, però les duracions requerides no estan disponibles a un context de música. Per veure més detalls, consulteu Duració manual de les síl·labes. Aquesta tècnica també és útil quan es vol preparar un diàleg a sobre de la música; per veure exemple que mostren això, consulteu Diàlegs a sobre de la música.
Vegeu també
Manual de aprenentatge: Alineació de la lletra a una melodia.
Referència de la notació: Explicació sobre els contextos, Duració automàtica de les síl·labes. Versos, Duració manual de les síl·labes, Diàlegs a sobre de la música. Duració manual de les síl·labes.
Referència de funcionament interno: Lyrics.
Duració automàtica de les síl·labes
Les síl·labes de la lletra es poden alinear automàticament amb les notes d’una melodia de tres formes:
-
especificant pel seu nom el context Voice que conté la melodia,
amb
\lyrics, -
introduint la lletra amb
\addlyricsi col·locant-la immediatament després del context de veu que conté la melodia. -
establint un valor per a la propietat
associatedVoice, l’alineació de la lletra es por moure a un context de veu diferent, especificat pel seu nom, en qualsevol moment musical.
Als tres mètodes es poden traçar guions de separació entre les síl·labes d’una paraula i línies extensores després del final d’una paraula. Per veure més detalls, vegeu Línies d’extensió i guions.
El context Voice que conté la melodia amb la qual s’està
alineant la lletra, no ha d’haver “mort”, o es perdrà la lletra
a partir d’aquest punt. Això pot passar si hi ha períodes en els
quals aquesta veu no té res a fer. Per veure mètodes per mantenir
vius els contextos, consulteu
Mantenir vius els contextos.
Ús de \lyricsto
Les síl·labes de la lletra es poden alinear automàticament sota
les notes d’una melodia especificant pel seu nom el context de veu
que conté la melodia, amb \lyricsto:
<<
\new Voice = "melodia" \relative {
a'1 a4. a8 a2
}
\new Lyrics \lyricsto "melodia" {
These are the words
}
>>
Això alinea les síl·labes amb les notes del context Voice
anomenat, que ha d’existir prèviament. Per tant, normalment
s’especifica primer el context Voice seguit del context
Lyrics. La lletra en sí segueix a l’ordre
\lyricsto. L’ordre \lyricsto invoca automàticament
el mode de lletra. De forma predeterminada, la lletra es col·loca
per sota de les notes. Per a d’altres col·locacions, consulteu
Posicionament vertical de la lletra.
Ús de \addlyrics
L’ordre \addlyrics és realment tans sols una forma còmoda
d’escriure una estructura del LilyPond més complicada si cal per
la lletra.
{ MÚSICA }
\addlyrics { LLETRA }
és el mateix que
\new Voice = "blabla" { MÚSICA }
\new Lyrics \lyricsto "blabla" { LLETRA }
Heus ací un exemple:
{
\time 3/4
\relative { c'2 e4 g2. }
\addlyrics { play the game }
}
Es poden afegir més versos posant més seccions
\addlyrics:
{
\time 3/4
\relative { c'2 e4 g2. }
\addlyrics { play the game }
\addlyrics { speel het spel }
\addlyrics { joue le jeu }
}
L’ordre \addlyrics no pot manegar situacions de polifonia.
A més a més, no pot usar-se per associar lletra a un context de
tabulatura TabVoice. Per a aquests casos s’hauria d’usar
\lyricsto.
Ús de associatedVoice
Es pot canviar la melodia a la qual s’alinea la lletra mitjançant
l’establiment de la propietat associatedVoice,
\set associatedVoice = #"lala"
El valor de la propietat (aquí: "lala") ha de ser el nom
d’un context Voice. Per raons tècniques, l’ordre
\set s’ha d’escriure una síl·laba abans de la qual es vol
aplicar el canvi de veu.
Heus ací un exemple que mostra el seu ús:
<<
\new Staff <<
\time 2/4
\new Voice = "una" \relative {
\voiceOne
c''4 b8. a16 g4. r8 a4 ( b ) c2
}
\new Voice = "dos" \relative {
\voiceTwo
s2 s4. f'8 e8 d4. c2
}
>>
% agafa les duracions i l'alineació de les notes de «una» inicialment
% després canvia a «dos»
\new Lyrics \lyricsto "una" {
No more let
\set associatedVoice = "dos" % s'ha d'establir una síl·laba prèviament
sins and sor -- rows grow.
}
>>
Vegeu també
Referència de la notació: Línies d’extensió i guions, Mantenir vius els contextos, Posicionament vertical de la lletra.
Duració manual de les síl·labes
A certes músiques vocals complexes pot ser desitjable col·locar la
lletra de forma completament independent de les notes. En aquest
cas, no heu d’usar \lyricsto ni \addlyrics i no heu
d’establir un valor per a associatedVoice. Les síl·labes
s’escriuen com a notes – però substituint els noms de les notes
per text – i la duració de cada síl·laba s’escriu explícitament
després de la síl·laba.
Es poden traçar línies separadores entre les síl·labes, com és usual, però no es poden traçar línies extensores quan no hi ha una veu associada.
Heus ací dos exemples:
<<
\new Voice = "melodia" \relative {
c''2 a f f e e
}
\new Lyrics \lyricmode {
c4. -- a -- f -- f -- e2. -- e
}
>>
<<
\new Staff {
\relative {
c''2 c2
d1
}
}
\new Lyrics {
\lyricmode {
I2 like4. my8 cat!1
}
}
\new Staff {
\relative {
c'8 c c c c c c c
c8 c c c c c c c
}
}
>>
Aquesta tècnica és molt útil quan s’escriuen diàlegs a sobre a la música, vegeu Diàlegs a sobre de la música.
Per canviar l’alineació de les síl·labes, simplement sobreescriviu
la propietat self-alignment-X:
<<
\new Voice = "melodia" \relative {
\time 3/4
c'2 e4 g2 f
}
\new Lyrics \lyricmode {
\override LyricText.self-alignment-X = #LEFT
play1 a4 game4
}
>>
Vegeu també
Referència de la notació: Mantenir vius els contextos,
Referència de funcionament intern: Lyrics, Voice.
Diverses síl·labes sobre una nota
Per assignar més d’una síl·laba a una única nota amb espais entre
les síl·labes, podem envoltar la frase entre cometes o utilitzar
un caràcter de guió sota _. De forma alternativa, podem
usar el símbol de titlla corba (~) per obtenir una
lligadura de text.
{
\relative {
\autoBeamOff
r8 b' c fis, fis c' b e,
}
\addlyrics
{
\override LyricHyphen.minimum-distance = #1.0 % Assegura que els guionets són visibles
Che_in ques -- ta_e_in quel -- l'al -- tr'on -- da
}
\addlyrics { "Che in" ques -- "ta e in" quel -- l'al -- tr'on -- da }
\addlyrics { Che~in ques -- ta~e~in quel -- l'al -- tr'on -- da }
}
Vegeu també
Referència de funcionament intern: LyricCombineMusic.
Diverses notes sobre una síl·laba
A vegades, i sobretot a la música medieval i del barroc, diverses notes es canten sobre una síl·laba única; aquestes vocalitzacions reben el nom de melismes, o melismata (vegeu melisma). La síl·laba d’un melisma se sol alinear per l’esquerra amb la primera nota del melisma.
Quan es produeix un melisma sobre una síl·laba diferent de
l’última d’una paraula, aquesta síl·laba se sol unir a la següent
amb un guió separador. Això s’indica al codi d’entrada escrivint
un doble guió, --, immediatament després de la síl·laba.
De forma alternativa, quan es produeix un melisma sobre l’última o
sobre l’única síl·laba d’una paraula, se sol traçar una línia
extensora des del final de la síl·laba fins l’última nota del
melisma. Aixo s’indica en el codi d’entrada escrivint una doble
barra baixa o caràcter de subrallat, __, immediatament
després de la paraula.
Hi ha cinc formes d’indicar els melismes:
-
Es creen melismes automàticament sobre les notes unides mitjançant
lligadura d’unió:
<< \new Voice = "melodia" \relative { \time 3/4 f''4 g2 ~ | 4 e2 ~ | 8 } \new Lyrics \lyricsto "melodia" { Ky -- ri -- e __ } >> -
Es poden crear melismes automàticament a partir de la música
escrivint lligadures d’expressió sobre les notes de cada melisma.
Aquesta és la forma usual d’escriure la lletra:
<< \new Voice = "melodia" \relative { \time 3/4 f''4 g8 ( f e f ) e8 ( d e2 ) } \new Lyrics \lyricsto "melodia" { Ky -- ri -- e __ } >>Observeu que les lligadures de fraseig no afectes a la creació de melismes.
-
Es considera que les notes formen un melisma quan s’uneixen
manualment mitjançant barra, sempre i quan el barrat automàtic
estigui desactivat. Vegeu
Establir el comportament de les barres automàtiques.
<< \new Voice = "melodia" \relative { \time 3/4 \autoBeamOff f''4 g8[ f e f] e2. } \new Lyrics \lyricsto "melodia" { Ky -- ri -- e } >>Clarament, això no és adequat per als melismes formats per notes de duració més llarga que la corxera.
-
Un grup denotes sense lligadura d’expressió es tracta com un
melisma si estan envoltades per
\melismai\melismaEnd.<< \new Voice = "melodia" \relative { \time 3/4 f''4 g8 \melisma f e f \melismaEnd e2. } \new Lyrics \lyricsto "melodia" { Ky -- ri -- e } >> -
Es pot definir un melisma enterament dins de la lletra escrivint
un caràcter de barra baixa aïllat,
_, per cada nota addicional que es vol afegir el melisma.<< \new Voice = "melodia" \relative { \time 3/4 f''4 g8 f e f e8 d e2 } \new Lyrics \lyricsto "melodia" { Ky -- ri -- _ _ _ e __ _ _ } >>
És possible tenir lligadures d’unió o d’expressió i barres manuals
a la melodia sense que indiquin melisma. Per fer-lo, ajusteu el
valor de melismaBusyProperties:
<<
\new Voice = "melodia" \relative {
\time 3/4
\set melismaBusyProperties = #'()
c'4 d ( e )
g8 [ f ] f4 ~ 4
}
\new Lyrics \lyricsto "melodia" {
Ky -- ri -- e e -- le -- i -- son
}
>>
Es poden usar d’altres valors per a melismaBusyProperties
si volem incloure o excloure selectivament les lligadures d’unió,
lligadures d’expressió o barres de la detecció automàtica dels
melismes; vegeu melismaBusyProperties a l’apartat
Tunable context properties.
Como a alternativa, si totes les indicacions de melisma
s’ignoraran, es pot establir ignoreMelismata al valor
vertader; vegeu Versos amb ritmes diferents.
Si es requereix un melisma al transcurs d’un passatge en el qual
melismaBusyProperties està actiu, pot indicar-se col·locant
una sola barra baixa a la lletra per cada nota que s’ha d’incloure
dins del melisma:
<<
\new Voice = "melodia" \relative {
\time 3/4
\set melismaBusyProperties = #'()
c'4 d ( e )
g8 [ f ] ~ 4 ~ f
}
\new Lyrics \lyricsto "melodia" {
Ky -- ri -- _ e __ _ _ _
}
>>
Instruccions predefinides
\autoBeamOff,
\autoBeamOn,
\melisma,
\melismaEnd.
Vegeu també
Glossari musical: melisma.
Manual d’aprenentatge: Alineació de la lletra a una melodia.
Referència de la notació: Alineació de la lletra a una melodia, Duració automàtica de les síl·labes, Establir el comportament de les barres automàtiques, Versos amb ritmes diferents.
Referència de funcionament intern: Tunable context properties.
Advertiments i problemes coneguts
No es creen automàticament línies extensores sota els melismes; s’han d’inserir manualment amb un doble guió baix.
Línies d’extensió i guions
Els melismes s’indiquen mitjançant una línia horitzontal centrada entre una síl·laba i la següent. Aquesta línia rep el nom de línia d’extensió, i s’escriu com ‘ __ ’ (fixeu-vos en els espais abans i després dels guions baixos).
Nota: Els melismes s’indiquen a la partitura amb línies extensores, que s’escriuen amb un doble guió baix; però també es poden introduir melismes curts mitjançant salts de notes individuals, que s’escriuen com caràcters aïllats de guió baix; de forma predeterminada aquests caràcters no produeixen la impressió d’una línia d’extensió.
Els guions centrats s’escriuen com ‘ -- ’ entre síl·labes d’una mateixa paraula (fixeu-vos en els espais abans i després del dos guionets). El guionet quedarà centrat entres les síl·labes, i la seva longitud s’ajustarà en funció de l’espai que existeix entre elles.
En la música gravada de manera molt atapeïda, es poden treure els
guionets. Es pot controlar si passa això o no, mitjançant les
propietats minimum-distance (distància mínima entre les
dues síl·labes) i la minimum-length (umbral per sota del
qual se suprimeixen els guionets) de LyricHyphen.
Vegeu també
Referència de funcionament intern: LyricExtender, LyricHyphen.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Línies d'extensió i guions ] | [ Amunt : Música vocal ] | [ Treball amb lletra i variables > ] | ||
2.1.2 Tècniques específiques per a les lletres
| Treball amb lletra i variables | ||
| Posicionament vertical de la lletra | ||
| Col·locació horitzontal de les síl·labes | ||
| Lletra i repeticions | ||
| Lletres en divisi | ||
| Polifonia amb lletres compartides |
Treball amb lletra i variables
Es poden crear variables que contenen lletra, però la lletra s’ha d’introduir en el mode lletra:
musicOne = \relative {
c''4 b8. a16 g4. f8 e4 d c2
}
verseOne = \lyricmode {
Joy to the world, the Lord is come.
}
\score {
<<
\new Voice = "one" {
\time 2/4
\musicOne
}
\new Lyrics \lyricsto "one" {
\verseOne
}
>>
}
No cal escriure les duraciones si la variable s’invocarà amb
\addlyrics o amb \lyricsto.
Per a disposicions diferents o més complexes, la millor forma és
definir en primer lloc les variables de la música i de la lletra,
després preparar una jerarquia de pentagrames i lletres, ometent
la lletra en sí, i després posar la lletra utilitzant
\context per sota. Això assegura que les veus
referenciades per \lyricsto siempre han estat definides
prèviament. Per exemple:
sopranoMusic = \relative { c''4 c c c }
contraltoMusic = \relative { a'4 a a a }
sopranoWords = \lyricmode { Sop -- ra -- no words }
contraltoWords = \lyricmode { Con -- tral -- to words }
\score {
\new ChoirStaff <<
\new Staff {
\new Voice = "sopranos" {
\sopranoMusic
}
}
\new Lyrics = "sopranos"
\new Lyrics = "contraltos"
\new Staff {
\new Voice = "contraltos" {
\contraltoMusic
}
}
\context Lyrics = "sopranos" {
\lyricsto "sopranos" {
\sopranoWords
}
}
\context Lyrics = "contraltos" {
\lyricsto "contraltos" {
\contraltoWords
}
}
>>
}
Vegeu també
Referència de la notació: Posicionament vertical de la lletra.
Referència de funcionament intern: LyricCombineMusic, Lyrics.
Posicionament vertical de la lletra
Depenent del tipus de música, la lletra pot col·locar-se sobre el pentagrama, a sota del pentagrama o entre dos pentagrames. El més fàcil és situar la lletra a sota de la pauta associada, i es pot aconseguir simplement definint el context Lyrics per sota del context Staff:
\score {
<<
\new Staff {
\new Voice = "melodia" {
\relative { c''4 c c c }
}
}
\new Lyrics {
\lyricsto "melodia" {
Here are the words
}
}
>>
}
Es pot col·locar la lletra sobre el pentagrama usat un dels dos mètodes disponibles: el més senzill (i preferible) és usar la mateixa sintaxi que s’ha vist més a dalt i especificar explícitament la posició de la lletra:
\score {
<<
\new Staff = "staff" {
\new Voice = "melody" {
\relative { c''4 c c c }
}
}
\new Lyrics \with { alignAboveContext = "staff" } {
\lyricsto "melody" {
Here are the words
}
}
>>
}
Com a alternativa, es pot usar un procés en dos passos. En primer
lloc es declara el context Lyrics (sense cap contingut), abans
dels contextos Staff i Voice, i després s’escriu l’ordre
\lyricsto després de la declaració de Voice a què fa
referència, usant \context, com es veu a continuació:
\score {
<<
\new Lyrics = "lyrics" \with {
% lyrics above a staff should have this override
\override VerticalAxisGroup.staff-affinity = #DOWN
}
\new Staff {
\new Voice = "melody" {
\relative { c''4 c c c }
}
}
\context Lyrics = "lyrics" {
\lyricsto "melody" {
Here are the words
}
}
>>
}
Quan hi ha dues veus sobre pentagrames separats, la lletra es pot col·locar sobre ells usant qualsevol d’aquests mètodes. Heus ací un exemple del segon mètode:
\score {
\new ChoirStaff <<
\new Staff {
\new Voice = "sopranos" {
\relative { c''4 c c c }
}
}
\new Lyrics = "sopranos"
\new Lyrics = "contraltos" \with {
% lyrics above a staff should have this override
\override VerticalAxisGroup.staff-affinity = #DOWN
}
\new Staff {
\new Voice = "contraltos" {
\relative { a'4 a a a }
}
}
\context Lyrics = "sopranos" {
\lyricsto "sopranos" {
Sop -- ra -- no words
}
}
\context Lyrics = "contraltos" {
\lyricsto "contraltos" {
Con -- tral -- to words
}
}
>>
}
És possible generar d’altres combinacions de lletra i pautes mitjançant l’elaboració dels exemples anteriors, o examinant les plantilles del Manual d’Aprenentatge, vegeu Plantilles de conjunts vocals.
Fragments de codi seleccionats
Obtaining 2.12 lyrics spacing in newer versions
The vertical spacing engine changed since version 2.14. This can cause lyrics to be spaced differently.
It is possible to set properties for Lyric and Staff
contexts to get the spacing engine to behave as it did in version 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))
}
}
}
Vegeu també
Manual d’ aprenentatge: Plantilles de conjunts vocals.
Referència de la notació: Ordre de disposició dels contextos, Creació i referenciació de contextos.
Col·locació horitzontal de les síl·labes
Per augmentar la separació entre les línies de text, establiu la
propietat minimum-distance de LyricSpace.
\relative c' {
c c c c
\override Lyrics.LyricSpace.minimum-distance = #1.0
c c c c
}
\addlyrics {
longtext longtext longtext longtext
longtext longtext longtext longtext
}
Per aplicar aquest canvi a totes les lletres de la partitura,
ajusteu la propietat dins del bloc \layout.
\score {
\relative {
c' c c c
c c c c
}
\addlyrics {
longtext longtext longtext longtext
longtext longtext longtext longtext
}
\layout {
\context {
\Lyrics
\override LyricSpace.minimum-distance = #1.0
}
}
}
Fragments de codi seleccionats
Lyrics alignment
Horizontal alignment for lyrics can be set by overriding the
self-alignment-X property of the LyricText object.
#-1 is left, #0 is center and #1 is right;
however, you can use #LEFT, #CENTER and #RIGHT as
well.
\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"
}
La comprovació necessària per assegurar que les inscripcions de text estiguin dins dels marges, requereix càlculs addicionals. Per accelerar lleugerament el processat, es pot desactivar aquesta funcionalitat:
\override Score.PaperColumn.keep-inside-line = ##f
Per fer que el text eviti també les línies divisòries, useu
\layout {
\context {
\Lyrics
\consists "Bar_engraver"
\consists "Separating_line_group_engraver"
\hide BarLine
}
}
Lletra i repeticions
Repeticions senzilles
Les repeticions en la música es descriuen extensament a alguna altra part d’aquest maual; vegeu Repeticions. Aquesta secció explica com afegir lletra a seccions de música que es repeteixen.
La lletra que va amb una secció de música que es repeteix, hauria d’estar envoltada en la mateixa construcció de repeticions exacta que la música, si el text no canvia.
\score {
<<
\new Staff {
\new Voice = "melody" {
\relative {
a'4 a a a
\repeat volta 2 { b4 b b b }
}
}
}
\new Lyrics {
\lyricsto "melody" {
Not re -- peat -- ed.
\repeat volta 2 { Re -- peat -- ed twice. }
}
}
>>
}
El text s’expandirà correctament d’aquesta manera si es despleguen les repeticions.
\score {
\unfoldRepeats {
<<
\new Staff {
\new Voice = "melody" {
\relative {
a'4 a a a
\repeat volta 2 { b4 b b b }
}
}
}
\new Lyrics {
\lyricsto "melody" {
Not re -- peat -- ed.
\repeat volta 2 { Re -- peat -- ed twice. }
}
}
>>
}
}
Si la secció repetida ha de desplegar-se i té una lletra diferent, escriviu simplement tot el text:
\score {
<<
\new Staff {
\new Voice = "melody" {
\relative {
a'4 a a a
\repeat unfold 2 { b4 b b b }
}
}
}
\new Lyrics {
\lyricsto "melody" {
Not re -- peat -- ed.
The first time words.
Sec -- ond time words.
}
}
>>
}
Quan el text de les seccions de primera o segona vegada es
diferent, la lletra de cada repetició s’ha d’escriure dins de
contextos Lyrics diferents, niuats correctament a seccions
paral·leles:
\score {
<<
\new Staff {
\new Voice = "melody" {
\relative {
a'4 a a a
\repeat volta 2 { b4 b b b }
}
}
}
\new Lyrics \lyricsto "melody" {
Not re -- peat -- ed.
<<
{ The first time words. }
\new Lyrics {
\set associatedVoice = "melody"
Sec -- ond time words.
}
>>
}
>>
}
Es poden afegir més estrofes d’una manera semblant:
\score {
<<
\new Staff {
\new Voice = "singleVoice" {
\relative {
a'4 a a a
\repeat volta 3 { b4 b b b }
c4 c c c
}
}
}
\new Lyrics \lyricsto "singleVoice" {
Not re -- peat -- ed.
<<
{ The first time words. }
\new Lyrics {
\set associatedVoice = "singleVoice"
Sec -- ond time words.
}
\new Lyrics {
\set associatedVoice = "singleVoice"
The third time words.
}
>>
The end sec -- tion.
}
>>
}
Malgrat això, si aquesta construcció s’insereix dins d’un context
de diversos pentagrames tal com un ChoirStaff, la lletra
dels versos segon i tercer apareixerà a sota del pentagrama inferior.
Per posicionar-los correctament utilitzeu alignBelowContext:
\score {
<<
\new Staff {
\new Voice = "melody" {
\relative {
a'4 a a a
\repeat volta 3 { b4 b b b }
c4 c c c
}
}
}
\new Lyrics = "firstVerse" \lyricsto "melody" {
Not re -- peat -- ed.
<<
{ The first time words. }
\new Lyrics = "secondVerse"
\with { alignBelowContext = #"firstVerse" } {
\set associatedVoice = "melody"
Sec -- ond time words.
}
\new Lyrics = "thirdVerse"
\with { alignBelowContext = #"secondVerse" } {
\set associatedVoice = "melody"
The third time words.
}
>>
The end sec -- tion.
}
\new Voice = "harmony" {
\relative {
f'4 f f f \repeat volta 2 { g8 g g4 g2 } a4 a8. a16 a2
}
}
>>
}
Repeticions amb finals alternatius (primera i segona vegada)
Si el text de la secció repetida és el mateix, i cap dels blocs
\alternative comença amb un silenci, es pot usar exactament
la mateixa estructura tant per a la lletra com per a la música.
Això té l’avantatge que \unfoldRepeats expandeix
correctament tant la música com la lletra.
\score {
<<
\new Staff {
\time 2/4
\new Voice = "melody" {
\relative {
a'4 a a a
\repeat volta 2 { b4 b }
\alternative { { b b } { b c } }
}
}
}
\new Lyrics {
\lyricsto "melody" {
Not re -- peat -- ed.
\repeat volta 2 { Re -- peat -- }
\alternative { { ed twice. } { ed twice. } }
}
}
>>
}
Però quan la secció repetida té un text diferent, o quan un dels
blocs \alternative comença amb un silenci, no es pot usar
una construcció de repetició per al text i cal inserir manualment
ordres \skip per saltar sobre les notes a les seccions
alternatives que no correponguin.
Nota: no utilitzeu un guió baix, _, per saltar notes: el
guió baix indica un melisma, i fa que la síl·laba anterior quedi
alineada per l’esquerra.
Nota: L’ordre \skip ha d’anar seguida per un número,
però aquest número s’ignora dins de la lletra, que deriva les
duracions de les notes d’una melodia associada a través de
addlyrics o lyricsto. Cada \skip salta
una sola nota de qualsevol valor, independentment del valor del
nombre que s’escriu a continuació.
\score {
<<
\new Staff {
\time 2/4
\new Voice = "melody" {
\relative {
\repeat volta 2 { b'4 b }
\alternative { { b b } { b c } }
c4 c
}
}
}
\new Lyrics {
\lyricsto "melody" {
The first time words.
\repeat unfold 2 { \skip 1 }
End here.
}
}
\new Lyrics {
\lyricsto "melody" {
Sec -- ond
\repeat unfold 2 { \skip 1 }
time words.
}
}
>>
}
Quan una nota està lligada sobre dos o més finals alternatius
(sobre la primera nota d’una casella de primera i segona vegada),
s’usa una lligadura d’unió per arrossegar la nota dins del primer
final alternatiu i s’usa una ordre \repeatTie de lligadura
de repetició a les caselles de repetició següents. Aquesta
estructura produeix problemes d’alineació difícils quan hi ha
lletra pel mig; augmentar la longitud de les seccions alternatives
de forma que les notes lligades quedin contingudes completament
dins d’elles, pot oferir un resultat acceptable.
La lligadura d’unió crea un melisma dins de la casella de primera vegada però no en la segona vegada i següent; per tant, per alinear la lletra correctament cal desactivar la creació automàtica de melismes sobre la secció de finals alternatius i inserir salts manuals.
\score {
<<
\new Staff {
\time 2/4
\new Voice = "melody" {
\relative {
\set melismaBusyProperties = #'()
\repeat volta 2 { b'4 b ~}
\alternative { { b b } { b \repeatTie c } }
\unset melismaBusyProperties
c4 c
}
}
}
\new Lyrics {
\lyricsto "melody" {
\repeat volta 2 { Here's a __ }
\alternative {
{ \skip 1 verse }
{ \skip 1 sec }
}
ond one.
}
}
>>
}
Observeu que si s’usa \unfoldRepeats sobre una secció que
contingui alguna \repeatTie, la \repeatTie s’ha
d’eliminar per evitar que s’imprimeixin al mateix temps els dos
tipus de lligadures.
Quan la secció repetida té textos diferent, no es pot usar
\repeat per a la lletra i s’han d’inserir ordres
\skip, com es va veure abans.
\score {
<<
\new Staff {
\time 2/4
\new Voice = "melody" {
\relative {
\repeat volta 2 { b'4 b ~}
\alternative { { b b } { b \repeatTie c } }
c4 c
}
}
}
\new Lyrics {
\lyricsto "melody" {
Here's a __ verse.
\repeat unfold 2 { \skip 1 }
}
}
\new Lyrics {
\lyricsto "melody" {
Here's one
\repeat unfold 2 { \skip 1 }
more to sing.
}
}
>>
}
Si volem imprimir línies extensores i guions que entren o surten de les caselles de primera i segona vegada, hem d’inserir-los manualment.
\score {
<<
\new Staff {
\time 2/4
\new Voice = "melody" {
\relative {
\repeat volta 2 { b'4 b ~}
\alternative { { b b } { b \repeatTie c } }
c4 c
}
}
}
\new Lyrics {
\lyricsto "melody" {
Here's a __ verse.
\repeat unfold 2 { \skip 1 }
}
}
\new Lyrics {
\lyricsto "melody" {
Here's "a_"
\skip 1
"_" sec -- ond one.
}
}
>>
}
Vegeu també
Referència de la notació: Mantenir vius els contextos, Repeticions.
Lletres en divisi
Quan solament difereixen les paraules i les duracions de les dues parts mentre que l’alçada de les notes és la mateixa, el mètode adequat pot ser la desactivació temporal de la detecció automàtica dels melismes i indicar el melisma dins de la lletra:
\score {
<<
\new Voice = "melody" {
\relative c' {
\set melismaBusyProperties = #'()
\slurDown
\slurDashed
e4 e8 ( e ) c4 c |
\unset melismaBusyProperties
c
}
}
\new Lyrics \lyricsto "melody" {
They shall not o -- ver -- come
}
\new Lyrics \lyricsto "melody" {
We will _
}
>>
}
Quan difereixen tant la música com les paraules, pot ser millor imprimir la música i la lletra que difereixen mitjançant l’anomenat de contextos de veu i adjuntant la lletra a aquests contextos específics:
\score {
<<
\new Voice = "melody" {
\relative {
<<
{
\voiceOne
e'4 e8 e
}
\new Voice = "splitpart" {
\voiceTwo
c4 c
}
>>
\oneVoice
c4 c |
c
}
}
\new Lyrics \lyricsto "melody" {
They shall not o -- ver -- come
}
\new Lyrics \lyricsto "splitpart" {
We will
}
>>
}
En la música coral és freqüent que una part vocal es divideixi en
dues durant diversos compassos. La construcció <<
{…} \\ {…} >>, en la qual dues (o més)
expressions musicals estan separades per dues barres invertides,
pot en principi semblar la forma més adequada de realitzar les
veus dividides. Tanmateix, aquesta construcció assigna
totes les expressions que estan dins d’ella a
contextos de veu NOUS, cosa que fa que no s’assigni a
elles cap lletra perquè la lletra s’assigna al context de
veu original, que no és el que pretenem, en general. La
construcció correcta que hem d’usar és el passatge polifònic
temporal, vegeu la secció Passatges polifònics temporals dins de
Polifonia en un sol pentagrama.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Lletres en divisi ] | [ Amunt : Tècniques específiques per a les lletres ] | [ Versos > ] | ||
Polifonia amb lletres compartides
Quan dues veus les notes de les quals tenen diferents duracions comparteixen la mateixa lletra, l’alineació de la lletra a una de les veus pot generar problemes a l’altra veu. Per exemple, la segona línia extensora que es veu a sota és massa curta, perquè la lletra està alineada sols amb la veu superior:
soprano = \relative { b'8( c d c) d2 }
alto = \relative { g'2 b8( a g a) }
words = \lyricmode { la __ la __ }
\new Staff <<
\new Voice = "sopranoVoice" { \voiceOne \soprano }
\new Voice { \voiceTwo \alto }
\new Lyrics \lyricsto "sopranoVoice" \words
>>
Per obtenir el resultat desitjat, alineeu la lletra amb un context
NullVoice (‘Veu Nul·la’) nou que contingui una combinació
adequada de les dues veus. Les notes del context NullVoice
no apareixen a la pàgina impresa, però poden utilitzar-se per
alinear la lletra adequadament:
soprano = \relative { b'8( c d c) d2 }
alto = \relative { g'2 b8( a g a) }
aligner = \relative { b'8( c d c) b( a g a) }
words = \lyricmode { la __ la __ }
\new Staff <<
\new Voice { \voiceOne \soprano }
\new Voice { \voiceTwo \alto }
\new NullVoice = "aligner" \aligner
\new Lyrics \lyricsto "aligner" \words
>>
Aquest mètode es pot usar també amb la funció
\partcombine, que per sí mateixa no permet incloure lletra:
soprano = \relative { b'8( c d c) d2 }
alto = \relative { g'2 b8( a g a) }
aligner = \relative { b'8( c d c) b( a g a) }
words = \lyricmode { la __ la __ }
\new Staff <<
\new Voice \partcombine \soprano \alto
\new NullVoice = "aligner" \aligner
\new Lyrics \lyricsto "aligner" \words
>>
Advertiments i problemes coneguts
La funció \addLyrics sols funciona amb lletra de
Voice, per la qual cosa no pot utilitzar-se amb
NullVoice.
La funció \partcombine es descriu a
Combinació automàtica de les parts.
Por últim, aquest mètode es pot usar fins i tot si les veus estan a diferents pentagrames, i no es limita únicament a dues veus:
soprano = \relative { b'8( c d c) d2 }
altoOne = \relative { g'2 b8( a b4) }
altoTwo = \relative { d'2 g4( fis8 g) }
aligner = \relative { b'8( c d c) d( d d d) }
words = \lyricmode { la __ la __ }
\new ChoirStaff \with {\accepts NullVoice } <<
\new Staff \soprano
\new NullVoice = "aligner" \aligner
\new Lyrics \lyricsto "aligner" \words
\new Staff \partcombine \altoOne \altoTwo
>>
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Polifonia amb lletres compartides ] | [ Amunt : Música vocal ] | [ Afegir números de vers > ] | ||
2.1.3 Versos
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Versos ] | [ Amunt : Versos ] | [ Afegir expressions dinàmiques als versos > ] | ||
Afegir números de vers
Els números de versos es poden afegir establint
stanza, per exemple,
\new Voice \relative {
\time 3/4 g'2 e4 a2 f4 g2.
} \addlyrics {
\set stanza = #"1. "
Hi, my name is Bert.
} \addlyrics {
\set stanza = #"2. "
Oh, ché -- ri, je t'aime
}
Aquests números apareixeran immediatament abans de la primera síl·laba.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Afegir números de vers ] | [ Amunt : Versos ] | [ Afegir el nom dels cantants als versos > ] | ||
Afegir expressions dinàmiques als versos
Els versos que difereixen en la seva sonoritat es poden
especificar escrivint una indicació dinàmica abans de cada vers.
Al LilyPond, tot el que apareix endavant d’un vers està dins de
l’objecte StanzaNumber; les indicacions dinàmiques no són
diferents. Per raons tècniques, haureu d’establir el valor de la
secció stanza (vers) fora de de \lyricmode:
text = {
\set stanza = \markup { \dynamic "ff" "1. " }
\lyricmode {
Big bang
}
}
<<
\new Voice = "tune" {
\time 3/4
g'4 c'2
}
\new Lyrics \lyricsto "tune" \text
>>
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Afegir expressions dinàmiques als versos ] | [ Amunt : Versos ] | [ Versos amb ritmes diferents > ] | ||
Afegir el nom dels cantants als versos
També es poden posar els noms dels cantants. S’imprimeixen al
començament de la línia, igual que els noms d’instrument. Es
creen establint un valor per a vocalName. Es pot definir
una versió abreujada com shortVocalName.
\new Voice \relative {
\time 3/4 g'2 e4 a2 f4 g2.
} \addlyrics {
\set vocalName = #"Bert "
Hi, my name is Bert.
} \addlyrics {
\set vocalName = #"Ernie "
Oh, ché -- ri, je t'aime
}
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Afegir el nom dels cantants als versos ] | [ Amunt : Versos ] | [ Impressió dels versos al final > ] | ||
Versos amb ritmes diferents
Amb freqüència els diferents versos d’una cançó encaixen de formes
lleugerament diferents amb la mateixa melodia. Aquestes
variacions es poden capturar amb l’ús de \lyricsto.
Ignorar els melismes
Hi ha la possibilitat que el text tingui un melisma en un vers,
però diverses síl·labes en un altre. Una solució és fer que la
veu més ràpida ignori el melisma. Això s’aconsegueix establint
ignoreMelismata al context Lyrics.
<<
\relative \new Voice = "lahlah" {
\set Staff.autoBeaming = ##f
c'4
\slurDotted
f8.[( g16])
a4
}
\new Lyrics \lyricsto "lahlah" {
more slow -- ly
}
\new Lyrics \lyricsto "lahlah" {
go
\set ignoreMelismata = ##t
fas -- ter
\unset ignoreMelismata
still
}
>>
Advertiments i problemes coneguts
A diferència de gairebé totes les ordres \set,
\set ignoreMelismata no funciona si va precedida de
\once. Cal utilitzar \set y \unset per
delimitar la lletra a la qual es volen ignorar els melismes.
Aplicació de síl·labes a notes d’adorn
De forma predeterminada, a les notes d’adorn (per exemple inserides
per mitjà de \grace) no se’ls pot assignar síl·labes si es
fa servir \lyricsto, però aquest comportament pot canviar-se:
<<
\new Voice = melody \relative {
f'4 \appoggiatura a32 b4
\grace { f16 a16 } b2
\afterGrace b2 { f16[ a16] }
\appoggiatura a32 b4
\acciaccatura a8 b4
}
\new Lyrics
\lyricsto melody {
normal
\set includeGraceNotes = ##t
case,
gra -- ce case,
after -- grace case,
\set ignoreMelismata = ##t
app. case,
acc. case.
}
>>
Advertiments i problemes coneguts
Com succeeix amb associatedVoice, includeGraceNotes
s’ha d’establir almenys una síl·laba abans de la qual s’anirà a
col·locar sota una nota d’adorn. Per al cas d’una nota d’adorn al
començament mateix d’una peça, considereu la possibilitat d’usar
un bloc \with o \context:
<<
\new Voice = melody \relative c' {
\grace { c16( d e f }
g1) f
}
\new Lyrics \with { includeGraceNotes = ##t }
\lyricsto melody {
Ah __ fa
}
>>
Canvi a una melodia alternativa
Es poden fer variacions més complexes en la coordinació de la
lletra i la música. La melodia a la qual s’està alineant la
lletra pot canviar-se des de dins de la lletra mitjançant
l’establiment de la propietat associatedVoice:
<<
\relative \new Voice = "lahlah" {
\set Staff.autoBeaming = ##f
c'4
<<
\new Voice = "alternative" {
\voiceOne
\tuplet 3/2 {
% mostra clarament les associacions
\override NoteColumn.force-hshift = #-3
f8 f g
}
}
{
\voiceTwo
f8.[ g16]
\oneVoice
} >>
a8( b) c
}
\new Lyrics \lyricsto "lahlah" {
Ju -- ras -- sic Park
}
\new Lyrics \lyricsto "lahlah" {
% Complicat: cal establir associatedVoice
% one syllable too soon!
\set associatedVoice = "alternative" % s'aplica a «ran»
Ty --
ran --
no --
\set associatedVoice = "lahlah" % s'aplica a «rus»
sau -- rus Rex
} >>
El text del primer vers es fixa a la melodia nomenada ‘lahlah’
de la manera usual, però el segon vers es fixa inicialment al context
lahlah i després es canvia a la melodia alternative
per a les síl·labes des de ‘ran’ fins a ‘sau’ mitjançant les línies:
\set associatedVoice = "alternative" % s'aplica a "ran" Ty -- ran -- no -- \set associatedVoice = "lahlah" % s'aplica a "rus" sau -- rus Rex
Aquí, alternative és el nom del context Voice que
conté el treset.
Observeu la posició de l’ordre \set associatedVoice:
sembla estar situada una síl·laba abans del normal, però és
correcte.
Nota: L’ordre set associatedVoice s’ha d’escriure una
síl·laba abans de la síl·laba en la qual volem que es
produeixi el canvi a la veu nova. Dit d’una altra forma, el canvi
de la veu associada es produeix una síl·laba més tard de
l’esperat. Això es fa així per raons tècniques, i no és un error.
Impressió dels versos al final
A vegades és convenient tenir un vers ajustat a la música, i la
resta afegit en forma d’estrofa al final de la peça. Això es pot
aconseguir escrivint els versos addicionals dins d’una secció
\markup fora del bloc Score principal de la partitura. Heu
de tenir en compte que hi ha dues formes diferents de forçar els
salts de línia en utilitzar \markup.
melody = \relative {
e' d c d | e e e e |
d d e d | c1 |
}
text = \lyricmode {
\set stanza = #"1." Ma- ry had a lit- tle lamb,
its fleece was white as snow.
}
\score{ <<
\new Voice = "one" { \melody }
\new Lyrics \lyricsto "one" \text
>>
\layout { }
}
\markup { \column{
\line{ Verse 2. }
\line{ All the children laughed and played }
\line{ To see a lamb at school. }
}
}
\markup{
\wordwrap-string #"
Verse 3.
Mary took it home again,
It was against the rule."
}
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Impressió dels versos al final ] | [ Amunt : Versos ] | [ Cançons > ] | ||
Impressió dels versos al final en diverses columnes
Quan una peça té molts versos, sovint s’imprimeixen en diverses columnes al llarg de tota la pàgina. Freqüentment, un número de ver fora del marge precedeix cada vers. L’exemple següent mostra com produir aquesta sortida al LilyPond.
melody = \relative {
c'4 c c c | d d d d
}
text = \lyricmode {
\set stanza = #"1." Aquest és el vers u.
Té dues línies.
}
\score {
<<
\new Voice = "one" { \melody }
\new Lyrics \lyricsto "one" \text
>>
\layout { }
}
\markup {
\fill-line {
\hspace #0.1 % mou la columna a fora del marge esquerra;
% es pot eliminar si l'espai a la pàgina és escàs
\column {
\line { \bold "2."
\column {
"Aquest és el vers dos."
"Té dues línies."
}
}
\combine \null \vspace #0.1 % afegeix espai vertical entre els versos
\line { \bold "3."
\column {
"Aquest és el vers tres."
"Té dues línies."
}
}
}
\hspace #0.1 % afegeix espai horitzontal entre les columnes;
\column {
\line { \bold "4."
\column {
"Aquest és el vers quatre."
"Té dues línies."
}
}
\combine \null \vspace #0.1 % afegeix espai vertical entre els versos
\line { \bold "5."
\column {
"Aquest és el vers cinc."
"Té dues línies."
}
}
}
\hspace #0.1 % dóna algun espai extra al marge dret;
% es pot eliminar si l'espai de la pàgina és escàs
}
}
Vegeu també
Referència de funcionament intern: LyricText, StanzaNumber.
2.1.4 Cançons
| Referències per a cançons | ||
| Fulls guia d’acords |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Cançons ] | [ Amunt : Cançons ] | [ Fulls guia d'acords > ] | ||
Referències per a cançons
En general les cançons s’escriuen sobre tres pentagrames amb la melodia del cantant al pentagrama superior i dos pentagrames d’acompanyament de piano a la part inferior. La lletra del primer vers s’imprimeix immediatament a sota del pentagrama superior. Si hi ha sols una petita quantitat de versos addicionals, poden imprimir-se immediatament a sota del primer, però si hi ha més versos del que caben còmodament en aquest lloc, el segon vers i següents s’imprimeixen després de la música, com a text independent.
Tots els elements de notació necessaris per escriure cançons es descriuen completament a d’altres seccions de la documentació:
- Per muntar la disposició de les pautes, vegeu Visualització dels pentagrames.
- Per escriure música per a piano, vegeu Teclats i altres instruments de diversos pentagrames.
- Per imprimir la lletra d’una línia melòdica, vegeu Notació comuna per a música vocal.
- Per col·locar la lletra, vegeu Posicionament vertical de la lletra.
- Per escriure versos vegeu Versos.
- Les cançons s’imprimeixen sovint amb els acords indicats mitjançant xifrat americà (els noms dels acords en lletres majúscules) sobre les pautes. Això es descriu a Visualització d’acords.
- Per imprimir diagrames de posicions dels acords per a l’acompanyament de guitarra per a d’altres instruments de trastos al mànec, consulteu “Marcatges de diagrames de posicions d’acord” dins de Notació comuna per a cordes amb trasts.
Vegeu també
Manual d’aprenentatge: Cançons.
Referència de la notació: Notació comuna per a música vocal, Visualització d’acords. Visualització dels pentagrames. Teclats i altres instruments de diversos pentagrames. Posicionament vertical de la lletra, Versos.
Fragments de codi: Vocal music.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Referències per a cançons ] | [ Amunt : Cançons ] | [ Música coral > ] | ||
Fulls guia d’acords
Es poden imprimir fulls guia d’acords combinant parts vocals i el ‘mode d’acords’; aquesta sintaxi s’explica a Notació d’acords.
Fragments de codi seleccionats
Simple lead sheet
When put together, chord names, a melody, and lyrics form a lead sheet:
<<
\chords { c2 g:sus4 f e }
\relative c'' {
a4 e c8 e r4
b2 c4( d)
}
\addlyrics { One day this shall be free __ }
>>
Vegeu també
Referència de la notació: Notació d’acords.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Fulls guia d'acords ] | [ Amunt : Música vocal ] | [ Referències per a música coral > ] | ||
2.1.5 Música coral
Aquesta secció tracta els temes de notació més directament relacionats amb la música coral. Això inclou els himnes, les cançons per parts, els oratoris, etc.
| Referències per a música coral | ||
| Disposicions de la partitura per a música coral | ||
| Veus dividides |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Música coral ] | [ Amunt : Música coral ] | [ Disposicions de la partitura per a música coral > ] | ||
Referències per a música coral
La notació musical coral es realitza normalment sobre dos, tres o
quatre pentagrames dins d’un grup de pautes ChoirStaff. Si
cal un acompanyament, se situa a sota dins d’un grup
PianoStaff, que se sol reduir de mida, per assajar les
obres corals a cappella. Les notes de cada part vocal se
situen dins d’un context Voice, i cada pentagrama rep o una
sola part vocal (és a dir, una Voice) o un par de parts
vocals (és a dir, dos Voices).
Els textos es disposen en contextos Lyrics, o bé a sota de
cada pauta de música corresponent, o bé una a sobre i una altra a
sota de la pauta de música, si aquesta última pauta conté la
música de les dues parts.
A altres parts del manual es descriuen completament alguns altres temes de la música coral:
- Hi ha una introducció a la creació de partitures vocals SATB al Manual d’Aprenentatge, vegeu Partitura vocal a quatre veus SATB. També hi ha una plantilla incorporada que simplifica la introducció de música vocal SATB, vegeu Plantilles incorporades.
- Al Manual d’Aprenentatge hi ha també diverses plantilles adequades per a diversos estils de música coral, vegeu Plantilles de conjunts vocals.
-
Per veure més informació sobre
ChoirStaffiPianoStaff, consulteu Agrupament de pentagrames. - Les figures amb caps de formes, com els que es fan servir a la notació de l’estil Arpa Sacra i altres semblants, es descriuen a Caps de notes amb formes diverses.
-
Quan dues parts vocals comparteixen un pentagrama, les pliques,
lligadures, etc. de la part aguda s’orienten cap amunt, i les de
la part greu cap avall. Per fer-ho, utilitzeu
\voiceOnei\voiceTwo. Vegeu Polifonia en un sol pentagrama. - Quan una part vocal es divideix temporalment, hem d’usar passatges polifònics temporals vegeu Polifonia en un sol pentagrama.
Instruccions predefinides
\oneVoice,
\voiceOne,
\voiceTwo.
Vegeu també
Manual d’aprenentatge: Partitura vocal a quatre veus SATB, Plantilles de conjunts vocals.
Referència de la notació: Ordre de disposició dels contextos, Agrupament de pentagrames, Caps de notes amb formes diverses, Polifonia en un sol pentagrama.
Fragments de codi: Vocal music.
Referència de funcionament intern: ChoirStaff, Lyrics, PianoStaff.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Referències per a música coral ] | [ Amunt : Música coral ] | [ Veus dividides > ] | ||
Disposicions de la partitura per a música coral
La música coral que conté quatre pentagrames, amb o sense acompanyament de piano, es pot disposar amb dos sistemes per pàgina. Depenent de la mida de la pàgina, aconseguir-lo pot requerir canvis a certs ajustaments predeterminats. S’han de tenir compte els comptes següents:
- Es pot modificar la mida global de pentagrama per alterar la mida general dels elements de la partitura. Vegeu Establiment de la mida del pentagrama.
- Les diferents distàncies entre sistemes, pentagrames i línies de text es poden ajustar de manera independent. Vegeu Espaiat vertical.
- Es poden imprimir les dimensiones de les variables de disposició verticals com a ajuda per a l’ajust de l’espaiat vertical. Aquesta i d’altres possibilitats per fer encaixar la música a un nombre de pàgines menor, es descriuen a Encaix de la música en menys pàgines.
- Si el nombre de sistemes per pàgina canvia d’u a dos, s’acostuma indicar-lo mitjançant una marca separadora de sistemes entre els dos sistemes. Vegeu Separació de sistemes.
- Per veure més detalls sobre altres propietats de format de les pàgines, consulteu Disposició de la pàgina.
Les indicacions dinàmiques es col·loquen per omissió a sota del
pentagrama, però a la música coral se solen situar a sobre del
pentagrama per evitar les col·lisions amb el text. L’ordre
predefinida \dynamicUp fa aquesta tasca per a les
indicacions dinàmiques en un únic context Voice. Si hi ha
molts contextos de veu, aquesta ordre predefinida hauria de
col·locar-se en cada u d’ells. Com a alternativa, es pot usar la
seva forma expandida per posar les indicacions dinàmiques de tota
la partitura a sobre de les seves pautes respectives, com es
mostra aquí:
\score {
\new ChoirStaff <<
\new Staff {
\new Voice {
\relative { g'4\f g g g }
}
}
\new Staff {
\new Voice {
\relative { d'4 d d\p d }
}
}
>>
\layout {
\context {
\Score
\override DynamicText.direction = #UP
\override DynamicLineSpanner.direction = #UP
}
}
}
Instruccions predefinides
\dynamicUp,
\dynamicDown,
\dynamicNeutral.
Vegeu també
Referència de la notació: Canviar l’espaiat, Visualització de l’espaiat, Encaix de la música en menys pàgines, Disposició de la pàgina, Disposició de la partitura, Separació de sistemes, Establiment de la mida del pentagrama, Salts, Espaiat vertical.
Referència de funcionament interno: VerticalAxisGroup, StaffGrouper.
Veus dividides
Using arpeggioBracket to make divisi more visible
The arpeggioBracket can be used to indicate the division of
voices where there are no stems to provide the information. This is
often seen in choral music.
\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 }
}
Vegeu també
Referència de la notació: Marques expressives en forma de línies.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Veus dividides ] | [ Amunt : Música vocal ] | [ Referències per a òpera i musicals > ] | ||
2.1.6 Òpera i musicals
La música, lletra i diàlegs de les òperes i musicals es disposen normalment d’una o més de les formes següents:
- Una Partitura del director que contingui totes les parts orquestrals i vocals, junt a notes guia del llibret si hi ha passatges parlats.
- Particel·les orquestrals que continguin la música dels instruments individuals de l’orquestra o banda.
- Una Partitura vocal que contingui totes les parts vocals amb acompanyament de piano. L’acompanyament és normalment una reducció d’orquestra, i en aquest cas és freqüent indicar el nom de l’instrument original de l’orquestra. Les partitures vocals a vegades inclouen indicacions d’escena i notes guia del llibret.
- Un Llibre vocal que contingui les partes vocals (sense acompanyament), a vegades en combinació amb el llibret.
- Un Llibret que contingui els diàlegs complets que normalment hi ha als musicals, junt amb la lletra de les parts cantades. Solen incloure’s també les indicacions d’escena. Es pot utilitzar el LilyPond per gravar llibrets, però tenint en compte que no contenen música, pot ser preferible algun mètode alternatiu.
En la secció de referències que apareix a continuació estan relacionades les seccions de la documentació del LilyPond que s’ocupen dels temes necessaris per crear partitures en els estils habituals de l’òpera i els musicals. Després apareixen seccions que tracten de les tècniques peculiars de la gravació musical de les partitures d’òpera i de musicals.
| Referències per a òpera i musicals | ||
| Noms dels personatges | ||
| Guies musicals | ||
| Música parlada | ||
| Diàlegs a sobre de la música |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Òpera i musicals ] | [ Amunt : Òpera i musicals ] | [ Noms dels personatges > ] | ||
Referències per a òpera i musicals
- Una partitura de director conté molts pentagrames i lletres agrupats. A Agrupament de pentagrames s’expliquen maneres d’agrupar pentagrames. Per niuar uns grups dins d’uns altres, consulteu Grups de pentagrames niuats.
- El gravat de pentagrames buits a les partitures del director i vocals se sol inhibir. Per crear aquestes partitures, conegudes com a “Partitures franceses”, consulteu Ocultament de pentagrames.
- L’escriptura de partitures orquestrals s’estudia a Escriptura de les particel·les. Poden ser de rellevància altres seccions del capítol de notació especialitzada, depenent de l’orquestració utilitzada. Molts instruments són transpositors, consulteu Transposició dels instruments.
- Si el nombre de sistemes per pàgina varia d’una a una altra pàgina, s’acostuma a separar els sistemes amb una marca separadora de sistemes. Vegeu Separació de sistemes.
- Per veure detalls sobre altres propietats de format de les pàgines, consulteu Disposició de la pàgina.
-
Es poden inserir notes guia de diàlegs, instruccions d’escena i
notes al peu, vegeu
Creació de notes al peu i
Text. També es poden afegir indicacions d’escena extenses
amb una secció d’elements de marcatge independents entres dos blocs
\score, vegeu Text separat.
Vegeu també
Glossari musical: Frenched score, Frenched staves, transposing instrument.
Referència de la notació: Creació de notes al peu, Agrupament de pentagrames, Ocultament de pentagrames, Transposició dels instruments, Grups de pentagrames niuats, Disposició de la pàgina, Separació de sistemes, Transposició, Escriptura de les particel·les, Escriptura del text.
Fragments de codi: Vocal music.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Referències per a òpera i musicals ] | [ Amunt : Òpera i musicals ] | [ Guies musicals > ] | ||
Noms dels personatges
Se solen mostrar els noms dels personatges a l’esquerra del pentagrama quan aquest marge està dedicat únicament a aquest personatge solament:
\score {
<<
\new Staff {
\set Staff.vocalName = \markup \smallCaps Kaspar
\set Staff.shortVocalName = \markup \smallCaps Kas.
\relative {
\clef "G_8"
c'4 c c c
\break
c4 c c c
}
}
\new Staff {
\set Staff.vocalName = \markup \smallCaps Melchior
\set Staff.shortVocalName = \markup \smallCaps Mel
\clef "bass"
\relative {
a4 a a a
a4 a a a
}
}
>>
}
Quan dos o més personatges comparteixen un pentagrama, el nom del personatge se sol imprimir a sobre del pentagrama al principi de cada secció corresponent a aquest personatge. Això es pot fer amb element de marcatge. Amb freqüència s’usa un tipus de lletra especial per a aquest propòsit.
\relative c' {
\clef "G_8"
c4^\markup \fontsize #1 \smallCaps Kaspar
c c c
\clef "bass"
a4^\markup \fontsize #1 \smallCaps Melchior
a a a
\clef "G_8"
c4^\markup \fontsize #1 \smallCaps Kaspar
c c c
}
Com a alternativa, si hi ha molts canvis de personatges, pot ser més fàcil establir variables que continguin les definicions de cada personatge, per així poder indicar el canvi de personatge de manera fàcil i concisa.
kaspar = {
\clef "G_8"
\set Staff.shortVocalName = "Kas."
\set Staff.midiInstrument = "voice oohs"
<>^\markup \smallCaps "Kaspar"
}
melchior = {
\clef "bass"
\set Staff.shortVocalName = "Mel."
\set Staff.midiInstrument = "choir aahs"
<>^\markup \smallCaps "Melchior"
}
\relative c' {
\kaspar
c4 c c c
\melchior
a4 a a a
\kaspar
c4 c c c
}
Vegeu també
Manual d’aprenentatge: Organitzar les peces mitjançant variables.
Referència de la notació: Text, Ordres de marcatge de text.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Noms dels personatges ] | [ Amunt : Òpera i musicals ] | [ Música parlada > ] | ||
Guies musicals
Es poden inserir guies musicals a les partitures vocals, als llibres vocals i a las parts orquestrals per indicar quina música d’altra part precedeix immediatament a una entrada. A més a més, les guies se solen inserir a la reducció de piano de les partitures vocals per indicar el que està tocant cada part orquestral. Això serveix d’ajuda al director quan no està disponible una partitura del director.
El mecanisme bàsic per inserir guies s’explica de forma exhaustiva al text principal, vegeu Cites a altres veus i Format de les notes guia. Però quan s’han d’inserir moltes guies, per exemple, com ajuda per al director a una partitura vocal, el nom de l’instrument s’ha de col·locar amb cura just abans del començament de les notes guia, i a prop d’elles. El següent exemple mostra com es fa això.
flute = \relative {
s4 s4 e'' g
}
\addQuote "flute" { \flute }
pianoRH = \relative {
c''4. g8
% poseu el nom de l'instrument que es vol guiar just abans
% de les notes guia i a sobre el pentagrama
<>^\markup { \right-align { \tiny "Flute" } }
\cueDuring "flute" #UP { g4 bes4 }
}
pianoLH = \relative { c4 <c' e> e, <g c> }
\score {
\new PianoStaff <<
\new Staff {
\pianoRH
}
\new Staff {
\clef "bass"
\pianoLH
}
>>
}
Si s’està citant un instrument transpositor, la part instrumental
ha d’especificar la tonalitat de manera que la conversió de les
notes citades es faci automàticament. L’exemple de sota mostra
aquesta transposició per a un clarinet en Si bemoll. Les notes
d’aquest exemple són baixes al pentagrama, per la qual cosa
s’especifica DOWN a \cueDuring (perquè les pliques
s’orientin cap avall) i el nom de l’instrument es col·loca a sota
del pentagrama.
clarinet = \relative c' {
\transposition bes
fis4 d d c
}
\addQuote "clarinet" { \clarinet }
pianoRH = \relative c'' {
\transposition c'
% posició del nom de l'instrument citat a sota del pentagrama
<>_\markup { \right-align { \tiny "Clar." } }
\cueDuring "clarinet" #DOWN { c4. g8 }
g4 bes4
}
pianoLH = \relative { c4 <c' e> e, <g c> }
\score {
<<
\new PianoStaff <<
\new Staff {
\new Voice {
\pianoRH
}
}
\new Staff {
\clef "bass"
\pianoLH
}
>>
>>
}
A partir d’aquests dos exemple hauria de quedar clar que inserir moltes notes guia a una partitura vocal pot ser tediós, i la visió de les notes de la part de piano quedaria amagada. Tanmateix, com mostra el següent fragment de codi, és possible definir una funció musical per reduir la quantitat de text que s’entra i per fer que les notes del piano estiguin més clares.
Fragments de codi seleccionats
Adding orchestral cues to a vocal score
This shows one approach to simplify adding many orchestral cues to the
piano reduction in a vocal score. The music function \cueWhile
takes four arguments: the music from which the cue is to be taken, as
defined by \addQuote, the name to be inserted before the cue
notes, then either #UP or #DOWN to specify either
\voiceOne with the name above the staff or \voiceTwo
with the name below the staff, and finally the piano music in parallel
with which the cue notes are to appear. The name of the cued
instrument is positioned to the left of the cued notes. Many passages
can be cued, but they cannot overlap each other in time.
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
}
>>
>>
}
Vegeu també
Glossari musical: cue-notes.
Referència de la notació: Alineació d’objectes, Direcció i posició, Format de les notes guia, Cites a altres veus, Ús de les funcions musicals.
Fragments de codi: Vocal music.
Referència de funcionament intern: CueVoice.
Advertiments i problemes coneguts
\cueDuring insereix automàticament un context
CueVoice i totes les notes guia es col·loquen dins d’aquest
context. Això significa que no és possible tenir dues seqüències
de notes guia superposades mitjançant aquesta tècnica. Les
seqüències superposades es podrien introduir declarant
explícitament contextos CueVoice separats i usant
\quoteDuring per extraure i inserir les notes citades.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Guies musicals ] | [ Amunt : Òpera i musicals ] | [ Diàlegs a sobre de la música > ] | ||
Música parlada
Efectes com ara el ‘parlato’ o el ‘Sprechgesang’ requereixen que els intèrprets parlin sense una alçada definida però amb el ritme adequat; la notació d’aquests estils es realitza mitjançant figures amb el cap en forma de creu, com es mostra en Caps de nota especials.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Música parlada ] | [ Amunt : Òpera i musicals ] | [ Càntics salms i himnes > ] | ||
Diàlegs a sobre de la música
Els diàlegs a sobre de la música es graven normalment per sobre dels pentagrames en un estil inclinat, amb el començament de cada frase lligat a un moment particular.
Per a interjeccions curtes, hi ha prou amb un simple element de marcatge.
\relative {
a'4^\markup { \smallCaps { Alex - } \italic { He's gone } } a a a
a4 a a^\markup { \smallCaps { Bethan - } \italic Where? } a
a4 a a a
}
Per a frases més llargues pot caldre expandir la música de forma que les paraules càpiguen folgadament. No està previst al LilyPond fer això de manera completament automàtica, i pot caldre alguna intervenció manual sobre la disposició.
Per a frases llargues o passatges amb un diàleg en disposició apretada, pot donar millors resultats la utilització d’un context de lletra. El context Lyrics no s’ha d’associar amb una veu musical; en comptes d’això, cada secció del diàleg rep una duració explícita. Si hi ha una pausa en mig del diàleg, s’ha de separar la paraula final de la resta i dividir-se la duració entre elles de forma que la música subjacent rebi un espaiat continu i adequat.
Si el diàleg s’estén a més d’una línia, caldrà inserir
\breaks manualment i ajustar la col·locació del diàleg per
evitar que s’estengui més enllà del marge dret. L’última paraula
de l’últim compàs d’una línia ha de separar-se també, com s’ha
vist abans.
Heus ací un exemple que il·lustra com es pot fer.
music = \relative {
\repeat unfold 3 { a'4 a a a }
}
dialogue = \lyricmode {
\markup {
\fontsize #1 \upright \smallCaps Abe:
"Say this over measures one and"
}4*7
"two"4 |
\break
"and this over measure"4*3
"three"4 |
}
\score {
<<
\new Lyrics \with {
\override LyricText.font-shape = #'italic
\override LyricText.self-alignment-X = #LEFT
}
{ \dialogue }
\new Staff {
\new Voice { \music }
}
>>
}
Vegeu també
Referència de la notació: Duració manual de les síl·labes, Text.
Referència de funcionament intern: LyricText.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Diàlegs a sobre de la música ] | [ Amunt : Música vocal ] | [ Referències per a càntics i salms > ] | ||
2.1.7 Càntics salms i himnes
La música i la lletra dels càntics, salms i himnes solen seguir un format ben establert dins de qualsevol església en particular. Tot i que els formats poden diferir d’una església a una altra, els problemes de gravat que sorgeixen són força semblants, i s’estudien a aquesta secció.
| Referències per a càntics i salms | ||
| Preparació d’un càntic | ||
| Puntuació d’un salm | ||
| Compassos parcials a melodies d’himne |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Càntics salms i himnes ] | [ Amunt : Càntics salms i himnes ] | [ Preparació d'un càntic > ] | ||
Referències per a càntics i salms
El gravat del cant gregorià en diferents estils de notació es descriuen a Notació antiga.
Vegeu també
Referència de la notació: Notació antiga.
Snippets: Vocal music.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Referències per a càntics i salms ] | [ Amunt : Càntics salms i himnes ] | [ Puntuació d'un salm > ] | ||
Preparació d’un càntic
La preparació moderna dels càntics utilitza notació moderna amb un nombre variable d’elements agafats de la notació antiga. Algunes dels elements i mètodes a considerar es presenten aquí.
Els càntics fan servir amb freqüència figures negres sense plica per indicar l’alçada, agafant les duracions del ritme parlar del text.
stemOff = { \hide Staff.Stem }
\relative c' {
\stemOff
a'4 b c2 |
}
Els càntics sovint ometen les línies divisòries o utilitzen barres de compàs retallades o discontínues per indica pauses a la música. Per ometre totes les barres de compàs de tots els pentagrames, suprimiu completament el gravador de barres:
\score {
\new StaffGroup <<
\new Staff {
\relative {
a'4 b c2 |
a4 b c2 |
a4 b c2 |
}
}
\new Staff {
\relative {
a'4 b c2 |
a4 b c2 |
a4 b c2 |
}
}
>>
\layout {
\context {
\Staff
\remove "Bar_engraver"
}
}
}
Les línies divisòries també es poden treure pentagrama a pentagrama:
\score {
\new ChoirStaff <<
\new Staff
\with { \remove "Bar_engraver" } {
\relative {
a'4 b c2 |
a4 b c2 |
a4 b c2 |
}
}
\new Staff {
\relative {
a'4 b c2 |
a4 b c2 |
a4 b c2 |
}
}
>>
}
Per suprimir les línies divisòries sols d’una secció de música,
tracteu-la com si fos una cadència. Si la secció és llarga, us
podria caldre inserir línies divisòries “mudes” amb
\bar "" per indicar on es pot produir el salt de línia.
\relative a' {
a4 b c2 |
\cadenzaOn
a4 b c2
a4 b c2
\bar ""
a4 b c2
a4 b c2
\cadenzaOff
a4 b c2 |
a4 b c2 |
}
Els silencis o pauses als càntics poden indicar-se mitjançant barres de compàs modificades.
\relative a' {
a4
\cadenzaOn
b c2
a4 b c2
\bar "'"
a4 b c2
a4 b c2
\bar ";"
a4 b c2
\bar "!"
a4 b c2
\bar "||"
}
Com a alternativa, s’usa a vegades la notació del cant gregorià
per a les pauses o silencis, tot i que la resta de la notació
sigui moderna. Aquest exemple fa servir una marca \breathe
modificada:
divisioMinima = {
\once \override BreathingSign.stencil = #ly:breathing-sign::divisio-minima
\once \override BreathingSign.Y-offset = #0
\breathe
}
divisioMaior = {
\once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maior
\once \override BreathingSign.Y-offset = #0
\breathe
}
divisioMaxima = {
\once \override BreathingSign.stencil = #ly:breathing-sign::divisio-maxima
\once \override BreathingSign.Y-offset = #0
\breathe
}
finalis = {
\once \override BreathingSign.stencil = #ly:breathing-sign::finalis
\once \override BreathingSign.Y-offset = #0
\breathe
}
\score {
\relative {
g'2 a4 g
\divisioMinima
g2 a4 g
\divisioMaior
g2 a4 g
\divisioMaxima
g2 a4 g
\finalis
}
\layout {
\context {
\Staff
\remove "Bar_engraver"
}
}
}
Els càntics solen ometre la indicació de compàs i sovint també ometen la clau.
\score {
\new Staff {
\relative {
a'4 b c2 |
a4 b c2 |
a4 b c2 |
}
}
\layout {
\context {
\Staff
\remove "Bar_engraver"
\remove "Time_signature_engraver"
\remove "Clef_engraver"
}
}
}
Els càntics de salms en la tradició anglicana solen ser senzills, amb set compassos de música, o dobles, amb dos períodes de set compassos. Cada grup de set compassos es divideix en dues meitats, que corresponen a les dues meitats de cada vers, normalment separats mitjançant una doble línia divisòria. Sols s’utilitzen rodones i blanques. El primer compàs de cada meitat sempre conté un únic acord en rodones. Aquest és la “nota de recitat”. Els càntics se solen centrar sobre la pàgina.
SopranoMusic = \relative {
g'1 | c2 b | a1 | \bar "||"
a1 | d2 c | c b | c1 | \bar "||"
}
AltoMusic = \relative {
e'1 | g2 g | f1 |
f1 | f2 e | d d | e1 |
}
TenorMusic = \relative {
c'1 | c2 c | c1 |
d1 | g,2 g | g g | g1 |
}
BassMusic = \relative {
c1 | e2 e | f1 |
d1 | b2 c | g' g | c,1 |
}
global = {
\time 2/2
}
% Useu marcatge per centrar el cant sobre la pàgina
\markup {
\fill-line {
\score { % centrat
<<
\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"
}
}
} % Final de la partitura
}
} % Final del marcatge
Altres enfocaments per a la preparació d’aquest càntic es mostren al primer dels següents fragments de codi.
Fragments de codi seleccionats
Chant or psalms notation
This form of notation is used for Psalm chant, where verses aren’t always the same length.
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 "||"
}
}
Els càntics i altres textos litúrgics poden disposar-se d’una forma més lliure, i possiblement usin elements de notació agafats de la música antiga. Sovint la lletra s’imprimeix per sota i alineada amb les notes. En aquest cas, les notes es disposen espaiades d’acord amb les síl·labes en comptes de fer-lo amb les duracions de les notes.
Ancient notation template – modern transcription of gregorian music
This example demonstrates how to do modern transcription of Gregorian music. Gregorian music has no measure, no stems; it uses only half and quarter note heads, and special marks, indicating rests of different length.
\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
}
}
}
Vegeu també
Manual d’aprenentatge: Visibilitat i color dels objectes, Plantilles de conjunts vocals.
Referència de la notació: Notació antiga, Barres de compàs, Modificació dels complements de context, Gravat del cant gregorià, Música sense compassos, Visibilitat dels objectes.
Puntuació d’un salm
El text d’un salm anglicà se sol imprimir en versos separats a sota del cant.
Els cants senzills (amb set compassos) es repeteixen per a cada vers. Els cants dobles (amb 14 compassos) es repeteixen per a cada parell de versos. S’insereixen marques dins del text per indicar la forma en la qual encaixen amb el cant. Cada vers es divideix en dues meitats. Se sol utilitzar un signe de dos punts per indicar aquesta divisió. Això correspon a la doble línia divisòria de la música. El text abans dels dos punts es canta amb els tres primers compassos de la música; el text després dels dos punts es canta amb els últims quatre compassos.
S’insereixen línies de compàs simples (o en alguns casos una coma
invertida o un altre símbol semblant) entre el text per indicar on
cauen les línies divisòries de la música. Al mode de marcatge, es
pot introduir una línia de compàs simple amb el símbol de
comprovació de compàs, la barra vertical, |.
\markup {
\fill-line {
\column {
\left-align {
\line { O come let us sing | unto the | Lord : let }
\line { us heartily rejoice in the | strength of | our }
\line { sal- | -vation. }
}
}
}
}
Altres símbols poden requerir glifs dels tipus de lletra
fetaMusic. Per veure més detells, consulteu
Tipus de lletra.
tick = \markup {
\raise #1 \fontsize #-5 \musicglyph #"scripts.rvarcomma"
}
\markup {
\fill-line {
\column {
\left-align {
\line { O come let us sing \tick unto the \tick Lord : let }
\line {
us heartily rejoice in the \tick strength of \tick our
}
\line { sal \tick vation. }
}
}
}
}
On hi ha una rodona a un compàs, tot el text que correspon a aquest compàs es recita sobre aquesta nota al ritme de la paraula. On hi ha dues notes en un compàs, sol haver-hi sols una o dues síl·labes corresponents. Si hi ha més de dues síl·labes, se sol inserir un punt per indicar on es produeix el canvi de nota.
dot = \markup {
\raise #0.7 \musicglyph #"dots.dot"
}
tick = \markup {
\raise #1 \fontsize #-5 \musicglyph #"scripts.rvarcomma"
}
\markup {
\fill-line {
\column {
\left-align {
\line {
O come let us sing \tick unto \dot the \tick Lord : let
}
\line {
us heartily rejoice in the \tick strength of \tick our
}
\line { sal \tick vation. }
}
}
}
}
A alguns salteris (llibres de salms) s’usa un asterisc per indicar un tall a una secció recitada en lloc d’una coma i les síl·labes accentuades o lleugerament allargades s’indiquen en estil negreta.
dot = \markup {
\raise #0.7 \musicglyph #"dots.dot"
}
tick = \markup {
\raise #1 \fontsize #-5 \musicglyph #"scripts.rvarcomma"
}
\markup {
\fill-line {
\column {
\left-align {
\line { Today if ye will hear his voice * }
\line {
\concat { \bold hard en }
| not your | hearts : as in the pro-
}
\line { vocation * and as in the \bold day of tempt- | }
\line { -ation | in the | wilderness. }
}
}
}
}
A altres salteris es col·loca un accent sobre la síl·laba per indicar l’èmfasi.
tick = \markup {
\raise #2 \fontsize #-5 \musicglyph #"scripts.rvarcomma"
}
\markup {
\fill-line {
\column {
\left-align {
\line {
O come let us \concat {
si \combine \tick ng
}
| unto the | Lord : let
}
\line {
us heartily \concat {
rejo \combine \tick ice
}
in the | strength of | our
}
\line { sal- | -vation. }
}
}
}
}
L’us del marcatge per centrar text i per disposar les línies en columnes es descriu a Donar format al text.
Vegeu també
Manual d’aprenentatge Salms, Plantilles de conjunts vocals.
Referència de la notació: Tipus de lletra, Donar format al text.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Puntuació d'un salm ] | [ Amunt : Càntics salms i himnes ] | [ Música vocal antiga > ] | ||
Compassos parcials a melodies d’himne
Freqüentment, les melodies d’himne comencen i acaben cada línia de
música amb compassos parcials de forma que cada línia de música
correspon exactament amb una línia de text. Això requereix una
ordre \partial al principi de la música i ordres
\bar "|" o \bar "||" al final de cada línia.
Hymn template
This code shows one way of setting out a hymn tune when each line starts and ends with a partial measure. It also shows how to add the verses as stand-alone text under the music.
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
2.1.8 Música vocal antiga
Es pot gravar la música vocal en estil de tipografia antiga, com s’explica a Notació antiga.
Vegeu també
Referència de la notació: Notació antiga.
2.2 Teclats i altres instruments de pentagrames múltiples
Aquesta secció s’ocupa de diversos aspectes de la notació musical que són exclusius dels instruments de teclat i d’altres instruments la notació dels quals es realitza sobre diversos pentagrames, como l’arpa o el vibràfon. A efectes de nomenclatura, en aquesta secció s’anomenen abreujadament “teclats” a tot aquest grup d’instruments de diversos pentagrames, tot i que alguns no tenen teclat.
| 2.2.1 Notació comuna per a instruments de teclat | ||
| 2.2.2 Piano | ||
| 2.2.3 Acordió | ||
| 2.2.4 Arpa |
2.2.1 Notació comuna per a instruments de teclat
Aquesta secció tracta aspectes de notació que poden aparèixer a gairebé tots els instruments de teclat.
| Referències per a teclats | ||
| Canvi manual de pentagrama | ||
| Canvi automàtic de pentagrama | ||
| Línies de canvi de pentagrama | ||
| Pliques de pentagrama creuat |
Referències per a teclats
La notació dels instruments de teclat se sol realitzar amb
sistemes de piano. Aquesta notació consisteix de dos pentagrames
normals agrupats mitjançant una clau. També s’utilitza aquesta
notació per a d’altres instruments de teclat. La música d’orgue
s’escriu normalment amb dos pentagrames dins d’un grup
PianoStaff i un tercer pentagrama normal per als pedals.
Els pentagrames són fins a un cert punt independents, però a vegades les veus poden creuar-se entres els dos pentagrames. Aquesta secció tracta sobre tècniques de notació que són particulars de la música de teclat.
A d’altres llocs es tracten diversos problemes comuns de la música de teclat:
- La música per a teclat sol contenir diverses veus i el nombre d’aquestes veus pot variar àmpliament; això es descriu a Resolució de les col·lisions.
- La música per a teclat es pot escriure en paral·lel, com es descriu a Escriptura de música en paral·lel.
- Els matisos dinàmics es poden col·locar en un context
Dynamics, entre els dos contextosStaffper alinear les indicacions de matís sobre una línia horitzontal equidistant dels dos pentagrames; vegeu Matisos dinàmics. - Les digitacions s’indiquen com pot veure’s a Indicacions de digitació.
- Les indicacions de pedal d’orgue s’insereixen com articulacions, vegeu Llista d’articulacions.
- Les línies verticals de reixeta es poden mostrar com es descriu a Línies de reixeta.
- La música per a teclat inclou sovint lligadures Laissez vibrer, aixi com lligadures sobre arpegis i trèmols, descrits a Lligadures d’unió.
- La col·locació d’arpegis a través de diverses veus i pentagrames es presenta a Arpegi.
- Les indicacions de trèmol es descriuen a Repeticions de trèmol.
- Es mostren diversos ajustament que poden caldre a la música per a teclat a Exemple real de música.
- Es poden usar les notes ocultes per produir lligadures d’unió que es creuen entre veus, com s’explica a Altres aplicacions dels ajustaments.
Vegeu també
Manual d’aprenentatge: Exemple real de música, Altres aplicacions dels ajustaments.
Referència de la notació: Noms d’instruments, Resolució de les col·lisions, Escriptura de música en paral·lel, Indicacions de digitació, Llista d’articulacions, Línies de reixeta, Lligadures d’unió, Arpegi, Repeticions de trèmol.
Referència de funcionament intern: PianoStaff.
Fragments de codi: Keyboards.
Canvi manual de pentagrama
Les veus es poden canviar de pentagrama manualment usant l’ordre
\change Staff = nom_del_pentagrama
La cadena nom_del_pentagrama és el nom del pentagrama.
Canvia la veu actual del seu pentagrama en curs al pentagrama de
nom nom_del_pentagrama. Els valors més corrents per a
nom_del_pentagrama són "dalt" i
"sota", o bé "MD" i "MI".
El pentagrama al qual salta la veu ha d’existir en el moment del salt. Si cal, els pentagrames s’han de “mantenir amb vida”, vegeu Mantenir vius els contextos.
Les notes de pentagrama creuat reben la barra automàticament:
\new PianoStaff <<
\new Staff = "dalt" {
<e' c'>8
\change Staff = "down"
g8 fis g
\change Staff = "dalt"
<g'' c''>8
\change Staff = "sota"
e8 dis e
\change Staff = "dalt"
}
\new Staff = "sota" {
\clef bass
% manté viu el pentagrama
s1
}
>>
Si li cal algun ajustament al barrat, feu en primer lloc els canvis en les adreces de les pliques. Les posicions de les barres es mesuren posteriorment a partir del centre del pentagrama que està més a prop de la barra. Per veure un exemple senzill d’ajustament de les barres, consulteu Ajustament de la notació amb superposicions.
Es pot produir una superposició de la notació quan les veus es creuen d’un pentagrama a un altre:
\new PianoStaff <<
\new Staff = "up" {
\voiceOne
% Fes espai per a la digitació a la veu de pentagrama creuat
\once\override DynamicLineSpanner.staff-padding = #4
e''2\p\< d''\>
c''1\!
}
\new Staff = "down" <<
{
\clef bass
s4. e,8\rest g,2\rest
c1
} \\ {
c8\( g c'
\change Staff = "up"
e' g' b'-3 a' g'\)
f'1
}
>>
>>
La plica i la lligadura se superposen a la línia del símbol de dinàmica perquè la resolució automàtica de col·lisions se suspèn per a les barres, lligadures i altres objectes d’extensió que connecten notes ubicades en diferents pentagrames, així com per a les pliques i articulacions si la seva col·locació està afectada per un objecte d’extensió de pentagrama creuat. Les col·lisions resultants es poden resoldre manualment on calgui, utilitzant els mètodes descrits a la secció Ajustament de la notació amb superposicions.
Vegeu també
Manual de aprenentatge: Ajustament de la notació amb superposicions.
Referència de la notació: Pliques, Barres automàtiques, Mantenir vius els contextos.
Fragments de codi: Keyboards.
Referència de funcionament intern: Beam, ContextChange.
Advertiments i problemes coneguts
El mecanismes per evitar les col·lisions de barres de corxera no funciona per a les barres automàtiques que finalitzen just abans d’un canvi de pauta. En aquest cas, feu servir barres manuals.
Canvi automàtic de pentagrama
Es pot fer que les veus canviïn automàticament entre els pentagrames inferior i superior. La sintaxi per aconseguir això és
\autochange …música…
Això crearà dos pentagrames del grup actual de pentagrames
(normalment un PianoStaff), anomenats "up" (a dalt)
i "down" (a sota). El pentagrama inferior estarà en clau
de Fa de forma predeterminada. El canviador automàtic fa el canvi
basant-se en l’alçada (el Do central és el punt d’inflexió),
i s’avança saltant sobre els silencis per fer canvis per avançat.
\new PianoStaff {
\autochange {
g4 a b c'
d'4 r a g
}
}
Es pot especificar altres notes per al punt de tall. Si els pentagrames no han estat instanciats de forma explícita, es poden usar altre claus.
music = {
g8 b a c' b8 d' c'8 e'
d'8 r f' g' a'2
}
\autochange d' \music
\autochange b \with { \clef soprano } \music
\autochange d' \with { \clef alto } \with { \clef tenor } \music
Una secció marcada \relative que es troba fora de
\autochange no té efecte sobre les notes de la música:
per tant, en cas necessari escriviu \relative dins de
\autochange.
Si cal més control sobre els pentagrames individuals, es poden
crear manualment amb els noms "up" i "down".
Aleshores, l’ordre \autochange alternarà la veu entre els
pentagrames existents.
Nota: Si es creen els pentagrames manualment, s’han
d’anomenar "up" i "down" (en anglès).
Per exemple, el que segueix cal per col·locar una armadura de tonalitat al pentagrama inferior:
\new PianoStaff <<
\new Staff = "up" {
\new Voice = "melodiaU" {
\key g \major
\autochange \relative {
g8 b a c b d c e
d8 r fis, g a2
}
}
}
\new Staff = "down" {
\key g \major
\clef bass
}
>>
Vegeu també
Referència de la notació: Canvi manual de pentagrama.
Fragments de codi: Keyboards.
Referència de funcionament intern: AutoChangeMusic.
Advertiments i problemes coneguts
Els canvis de pentagrama poden no acabar en llocs òptims. Per aconseguir una sortida d’alta qualitat és millor especificar manualment els canvis de pentagrama.
Els acords no es divideixen entre els pentagrames; s’assignen a un pentagrama en funció de la primera nota anomenada dins de la construcció de l’acord.
Línies de canvi de pentagrama
Quan una veu canvia a un altre pentagrama, es pot imprimir automàticament una línia que connecti les notes:
\new PianoStaff <<
\new Staff = "one" {
\showStaffSwitch
c'1
\change Staff = "two"
b2 a
}
\new Staff = "two" {
\clef bass
s1*2
}
>>
Instruccions predefinides
\showStaffSwitch,
\hideStaffSwitch.
Vegeu també
Fragments de codi: Keyboards.
Referència de funcionament intern: Note_head_line_engraver, VoiceFollower.
Pliques de pentagrama creuat
Es poden fer acords que creuen els pentagrames usant el gravador
Span_stem_engraver. S’ha d’anar en compte de tenir
seguretat que les barres automàtiques no uneixen les notes d’una
pauta quan no cal que estiguin unides a l’altra pauta.
\layout {
\context {
\PianoStaff
\consists #Span_stem_engraver
}
}
{
\new PianoStaff <<
\new Staff {
<b d'>4 r d'16\> e'8. g8 r\!
e'8 f' g'4 e'2
}
\new Staff {
\clef bass
\voiceOne
\autoBeamOff
\crossStaff { <e g>4 e, g16 a8. c8} d
\autoBeamOn
g8 f g4 c2
}
>>
}
De moment no es pot especificar aquest gravador pel seu nom entre
cometes, sinó prefixant el nom amb un símbol de coixinet #,
a causa de com està implementat.
Fragments de codi seleccionats
Indicating cross-staff chords with arpeggio bracket
An arpeggio bracket can indicate that notes on two different staves are
to be played with the same hand. In order to do this, the
PianoStaff must be set to accept cross-staff arpeggios and the
arpeggios must be set to the bracket shape in the PianoStaff
context.
(Debussy, Les collines d’Anacapri, m. 65)
\new PianoStaff <<
\set PianoStaff.connectArpeggios = ##t
\override PianoStaff.Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket
\new Staff {
\relative c' {
\key b \major
\time 6/8
b8-.(\arpeggio fis'-.\> cis-. e-. gis-. b-.)\!\fermata^\laissezVibrer
\bar "||"
}
}
\new Staff {
\relative c' {
\clef bass
\key b \major
<<
{
<a e cis>2.\arpeggio
}
\\
{
<a, e a,>2.
}
>>
}
}
>>
Vegeu també
Fragments de codi: Keyboards.
Referencia de funcionament intern: Stem.
2.2.2 Piano
Aquesta secció tracta d’aspectes de la notació directament relacionats amb el piano.
| Pedals de piano |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Piano ] | [ Amunt : Piano ] | [ Acordió > ] | ||
Pedals de piano
En general, els pianos tenen tres pedals que alteren la forma de produir el so: el pedal de manteniment (pedal dret o pedal forte), el pedal sostenuto (sos., pedal central) i el pedal una corda (U.C., pedal esquerre). Els pedals de manteniment com el pedal dret del piano es troben també al vibràfon i a la celesta.
\relative {
c''4\sustainOn d e g
<c, f a>1\sustainOff
c4\sostenutoOn e g c,
<bes d f>1\sostenutoOff
c4\unaCorda d e g
<d fis a>1\treCorde
}
Hi ha tres estils d’indicacions de pedal: textual, clau i mixta. El pedal dret i el pedal d’una corda utilitzen l’estil textual de forma predeterminada, mentre que el pedal sostenuto utilitza el mètode mixt de forma predeterminada.
\relative {
c''4\sustainOn g c2\sustainOff
\set Staff.pedalSustainStyle = #'mixed
c4\sustainOn g c d
d\sustainOff\sustainOn g, c2\sustainOff
\set Staff.pedalSustainStyle = #'bracket
c4\sustainOn g c d
d\sustainOff\sustainOn g, c2
\bar "|."
}
La col·locació de les ordres de pedal es corresponen amb el moviment físic del pedal dret al transcurs de l’execució. L’ús del pedal fins la barra final de compàs s’indica mitjançant l’omissió de l’ordre final d’aixecar el pedal.
Les indicacions de pedal es poden posar dins d’un context
Dynamics, que els alinea sobr una línia horitzontal.
Vegeu també
Referència de la notació: Lligadures d’unió.
Fragments de codi: Keyboards.
Referència de funcionament intern: SustainPedal, SustainPedalLineSpanner, SustainEvent, SostenutoPedal, SostenutoPedalLineSpanner, SostenutoEvent, UnaCordaPedal, UnaCordaPedalLineSpanner, UnaCordaEvent, PianoPedalBracket, Piano_pedal_engraver.
2.2.3 Acordió
Aquesta secció s’ocupa de la notació que és exclusiva de l’acordió.
| Símbols de Discant |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Acordió ] | [ Amunt : Acordió ] | [ Arpa > ] | ||
Símbols de Discant
Els acordions se solen construir amb més d’un conjunt de llengüetes que poden estar a l’uníson, una octava per sobre o una octava per sota de l’alçada escrita. Cada fabricant d’acordions utilitza diferents nom per als canvis que seleccionen les diferents combinacions de llengüetes, com oboè, musette o bandoneó, de manera que s’ha començat a usar un sistema de signes per simplificar les ordres d’execució.
Fragments de codi seleccionats
Accordion register symbols
Accordion register symbols are available as \markup as well as
as standalone music events (as register changes tend to occur between
actual music events. Bass registers are not overly standardized. The
available commands can be found in ’Accordion Registers’ in the
Notation Reference.
#(use-modules (scm accreg))
\new PianoStaff
<<
\new Staff \relative {
\clef treble \discant "10" r8 s32 f'[ bes f] s e[ a e] s d[ g d] s16 e32[ a]
<<
{ r16 <f bes> r <e a> r <d g> }
\\
{ d r a r bes r }
>> |
<cis e a>1
}
\new Staff \relative {
\clef treble \freeBass "1" r8 d'32 s16. c32 s16. bes32 s16. a32[ cis] s16
\clef bass \stdBass "Master"
<<
{ r16 <f, bes d>^"b" r <e a c>^"am" r <d g bes>^"gm" |
<e a cis>1^"a" }
\\
{ d8_"D" c_"C" bes_"B" | a1_"A" }
>>
}
>>
Vegeu també
Fragments de codi: Keyboards.
2.2.4 Arpa
Aquesta secció tracta sobre temes de notació específics de l’arpa.
| Referències per a notació d’arpa | ||
| Pedals d’arpa |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Arpa ] | [ Amunt : Arpa ] | [ Pedals d'arpa > ] | ||
Referències per a notació d’arpa
Certes característiques comunes de la música d’arpa s’estudien a altres parts de la documentació:
- El glissando és la tècnica més característica de l’arpa. Glissando.
- El bisbiglando s’escriu com un trèmol, Repeticions de trèmol.
- Els harmònics naturals s’estudien sota l’epígraf Harmònics.
- Per als arpegis dirigits i els no arpegis, vegeu Arpegi.
Vegeu també
Referència de la notació: Repeticions de trèmol, Glissando, Arpegi, Harmònics.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Referències per a notació d'arpa ] | [ Amunt : Arpa ] | [ Instruments de corda sense trasts > ] | ||
Pedals d’arpa
Les arpes tenen set cordes per octava que poden sonar a l’alçada natural, bemoll o sostingut. A l’arpa de palanques o arpa celta, cada corda s’ajusta individualment, però a les arpes de pedals totes les cordes amb igual nom de nota es controlen amb un únic pedal. Vist d’esquerra a dreta des de la posició de l’executant, els pedals son Re, Do, Si a l’esquerra i Mi, Fa, Sol i La a la dreta. La posició dels pedals es pot indicar amb indicacions textuals:
\textLengthOn
cis''1_\markup \concat \vcenter {
[D \flat C \sharp B|E \sharp F \sharp G A \flat] }
c''!1_\markup \concat \vcenter {
[ C \natural ] }
o mitjançant diagrames de pedal:
\textLengthOn
cis''1_\markup { \harp-pedal "^v-|vv-^" }
c''!1_\markup { \harp-pedal "^o--|vv-^" }
L’ordre \harp-pedal accepta una cadena de caràcters en la
qual ^ és la posició alta del pedal (alçada bemoll),
- és la posició intermèdia (alçada natural), v és la
posició bixa (alçada sostingut), i | és la línia vertical
separadora. Si s’anteposa o, el següent símbol de pedal es
rodeja per una el·lipsi.
Vegeu també
Referència de la notació: Scripts de text, Instrument Specific Markup.
2.3 Instruments de corda sense trasts
Aquesta secció aporta informació i referències que resulten útils si s’escriu música per a instruments de cords sense trasts, principalment instruments de corda orquestrals.
| 2.3.1 Notació comuna per a cordes sense trasts |
2.3.1 Notació comuna per a cordes sense trasts
Hi ha poca notació especialitzada per als instruments de cordes sense trasts. La notació de la música es realitza en un sol pentagrama, i se sol usar una sola veu. Poden caldre dues veus per a alguns passatges a dobles cordes o en divisi.
| Referències per a cordes sense trasts | ||
| Indicacions d’arc | ||
| Harmònics | ||
| Pizzicato de Bartok (Snap) |
Referències per a cordes sense trasts
La major part de la notació que resulta d’utilitat per a les cordes orquestrals i altres instruments d’arc s’estudia en altres parts del manual:
- Les indicacions textuals com “pizz.” i “arco” s’afegeixen com text simple: vegeu Scripts de text.
- Las digitacions, entre elles la indicació de polze, es descriuen a Indicacions de digitació.
- Les dobles cordes s’indiquen normalment escrivint un acord, vegeu Notes a un acord. Hi ha altres indicacions que es poden afegir per a la interpretació d’acords. Vegeu Arpegi.
- Hi ha plantilles per a quartet de corda a Plantilles de quartet de corda. D’altres plantilles es mostres a la secció de fragments de codi.
Vegeu també
Manual d’aprenentatge: Plantilles de quartet de corda.
Referència de la notació: Scripts de text, Indicacions de digitació, Notes a un acord, Arpegi.
Fragments de codi: Unfretted strings.
Indicacions d’arc
Les indicacions d’arc es creen com articulacions, que es descriuen a Articulacions i ornaments.
Les ordres d’arc \upbow (arc amunt i \downbow (arc
avall) s’usen com a lligadures d’expressió de la manera següent:
\relative { c''4(\downbow d) e(\upbow f) }
Es poden afegir números romans com a números de corda (en substitució de l’opció predeterminada, que son xifres aràbigues rodejades per un cercle), tal i com s’explica a Indicació dels números de corda.
Com a alternativa, es poden imprimir les indicacions de corda mitjançant ordres de marcatge; els símbols d’articulació també poden indicar cordes a l’aire.
a'4 \open
\romanStringNumbers
a'\2
a'2^\markup { \small "sul A" }
Instruccions predefinides
\downbow,
\upbow,
\open,
\romanStringNumbers.
Vegeu també
Referència de la notació: Articulacions i ornaments, Indicació dels números de corda, Lligadures d’expressió.
Harmònics
Harmònics naturals
La notació dels harmònics naturals es pot realitzar de diverses formes. Generalment, una nota amb el cap en forma de rombe significa tocar (sense prémer) la corda en el lloc on es trepitjaria la nota si no fos un rombe.
\relative d'' {
d4 e4.
\harmonicsOn
d8 e e
d4 e4.
\harmonicsOff
d8 e e
}
Com a possibilitat alternativa està la de mostrar un cap normal de nota a l’alçada de la nota que ha de sonar, amb un petit cercle que indica que s’ha de tocar com a harmònic:
d''2^\flageolet d''_\flageolet
Es pot fer un cercle de mida més petita, vegeu la llista de fragments de codi a Referències per a cordes sense trasts.
Harmònics artificials
La notació dels harmònics artificials es realitza amb dues notes, una amb un cap normal que indica la posició on es trepitja, i l’altra amb un cap en forma de rombe buit per indicar la posició on es frega la corda (sense trepitjar) per produir l’harmònic.
Els harmònics artificials indicats amb \harmonic no
presenten els puntets. S’ha d’activar la propietat de context
harmonicDots si calen els puntets.
\relative e' {
<e a\harmonic>2. <c g'\harmonic>4
\set harmonicDots = ##t
<e a\harmonic>2. <c g'\harmonic>4
}
Vegeu també
Glossari musical: harmonics.
Referencia de la notació: Caps de nota especials, Referències per a cordes sense trasts.
Pizzicato de Bartok (Snap)
El pizzicato snap (també conegut com a “pizzicato de Bartók”) és un tipus de pizzicato en el qual la corda es polsa cap amunt (i no lateralment) de forma deliberada, perquè colpegi la fusta del diapasó.
\relative {
c'4\snappizzicato
<c' e g>4\snappizzicato
<c' e g>4^\snappizzicato
<c, e g>4_\snappizzicato
}
2.4 Instruments de corda amb trasts
Aquesta secció tracta de diversos aspectes de la notació musical que són exclusius dels instruments de corda amb trasts.
| 2.4.1 Notació comuna per a cordes amb trasts | ||
| 2.4.2 Guitarra | ||
| 2.4.3 Banjo | ||
| 2.4.4 Laud |
2.4.1 Notació comuna per a cordes amb trasts
Aquesta secció s’ocupa de la notació comuna exclusiva dels instruments de corda amb trasts.
Referències per a cordes amb trasts
La notació musical per a instruments de corda amb trasts es
realitza normalment a una sola pauta, ja sigui en notació musical
tradicional o en tabulatura. A vegades es combinen ambdós tipus,
i és habitual a la música popular utilitzar diagrames d’acords a
sobre d’un pentagrama de notació tradicional. La guitarra i el
banjo són instruments transpositors, que sonen una octava per sota
del que està escrit. Les partitures per a aquests instruments han
d’usar la clau de Sol octava baixa "treble_8" (o
\transposition c per obtenir una sortida MIDI correcta).
D’altres elements relatius als instruments de corda amb trasts
s’estudien a d’altres parts del manual:
- Les digitacions s’indiquen com s’explica a Indicacions de digitació.
- Les instruccions per a lligadures Laissez vibrer així com lligadures d’unió sobre arpegis i trèmols estan a Lligadures d’unió.
- Les ordres per a la gestió de diverses veus es troben a Resolució de les col·lisions.
- Les ordres per a la indicació de harmònics està a Harmònics.
Vegeu també
Referència de la notació: Indicacions de digitació, Lligadures d’unió, Resolució de les col·lisions, Noms d’instruments, Escriptura de música en paral·lel, Arpegi, Llista d’articulacions, Clau, Transposició dels instruments.
Indicació dels números de corda
Es pot indicar la corda en la qual s’ha de tocar una nota afegint
\ número a una nota.
\clef "treble_8" c4\5 e\4 g2\3 <c\5 e\4 g\3>1
Quan s’usen al mateix temps digitacions i indicacions del número de corda, la seva col·locació es pot controlar per l’ordre en el qual apareixen aquests elements al codi sols si apareixen dins d’un acord explícit: aplicat a acords complets o notes individuals fora d’acords, les digitacions es col·loquen usant un mecanisme diferent.
\clef "treble_8" g4\3-0 g-0\3 <g\3-0> <g-0\3>
Els números de corda (així com als instruments sense trasts, on és obligatori) també es poden imprimir en nombres romans i col·locar-se a sota del pentagrama, en comptes de a sobre d’ell.
\clef "treble_8" c'2\2 a\3 \romanStringNumbers c'\2 \set stringNumberOrientations = #'(down) a\3 \arabicStringNumbers g1\4
Fragments de codi seleccionats
Controlling the placement of chord fingerings
The placement of fingering numbers can be controlled precisely. For fingering orientation to apply, you must use a chord construct <> even if it is a single note.
\relative c' {
\set fingeringOrientations = #'(left)
<c-1 e-3 a-5>4
\set fingeringOrientations = #'(down)
<c-1 e-3 a-5>4
\set fingeringOrientations = #'(down right up)
<c-1 e-3 a-5>4
\set fingeringOrientations = #'(up)
<c-1 e-3 a-5>4
\set fingeringOrientations = #'(left)
<c-1>2
\set fingeringOrientations = #'(down)
<e-3>2
}
Allowing fingerings to be printed inside the staff
By default, vertically oriented fingerings are positioned outside the staff. However, this behavior can be canceled. Note: you must use a chord construct <>, even if it is only a single note.
\relative c' {
<c-1 e-2 g-3 b-5>2
\override Fingering.staff-padding = #'()
<c-1 e-2 g-3 b-5>4 <g'-0>
}
Instruccions predefinides
\arabicStringNumbers,
\romanStringNumbers.
Vegeu també
Referència de la notació: Indicacions de digitació.
Fragments de codi: Fretted strings.
Referència de funcionament intern: StringNumber, Fingering.
Tabulatures predeterminades
La notació per a instruments de corda polsada es realitza sovint utilitzant un sistema de dits i xifres, o tabulatura. A diferència de la notació tradicional, les notes no es designen mitjanant figures, sinó mitjanant números (o símbols semblants a lletres de la intavolatura històrica). Les línies de la tabulatura indiquen sobre quina corda s’ha de tocar la nota, i el número sobre la línia indica el trast en la quan la corda corresponent s’ha de trepitjar. Les notes que s’han de tocar simultàniament s’alineen en sentit vertical.
De forma predeterminada, la corda 1 és la més aguda i correspon a
la línia superior de la pauta TabStaff. La afinació
predeterminada de les cordes del TabStaff és l’afinació
estàndard de guitarra (amb 6 cordes). Les notes s’imprimeixen com
a tabulatura, usant els contextos TabStaff i TabVoice.
S’afegeix automàticament una clau cal·ligràfica de tabulatura.
\new TabStaff \relative {
a,8 a' <c e> a
d,8 a' <d f> a
}
Les tabulatures predeterminades no contenen símbols per a la duració de les notes ni cap altre símbol musical, com ara indicacions expressives.
symbols = {
\time 3/4
c4-.^"Allegro" d( e)
f4-.\f g a^\fermata
\mark \default
c8_.\<\( c16 c~ 2\!
c'2.\prall\)
}
\score {
<<
\new Staff { \clef "G_8" \symbols }
\new TabStaff { \symbols }
>>
}
Si volem que tots els símbols musicals que s’usen a la notació
tradicional apareguin també a la tabulatura, hem d’aplicar l’ordre
\tabFullNotation dins d’un context contexto
TabStaff. Teniu en compte que, a la tabulatura, les
blanques tenen doble plica per poder distingir-les de les negres.
symbols = {
\time 3/4
c4-.^"Allegro" d( e)
f4-.\f g a^\fermata
\mark \default
c8_.\<\( c16 c~ 2\!
c'2.\prall\)
}
\score {
\new TabStaff {
\tabFullNotation
\symbols
}
}
De forma predeterminada, les notes s’assignen a la posició més
baixa del mànec (primera posició). Les cordes a l’aire s’agafen
com a preferència, automàticament. Si volem que una nota
determinada es toqui sobre una corda concreta, podem afegir una
indicació de número de corda al nom de la nota. Si no volem que
les indicacions de número de corda apareguin a la notació
tradicional, podem sobreescriure el segell corresponent.
Generalment és molt més còmode definir una posició utilitzant el
valor de minimumFret. El valor predeterminat és 0.
Fins is tot si minimumFret està establert, s’usen les
cordes a l’aire sempre que sigui possible. Aquest comportament es
pot canviar fixant restrainOpenStrings al valor #t.
\layout { \omit Voice.StringNumber }
\new StaffGroup <<
\new Staff \relative {
\clef "treble_8"
\time 2/4
c16 d e f g4
c,16\5 d\5 e\4 f\4 g4\4
c,16 d e f g4
}
\new TabStaff \relative {
c16 d e f g4
c,16\5 d\5 e\4 f\4 g4\4
\set TabStaff.minimumFret = #5
\set TabStaff.restrainOpenStrings = ##t
c,16 d e f g4
}
>>
Les construccions d’acord es pot repetir mitjançant el símbol de
repetició d’acords q. En combinació amb les tabulatures,
el seu comportament d’eliminar números de corda i de dits junt a
d’altres esdeveniments és fastigós, per la qual cosa potser voleu
executar
\chordRepeats #'(string-number-event fingering-event)
explícitament sobre expressions musicals en les tabulatures que
utilitzin Repetició d’acords. Aquesta ordre particular
és tan comuna que estigui disponible com particular es tan comuna
que estigui disponible \tabChordRepeats.
guitar = \relative {
r8 <gis-2 cis-3 b-0>~ q4 q8~ 8 q4
}
\new StaffGroup <<
\new Staff {
\clef "treble_8"
\guitar
}
\new TabStaff {
\tabChordRepeats \guitar
}
>>
Les lligadures d’unió que creuen salts de línia porten parèntesis de forma predeterminada. EL mateix regeix per a la capseta de segona vegada d’una repetició.
ties = \relative {
\repeat volta 2 {
e'2. f4~
2 g2~
}
\alternative {
{ g4 f2. }
{ g4\repeatTie c,2. }
}
b1~
\break
b1
\bar "|."
}
\score {
<<
\new StaffGroup <<
\new Staff {
\clef "treble_8"
\ties
}
\new TabStaff {
\ties
}
>>
>>
\layout {
indent = #0
ragged-right = ##t
}
}
L’ordre \hideSplitTiedTabNotes cancel·la el comportament de
gravar els números de trast entre parèntesis:
ties = \relative {
\repeat volta 2 {
e'2. f4~
2 g2~ }
\alternative {
{ g4 f2. }
{ g4\repeatTie c,2. }
}
b1~
\break
b1
\bar "|."
}
\score {
<<
\new StaffGroup <<
\new Staff {
\clef "treble_8"
\ties
}
\new TabStaff {
\hideSplitTiedTabNotes
\ties
}
>>
>>
\layout {
indent = #0
ragged-right = ##t
}
}
Es poden afegir indicacions d’harmònics a la notació de tabulatura en forma de les seves alçades de so:
\layout { \omit Voice.StringNumber }
firstHarmonic = {
d'4\4\harmonic
g'4\3\harmonic
b'2\2\harmonic
}
\score {
<<
\new Staff {
\clef "treble_8"
\firstHarmonic
}
\new TabStaff { \firstHarmonic }
>>
}
Observeu que l’ordre \harmonic s’ha d’adjuntar sempre a
notes individuals (possiblement dins d’un acord) en lloc
d’adjuntar-la a acords complets. Sols té sentit per a harmònics
sobre una corda oberta al dotzè trast. Qualsevol altre harmònic
ha de ser calculat per par del LilyPond. Es pot aconseguir això
indicant el trast al qual ha de fregar la corda el dit de la ma
que trepitja.
fretHarmonics = {
\harmonicByFret #5 d16\4
\harmonicByFret #4 d16\4
\harmonicByFret #3 d8\4
\harmonicByFret #5 <g\3 b\2>2.
}
\score {
<<
\new Staff {
\clef "treble_8"
\fretHarmonics
}
\new TabStaff { \fretHarmonics }
>>
}
De forma alternativa, es poden calcular els harmònics definint la raó de les longituds de corda per sobre i per sota de la digitació d’harmònic.
ratioHarmonics = {
\harmonicByRatio #1/2 <g\3 b\2 e'\1>4
\harmonicByRatio #1/3 <g\3 b\2 e'\1>4
\harmonicByRatio #1/4 { g8\3 b8\2 e'4\1 }
}
\score {
<<
\new Staff {
\clef "treble_8"
\ratioHarmonics
}
\new TabStaff { \ratioHarmonics }
>>
}
Fragments de codi seleccionats
Stem and beam behavior in tablature
The direction of stems is controlled the same way in tablature as in traditional notation. Beams can be made horizontal, as shown in this example.
\new TabStaff {
\relative c {
\tabFullNotation
g16 b d g b d g b
\stemDown
\override Beam.concaveness = #10000
g,,16 b d g b d g b
}
}
Polyphony in tablature
Polyphony is created the same way in a TabStaff as in a regular
staff.
upper = \relative c' {
\time 12/8
\key e \minor
\voiceOne
r4. r8 e, fis g16 b g e e' b c b a g fis e
}
lower = \relative c {
\key e \minor
\voiceTwo
r16 e d c b a g4 fis8 e fis g a b c
}
\score {
<<
\new StaffGroup = "tab with traditional" <<
\new Staff = "guitar traditional" <<
\clef "treble_8"
\context Voice = "upper" \upper
\context Voice = "lower" \lower
>>
\new TabStaff = "guitar tab" <<
\context TabVoice = "upper" \upper
\context TabVoice = "lower" \lower
>>
>>
>>
}
Open string harmonics in tablature
This snippet demonstrates open-string harmonics
openStringHarmonics = {
\textSpannerDown
\override TextSpanner.staff-padding = #3
\override TextSpanner.dash-fraction = #0.3
\override TextSpanner.dash-period = #1
%first harmonic
\override TextSpanner.bound-details.left.text = \markup\small "1st harm. "
\harmonicByFret #12 e,2\6\startTextSpan
\harmonicByRatio #1/2 e,\6\stopTextSpan
%second harmonic
\override TextSpanner.bound-details.left.text = \markup\small "2nd harm. "
\harmonicByFret #7 e,\6\startTextSpan
\harmonicByRatio #1/3 e,\6
\harmonicByFret #19 e,\6
\harmonicByRatio #2/3 e,\6\stopTextSpan
%\harmonicByFret #19 < e,\6 a,\5 d\4 >
%\harmonicByRatio #2/3 < e,\6 a,\5 d\4 >
%third harmonic
\override TextSpanner.bound-details.left.text = \markup\small "3rd harm. "
\harmonicByFret #5 e,\6\startTextSpan
\harmonicByRatio #1/4 e,\6
\harmonicByFret #24 e,\6
\harmonicByRatio #3/4 e,\6\stopTextSpan
\break
%fourth harmonic
\override TextSpanner.bound-details.left.text = \markup\small "4th harm. "
\harmonicByFret #4 e,\6\startTextSpan
\harmonicByRatio #1/5 e,\6
\harmonicByFret #9 e,\6
\harmonicByRatio #2/5 e,\6
\harmonicByFret #16 e,\6
\harmonicByRatio #3/5 e,\6\stopTextSpan
%fifth harmonic
\override TextSpanner.bound-details.left.text = \markup\small "5th harm. "
\harmonicByFret #3 e,\6\startTextSpan
\harmonicByRatio #1/6 e,\6\stopTextSpan
\break
%sixth harmonic
\override TextSpanner.bound-details.left.text = \markup\small "6th harm. "
\harmonicByFret #2.7 e,\6\startTextSpan
\harmonicByRatio #1/7 e,\6\stopTextSpan
%seventh harmonic
\override TextSpanner.bound-details.left.text = \markup\small "7th harm. "
\harmonicByFret #2.3 e,\6\startTextSpan
\harmonicByRatio #1/8 e,\6\stopTextSpan
%eighth harmonic
\override TextSpanner.bound-details.left.text = \markup\small "8th harm. "
\harmonicByFret #2 e,\6\startTextSpan
\harmonicByRatio #1/9 e,\6\stopTextSpan
}
\score {
<<
\new Staff
\with { \omit StringNumber } {
\new Voice {
\clef "treble_8"
\openStringHarmonics
}
}
\new TabStaff {
\new TabVoice {
\openStringHarmonics
}
}
>>
}
Fretted-string harmonics in tablature
Demonstrates fretted-string harmonics in tablature
pinchedHarmonics = {
\textSpannerDown
\override TextSpanner.bound-details.left.text =
\markup {\halign #-0.5 \teeny "PH" }
\override TextSpanner.style =
#'dashed-line
\override TextSpanner.dash-period = #0.6
\override TextSpanner.bound-details.right.attach-dir = #1
\override TextSpanner.bound-details.right.text =
\markup { \draw-line #'(0 . 1) }
\override TextSpanner.bound-details.right.padding = #-0.5
}
harmonics = {
%artificial harmonics (AH)
\textLengthOn
<\parenthesize b b'\harmonic>4_\markup{ \teeny "AH 16" }
<\parenthesize g g'\harmonic>4_\markup{ \teeny "AH 17" }
<\parenthesize d' d''\harmonic>2_\markup{ \teeny "AH 19" }
%pinched harmonics (PH)
\pinchedHarmonics
<a'\harmonic>2\startTextSpan
<d''\harmonic>4
<e'\harmonic>4\stopTextSpan
%tapped harmonics (TH)
<\parenthesize g\4 g'\harmonic>4_\markup{ \teeny "TH 17" }
<\parenthesize a\4 a'\harmonic>4_\markup{ \teeny "TH 19" }
<\parenthesize c'\3 c''\harmonic>2_\markup{ \teeny "TH 17" }
%touch harmonics (TCH)
a4( <e''\harmonic>2. )_\markup{ \teeny "TCH" }
}
frettedStrings = {
%artificial harmonics (AH)
\harmonicByFret #4 g4\3
\harmonicByFret #5 d4\4
\harmonicByFret #7 g2\3
%pinched harmonics (PH)
\harmonicByFret #7 d2\4
\harmonicByFret #5 d4\4
\harmonicByFret #7 a4\5
%tapped harmonics (TH)
\harmonicByFret #5 d4\4
\harmonicByFret #7 d4\4
\harmonicByFret #5 g2\3
%touch harmonics (TCH)
a4 \harmonicByFret #9 g2.\3
}
\score {
<<
\new Staff
\with { \omit StringNumber } {
\new Voice {
\clef "treble_8"
\harmonics
}
}
\new TabStaff {
\new TabVoice {
\frettedStrings
}
}
>>
}
Slides in tablature
Slides can be typeset in both Staff and TabStaff
contexts:
slides = {
c'8\3(\glissando d'8\3)
c'8\3\glissando d'8\3
\hideNotes
\grace { g16\glissando }
\unHideNotes
c'4\3
\afterGrace d'4\3\glissando {
\stemDown \hideNotes
g16 }
\unHideNotes
}
\score {
<<
\new Staff { \clef "treble_8" \slides }
\new TabStaff { \slides }
>>
\layout {
\context {
\Score
\override Glissando.minimum-length = #4
\override Glissando.springs-and-rods =
#ly:spanner::set-spacing-rods
\override Glissando.thickness = #2
\omit StringNumber
% or:
%\override StringNumber.stencil = ##f
}
}
}
Chord glissando in tablature
Slides for chords are indicated by default in both Staff and
TabStaff. String numbers are necessary for TabStaff
because automatic string calculations are different for chords and for
single notes.
myMusic = \relative c' {
<c e g>1 \glissando <f a c>
}
\score {
<<
\new Staff {
\clef "treble_8"
\myMusic
}
\new TabStaff \myMusic
>>
}
\score {
<<
\new Staff {
\clef "treble_8"
\myMusic
}
\new TabStaff \with { \override Glissando.style = #'none } {
\myMusic
}
>>
}
Hammer on and pull off
Hammer-on and pull-off can be obtained using slurs.
\new TabStaff {
\relative c' {
d4( e\2)
a( g)
}
}
Hammer on and pull off using voices
The arc of hammer-on and pull-off is upwards in voices one and three and downwards in voices two and four:
\new TabStaff {
\relative c' {
<< { \voiceOne g2( a) }
\\ { \voiceTwo a,( b) }
>> \oneVoice
}
}
Hammer on and pull off using chords
When using hammer-on or pull-off with chorded notes, only a single arc
is drawn. However “double arcs” are possible by setting the
doubleSlurs property to #t.
\new TabStaff {
\relative c' {
% chord hammer-on and pull-off
\set doubleSlurs = ##t
<g' b>8( <a c> <g b>)
}
}
Vegeu també
Referencia de la notació: Repetició d’acords, Repeticions explícites, Pliques, Harmònics, Glissando.
Fragments de codi: Fretted strings.
Referència de funcionament intern: TabNoteHead, TabStaff, TabVoice, Beam.
Advertiments i problemes coneguts
Els acords no es tracten d’una manera especial, i d’aquí que el selector automàtic de la corda pot escollir fàcilment la mateixa corda per a dues notes de l’acord.
Per utilitzar \partcombine, cal que TabStaff faci
servir veus especialment creades:
melodia = \partcombine { e4 g g g } { e4 e e e }
<<
\new TabStaff <<
\new TabVoice = "one" s1
\new TabVoice = "two" s1
\new TabVoice = "shared" s1
\new TabVoice = "solo" s1
{ \melodia }
>>
>>
els efectes especials de guitarra es limiten a harmònics i arrosegaments.
Tabulatures personalitzades
La tabulatura al LilyPond calcula automàticament el trast per a
cada nota, basant-se en la corda a la qual està assignada la
nota. Per fer-lo, cal especificar l’afinació de les cordes.
L’afinació de les cordes es dóna a la propietat
stringTunings.
El LilyPond porta afinacions predefinides per al banjo, la mandolina, la guitarra, el baix, l’ukelele, el violí, la viola, el violoncel i el contrabaix. El LilyPond estableix automàticament la transposició correcxta per a les afinacions predefinides. L’exemple següent és per a banjo, que sona una octava per sota del que està escrit.
<<
\new Voice \with {
\omit StringNumber
} {
\clef "bass_8"
\relative {
c,4 d e f
}
}
\new TabStaff \with {
stringTunings = #bass-tuning
} {
\relative {
c,4 d e f
}
}
>>
L’afinació per defecte és guitar-tuning (l’afinació
estàndard Mi-La-Re-Sol-Si-Mi). D’altres afinacions predefinides
són guitar-open-g-tuning (Sol Major a l’aire,
Re-Sol-Re-Sol-Si-Re), mandolin-tuning (mandolina) i
banjo-open-g-tuning (banjo amb Sol Major a l’aire). Les
afinacions predefinides estan a ‘ly/string-tunings-init.ly’.
És possible crear qualsevol afinació de cordes que es desitgi. Es
pot usar la funció \stringTuning per definir una afinació
de cordes i que pot usar-se per establir-la com el valor de
stringTunings per al context actual.
El seu argument és una construcció d’acord que defineix l’alçada
de les notes de cada corda a l’aire a aquesta afinació. La
construcció d’acord ha d’estar en el mode d’octava absolut, vegeu
Escriptura d’octava absoluta. La corda amb el número més
alt (generalment la més greu) ha d’anar primer a l’acord. Per
exemple, podem definir una afinació per a un instrument de quatre
cordes amb les alçades a'', d'', g' i
c':
mynotes = {
c'4 e' g' c'' |
e''4 g'' b'' c'''
}
<<
\new Staff {
\clef treble
\mynotes
}
\new TabStaff {
\set Staff.stringTunings = \stringTuning <c' g' d'' a''>
\mynotes
}
>>
La propietat stringTunings també s’utilitza per part de
FretBoards per calcular els diagrames de posició automàtics.
Les afinacions de cordes s’utilitzen com a part de la clau d’associació per als diagrames de posició predefinits (vegeu Diagrames predefinits de trasts).
L’exemple anterior també es podria haver escrit com segueix:
custom-tuning = \stringTuning <c' g' d'' a''>
mynotes = {
c'4 e' g' c'' |
e''4 g'' b'' c'''
}
<<
\new Staff {
\clef treble
\mynotes
}
\new TabStaff {
\set TabStaff.stringTunings = #custom-tuning
\mynotes
}
>>
Internament, una afinació de les cordes és una llista de l’Scheme d’alçades, una per a cada corda, ordenades d’1 a N, on la corda 1 està a dalt a la pauta de tabulatura i la corda N està a sota. Això resulta generalment en un ordre de la nota més aguda a la més greu, però alguns instruments (per exemple l’ukelele) no tenen les cordes disposades en ordre d’alçada.
L’alçada d’una corda dins d’una llista d’alçades de cordes d’un
és un objecte alçada del LilyPond. Els objectes alçada es creen
amb la funció de l’Scheme ly:make-pitch (vegeu
Funcions de l’Scheme).
\stringTuning crea aquest objecte a partir de l’entrada
d’acords.
El LilyPond calcula automàticament el nombre de línies dins del
TabStaff i el nombre de cordes dins d’un FretBoard
calculat automàticament amb el nombre d’elements de
stringTunings.
Per permetre a tots els contextos TabStaff usar la mateixa afinació personalitzada per defecte, podem usar
\layout {
\context {
\TabStaff
stringTunings = \stringTuning <c' g' d'' a''>
}
}
També es pot usar una clau moderna de tabulatura.
\new TabStaff {
\clef moderntab
<a, e a>1
\break
\clef tab
<a, e a>1
}
La clau moderna de tabulatura permet tabulatures de 4 a 7 cordes.
Una pauta de tabulatura TabStaff pot contenir intervals
microtonals com quarts de to, que es poden reproduir mitjançant
esdeveniments de la roda de canvi de to. Cal establir el valor
supportNonIntegerFret = ##t dins del context Score.
Tanmateix, no es permeten microtons als diagrames
FretBoards.
\layout {
\context {
\Score
supportNonIntegerFret = ##t
}
}
custom-tuning = \stringTuning <e, a, d ges beh eeh'>
mus = \relative {
eeses'4
eeseh
ees
eeh
e
eih
eis
eisih
eisis
}
<<
\new Staff << \clef "G_8" \mus >>
\new TabStaff \with { stringTunings = \custom-tuning } \mus
>>
Vegeu també
Referència de la notació: Escriptura d’octava absoluta, Diagrames predefinits de trasts, Funcions de l’Scheme.
Fitxers instal·lats: ‘ly/string-tunings-init.ly’, ‘scm/tablature.scm’.
Fragments de codi: Fretted strings.
Referència de funcionament intern: Tab_note_heads_engraver.
Advertiments i problemes coneguts
Els càlculs de tabulatura automàtics no funcionen bé a la major part dels casos per a instruments en els quals l’afinació de les cordes no varia de forma monòtona amb el número de corda, com ara l’ukelele.
Marcatges de diagrames de trasts
Es poden afegir diagrames de trasts a la música com elements de marcatge sobre la nota desitjada. El marcatge conté informació sobre el diagrama de trasts desitjat. Hi ha tres interfícies diferents de marcatge de diagrames de trasts: standard (estàndard), terse (concís) i verbose (detallat). Les tres interfícies produeixen marcatges equivalents, però tenen quantitats variables d’informació a la cadena de marcatge. Hi ha més detalls sobre la sintaxi de les diverses cadenes de marcatge que s’usen per definir diagrames de posicions a l’annex Instrument Specific Markup.
La cadena de marcatge dels diagrames estàndard de trasts indica el número de la corda i el número de trast en el qual es col·loca cadascú dels punts sobre la corda. A més es pot indicar cordes a l’aire i cordes mudes (que no es toquen).
<<
\new ChordNames {
\chordmode {
c1 d:m
}
}
\new Staff {
\clef "treble_8"
<c e g c' e'>1^\markup {
\fret-diagram "6-x;5-3;4-2;3-o;2-1;1-o;"
}
<d a d' f'>1^\markup {
\fret-diagram "6-x;5-x;4-o;3-2;2-3;1-1;"
}
}
>>
Les indicacions de celleta es poden afegir al diagrama a partir de la cadena de marcatge del diagrama de trasts.
<<
\new ChordNames {
\chordmode {
f1 g
}
}
\new Staff {
\clef "treble_8"
<f, c f a c' f'>1^\markup {
\fret-diagram "c:6-1-1;6-1;5-3;4-3;3-2;2-1;1-1;"
}
<g, d g b d' g'>1^\markup {
\fret-diagram "c:6-1-3;6-3;5-5;4-5;3-4;2-3;1-3;"
}
}
>>
Es poden canviar
la mida del diagrama de trasts i el nombre de trasts del diagrama
a la cadena de marcatge fret-diagram.
<<
\new ChordNames {
\chordmode {
f1 g
}
}
\new Staff {
\clef "treble_8"
<f, c f a c' f'>1^\markup {
\fret-diagram "s:1.5;c:6-1-1;6-1;5-3;4-3;3-2;2-1;1-1;"
}
<g, b, d g b g'>1^\markup {
\fret-diagram "h:6;6-3;5-2;4-o;3-o;2-o;1-3;"
}
}
>>
Es pot canviar el nombre de cordes d’un diagrama de trasts perquè s’adapti a diferents instruments com el baix i l’ukelele, amb la cadena de marcatge del diagrama.
<<
\new ChordNames {
\chordmode {
a1
}
}
\new Staff {
% Un acord «La» per a l'ukelele
a'1^\markup {
\fret-diagram "w:4;4-2-2;3-1-1;2-o;1-o;"
}
}
>>
Es poden afegir indicacions de digitació, i la posició de les etiquetes dels dits es poden controlar mitjançant la cadena de marcatge del diagrama.
<<
\new ChordNames {
\chordmode {
c1 d:m
}
}
\new Staff {
\clef "treble_8"
<c e g c' e'>1^\markup {
\fret-diagram "f:1;6-x;5-3-3;4-2-2;3-o;2-1-1;1-o;"
}
<d a d' f'>1^\markup {
\fret-diagram "f:2;6-x;5-x;4-o;3-2-2;2-3-3;1-1-1;"
}
}
>>
Es pot controlar el radi i la posició dels punts amb la cadena de
marcatge fret-diagram.
<<
\new ChordNames {
\chordmode {
c1 d:m
}
}
\new Staff {
\clef "treble_8"
<c e g c' e'>1^\markup {
\fret-diagram "d:0.35;6-x;5-3;4-2;3-o;2-1;1-o;"
}
<d a d' f'>1^\markup {
\fret-diagram "p:0.2;6-x;5-x;4-o;3-2;2-3;1-1;"
}
}
>>
La cadena de marcatge de diagrama de trasts concisa
fret-diagram-terse omet els números de la corda; el número
de corda ve implícit per la presència del punt i coma. Hi ha un
punt i coma per cada corda del diagrama. El primer punt i coma
correspon al número de corda més alt, i l’últim punt i coma
correspon a la primera corda. Es poden indicar cordes mudes, a
l’aire i números de trast.
<<
\new ChordNames {
\chordmode {
c1 d:m
}
}
\new Staff {
\clef "treble_8"
<c e g c' e'>1^\markup {
\fret-diagram-terse "x;3;2;o;1;o;"
}
<d a d' f'>1^\markup {
\fret-diagram-terse "x;x;o;2;3;1;"
}
}
>>
Es poden incloure números de celleta a la cadena de marcatge
concisa fret-diagram-terse.
<<
\new ChordNames {
\chordmode {
f1 g
}
}
\new Staff {
\clef "treble_8"
<f, c f a c' f'>1^\markup {
\fret-diagram-terse "1-(;3;3;2;1;1-);"
}
<g, d g b d' g'>1^\markup {
\fret-diagram-terse "3-(;5;5;4;3;3-);"
}
}
>>
Es poden incloure indicacions de digitació a la cadena de marcatge
concisa fret-diagram-terse.
<<
\new ChordNames {
\chordmode {
c1 d:m
}
}
\new Staff {
\override Voice.TextScript.fret-diagram-details.finger-code = #'below-string
\clef "treble_8"
<c e g c' e'>1^\markup {
\fret-diagram-terse "x;3-3;2-2;o;1-1;o;"
}
<d a d' f'>1^\markup {
\fret-diagram-terse "x;x;o;2-2;3-3;1-1;"
}
}
>>
Per ajustar altres propietats dels diagrames de trasts s’ha d’utilitzar
\override en utilitzar el marcatge concís amb
fret-diagram-terse.
La cadena marcatge detallat fret-diagram-verbose està en el
format d’una llista de l’Scheme. Cada element de la llista indica
la col·locació d’un element sobre el diagrama de trasts.
<<
\new ChordNames {
\chordmode {
c1 d:m
}
}
\new Staff {
\clef "treble_8"
<c e g c' e'>1^\markup {
\fret-diagram-verbose #'(
(mute 6)
(place-fret 5 3)
(place-fret 4 2)
(open 3)
(place-fret 2 1)
(open 1)
)
}
<d a d' f'>1^\markup {
\fret-diagram-verbose #'(
(mute 6)
(mute 5)
(open 4)
(place-fret 3 2)
(place-fret 2 3)
(place-fret 1 1)
)
}
}
>>
Es poden incloure digitacions i celletes a una cadena de marcatge detallat
fret-diagram-verbose. És exclusiva de la interfície de
fret-diagram-verbose la indicació ‘capo’ que es pot col·locar
sobre el diagrama de posició. La indicació de capo és una barra
gruixuda que cobreix totes les cordes. El trast de que té el capo
és el més baix del diagrama de posició.
Els punts que indiquen les digitacions es poden tant acolorir com imprimir entre parèntesis; a més a més, és possible alterar independentment el color dels parèntesis.
També es poden inserir elements de marcatge dins dels punts.
<<
\new ChordNames {
\chordmode {
f1 g c c b
}
}
\new Staff {
\clef "treble_8"
\override Voice.TextScript.fret-diagram-details.finger-code = #'below-string
<f, c f a c' f'>1^\markup {
\fret-diagram-verbose #'(
(place-fret 6 1)
(place-fret 5 3)
(place-fret 4 3)
(place-fret 3 2)
(place-fret 2 1)
(place-fret 1 1)
(barre 6 1 1)
)
}
<g, b, d g b g'>1^\markup {
\fret-diagram-verbose #'(
(place-fret 6 3 2)
(place-fret 5 2 1)
(open 4)
(open 3)
(open 2)
(place-fret 1 3 3)
)
}
<c g c' e' g'>1^\markup {
\fret-diagram-verbose #'(
(capo 3)
(mute 6)
(place-fret 4 5 1)
(place-fret 3 5 2)
(place-fret 2 5 3)
)
}
\override Voice.TextScript.size = 1.4
<c g c' e' g'>1^\markup {
\fret-diagram-verbose #'(
(place-fret 6 3 1 red parenthesized default-paren-color)
(place-fret 5 3 1 inverted)
(place-fret 4 5 2 blue parenthesized)
(place-fret 3 5 3 blue)
(place-fret 2 5 4 blue)
(place-fret 1 3 1 inverted)
)
}
\override Voice.TextScript.size = 1.5
<b, fis b dis' fis'>1^\markup {
\override #'(fret-diagram-details . ((finger-code . in-dot)))
\fret-diagram-verbose #`(
(place-fret 5 2 1)
(place-fret 4 4 "fis" red)
(place-fret 3 4 "b" red)
(place-fret
2 4
,#{ \markup
\concat {
\vcenter "d"
\fontsize #-5
\musicglyph "accidentals.sharp"} #}
red)
(place-fret 1 2 1)
)
}
}
>>
Totes les altres propietats de diagrama de trasts s’han d’ajustar
utilitzant \override quan s’usa el marcatge detallat amb
fret-diagram-verbose.
L’aspecte gràfic d’un diagrama de trasts es pot personalitzar
segons les preferències de l’usuari a través de les propietats de
la interfície fret-diagram-interface. Els detalls estan a
fret-diagram-interface. Per a un marcatge de
diagrama de trasts, les propietats de la interfície pertanyen a
Voice.TextScript.
Fragments de codi seleccionats
Changing fret orientations
Fret diagrams can be oriented in three ways. By default the top string or fret in the different orientations will be aligned.
\include "predefined-guitar-fretboards.ly"
<<
\chords {
c1
c1
c1
}
\new FretBoards {
\chordmode {
c1
\override FretBoard.fret-diagram-details.orientation =
#'landscape
c1
\override FretBoard.fret-diagram-details.orientation =
#'opposing-landscape
c1
}
}
\new Voice {
c'1
c'1
c'
}
>>
Customizing markup fret diagrams
Fret diagram properties can be set through
'fret-diagram-details. For markup fret diagrams, overrides can
be applied to the Voice.TextScript object or directly to the
markup.
<<
\chords { c1 | c | c | d }
\new Voice = "mel" {
\textLengthOn
% Set global properties of fret diagram
\override TextScript.size = #'1.2
\override TextScript.fret-diagram-details.finger-code = #'in-dot
\override TextScript.fret-diagram-details.dot-color = #'white
%% C major for guitar, no barre, using defaults
% terse style
c'1^\markup { \fret-diagram-terse "x;3-3;2-2;o;1-1;o;" }
%% C major for guitar, barred on third fret
% verbose style
% size 1.0
% roman fret label, finger labels below string, straight barre
c'1^\markup {
% standard size
\override #'(size . 1.0) {
\override #'(fret-diagram-details . (
(number-type . roman-lower)
(finger-code . in-dot)
(barre-type . straight))) {
\fret-diagram-verbose #'((mute 6)
(place-fret 5 3 1)
(place-fret 4 5 2)
(place-fret 3 5 3)
(place-fret 2 5 4)
(place-fret 1 3 1)
(barre 5 1 3))
}
}
}
%% C major for guitar, barred on third fret
% verbose style
% landscape orientation, arabic numbers, M for mute string
% no barre, fret label down or left, small mute label font
c'1^\markup {
\override #'(fret-diagram-details . (
(finger-code . below-string)
(number-type . arabic)
(label-dir . -1)
(mute-string . "M")
(orientation . landscape)
(barre-type . none)
(xo-font-magnification . 0.4)
(xo-padding . 0.3))) {
\fret-diagram-verbose #'((mute 6)
(place-fret 5 3 1)
(place-fret 4 5 2)
(place-fret 3 5 3)
(place-fret 2 5 4)
(place-fret 1 3 1)
(barre 5 1 3))
}
}
%% simple D chord
% terse style
% larger dots, centered dots, fewer frets
% label below string
d'1^\markup {
\override #'(fret-diagram-details . (
(finger-code . below-string)
(dot-radius . 0.35)
(dot-position . 0.5)
(fret-count . 3))) {
\fret-diagram-terse "x;x;o;2-1;3-2;2-3;"
}
}
}
>>
Vegeu també
Referència de la notació: Instrument Specific Markup.
Fragments de codi: Fretted strings.
Referència de funcionament intern: fret-diagram-interface.
Diagrames predefinits de trasts
Es poden imprimir els diagrames de trasts usant el context
FretBoards. De forma predeterminada, el context
FretBoards grava diagrames de trasts que estan
emmagatzemats a una taula de cerca:
\include "predefined-guitar-fretboards.ly"
\new FretBoards {
\chordmode {
c1 d
}
}
Els diagrames de trast predefinits estan al fitxer
‘predefined-guitar-fretboards.ly’. Els diagrames de trasts
s’emmagatzemen agafant com a base les notes d’un acord i el valor
de stringTunings que s’està utilitzant en cada moment.
‘predefined-guitar-fretboards.ly’ conté diagrames de trast
predefinits sols per a guitar-tuning. Els diagrames de
trast predefinits es poden afegir per a d’altres instruments o
d’altres afinacions seguint els exemples que apareixen a
‘predefined-guitar-fretboards.ly’.
Els diagrames de posicions per a l’ukelele estan al fitser
‘predefined-ukulele-fretboards.ly’.
\include "predefined-ukulele-fretboards.ly"
myChords = \chordmode { a1 a:m a:aug }
\new ChordNames {
\myChords
}
\new FretBoards {
\set Staff.stringTunings = #ukulele-tuning
\myChords
}
Els diagrames de posicions per a la mandolina es poden trobar al
fitxer
‘predefined-mandolin-fretboards.ly’.
\include "predefined-mandolin-fretboards.ly"
myChords = \chordmode { c1 c:m7.5- c:aug }
\new ChordNames {
\myChords
}
\new FretBoards {
\set Staff.stringTunings = #mandolin-tuning
\myChords
}
Les notes dels acords es poden introduir com a música simultània o bé usant el mode d’acords (vegeu Panoràmica del mode d’acords).
\include "predefined-guitar-fretboards.ly"
\new FretBoards {
\chordmode { c1 }
<c' e' g'>1
}
És corrent que s’escriguin junts els noms d’acord i els diagrames de
trast. Això es pot fer posant un context de noms d’acord
ChordNames en paral·lel amb un context de trasts
FretBoards i donant als dos contextos el mateix contingut musical.
\include "predefined-guitar-fretboards.ly"
mychords = \chordmode{
c1 f g
}
<<
\new ChordNames {
\mychords
}
\new FretBoards {
\mychords
}
>>
Els diagrames de trast predefinits es poden transportar, en la mesura que estigui emmagatzemant un diagrama per a l’acord transportat, a la taula de diagrames de trast.
\include "predefined-guitar-fretboards.ly"
mychords = \chordmode{
c1 f g
}
mychordlist = {
\mychords
\transpose c e { \mychords }
}
<<
\new ChordNames {
\mychordlist
}
\new FretBoards {
\mychordlist
}
>>
La taula de diagrames de trast predefinits per a la guitarra conté vuit acords (major, menor, augmentat, disminuït, sèptima dominant, sèptima major, menor sèptima i novena dominant) per a 17 tonalitats diferents. La taula de diagrames predefinits per a l’ukelele conté aquests acords i a més altres tres (sexta major, segona suspesa i quarta suspesa). Es pot veure una llista completa dels diagrames de trast predefinits a Diagrames predefinits de trasts. Si no hi ha una entrada a la taula per a un acord, el gravador FretBoards calcula una cadena de diagrama fret-diagram usant la funcionalitat de diagrames automàtics que es descriu Diagrames de trast automàtics.
\include "predefined-guitar-fretboards.ly"
mychords = \chordmode{
c1 c:maj9
}
<<
\new ChordNames {
\mychords
}
\new FretBoards {
\mychords
}
>>
Es poden afegir diagrames de posicions a la taula de diagrames de posicions. Per afegir un diagrama hem d’especificar la taula de correspondències per al diagrama, l’acord del diagrama, l’afinació utilitzada i una definició del diagrama. Normalment la taula de correspondències serà default-fret-table. La definició del diagrama pot ser una cadena de definició concisa fret-diagram-terse o una llista de marcatge detallada fret-diagram-verbose.
\include "predefined-guitar-fretboards.ly"
\storePredefinedDiagram #default-fret-table
\chordmode { c:maj9 }
#guitar-tuning
#"x;3-2;o;o;o;o;"
mychords = \chordmode {
c1 c:maj9
}
<<
\new ChordNames {
\mychords
}
\new FretBoards {
\mychords
}
>>
Es poden emmagatzemar diferents diagrames de trast per al mateix acord usant diferents octaves per a les notes. Les octaves de diferència han de ser al menys dues per sobre o per sota de l’octava predeterminada, atès que les octaves immediates superior i inferior de la predeterminada s’utilitzen per als trasters transpositors.
\include "predefined-guitar-fretboards.ly"
\storePredefinedDiagram #default-fret-table
\chordmode { c'' }
#guitar-tuning
#(offset-fret 2 (chord-shape 'bes guitar-tuning))
mychords = \chordmode {
c1 c''
}
<<
\new ChordNames {
\mychords
}
\new FretBoards {
\mychords
}
>>
A més dels diagrames de trast, el LilyPond emmagatzema una llista interna de formes d’acords. Les formes d’acord són diagrames de trast que es poden desplaçar pel mànec per donar acords diferents. Es poden afegir formes d’acord a la llista interna i després usar-les per definir diagrames de posició predefinits. Atès que es poden moure, normalment no contenen cordes a l’aire. Com els diagrames de posicions, les formes d’acord es poden introduir com cadenes concises fret-diagram-terse o com llistes de marcatge detallades fret-diagram-verbose.
\include "predefined-guitar-fretboards.ly"
% Add a new chord shape
\addChordShape #'powerf #guitar-tuning #"1-1;3-3;3-4;x;x;x;"
% add some new chords based on the power chord shape
\storePredefinedDiagram #default-fret-table
\chordmode { f'' }
#guitar-tuning
#(chord-shape 'powerf guitar-tuning)
\storePredefinedDiagram #default-fret-table
\chordmode { g'' }
#guitar-tuning
#(offset-fret 2 (chord-shape 'powerf guitar-tuning))
mychords = \chordmode{
f1 f'' g g''
}
<<
\new ChordNames {
\mychords
}
\new FretBoards {
\mychords
}
>>
L’aspecte gràfic d’un diagrama de trast es pot personalitzar
segons les preferències de l’usuari a través de les propietats de
la interfície fret-diagram-interface. Els detalls estan a
fret-diagram-interface. Per a un diagrama de trasts
predefinit, les propietats d’interfície pertanyen a
FretBoards.FretBoard.
Fragments de codi seleccionats
Customizing fretboard fret diagrams
Fret diagram properties can be set through
'fret-diagram-details. For FretBoard fret diagrams, overrides
are applied to the FretBoards.FretBoard object. Like
Voice, FretBoards is a bottom level context, therefore
can be omitted in property overrides.
\include "predefined-guitar-fretboards.ly"
\storePredefinedDiagram #default-fret-table \chordmode { c' }
#guitar-tuning
#"x;1-1-(;3-2;3-3;3-4;1-1-);"
<<
\new ChordNames {
\chordmode { c1 | c | c | d }
}
\new FretBoards {
% Set global properties of fret diagram
\override FretBoards.FretBoard.size = #'1.2
\override FretBoard.fret-diagram-details.finger-code = #'in-dot
\override FretBoard.fret-diagram-details.dot-color = #'white
\chordmode {
c
\once \override FretBoard.size = #'1.0
\once \override FretBoard.fret-diagram-details.barre-type = #'straight
\once \override FretBoard.fret-diagram-details.dot-color = #'black
\once \override FretBoard.fret-diagram-details.finger-code = #'below-string
c'
\once \override FretBoard.fret-diagram-details.barre-type = #'none
\once \override FretBoard.fret-diagram-details.number-type = #'arabic
\once \override FretBoard.fret-diagram-details.orientation = #'landscape
\once \override FretBoard.fret-diagram-details.mute-string = #"M"
\once \override FretBoard.fret-diagram-details.label-dir = #LEFT
\once \override FretBoard.fret-diagram-details.dot-color = #'black
c'
\once \override FretBoard.fret-diagram-details.finger-code = #'below-string
\once \override FretBoard.fret-diagram-details.dot-radius = #0.35
\once \override FretBoard.fret-diagram-details.dot-position = #0.5
\once \override FretBoard.fret-diagram-details.fret-count = #3
d
}
}
\new Voice {
c'1 | c' | c' | d'
}
>>
Defining predefined fretboards for other instruments
Predefined fret diagrams can be added for new instruments in addition to the standards used for guitar. This file shows how this is done by defining a new string-tuning and a few predefined fretboards for the Venezuelan cuatro.
This file also shows how fingerings can be included in the chords used
as reference points for the chord lookup, and displayed in the fret
diagram and the TabStaff, but not the music.
These fretboards are not transposable because they contain string information. This is planned to be corrected in the future.
% add FretBoards for the Cuatro
% Note: This section could be put into a separate file
% predefined-cuatro-fretboards.ly
% and \included into each of your compositions
cuatroTuning = #`(,(ly:make-pitch 0 6 0)
,(ly:make-pitch 1 3 SHARP)
,(ly:make-pitch 1 1 0)
,(ly:make-pitch 0 5 0))
dSix = { <a\4 b\1 d\3 fis\2> }
dMajor = { <a\4 d\1 d\3 fis \2> }
aMajSeven = { <a\4 cis\1 e\3 g\2> }
dMajSeven = { <a\4 c\1 d\3 fis\2> }
gMajor = { <b\4 b\1 d\3 g\2> }
\storePredefinedDiagram #default-fret-table \dSix
#cuatroTuning
#"o;o;o;o;"
\storePredefinedDiagram #default-fret-table \dMajor
#cuatroTuning
#"o;o;o;3-3;"
\storePredefinedDiagram #default-fret-table \aMajSeven
#cuatroTuning
#"o;2-2;1-1;2-3;"
\storePredefinedDiagram #default-fret-table \dMajSeven
#cuatroTuning
#"o;o;o;1-1;"
\storePredefinedDiagram #default-fret-table \gMajor
#cuatroTuning
#"2-2;o;1-1;o;"
% end of potential include file /predefined-cuatro-fretboards.ly
#(set-global-staff-size 16)
primerosNames = \chordmode {
d:6 d a:maj7 d:maj7
g
}
primeros = {
\dSix \dMajor \aMajSeven \dMajSeven
\gMajor
}
\score {
<<
\new ChordNames {
\set chordChanges = ##t
\primerosNames
}
\new Staff {
\new Voice \with {
\remove "New_fingering_engraver"
}
\relative c'' {
\primeros
}
}
\new FretBoards {
\set Staff.stringTunings = #cuatroTuning
% \override FretBoard
% #'(fret-diagram-details string-count) = #'4
\override FretBoard.fret-diagram-details.finger-code = #'in-dot
\primeros
}
\new TabStaff \relative c'' {
\set TabStaff.stringTunings = #cuatroTuning
\primeros
}
>>
\layout {
\context {
\Score
\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 16)
}
}
\midi { }
}
ChordChanges for FretBoards
FretBoards can be set to display only when the chord changes or at the beginning of a new line.
\include "predefined-guitar-fretboards.ly"
myChords = \chordmode {
c1 c1 \break
\set chordChanges = ##t
c1 c1 \break
c1 c1
}
<<
\new ChordNames { \myChords }
\new FretBoards { \myChords }
\new Staff { \myChords }
>>
Fretboards alternate tables
Alternate fretboard tables can be created. These would be used in order to have alternate fretboards for a given chord.
In order to use an alternate fretboard table, the table must first be created. Fretboards are then added to the table.
The created fretboard table can be blank, or it can be copied from an existing table.
The table to be used in displaying predefined fretboards is selected by
the property \predefinedDiagramTable.
\include "predefined-guitar-fretboards.ly"
% Make a blank new fretboard table
#(define custom-fretboard-table-one (make-fretboard-table))
% Make a new fretboard table as a copy of default-fret-table
#(define custom-fretboard-table-two (make-fretboard-table default-fret-table))
% Add a chord to custom-fretboard-table-one
\storePredefinedDiagram #custom-fretboard-table-one
\chordmode{c}
#guitar-tuning
"3-(;3;5;5;5;3-);"
% Add a chord to custom-fretboard-table-two
\storePredefinedDiagram #custom-fretboard-table-two
\chordmode{c}
#guitar-tuning
"x;3;5;5;5;o;"
<<
\chords {
c1 | d1 |
c1 | d1 |
c1 | d1 |
}
\new FretBoards {
\chordmode {
\set predefinedDiagramTable = #default-fret-table
c1 | d1 |
\set predefinedDiagramTable = #custom-fretboard-table-one
c1 | d1 |
\set predefinedDiagramTable = #custom-fretboard-table-two
c1 | d1 |
}
}
\new Staff {
\clef "treble_8"
<<
\chordmode {
c1 | d1 |
c1 | d1 |
c1 | d1 |
}
{
s1_\markup "Default table" | s1 |
s1_\markup \column {"New table" "from empty"} | s1 |
s1_\markup \column {"New table" "from default"} | s1 |
}
>>
}
>>
Vegeu també
Referència de la notació: Tabulatures personalitzades, Diagrames de trast automàtics, Panoràmica del mode d’acords, Diagrames predefinits de trasts.
Fitxers d’inici:
‘ly/predefined-guitar-fretboards.ly’,
‘ly/predefined-guitar-ninth-fretboards.ly’,
‘ly/predefined-ukulele-fretboards.ly’,
‘ly/predefined-mandolin-fretboards.ly’.
Fragments de codi: Fretted strings.
Referència de funcionament intern: fret-diagram-interface.
Diagrames de trast automàtics
Es poden crear diagrames de trast automàticament a partir de les
notes introduïdes usant el context FretBoards. Si no està
disponible cap diagrama predefinit per a les notes introduïdes en
l’afinació stringTunings activa, aquest context calcula les
cordes i els trasts que es poden usar per tocar les notes.
<<
\new ChordNames {
\chordmode {
f1 g
}
}
\new FretBoards {
<f, c f a c' f'>1
<g,\6 b, d g b g'>1
}
\new Staff {
\clef "treble_8"
<f, c f a c' f'>1
<g, b, d g b' g'>1
}
>>
Atès que de forma predeterminada no es carrega cap diagrama predefinit, el comportament predeterminat és el càlcul automàtic dels diagrames de trast. Un cop que els diagrames predeterminats s’han carregat, es pot activar i desactivar el càlcul automàtic amb instruccions predefinides:
\storePredefinedDiagram #default-fret-table
<c e g c' e'>
#guitar-tuning
#"x;3-1-(;5-2;5-3;5-4;3-1-1-);"
<<
\new ChordNames {
\chordmode {
c1 c c
}
}
\new FretBoards {
<c e g c' e'>1
\predefinedFretboardsOff
<c e g c' e'>1
\predefinedFretboardsOn
<c e g c' e'>1
}
\new Staff {
\clef "treble_8"
<c e g c' e'>1
<c e g c' e'>1
<c e g c' e'>1
}
>>
En alguns casos el calculador de trasts és incapaç de trobar un
diagrama acceptable. Això es pot remeiar generalment mitjançant
l’assignació manual d’una nota a una corda. En molts casos sols
s’ha de col·locar manualment una nota sobre una corda; la resta de
notes se situarà al lloc adequat per part del context
FretBoards.
Es poden afegir digitacions als diagrames de trast del context FretBoard.
<<
\new ChordNames {
\chordmode {
c1 d:m
}
}
\new FretBoards {
<c-3 e-2 g c'-1 e'>1
<d a-2 d'-3 f'-1>1
}
\new Staff {
\clef "treble_8"
<c e g c' e'>1
<d a d' f'>1
}
>>
El trast mínim a usar en el càlcul de cordes i trasts per al
context FretBoard es pot fixar amb la propietat
minimumFret.
<<
\new ChordNames {
\chordmode {
d1:m d:m
}
}
\new FretBoards {
<d a d' f'>1
\set FretBoards.minimumFret = #5
<d a d' f'>1
}
\new Staff {
\clef "treble_8"
<d a d' f'>1
<d a d' f'>1
}
>>
Les cordes i els trasts per al context FretBoards depenen
de la propietat stringTunings, que tenen el mateix
significat que en el context de tabulatura TabStaff. Consulteu
Tabulatures personalitzades per veure més informació sobre
la propietat stringTunings.
L’aspecte gràfic d’un diagrama de trasts es pot personalitzar
d’acord a les preferències de l’usuari a través de les propietats
de la interfície fret-diagram-interface. Els detalls es
poden trobar a
fret-diagram-interface. Per a un
diagrama de FretBoards, les propietats de la interfície
pertanyen a FretBoards.FretBoard.
Instruccions predefinides
\predefinedFretboardsOff,
\predefinedFretboardsOn.
Vegeu també
Referència de la notació: Tabulatures personalitzades.
Fragments de codi: Fretted strings.
Referència de funcionament intern: fret-diagram-interface.
Advertiments i problemes coneguts
Els càlculs de tabulatura automàtics no funcionen bé per a instruments amb afinacions no monòtones.
Digitacions de la mà dreta
Les digitacions de la mà dreta p-i-m-a s’han d’introduir usant
\rightHandFinger seguit d’un número.
Nota: Si el número s’introdueix en notació de l’Scheme,
recordeu-vos d’escriure al final un espai seguit d’un angle de
tancament > o semblant.
\clef "treble_8" c4\rightHandFinger #1 e\rightHandFinger #2 g\rightHandFinger #3 c'\rightHandFinger #4 <c\rightHandFinger #1 e\rightHandFinger #2 g\rightHandFinger #3 c'\rightHandFinger #4 >1
Per brevetat, es pot escriure \rightHandFinger de forma més
curta, com per exemple RH:
RH=#rightHandFinger
Fragments de codi seleccionats
Placement of right-hand fingerings
It is possible to exercise greater control over the placement of right-hand fingerings by setting a specific property, as demonstrated in the following example. Note: you must use a chord construct
#(define RH rightHandFinger)
\relative c {
\clef "treble_8"
\set strokeFingerOrientations = #'(up down)
<c-\RH #1 e-\RH #2 g-\RH #3 c-\RH #4 >4
\set strokeFingerOrientations = #'(up right down)
<c-\RH #1 e-\RH #2 g-\RH #3 c-\RH #4 >4
\set strokeFingerOrientations = #'(left)
<c-\RH #1 e-\RH #2 g-\RH #3 c-\RH #4 >2
}
Fingerings string indications and right-hand fingerings
This example combines left-hand fingering, string indications, and right-hand fingering.
#(define RH rightHandFinger)
\relative c {
\clef "treble_8"
<c-3\5-\RH #1 >4
<e-2\4-\RH #2 >4
<g-0\3-\RH #3 >4
<c-1\2-\RH #4 >4
}
Vegeu també
Fragments de codi: Fretted strings.
Referència de funcionament intern: StrokeFinger.
2.4.2 Guitarra
Gairebé tots els temes de notació relacionats amb la música per a guitarra estan suficientment coberts a la secció general sobre ajustaments d’instruments de trasts, però hi ha alguns temes específics que convé tractar aquí. De forma ocasional, els usuaris volen crear documents del tipus de cançoners que tinguin sols la lletra de les cançons amb indicacions d’acords sobre la lletra. Atès que el LilyPond és un gravador de música, no es recomana per a document que no tinguin notació musical. Una alternativa millor és un processador de text, editor de text o, per usuaris amb experiència, un gravador com ara GuitarTeX.
| Indicació de la posició i la celleta | ||
| Indicació d’harmònics i notes tapades | ||
| Indicació d’acords de potència o de cinquena buida |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Guitarra ] | [ Amunt : Guitarra ] | [ Indicació d'harmònics i notes tapades > ] | ||
Indicació de la posició i la celleta
Aquest exemple mostra com incloure indicacions de posició i celleta de guitarra:
\relative {
\clef "treble_8"
b,16 d g b e
\textSpannerDown
\override TextSpanner.bound-details.left.text = #"XII "
g16\startTextSpan
b16 e g e b g\stopTextSpan
e16 b g d
}
Vegeu també
Referència de la notació: Extensions de text.
Fragments de codi: Fretted strings, Expressive marks.
Indicació d’harmònics i notes tapades
Es poden usar caps de nota especials per indicar notes apagades o harmònics. Els harmònics se solen explicar de forma més completa amb un marcatge de text.
\relative {
\clef "treble_8"
\override Staff.NoteHead.style = #'harmonic-mixed
d'^\markup { \italic { \fontsize #-2 { "harm. 12" }}} <g b>1
}
Les notes tapades (anomenades també notes mortes) es permeten dins dels pentagrames normals i de tabulatura:
music = \relative {
< a\3 \deadNote c\2 a'\1 >4
< b\3 \deadNote d\2 b'\1 >
< c\3 \deadNote e\2 c'\1 >
\deadNotesOn
\tuplet 3/2 { g8 b e }
\deadNotesOff
< a,\3 c\2 e\1 >1
}
\new StaffGroup <<
\new Staff {
\clef "treble_8"
\music
}
\new TabStaff {
\music
}
>>
Una altra tècnica d’execució (utilitzada especialment a la guitarra elèctrica) s’anomena tapat de palma. La corda és tapa parcialment amb la palma de la mà que polsa (d’aquí el nom). El LilyPond permet la notació de les notes d’estil de tapat de palma mitjançant el canvi de la forma del cap de nota a un triangle.
\new Voice { % Advertiment: es requereix un inici de Voice
% perquè palmMuteOff funcioni apropiadament
% quan palmMuteOn es posa a l'inici de la
% peça.
\relative c, {
\clef "G_8"
\palmMuteOn
e8^\markup { \musicglyph "noteheads.u2do" = palm mute }
< e b' e > e
\palmMuteOff
e e \palmMute e e e |
e8 \palmMute { e e e } e e e e |
< \palmMute e b' e >8 \palmMute { e e e } < \palmMute e b' e >2
}
}
Vegeu també
Fragments de codi: Fretted strings.
Referència de la notació: Caps de nota especials, Estils de caps de nota.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Indicació d'harmònics i notes tapades ] | [ Amunt : Guitarra ] | [ Banjo > ] | ||
Indicació d’acords de potència o de cinquena buida
Els acords de cinquena buida o acords de potència (power chords) i els seus símbols es poden gravar en el mode d’acords o com construccions d’acord normals:
ChordsAndSymbols = {
\chordmode {
\powerChords
e,,1:5
a,,1:5.8
\set minimumFret = #8
c,1:5
f,1:5.8
}
\set minimumFret = #5
<a, e>1
<g d' g'>1
}
\score {
<<
\new ChordNames {
\ChordsAndSymbols
}
\new Staff {
\clef "treble_8"
\ChordsAndSymbols
}
\new TabStaff {
\ChordsAndSymbols
}
>>
}
Els símbols d’acords de cinquena buida es desactiven tan aviat com s’utilitza qualsevol dels altres modificadors d’acord:
mixedChords = \chordmode {
c,1
\powerChords
b,,1:5
fis,,1:5.8
g,,1:m
}
\score {
<<
\new ChordNames {
\mixedChords
}
\new Staff {
\clef "treble_8"
\mixedChords
}
\new TabStaff {
\mixedChords
}
>>
}
Vegeu també
Glossari musical: power chord.
Referència de la notació: Acords estesos i alterats, Impressió dels noms d’acord.
Fragments de codi: Fretted strings.
2.4.3 Banjo
| Tabulatures de banjo |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Banjo ] | [ Amunt : Banjo ] | [ Laud > ] | ||
Tabulatures de banjo
El LilyPond permet el banjo de cinc cordes d’una manera bàsica. Quan feu tabulatures per a banjo de cinc cordes, utilitzeu la funció de format de tabulatura de banjo per obtenir els números correctes dels trasts per a la cinquena corda:
music = {
g8 d' g'\5 a b g e d' |
g4 d''8\5 b' a'\2 g'\5 e'\2 d' |
g4
}
<<
\new Staff \with { \omit StringNumber }
{ \clef "treble_8" \music }
\new TabStaff \with {
tablatureFormat = #fret-number-tablature-format-banjo
stringTunings = #banjo-open-g-tuning
}
{ \music }
>>
Ja hi ha predefinides diverses afinacions comunes per al banjo de
cinc cordes:
banjo-c-tuning (sol-Do-Sol-Si-Re),
banjo-modal-tuning (sol-Re-Sol-Do-Re),
banjo-open-d-tuning (Re Mayor al aire, la-Re-Fa#-La-Re) y
banjo-open-dm-tuning (Re menor al aire, la-Re-Fa-La-Re).
Aquestes afinacions es poden convertir a afinacions per a banjo de
quatre cordes utilitzant la funció four-string-banjo:
\set TabStaff.stringTunings = #(four-string-banjo banjo-c-tuning)
Vegeu també
Fitxers d’inici: ‘ly/string-tunings-init.ly’
Fragments de codi: Fretted strings.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Tabulatures de banjo ] | [ Amunt : Instruments de corda amb trasts ] | [ Tabulatures de laud > ] | ||
2.4.4 Laud
| Tabulatures de laud |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Laud ] | [ Amunt : Laud ] | [ Percussió > ] | ||
Tabulatures de laud
El LilyPond permet tabulatures per a laud.
Per obtenir les cordes greus addicionals, utilitzeu
additionalBassStrings, on es determinen les notes
corresponents a aquestes cordes. S’imprimeixen per sota de la
línia inferior com a:a, /a, //a, ///a, 4, 5, etc.
S’ha d’usar el valor fret-letter-tablature-format per a la
propietat de context tablatureFormat i probablement també
ajustar la propietat fretLabels per a una personalització
més gran.
m = { f'4 d' a f d a, g, fis, e, d, c, \bar "|." }
\score {
<<
\new Staff { \clef bass \cadenzaOn \m }
\new TabStaff \m
>>
\layout {
\context {
\Score
tablatureFormat = #fret-letter-tablature-format
}
\context {
\TabStaff
stringTunings = \stringTuning <a, d f a d' f'>
additionalBassStrings = \stringTuning <c, d, e, fis, g,>
fretLabels = #'("a" "b" "r" "d" "e" "f" "g" "h" "i" "k")
}
}
}
Advertiments i problemes coneguts
No es permet l’ús de FretBoards amb
additionalBassStrings; de fer-se servir, pot provocar un
resultat poc satisfactori.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Tabulatures de laud ] | [ Amunt : Notació especialitzada ] | [ Notació comuna per a percussió > ] | ||
2.5 Percussió
| 2.5.1 Notació comuna per a percussió |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Percussió ] | [ Amunt : Percussió ] | [ Referències per a percussió > ] | ||
2.5.1 Notació comuna per a percussió
La notació rítmica es fa servir principalment per a la percussió i la bateria, però també es pot utilitzar per mostrar els valors rítmics d’una melodia.
| Referències per a percussió | ||
| Notació bàsica de percussió | ||
| Redoblaments | ||
| Percussió afinada | ||
| Pautes de percussió | ||
| Pautes de percussió personalitzades | ||
| Notes fantasma |
Referències per a percussió
- La notació d’algunes percussions es pot fer sobre una pauta de ritme; això s’estudia a Mostrar els ritmes de la melodia i Creació d’instàncies de pentagrames nous.
- La sortida MIDI es tracta a una secció a part; vegeu Instruments MIDI.
Vegeu també
Referència de la notació: Mostrar els ritmes de la melodia, Creació d’instàncies de pentagrames nous, Instruments MIDI.
Fragments de codi: Percussion.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Referències per a percussió ] | [ Amunt : Notació comuna per a percussió ] | [ Redoblaments > ] | ||
Notació bàsica de percussió
Les notes de percussió es poden escriure al mode
\drummode, que és semblant al mode estàndard per introduir
notes. La manera més fàcil d’escriure notes de percussió és
utilitzar l’ordre \drums, que crea el context i el mode
d’entrada apropiats per a percussió:
\drums {
hihat4 hh bassdrum bd
}
Això és una abreviatura de
\new DrumStaff \drummode {
hihat4 hh bassdrum bd
}
Cada element d’un conjunt de percussió porta un nom complet i un nom abreujat, i les dues es poden usar a l’entrada. La llista completa de noms d’instruments de percussió es troben a Notes de percussió.
Observeu que la notació normal de les notes amb alçada determinada
(com cis4) en un context DrumStaff produeixen un
missatge d’error. Les claus de percussió s’afegeixen
automàticament al context DrumStaff però també es poden
establir explícitament o utilitzar altres claus.
\drums {
\clef percussion
bd4 4 4 4
\clef treble
hh4 4 4 4
}
Hi ha certs detalls respecte a com s’incorpora el MIDI per als instruments de percussió; per veure els detalls, consulteu Instruments MIDI.
Vegeu també
Referència de la notació: Instruments MIDI, Notes de percussió.
Fitxers d’inici: ‘ly/drumpitch-init.ly’.
Fragments de codi: Percussion.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Notació bàsica de percussió ] | [ Amunt : Notació comuna per a percussió ] | [ Percussió afinada > ] | ||
Redoblaments
Els redoblaments s’indiquen mitjançant tres barres creuades a la plica. Per a les negres o notes més llargues, les tres barres es mostren explícitament, les corxeres es presenten amb dues barres creuades (sent la barra de corxera la tercera), i els redoblament més breus que les corxeres tenen una barra creuada per complementar les barres normals. Això s’aconsegueix mitjançant la notació de trèmol, vegeu Repeticions de trèmol.
\drums {
\time 2/4
sn16 8 16 8 8:32 ~
8 8 4:32 ~
4 8 16 16
4 r4
}
Els cops de baqueta es poden indicar mitjançant la col·locació
dels elements de marcatge "R" o "L" a sobre o a sota
de les notes, com s’estudia a
Direcció i col·locació. La
propietat staff-padding es pot sobreescriure, per
aconseguir una línia de base satisfactòria.
\drums {
\repeat unfold 2 {
sn16^"L" 16^"R" 16^"L" 16^"L" 16^"R" 16^"L" 16^"R" 16^"R"
\stemUp
sn16_"L" 16_"R" 16_"L" 16_"L" 16_"R" 16_"L" 16_"R" 16_"R"
}
}
Vegeu també
Referència de la notació: Repeticions de trèmol.
Fragments de codi: Percussion.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Redoblaments ] | [ Amunt : Notació comuna per a percussió ] | [ Pautes de percussió > ] | ||
Percussió afinada
Certs instruments de percussió d’alçada determinada (per exemple: el xilòfon, el vibràfon i els timbals) s’escriuen usant pentagrames normals. Això s’estudia a d’altres seccions del manual.
Vegeu també
Referència de la notació: Instruments MIDI.
Fragments de codi: Percussion.
Pautes de percussió
Una part de percussió per mes d’un instrument, normalment utilitza una pauta de diverses línies on cada posició dins de la pauta es refereix a un element de percussió. Per a gravar la música, s’han d’interpretar les notes dels contextos DrumStaff i DrumVoice.
up = \drummode {
crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat
}
down = \drummode {
bassdrum4 snare8 bd r bd sn4
}
\new DrumStaff <<
\new DrumVoice { \voiceOne \up }
\new DrumVoice { \voiceTwo \down }
>>
L’exemple anterior mostra una notació polifònica completa. La notació polifònica abreujada, descrita a Sento veus, també es pot fer servir. Per exemple,
\new DrumStaff <<
\drummode {
bd4 sn4 bd4 sn4
<< {
\repeat unfold 16 hh16
} \\ {
bd4 sn4 bd4 sn4
} >>
}
>>
També hi ha altres possibilitats pel que fa a la disposició. Per
usar-les, establiu la propietat drumStyleTable all context
DrumVoice. S’han predefinit les variables següents:
-
drums-style És l’opció per defecte. S’usa per gravar una bateria típica sobre pentagrama:
L’esquema de percussió permet sis tambors greus (toms) diferents. Quan calguin menys toms, senzillament seleccioneu els que produeixen el resultat desitjat, és a dir, per tenir toms a les tres línies centrals s’utilitzarà
tommh,tommlitomfh.-
agostini-drums-style Inventat pel percussionista francès Dante Agostini el 1965, aquesta notació es fa servir a França però també a molts altres llocs.
-
timbales-style S’usa per gravar timbals en una pauta de dues línies:
-
congas-style S’usa per gravar congues en una pauta de dues línies:
-
bongos-style S’usa per a bongos sobre una pauta de dues línies:
-
percussion-style Per gravar molts tipus de percussions simples sobre pautes d’una línia:
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Pautes de percussió ] | [ Amunt : Notació comuna per a percussió ] | [ Notes fantasma > ] | ||
Pautes de percussió personalitzades
Si no us agrada cap de les llistes predefinides, podeu definir la vostra pròpia llista al principi del vostre fitxer.
#(define mydrums '(
(bassdrum default #f -1)
(snare default #f 0)
(hihat cross #f 1)
(halfopenhihat cross "halfopen" 1)
(pedalhihat xcircle "stopped" 2)
(lowtom diamond #f 3)))
up = \drummode { hh8 hh hhho hhho hhp4 hhp }
down = \drummode { bd4 sn bd toml8 toml }
\new DrumStaff <<
\set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
\new DrumVoice { \voiceOne \up }
\new DrumVoice { \voiceTwo \down }
>>
Fragments de codi seleccionats
Vegeu aquí alguns exemples addicionals:
Dos blocs de fusta, escrits amb wbh (woodblock-high, bloc alt) i wbl (woodblock-low bloc baix.)
% Aquestes línies defineixen la posició dels blocs de fusta al pentagrama;
% si ho voleu, podeu canviar-lo o podeu usar caps de nota especials
% per als blocs de fusta.
#(define mydrums '((hiwoodblock default #t 3)
(lowoodblock default #t -2)))
woodstaff = {
% Això defineix un pentagrama amb sols dues línies.
% També defineix les posicions de les dues línies.
\override Staff.StaffSymbol.line-positions = #'(-2 3)
% Això és necessari; si no s'entra, la barra de compàs seria massa curta!
\override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
}
\new DrumStaff {
\set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
% Amb això carregueu la vostra nova taula d'estil de percussió
\woodstaff
\drummode {
\time 2/4
wbl8 16 16 8-> 8 |
wbl8 16 16-> ~ 16 16 r8 |
}
}
Observeu que en aquest cas especial es pot alterar la longitud de
la línia divisòria amb \override Staff.BarLine.bar-extent
#'(de . a). En cas contrari resulta massa curta. També heu de
definir les posicions de les dues línies del pentagrama. Per a
més informació sobre aquests temes delicats, consulteu
El símbol del pentagrama.
Una pandereta, escrita mitjaç+ant ‘tamb’ (tambourine):
#(define mydrums '((tambourine default #t 0)))
\new DrumStaff \with { instrumentName = #"Tambourine" }
\drummode {
\set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
\override Staff.StaffSymbol.line-positions = #'( 0 )
\override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
\time 6/8
tamb8. 16 8 8 8 8 |
tamb4. 8 8 8 |
% Cal l'ajustament per a la duració escalada i el silenci més curt
% per a la finalització correcta de l'extensor de tri.
tamb2.*5/6 \startTrillSpan s8 \stopTrillSpan |
}
Música per a gong, introduïda amb ‘tt’ (tam-tam):
#(define mydrums '((tamtam default #t 0)))
\new DrumStaff \with { instrumentName = #"Tamtam" }
\drummode {
\set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
\override Staff.StaffSymbol.line-positions = #'( 0 )
\override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
tt 1 \pp \laissezVibrer
}
Dues campanes, introduïdes amb ‘cb’ (cowbell, esquella) i ‘rb’ (ridebell, campana normal)
#(define mydrums '((ridebell default #t 3)
(cowbell default #t -2)))
\new DrumStaff \with { instrumentName = #"Different Bells" }
\drummode {
\set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
\override DrumStaff.StaffSymbol.line-positions = #'(-2 3)
\override Staff.BarLine.bar-extent = #'(-1.5 . 1.5)
\time 2/4
rb8 8 cb8 16 rb16-> ~ |
16 8 16 cb8 8 |
}
Aquí hi ha un exemple breu procedent de la ‘Història del soldat’ de Stravinsky:
#(define mydrums '((bassdrum default #t 4)
(snare default #t -4)
(tambourine default #t 0)))
global = {
\time 3/8 s4.
\time 2/4 s2*2
\time 3/8 s4.
\time 2/4 s2
}
drumsA = {
\context DrumVoice <<
{ \global }
{ \drummode {
\autoBeamOff
\stemDown sn8 \stemUp tamb s8 |
sn4 \stemDown sn4 |
\stemUp tamb8 \stemDown sn8 \stemUp sn16 \stemDown sn \stemUp sn8 |
\stemDown sn8 \stemUp tamb s8 |
\stemUp sn4 s8 \stemUp tamb
}
}
>>
}
drumsB = {
\drummode {
s4 bd8 s2*2 s4 bd8 s4 bd8 s8
}
}
\layout {
indent = #40
}
\score {
\new StaffGroup <<
\new DrumStaff \with {
instrumentName = \markup {
\column {
"Tambourine"
"et"
"caisse claire s. timbre"
}
}
drumStyleTable = #(alist->hash-table mydrums)
}
\drumsA
\new DrumStaff \with {
instrumentName = #"Grosse Caisse"
drumStyleTable = #(alist->hash-table mydrums)
}
\drumsB
>>
}
Vegeu també
Fragments de codi: Percussion.
Referència de funcionament intern: DrumStaff, DrumVoice.
Notes fantasma
Les notes fantasma per a la bateria i instruments de percussió es
poden crear utilitzant l’ordre \parenthesize detallada a
Parèntesis.
\new DrumStaff
<<
\context DrumVoice = "1" { s1 }
\context DrumVoice = "2" { s1 }
\drummode {
<<
{
hh8[ 8] <hh sn> hh16
\parenthesize sn hh
\parenthesize sn hh8 <hh sn> hh
} \\
{
bd4 r4 bd8 8 r8 bd
}
>>
}
>>
Vegeu també
Fragments de codi: Percussion.
2.6 Instruments de vent
Aquesta secció inclou elements de notació musical que es plantegen en escriure per a instruments de vent.
| 2.6.1 Notació comuna per a instruments de vent | ||
| 2.6.2 Gaita | ||
| 2.6.3 Instruments de vent fusta |
2.6.1 Notació comuna per a instruments de vent
Aquesta secció presenta la notació comuna per gairebé tots els instruments de vent.
| Referències per a instruments de vent | ||
| Digitacions |
Referències per a instruments de vent
Molts aspectes de la notació per a instruments de vent tenen que veure amb les respiracions i els cops de llengua:
- Les respiracions es poden especificar mitjançant silencis o marques de respiració, vegeu Marques de respiració.
- L’execució lligada s’indica mitjançant lligadures d’expressió, vegeu Lligadures d’expressió.
- Els diferents cops de llengua, des del legato fins al staccato passant pel non legato, es presenten en general mitjançant articulacions, a vegades combinades amb lligadures d’expressió, vegeu Articulacions i ornaments i Llista d’articulacions.
- El frullato s’indica generalment mitjançant una indicació de trèmol i una marca textual sobre la nota. Vegeu Repeticions de trèmol.
També hi ha d’altres aspectes de la notació musical que són d’aplicació als instruments de vent:
- Molts instruments de vent són transpositors, vegeu Transposició dels instruments.
- El portament és característic del trombó, però altres instruments de vent poden realitzar glissandos amb claus o vàlvules. Vegeu Glissando.
- Els glissandos de sèrie harmònica, que són possible a tots els metalls però força específics de les trompes, s’escriuen en general com notes d’adorn, vegeu Notes d’adorn.
- Les inflexions de to al final d’una nota es presenten a Caigudes i elevacions.
-
Els cops de clau o de vàlvula se solen indicar amb l’estil
cross(aspes) de caps de nota, vegeu Caps de nota especials. -
Els instruments de vent-fusta poden sobreinflar les notes greus
per produir harmònics. Es mostren per mitjà de l’articulació
flageolet. Vegeu Llista d’articulacions. -
L’ús de sordines per als metalls se sol sindicar mitjançant
marques de text, però quan es produeixen molts canvis ràpids és
millor utilitzar les articulacions
stopped(tapat) iopen(obert). Vegeu Articulacions i ornaments i Llista d’articulacions. -
Las trompes tapades s’indiquen per mitjà de l’articulació
stopped. Vegeu Articulacions i ornaments.
Fragments de codi seleccionats
Changing \flageolet mark size
To make the \flageolet circle smaller use the following Scheme
function.
smallFlageolet =
#(let ((m (make-articulation "flageolet")))
(set! (ly:music-property m 'tweaks)
(acons 'font-size -3
(ly:music-property m 'tweaks)))
m)
\layout { ragged-right = ##f }
\relative c'' {
d4^\flageolet_\markup { default size } d_\flageolet
c4^\smallFlageolet_\markup { smaller } c_\smallFlageolet
}
Vegeu també
Referència de la notació: Marques de respiració, Lligadures d’expressió, Articulacions i ornaments, Llista d’articulacions, Repeticions de trèmol, Transposició dels instruments, Glissando, Notes d’adorn, Caigudes i elevacions, Caps de nota especials.
Fragments de codi: Winds.
Digitacions
Tots els instruments de vent a part del trombó requereixen l’ús de diferents dits per produir cada nota. Als fragments de codi que apareixen a continuació poden veure’s alguns exemples de digitació.
Es poden produir diagrames de posicions per a instruments de vent fusta, com es descriu a Diagrames de posicions per a vent fusta.
Fragments de codi seleccionats
Fingering symbols for wind instruments
Special symbols can be achieved by combining existing glyphs, which is useful for wind instruments.
centermarkup = {
\once \override TextScript.self-alignment-X = #CENTER
\once \override TextScript.X-offset =#(lambda (g)
(+ (ly:self-alignment-interface::centered-on-x-parent g)
(ly:self-alignment-interface::x-aligned-on-self g)))
}
\score {
\relative c'{
g\open
\once \override TextScript.staff-padding = #-1.0
\centermarkup
g^\markup {
\combine
\musicglyph "scripts.open"
\musicglyph "scripts.tenuto"
}
\centermarkup
g^\markup {
\combine
\musicglyph "scripts.open"
\musicglyph "scripts.stopped"
}
g\stopped
}
}
Recorder fingering chart
The following example demonstrates how fingering charts for wind instruments can be realized.
% range chart for paetzold contrabass recorder
centermarkup = {
\once \override TextScript.self-alignment-X = #CENTER
\once \override TextScript.X-offset =#(lambda (g)
(+ (ly:self-alignment-interface::centered-on-x-parent g)
(ly:self-alignment-interface::x-aligned-on-self g)))
}
\score {
\new Staff \with {
\remove "Time_signature_engraver"
\omit Stem
\omit Flag
\consists "Horizontal_bracket_engraver"
}
{
\clef bass
\set Score.timing = ##f
f,1*1/4 \glissando
\clef violin
gis'1*1/4
\stemDown a'4^\markup{1)}
\centermarkup
\once \override TextScript.padding = #2
bes'1*1/4_\markup{\override #'(baseline-skip . 1.7) \column
{ \fontsize #-5 \slashed-digit #0 \finger 1 \finger 2 \finger 3 \finger 4
\finger 5 \finger 6 \finger 7} }
b'1*1/4
c''4^\markup{1)}
\centermarkup
\once \override TextScript.padding = #2
cis''1*1/4
deh''1*1/4
\centermarkup
\once \override TextScript.padding = #2
\once \override Staff.HorizontalBracket.direction = #UP
e''1*1/4_\markup{\override #'(baseline-skip . 1.7) \column
{ \fontsize #-5 \slashed-digit #0 \finger 1 \finger 2 \finger 4
\finger 5} }\startGroup
f''1*1/4^\markup{2)}\stopGroup
}
}
Vegeu també
Referència de la notació: Diagrames de posicions per a vent fusta.
Fragments de codi: Winds.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Digitacions ] | [ Amunt : Instruments de vent ] | [ Definicions per a la gaita > ] | ||
2.6.2 Gaita
Aquesta secció tracta de la notació comuna per a gaita.
| Definicions per a la gaita | ||
| Exemple de música de gaita |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Gaita ] | [ Amunt : Gaita ] | [ Exemple de música de gaita > ] | ||
Definicions per a la gaita
El Lilypond conté definicions especials per a la música de gaita escocesa de les terres altes; per usar-les, escriviu
\include "bagpipe.ly"
al principi del fitxer d’entrada. D’aquesta forma podrà escriure
les notes d’adorn especials que són usuals a la música de gaita,
mitjançant ordres breus. Per exemple, podeu escriure \taor
en lloc de
\grace { \small G32[ d G e] }
‘bagpipe.ly’ també conté definicions d’alçades per a les
notes de la gaita en les octaves adequades, de forma que no us
hàgiu de preocupar per \relative o per \transpose.
\include "bagpipe.ly"
{ \grg G4 \grg a \grg b \grg c \grg d \grg e \grg f \grA g A }
La musica de gaita utilitza sempre la tonalitat de Re major (tot i
que això no és completament cert). Tanmateix, atès que és l’única
tonalita que es pot fer servir, normalment no s’escriu
l’armadura. Per configurar això de forma correcta, comenceu la
música sempre amb \hideKeySignature (oculta l’armadura).
Si per algun motiu voleu mostrar l’armadura, podeu usar
\showKeySignature en el seu lloc.
Alguna música moderna utilitza digitacions creuades sobre el Do i
el Fa per fer que aquestes notes siguin bemolls. Es pot indicar
això mitjançant c-flat o f-flat. De forma semblant,
el sol agut piobaireachd es pot escriure g-flat quan
apareix a la música lleugera.
Vegeu també
Fragments de codi: Winds.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Definicions per a la gaita ] | [ Amunt : Gaita ] | [ Instruments de vent fusta > ] | ||
Exemple de música de gaita
La coneguda melodia Amazing Grace té aquest aspecte en notació de gaita.
\include "bagpipe.ly"
\layout {
indent = 0.0\cm
\context { \Score \remove "Bar_number_engraver" }
}
\header {
title = "Amazing Grace"
meter = "Hymn"
arranger = "Trad. arr."
}
{
\hideKeySignature
\time 3/4
\grg \partial 4 a8. d16
\slurd d2 \grg f8[ e32 d16.]
\grg f2 \grg f8 e
\thrwd d2 \grg b4
\grG a2 \grg a8. d16
\slurd d2 \grg f8[ e32 d16.]
\grg f2 \grg e8. f16
\dblA A2 \grg A4
\grg A2 f8. A16
\grg A2 \hdblf f8[ e32 d16.]
\grg f2 \grg f8 e
\thrwd d2 \grg b4
\grG a2 \grg a8. d16
\slurd d2 \grg f8[ e32 d16.]
\grg f2 e4
\thrwd d2.
\slurd d2
\bar "|."
}
Vegeu també
Fragments de codi: Winds.
2.6.3 Instruments de vent fusta
Aquesta secció estudia la notació específica per a instruments de vent fusta.
| 2.6.3.1 Diagrames de posicions per a vent fusta |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Instruments de vent fusta ] | [ Amunt : Instruments de vent fusta ] | [ Notació d'acords > ] | ||
2.6.3.1 Diagrames de posicions per a vent fusta
Es poden utilitzar diagrames de posicions per als instruments de vent fusta per indicar la digitació a usar en tocar certes notes, i es poden utilitzar per als instruments següents:
- flautí
- flauta
- oboè
- clarinet
- clarinet baix
- saxofon
- fagot
- contrafagot
Els diagrames es creen com elements de marcatge:
c''1^\markup {
\woodwind-diagram #'piccolo #'((lh . (gis))
(cc . (one three))
(rh . (ees)))
}
Les claus poden estar obertes, parcialment cobertes, amb l’anell polsat o totalment premudes:
\textLengthOn
c''1^\markup {
\center-column {
"one quarter"
\woodwind-diagram #'flute #'((cc . (one1q))
(lh . ())
(rh . ()))
}
}
c''1^\markup {
\center-column {
"one half"
\woodwind-diagram #'flute #'((cc . (one1h))
(lh . ())
(rh . ()))
}
}
c''1^\markup {
\center-column {
"three quarter"
\woodwind-diagram #'flute #'((cc . (one3q))
(lh . ())
(rh . ()))
}
}
c''1^\markup {
\center-column {
"ring"
\woodwind-diagram #'flute #'((cc . (oneR))
(lh . ())
(rh . ()))
}
}
c''1^\markup {
\center-column {
"full"
\woodwind-diagram #'flute #'((cc . (oneF two))
(lh . ())
(rh . ()))
}
}
Els trins s’indiquen mitjanant claus ombrejades:
c''1^\markup {
\woodwind-diagram #'bass-clarinet
#'((cc . (threeT four))
(lh . ())
(rh . (b fis)))
}
És possible imprimir una àmplia varietat de trins:
\textLengthOn
c''1^\markup {
\center-column {
"one quarter to ring"
\woodwind-diagram #'flute #'((cc . (one1qTR))
(lh . ())
(rh . ()))
}
}
c''1^\markup {
\center-column {
"ring to shut"
\woodwind-diagram #'flute #'((cc . (oneTR))
(lh . ())
(rh . ()))
}
}
c''1^\markup {
\center-column {
"ring to open"
\woodwind-diagram #'flute #'((cc . (oneRT))
(lh . ())
(rh . ()))
}
}
c''1^\markup {
\center-column {
"open to shut"
\woodwind-diagram #'flute #'((cc . (oneT))
(lh . ())
(rh . ()))
}
}
c''1^\markup {
\center-column {
"one quarter to three quarters"
\woodwind-diagram #'flute #'((cc . (one1qT3q))
(lh . ())
(rh . ()))
}
}
La llista de totes les tonalitats i ajustos possibles per a un
instrument donat es pot imprimir a la consola usant
#(print-keys-verbose 'flute) o en el fitxer de registre
usant #(print-keys-verbose 'flute (current-error-port)),
tot i que no es pot mostrar en la sortida de música impresa.
És possible crear diagrames nous, tot i que requereix coneixements de l’Scheme i potser no està a l’abast de tots els usuaris. Els patrons dels diagrames estan a ‘scm/define-woodwind-diagrams.scm’ i a ‘scm/display-woodwind-diagrams.scm’.
Instruccions predefinides
Fragments de codi seleccionats
Woodwind diagrams listing
The following music shows all of the woodwind diagrams currently defined in LilyPond.
\layout {
indent = 0
}
\relative c' {
\textLengthOn
c1^
\markup {
\center-column {
'tin-whistle
" "
\woodwind-diagram
#'tin-whistle
#'()
}
}
c1^
\markup {
\center-column {
'piccolo
" "
\woodwind-diagram
#'piccolo
#'()
}
}
c1^
\markup {
\center-column {
'flute
" "
\woodwind-diagram
#'flute
#'()
}
}
c1^\markup {
\center-column {
'oboe
" "
\woodwind-diagram
#'oboe
#'()
}
}
c1^\markup {
\center-column {
'clarinet
" "
\woodwind-diagram
#'clarinet
#'()
}
}
c1^\markup {
\center-column {
'bass-clarinet
" "
\woodwind-diagram
#'bass-clarinet
#'()
}
}
c1^\markup {
\center-column {
'saxophone
" "
\woodwind-diagram
#'saxophone
#'()
}
}
c1^\markup {
\center-column {
'bassoon
" "
\woodwind-diagram
#'bassoon
#'()
}
}
c1^\markup {
\center-column {
'contrabassoon
" "
\woodwind-diagram
#'contrabassoon
#'()
}
}
}
Graphical and text woodwind diagrams
In many cases, the keys other than the central column can be displayed by key name as well as by graphical means.
\relative c'' {
\textLengthOn
c1^\markup
\woodwind-diagram
#'piccolo
#'((cc . (one three))
(lh . (gis))
(rh . (ees)))
c^\markup
\override #'(graphical . #f) {
\woodwind-diagram
#'piccolo
#'((cc . (one three))
(lh . (gis))
(rh . (ees)))
}
}
Changing the size of woodwind diagrams
The size and thickness of woodwind diagrams can be changed.
\relative c'' {
\textLengthOn
c1^\markup
\woodwind-diagram
#'piccolo
#'()
c^\markup
\override #'(size . 1.5) {
\woodwind-diagram
#'piccolo
#'()
}
c^\markup
\override #'(thickness . 0.15) {
\woodwind-diagram
#'piccolo
#'()
}
}
Woodwind diagrams key lists
The snippet below produces a list of all possible keys and key settings
for woodwind diagrams as defined in
scm/define-woodwind-diagrams.scm. The list will be displayed in
the log file, but not in the music. If output to the console is
wanted, omit the (current-error-port) from the commands.
#(print-keys-verbose 'piccolo (current-error-port))
#(print-keys-verbose 'flute (current-error-port))
#(print-keys-verbose 'flute-b-extension (current-error-port))
#(print-keys-verbose 'tin-whistle (current-error-port))
#(print-keys-verbose 'oboe (current-error-port))
#(print-keys-verbose 'clarinet (current-error-port))
#(print-keys-verbose 'bass-clarinet (current-error-port))
#(print-keys-verbose 'low-bass-clarinet (current-error-port))
#(print-keys-verbose 'saxophone (current-error-port))
#(print-keys-verbose 'soprano-saxophone (current-error-port))
#(print-keys-verbose 'alto-saxophone (current-error-port))
#(print-keys-verbose 'tenor-saxophone (current-error-port))
#(print-keys-verbose 'baritone-saxophone (current-error-port))
#(print-keys-verbose 'bassoon (current-error-port))
#(print-keys-verbose 'contrabassoon (current-error-port))
\score {c''1}
Vegeu també
Fitxers d’inici:
‘scm/define-woodwind-diagrams.scm’,
‘scm/display-woodwind-diagrams.scm’.
Fragmentos de código: Winds.
Referència de funcionament interno TextScript, instrument-specific-markup-interface.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Diagrames de posicions per a vent fusta ] | [ Amunt : Notació especialitzada ] | [ Mode d'acords > ] | ||
2.7 Notació d’acords
Els acords es poden escriure al mode d’acords, que reconeix algunes convencions europees tradicionals de nomenclatura d’acords. També es poden imprimir els noms dels acords. A més a més es pot imprimir notació de baix xifrat.
| 2.7.1 Mode d’acords | ||
| 2.7.2 Impressió dels acords | ||
| 2.7.3 Baix xifrat |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Notació d'acords ] | [ Amunt : Notació d'acords ] | [ Panoràmica del mode d'acords > ] | ||
2.7.1 Mode d’acords
Per introduir acords s’utilitza el mode d’acords. S’usa un indicador de l’estructura de l’acord enlloc de l’alçada de les seves notes.
| Panoràmica del mode d’acords | ||
| Acords més usuals | ||
| Acords estesos i alterats |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Mode d'acords ] | [ Amunt : Mode d'acords ] | [ Acords més usuals > ] | ||
Panoràmica del mode d’acords
Els acords es poden escriure com a música simultània, com s’explica a Notes a un acord.
També es poden escriure els acords al “mode d’acords”, que és un mode d’entrada que se centra en les estructures dels acords dins de la música europea tradicional (on es coneix com «xifrat americà») més que en les notes concretes. Això és molt pràctic per als que estan familiaritzats amb la utilització de noms per descriure els acords. Hi ha més informació sobre els diferents modes d’entrada a Modes d’entrada.
\chordmode { c1 g a g c }
Els acords escrits amb el mode d’acords són elements musicals, i
es poden transposar igual que els acords escrits mitjançant
construccions de música simultània. El \chordmode és
absolut, \relativa no té cap efecte sobre els blocs
\chordmode. Tanmateix, dins de \chordmode les
alçades absolutes són una octava més agudes que al mode de notes.
Es poden barrejar els modes d’acord i de nota a la música seqüencial:
\relative {
<c' e g>2 <g b d>
\chordmode { c2 f }
<c e g>2 <g' b d>
\chordmode { f2 g }
}
Vegeu també
Glossari musical: chord.
Referència de la notació: Notes a un acord, Modes d’entrada.
Fragments de codi: Chords.
Advertiments i problemes coneguts
No es poden usar les abreviatures predefinides d’articulacions i adorns sobre notes dins del mode d’acords; vegeu Articulacions i ornaments.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Panoràmica del mode d'acords ] | [ Amunt : Mode d'acords ] | [ Acords estesos i alterats > ] | ||
Acords més usuals
Les triades majors s’introdueixen escrivint la fonamental i una duració opcional:
\chordmode { c2 f4 g }
Las tríades menors augmentades i disminuïdes s’escriuen posant
: i una cadena modificadora de variant després de la
duració:
\chordmode { c2:m f4:aug g:dim }
Es poden crear acords de sèptima:
\chordmode { c1:7 c:m7 c:maj7 c:dim7 c:aug7 }
La taula que es veu més avall mostra l’efecte dels modificadors de variant sobre els acords de tríada i de sèptima. La sèptima afegida de forma predeterminada als acords és menor, cosa que fa de l’acord de sèptima dominant l’acord bàsic de sèptima. Totes les alteracions es consideren en relació amb la sèptima dominant. Hi ha una taula més completa on apareixen els usos dels modificadors a Modificadors d’acord més usuals.
| Modificador | Acció | Exemple |
| Cap | Acció predeterminada; produeix una triada major. | |
| m, m7 | Acord menor. Aquest modificador baixa la tercera. | |
| dim, dim7 | Acorde disminuït. Aquest modificador baixa la tercera, la quinta i, si existeix, la sèptima. | |
| aug | Acord augmentat. Aquest modificador puja la quinta. | |
| maj, maj7 | Acord de sèptima major. Aquest modificador afegeix una sèptima
elevada. El 7 que segueix a maj és opcional. NO
utilitzeu aquest modificador per crear una triada major. |
Vegeu també
Referència de la notació: Modificadors d’acord més usuals, Acords estesos i alterats.
Fragments de codi: Chords.
Advertiments i problemes coneguts
Sols es pot usar un modificador per a cada acord, normalment sobre la nota més aguda de l’acord. Els acords amb més d’un modificador es processen sense produir errors ni advertiments, però el resultat és imprescindible. Els acords que no es poden aconseguir amb un sols modificador s’han d’alterar en les seves notes individuals com es descriu a Acords estesos i alterats.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Acords més usuals ] | [ Amunt : Mode d'acords ] | [ Impressió dels acords > ] | ||
Acords estesos i alterats
Es poden crear estructures d’acord de complexitat arbitrària dins del mode d’acords. Es pot usar la cadena modificadora per estendre un acord, afegir o treure notes, pujar o baixar notes de l’acord i afegir un baix diferent o crear una inversió.
El primer número que segueix al : es considera que és
l’àmbit de l’acord. L’acord es construeix seqüencialment afegint
terceres a la fonamental fins que s’assoleix el nombre
especificat. Observeu que la sèptima afegida com a part d’un
acord estès és la sèptima menor, no major. Si l’àmbit no és una
tercera (per exemple 6), s’afegeixen terceres fina la tercera més
alta inferior a l’àmbit, i després s’afegeix la nota de l’àmbit.
El valor més gran possible per a l’àmbit és 13. Qualsevol valor
més gran s’interpreta com a 13.
\chordmode {
c1:2 c:3 c:4 c:5
c1:6 c:7 c:8 c:9
c1:10 c:11 c:12 c:13
c1:14
}
Com a excepció especial, c:5 produeix un ‘power chord’,
que té sols la fonamental i la quinta.
Atès que una onzena sense alteració no sona bé quan es combina a
una tresena sense alteració, s’elimina l’onzena dels acords de
:13 (a no ser que s’afegeixi explícitament).
\chordmode {
c1:13 c:13.11 c:m13
}
Es poden afegir notes individuals a un acord. Les addicions
segueixen l’àmbit i van prefixades per un punt (.). La
sèptima normal que s’afegeix a un acord és la sèptima menor, no
major.
\chordmode {
c1:3.5.6 c:3.7.8 c:3.6.13
}
Les notes afegides poden set tan agudes com desitgeu.
\chordmode {
c4:3.5.15 c:3.5.20 c:3.5.25 c:3.5.30
}
Les notes afegides als acords es poden alterar mitjançant l’edició
dels sufixos - o + al número. Per alterar una nota
que s’ha inclòs automàticament com a part de l’estructura bàsica
de l’acord, afegiu-la com una nota alterada.
\chordmode {
c1:7+ c:5+.3- c:3-.5-.7-
}
Una nota que es vol suprimir d’un acord indica dins de la cadena
modificadora prefixant-la amb un accent circumflex ^. Sols
es permet una supressió amb ^ dentro d’una cadena
modificadora.
\chordmode {
c1^3 c:7^5 c:9^3 c:9^3.5 c:13.11^3.7
}
Es pot afegir el modificador sus a la cadena modificadora
per crear acords suspensos. Això elimina la tercera de l’acord.
Escriviu o bé 2 o bé 4 per afegir la segona o la
quarta a l’acord, respectivament. Quan sus va seguit d’una
segona a una quarta, és equivalemtn a ^3, i en cas contrari
a sus4, és a dir, 5.4.
\chordmode {
c1:sus c:sus2 c:sus4 c:5.4
}
Es poden modificar les inversions (col·locar al baix una nota
diferent de la fonamental de l’acord) i notes de baix afegides
mitjançant l’addició de /nota a l’acord.
\chordmode {
c'1 c'/e c'/f
}
Es pot afegir una nota del baix que forma part de l’acord, enlloc
moure-la per efecte d’una inversió, mitjançant l’ús de
/+nota.
\chordmode {
c'1 c'/g c'/+e
}
Els modificadors d’acord que es poden fer servir per produir una àmplia varietat d’acords estàndard es mostren a Modificadors d’acord més usuals,
Vegeu també
Referencia de la notación: Modificadors d’acord més usuals,
Fragments de codi: Chords.
Advertiments i problemes coneguts
Cada not sols pot estar present a l’acord un sol cop. El que
segueix produeix simplement l’acord augmentat, perquè 5+
s’interpreta en últim lloc.
\chordmode { c1:3.5.5-.5+ }
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Acords estesos i alterats ] | [ Amunt : Notació d'acords ] | [ Impressió dels noms d'acord > ] | ||
2.7.2 Impressió dels acords
Els acords es poden imprimir pel seu nom, a més de la impressió estàndard com a notes sobre un pentagrama.
| Impressió dels noms d’acord | ||
| Noms d’acord personalitzats |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Impressió dels acords ] | [ Amunt : Impressió dels acords ] | [ Noms d'acord personalitzats > ] | ||
Impressió dels noms d’acord
El noms d’acord s’imprimeixen dins del context
ChordNames:
\new ChordNames {
\chordmode {
c2 f4. g8
}
}
Els acords es poden escriure com a notes simultànies o a través de l’ús del mode d’acords. El nom d’acord que s’imprimeix és el mateix independentment del mode d’entrada, a no ser que hi hagi inversions o baixos afegits:
chordmusic = \relative {
<c' e g>2 <f bes c>
<f c' e g>1
\chordmode {
c2 f:sus4 c1:/f
}
}
<<
\new ChordNames {
\chordmusic
}
{
\chordmusic
}
>>
Els silencis passats a un context ChordNames fan que
s’imprimeixi l’element de marcatge noChordSymbol (símbol de
N.C., Sense Acord).
<<
\new ChordNames \chordmode {
c1
r1
g1
c1
}
\chordmode {
c1
r1
g1
c1
}
>>
\chords { … } és una forma abreujada d’escriure
\new ChordNames \chordmode { … }.
\chords {
c2 f4.:m g8:maj7
}
\new ChordNames {
\chordmode {
c2 f4.:m g8:maj7
}
}
Fragments de codi seleccionats
Showing chords at changes
Chord names can be displayed only at the start of lines and when the chord changes.
harmonies = \chordmode {
c1:m c:m \break c:m c:m d
}
<<
\new ChordNames {
\set chordChanges = ##t
\harmonies
}
\new Staff {
\relative c' { \harmonies }
}
>>
Simple lead sheet
When put together, chord names, a melody, and lyrics form a lead sheet:
<<
\chords { c2 g:sus4 f e }
\relative c'' {
a4 e c8 e r4
b2 c4( d)
}
\addlyrics { One day this shall be free __ }
>>
Vegeu també
Glossari musical: chord.
Referència de la notació: Escriptura de música en paral·lel.
Fragments de codi: Chords.
Referència de funcionament intern: ChordNames, ChordName, Chord_name_engraver, Volta_engraver, Bar_engraver.
Advertiments i problemes coneguts
Els acords que contenen inversions o baixos alterats no reben un nom adequat si s’escriuen usant música simultània.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Impressió dels noms d'acord ] | [ Amunt : Impressió dels acords ] | [ Baix xifrat > ] | ||
Noms d’acord personalitzats
No hi ha un sistema únic per anomenar els acords. Les diferents tradicions musicals usen diferents noms per al mateix conjunt d’acords. A més hi ha diferents símbols impresos per a un nom d’acord donat. Els noms i símbols que s’imprimeixen per als noms d’acord donats es poden personalitzar.
L’esquema de nomenclatura d’acords predeterminat és un sistema per a música de Jazz, proposat per Klaus Ignatzek (vegeu Llista de referències bibligràfiques). També funcionen d’altres dos esquemes de nomenclatura d’acords: una notació d’acords de Jazz alternativa i un esquema sistemàtic anomenat Acords de Banter. La notació de Jazz alternativa també es pot veure al Taula de noms d’acords.
A més dels diferents sistemes de nomenclatura, s’usen diferents
noms de nota per a la fonamental segons la llengua. Les variables
predefinides \germanChords, \semiGermanChords,
\italianChords i \frenchChords estableixen el valor
d’aquestes variables. L’efecte es mostra aquí:
Alguns cançoners alemanys indiquen els acords menors com a lletres
minúscules, sense el sufix m. Això es pot aconseguir
establint la propietat chordNameLowercaseMinor:
\chords {
\set chordNameLowercaseMinor = ##t
c2 d:m e:m f
}
Si caps dels ajustos predeterminats proporciona el resultat desitjat, es pot afinar la presentació dels noms d’acord a través de les propietats següents:
-
chordRootNamer -
El nom d’acord s’imprimeix normalment com una lletra per a la fonamental amb una alteració opcional. La transformació de la nota en la lletra es realitza per part d’aquesta funció. Els noms de nota especials (per exemple la ‘H’ alemanya per a un acord de Si) es poden produir emmagatzemant una funció nova en aquesta propietat.
-
majorSevenSymbol -
Aquesta propietat conté l’objecte de marcatge que s’usa per fer el seguiment de la sortida de
chordRootNamerper identificar un acord de sèptima major. Les opcions predefinides sónwhiteTriangleMarkup(triangle blanc) iblackTriangleMarkup(triangle negre). -
additionalPitchPrefix -
Quan l’acord conté notes afegides, es poden prefixar opcionalment per un text. Per defecte no hi ha cap prefix, per evitar la sobrecàrrega visual, però per petites quantitats de notes afegides pot ser visualment efectiu.
\new ChordNames { <c e g d'> % add9 \set additionalPitchPrefix = #"add" <c e g d'> % add9 } -
chordNoteNamer -
Quan el nom de l’acord conté notes addicionals a part de la fonamental (per exemple un baix afegit) s’utilitza aquesta funció per imprimir la nota addicional. De forma predeterminada s’imprimeix la nota usant
chordRootNamer. La propietatchordNoteNameres pot establir a una funció especialitzada per canviar aquest comportament. Per exemple, el baix es por imprimir en minúscula. -
chordNameSeparator -
Les diferents parts del nom d’un acord se separen normalment mitjançant un petit espai en blanc. Mitjançant l’ajust de
chordNameSeparator, podem usar qualsevol marcatge que desitgem com a separador. Això no afecta el separador entre un acord i la nota del baix: per personalitzar això, utilitzeuslashChordSeparator.\chords { c4:7.9- c:7.9-/g \set chordNameSeparator = \markup { "/" } \break c4:7.9- c:7.9-/g } -
slashChordSeparator -
Els acords es poden tocar sobre una nota del baix diferent a la fonamental. S’anomenen «inversions» o «acords de barra inclinada» atès que la manera predeterminada d’efectuar la seva notació és amb una barra inclinada entre l’acord i la nota del baix. Per tant, el valor de
slashChordSeparatorés, per defecte, una barra inclinada, però podem canviar-lo a qualsevol element de marcatge que volem.\chords { c4:7.9- c:7.9-/g \set slashChordSeparator = \markup { " over " } \break c4:7.9- c:7.9-/g } -
chordNameExceptions -
Aquesta propietat és una llista de parelles. El primer element de cada parella és un conjunt de notes utilitzades per identificar els elements presents a l’acord. El segon element és un element de marcatge que segueix a la sortida de
chordRootNamerper crear el nom de l’acord. -
minorChordModifier -
La notació dels acords menors se sol fer mitjançant el sufix ‘m’ a la dreta de la lletra que indica la fonamental de l’acord. Tanmateix, altres convencions donen preferència a sufixos diferents, com un signe menys.
\chords { c4:min f:min7 \set minorChordModifier = \markup { "-" } \break c4:min f:min7 } -
chordPrefixSpacer -
El modificador dels acords menors tal i com ve determinat per
minorChordModifiers’imprimeix en general immediatament a la dreta de la fonamental. Es pot inserir un símbol separador entre la fonamental i el modificador establintchordPrefixSpacer. El símbol separador no s’usa quan l’acord està alterat.
Instruccions predefinides
\whiteTriangleMarkup,
\blackTriangleMarkup,
\germanChords,
\semiGermanChords,
\italianChords,
\frenchChords.
Fragments de codi seleccionats
Chord name exceptions
The property chordNameExceptions can be used to store a list of
special notations for specific chords.
% modify maj9 and 6(add9)
% Exception music is chords with markups
chExceptionMusic = {
<c e g b d'>1-\markup { \super "maj9" }
<c e g a d'>1-\markup { \super "6(add9)" }
}
% Convert music to list and prepend to existing exceptions.
chExceptions = #( append
( sequential-music-to-chord-exceptions chExceptionMusic #t)
ignatzekExceptions)
theMusic = \chordmode {
g1:maj9 g1:6.9
\set chordNameExceptions = #chExceptions
g1:maj9 g1:6.9
}
\layout {
ragged-right = ##t
}
<< \context ChordNames \theMusic
\context Voice \theMusic
>>
chord name major7
The layout of the major 7 can be tuned with majorSevenSymbol.
\chords {
c:7+
\set majorSevenSymbol = \markup { j7 }
c:7+
}
Adding bar lines to ChordNames context
To add bar line indications in the ChordNames context, add the
Bar_engraver.
\new ChordNames \with {
\override BarLine.bar-extent = #'(-2 . 2)
\consists "Bar_engraver"
}
\chordmode {
f1:maj7 f:7 bes:7
}
Volta below chords
By adding the Volta_engraver to the relevant staff, volte can be
put under chords.
\score {
<<
\chords {
c1
c1
}
\new Staff \with {
\consists "Volta_engraver"
}
{
\repeat volta 2 { c'1 }
\alternative { c' }
}
>>
\layout {
\context {
\Score
\remove "Volta_engraver"
}
}
}
Changing chord separator
The separator between different parts of a chord name can be set to any markup.
\chords {
c:7sus4
\set chordNameSeparator
= \markup { \typewriter | }
c:7sus4
}
Vegeu també
Referència de la notació: Taula de noms d’acords, Modificadors d’acord més usuals.
L’assaig sobre gravat musical automatitzat: Llista de referències bibligràfiques.
Fitxers instal·lats: ‘scm/chords-ignatzek.scm’, ‘scm/chord-entry.scm’, ‘ly/chord-modifier-init.ly’.
Fragments de codi: Chords.
Advertiments i problemes coneguts
Els noms d’acord es determinen a partir de les notes que estan
presents a l’acord i de la informació sobre l’estructura de
l’acord que s’ha pogut introduir a \chordmode. Si s’usa el mètode
de les notes simultànies per introduir els acords, es poden
produir noms no desitjats a partir de les inversions o de les
notes del baix.
myChords = \relative c' {
\chordmode { c1 c/g c/f }
<c e g>1 <g c e> <f c' e g>
}
<<
\new ChordNames { \myChords }
\new Staff { \myChords }
>>
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Noms d'acord personalitzats ] | [ Amunt : Notació d'acords ] | [ Introducció al baix xifrat > ] | ||
2.7.3 Baix xifrat
Es pot imprimir notació de baix xifrat.
| Introducció al baix xifrat | ||
| Introduir el baix xifrat | ||
| Impressió del baix xifrat |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Baix xifrat ] | [ Amunt : Baix xifrat ] | [ Introduir el baix xifrat > ] | ||
Introducció al baix xifrat
El LilyPond permet el baix xifrat, també conegut com a basso continu:
<<
\new Voice { \clef bass dis4 c d ais g fis}
\new FiguredBass {
\figuremode {
< 6 >4 < 7\+ >8 < 6+ [_!] >
< 6 >4 <6 5 [3+] >
< _ >4 < 6 5/>4
}
}
>>
El suport per a baix xifrat es composa de dues parts: hi ha un
mode d’entrada, presentat per \figuremode, que admet
l’entrada de les xifres del baix, i hi ha un context anomenat
FiguredBass que s’ocupa de la impressió dels objectes del
tipus BassFigure. El baix xifrat també es pot imprimir
dins de contextos de Staff.
\figures{ … } és una notació abreujada de
\new FiguredBass \figuremode { … }.
Tot i que el suport per a baix xifrat pot semblar-se
superficialment als dels acords, en realitat és molt més
simple. El mode \figuremode simplement emmagatzema les
xifres i el context FiguredBass les imprimeix tal i com
s’han introduït. No hi ha cap conversió a notes.
Vegeu també
Glossari musical: figured bass.
Fragments de codi: Chords.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Introducció al baix xifrat ] | [ Amunt : Baix xifrat ] | [ Impressió del baix xifrat > ] | ||
Introduir el baix xifrat
S’usa \figuremode per canviar el mode d’entrada al mode de
xifres. Hi ha més informació sobre els diferents modes d’entrada
a
Modes d’entrada.
En el mode de xifres, un grup de xifres del baix està delimitat
mitjançant angles simples, < y >. La duració
s’escriu després del >.
\new FiguredBass {
\figuremode {
<6 4>2
}
}
Es poden fer servir alteracions accidentals (fins i tot becaires)
per modificar graus de l’escala. S’escriuen afegint + (per
als sostinguts), - (per als becaires) o o ! (per als
becaires) després del número. Per obtenir alteracions dobles,
s’aplica el modificador dues vegades seguides. Amb freqüència,
per a la modificació del tercer grau s’omet el número, cosa que es
pot fer utilitzant _ en coptes d’un número.
\figures {
<7! 6+ 4-> <5++> <3--> < _+ > < 7 _!>
}
Es poden indicar elements de l’acord augmentats i disminuïts:
\figures {
<6\+ 5/> <7/>
}
Es pot crear una barra invertida creuant una xifra (usada normalment per sextes elevades):
\figures {
<6> <6\\>
}
Es poden incloure claus a les xifres:
\figures {
<[12] 8 [6 4]>
}
Es pot inserir qualsevol element de marcatge de text com una xifra:
\figures {
<\markup { \tiny \number 6 \super (1) } 5>
}
Es poden usar línies de continuació per indicar xifres que es repeteixen:
<<
{
\clef bass
e4 d c b,
e4 d c b,
}
\figures {
\bassFigureExtendersOn
<6 4>4 <6 3> <7 3> <7 3>
\bassFigureExtendersOff
<6 4>4 <6 3> <7 3> <7 3>
}
>>
En aquest cas, les línies d’extensió substitueixen a les xifres existents, a no ser que les línies de continuació s’hagin finalitzat explícitament.
<<
\figures {
\bassFigureExtendersOn
<6 4>4 <6 4> <6\! 4\!> <6 4>
}
{
\clef bass
d4 d c c
}
>>
La taula següent resumeix els modificadors de xifrat disponibles.
| Modificador | Propòsit | Eexmple |
| +, -, ! | Alteracions | |
| \+, / | Augmentacions i disminucions | |
| \\ | Sexta elevada | |
| \! | Fin de línia de continuació |
Instruccions predefinides
\bassFigureExtendersOn,
\bassFigureExtendersOff.
Fragments de codi seleccionats
Changing the positions of figured bass alterations
Accidentals and plus signs can appear before or after the numbers,
depending on the figuredBassAlterationDirection and
figuredBassPlusDirection properties.
\figures {
<6\+> <5+> <6 4-> r
\set figuredBassAlterationDirection = #RIGHT
<6\+> <5+> <6 4-> r
\set figuredBassPlusDirection = #RIGHT
<6\+> <5+> <6 4-> r
\set figuredBassAlterationDirection = #LEFT
<6\+> <5+> <6 4-> r
}
Vegeu també
Fragments de codi: Chords.
Referència de funcionament intern: BassFigure, BassFigureAlignment, BassFigureLine, BassFigureBracket, BassFigureContinuation, FiguredBass.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Introduir el baix xifrat ] | [ Amunt : Baix xifrat ] | [ Música contemporània > ] | ||
Impressió del baix xifrat
El baix xifrat es pot imprimir usant el context
FiguredBass, o dins de la majoria dels contextos de
pentagrama.
Quan es presenta dins d’un context de FiguredBass, la
ubicació vertical de les xifres és independent de les notes que
estan al pentagrama.
<<
\relative {
c''4 c'8 r8 c,4 c'
}
\new FiguredBass {
\figuremode {
<4>4 <10 6>8 s8
<6 4>4 <6 4>
}
}
>>
A l’exemple de dalt, el context FiguredBass s’ha
d’instanciar explícitament per evitar crear un segon pentagrama
buit.
El baix xifrat es pot afegir també a contextos de
Staff directament. En aquest cas la posició vertical de
les xifres s’ajusta automàticament.
<<
\new Staff = "myStaff"
\figuremode {
<4>4 <10 6>8 s8
<6 4>4 <6 4>
}
%% Posa les notes al mateix Staff que les figures
\context Staff = "myStaff"
{
\clef bass
c4 c'8 r8 c4 c'
}
>>
Quan s’escriu dins d’un context de pentagrama, el baix xifrat es pot presentar a sobre o a sota del pentagrama.
<<
\new Staff = "elmeuPentagrama"
\figuremode {
<4>4 <10 6>8 s8
\bassFigureStaffAlignmentDown
<6 4>4 <6 4>
}
%% Posa les notes al mateix Staff que les figures
\context Staff = "elmeuPentagrama"
{
\clef bass
c4 c'8 r8 c4 c'
}
>>
Instruccions predefinides
\bassFigureStaffAlignmentDown,
\bassFigureStaffAlignmentUp,
\bassFigureStaffAlignmentNeutral.
Vegeu també
Fragments de codi: Chords.
Referència de funcionament intern: BassFigure, BassFigureAlignment, BassFigureLine, BassFigureBracket, BassFigureContinuation, FiguredBass.
Advertiments i problemes coneguts
Per assegurar que les línies extensores funcionen adequadament, el més segur és utilitzar les mateixes duracions a la línia de xifres i a la línia del baix.
<<
{
\clef bass
\repeat unfold 4 { f16. g32 } f8. es16 d8 es
}
\figures {
\bassFigureExtendersOn
% Els extensors són correctes aquí, amb el mateix ritme que el bas
\repeat unfold 4 { <6 4->16. <6 4->32 }
<5>8. r16 <6>8 <6\! 5->
}
>>
<<
{
\clef bass
\repeat unfold 4 { f16. g32 } f8. es16 d8 es
}
\figures {
\bassFigureExtendersOn
% Els extensors són incorrectes aquí, tot i que la temporalització és la mateixa
<6 4->4 <6 4->4
<5>8. r16 <6>8 <6\! 5->
}
>>
2.8 Música contemporània
A partir de començament del segle XX s’ha produït una expansió massiva dels estils i tècniques composicionals. Els nous desenvolupaments harmònics i rítmics, una expansió de l’espectre d’alçades i el desenvolupament d’un ampli ventall de noves tècniques instrumentals han vingut acompanyades d’una evolució i expansió paral·leles de la notació musical. L’objectiu d’aquesta secció es proporcionar referències i informació rellevant per al treball amb aquestes noves tècniques de notació.
2.8.1 Alçada i harmonia en la música contemporània
Aquesta secció destaca els problemes de la notació de les tonalitats i l’harmonia en la música contemporània.
| Referències per a tonalitats i harmonia en música contemporània | ||
| Notació microtonal | ||
| Harmonia i armadures de tonalitat contemporània |
Referències per a tonalitats i harmonia en música contemporània
- La notació estàndard de quarts de to s’estudia a Noms de les notes en altres llengües.
- Les armadures de tonalitat no estàndard s’estudien a Armadura de la tonalitat.
- Les pràctiques contemporànies en la presentació de les alteracions accidentals s’estudien a Alteracions accidentals automàtiques.
Notació microtonal
Harmonia i armadures de tonalitat contemporània
2.8.2 Enfocaments contemporanis del ritme
Aquesta secció tracta dels problemes de la notació de les duracions a la música contemporània.
Referències per a enfocaments contemporanis del ritme
- Els tipus de compàs d’amalgama s’estudien a Indicació de compàs.
- La notació polimètrica bàsica s’estudia en Notació polimètrica.
- Las barres en angles progressives s’estudien a Barres progressives.
- Les línies divisòries d’estil Mensurstriche (línies que estan sols entre els pentagrames) s’estudien a Agrupament de pentagrames.
Grups de valoració especial a la música contemporània
Compassos contemporanis
Notació polimètrica estesa
Barrat en música contemporània
Línies divisòries a la música contemporània
2.8.3 Notació gràfica
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Notació gràfica ] | [ Amunt : Música contemporània ] | [ Noves tècniques instrumentals > ] | ||
2.8.4 Tècniques de partitura contemporània
2.8.5 Noves tècniques instrumentals
2.8.6 Lectures addicionals i partitures d’interès
Aquesta secció suggereix llibres, exemples musicals i altres recursos d’utilitat a l’estudi de la notació musical contemporània.
| Llibres i articles sobre notació musical contemporània | ||
| Partitures i exemples musicals |
Llibres i articles sobre notació musical contemporània
- Music Notation in the Twentieth Century: A Practical Guidebook de Kurt Stone [W. W. Norton, 1980]
- Music Notation: A Manual of Modern Practice de Gardner Read [Taplinger, 1979]
- Instrumentation and Orchestration d’Alfred Blatter [Schirmer, 2nd ed. 1997]
Partitures i exemples musicals
2.9 Notació antiga
Entre les formes en les quals té suport la notació antiga es troba la possibilitat de gravar notació mensural, cant gregorià i cant kievà en notació quadrada. Es pot accedir a aquestes funcionalitats mitjançant la modificació de propietats d’estil d’objectes gràfics com el cap de les notes o els silencis, o bé mitjançant la utilització d’un dels contextos predefinits d’aquests estils.
Molts objectes gràfics, com ara el cap i la vírgula de les
figures, les alteracions, la indicació de compàs i els silencis
ofereixen una propietat style (estil), que es pot canviar
per emular diversos estils diferents de notació antiga. Vegeu
- Caps de nota de la música mensural,
- Alteracions i armadures de la música mensural,
- Silencis de la música mensural,
- Claus de la música mensural,
- Claus de cant gregorià,
- Corxets de la música mensural,
- Indicacions de compàs de la música mensural.
Certs conceptes de notació s’inclouen específicament per a la notació antiga:
Vegeu també
Glossari musical: custos, ligature, mensural notation.
Referència de la notació: Caps de nota de la música mensural, Alteracions i armadures de la música mensural, Silencis de la música mensural, Claus de cant gregorià, Corxets de la música mensural, Indicacions de compàs de la música mensural, Custos, Divisiones, Lligadures.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Notació antiga ] | [ Amunt : Notació antiga ] | [ Notació antiga - funcionalitats comunes > ] | ||
2.9.1 Panoràmica dels estils amb suport
Hi ha disponibles tres estils per a la composició tipogràfica del cant gregorià:
- Editio Vaticana és un estil complet per a cant gregorià, que segueix l’aparença de les edicions de Solesmes, els llibres oficials del Vaticà des de 1904. El LilyPond té suport per a tots els signes de notació que es fan servir en aquest estil, entre ells les lligadures, custòdies i símbols especials com el quilisma i l’oriscus.
- L’estil Editio Medicaea ofereix certes funcionalitats que s’usen a les edicions Medicaea (o de Ratisbona) que s’usaven abans de les edicions de Solesmes. Les diferències més significatives respecte a l’estil Vaticana són les claus, que tenen traços descendents, i el cap de les figures, que són quadrats i regulars.
- L’estil Hufnagel (en “ungla de ferradura”) o gòtic reprodueix l’estil d’escriptura al manuscrits medievals d’Alemanya i Europa Central. Rep el nom de la forma de la nota bàsica (la virga), que sembla una petita ungla.
Tres estils emulen l’aparença dels manuscrits i edicions impreses de música mensural medieval tardà i renaixentista:
- L’estil Mensural s’assembla força a l’estil d’escriptura utilitzat als manuscrits medievals tardans i renaixentistes primerencs, amb el cap de les seves figures petites i estretes en forma de rombe, i els silencis que imiten un estil dibuixar a mà.
- L’estil Neomensural és una versió modernitzada i estilitzada de l’anterior: el cap de les figures és més ampla i els silencis estan format per traços rectilinis. Aquest estil és particularment indicat, per exemple per als incipits de transcripcions de fragments de música mensural.
- L’estil Petrucci rep el seu nom d’Ottaviano Petrucci (1466-1539, el primer impressor a utilitzar tipus mòbils per a la música (al seu Harmonice musices odhecaton, 1501). Aquest estil fa servir per a les figures un cap més gran que els altres estils mensurals.
Baroque i Classical no són estils complets, sinó que difereixen de l’estil predeterminat sols en certs detalls: alguns caps de nota (Baroque) i el silenci de negra (Classical).
Sols l’estil mensural té alternatives per a tots els aspectes de la notació. Així, no hi ha silencis ni corxets als estils gregorians, ja que aquests símbols no s’usen en la notació del cant pla, i l’estil Petrucci no conté corxets ni alteracions per sí mateix.
Cada element de la notació es pot canviar independentment dels altres, i així usar corxets mensurals, caps de petrucci, silencis de notació clàssica i claus de vaticana a la mateixa peça, si així ho volem.
Vegeu també
Glossari musical: mensural notation, flag.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Panoràmica dels estils amb suport ] | [ Amunt : Notació antiga ] | [ Contextos predefinits > ] | ||
2.9.2 Notació antiga - funcionalitats comunes
| Contextos predefinits | ||
| Lligadures | ||
| Custos |
Contextos predefinits
Per al cant gregorià i la notació mensural, tenim disponibles
contextos predefinits de veu i de pauta, que estableixen tots els
símbols de notació a uns valors adequats per a aquests estils. Si
ens satisfan aquests valors predeterminats, podem a continuació
introduir directament les notes sense la necessitat de
preocupar-nos dels detalls sobre com personalitzar un context.
Vegeu un dels contextos predefinits VaticanaVoice,
VaticanaStaff, MensuralVoice i MensuralStaff.
Vegeu també
Glossari musical: mensural notation.
Referència de la notació: Contextos del cant gregorià, Contextos de la música mensural.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Contextos predefinits ] | [ Amunt : Notació antiga - funcionalitats comunes ] | [ Custos > ] | ||
Lligadures
Una lligadura és un símbol gràfic que representa almenys dues notes diferents. Les lligadures van aparèixer originalment als manuscrits de cant gregorià per denotar seqüències de notes ascendents o descendents a la mateixa síl·laba. Es fan servir també a la notació mensural.
Les lligadures s’escriuen tancant-les dins d’un parell
\[ i \]. A certes estils de lligadura els podria
caldre una sintaxi d’entrada addicional específica per a aquest
tipus de lligadura en particular. De forma predeterminada, el
gravador LigatureBracket es limita a col·locar un claudàtor
sobre la lligadura:
\relative {
\[ g' c, a' f d' \]
a g f
\[ e f a g \]
}
Hi ha disponibles dos estils més de lligadures: el Vaticana per a
cant gregorià, i el mensural per a música mensural (sols hi ha
suport per les lligadures mensurals blanques per a la música
mensural, i amb certes limitacions). Per usar qualssevol
d’aquests estils, s’ha de substituir el gravador predeterminat
Ligature_bracket_engraver per un dels gravadors
especialitzats de lligadures del context Voice, com
s’explica a Lligadures mensurals blanques i
Lligadures de neumes quadrats gregorians.
Vegeu també
Glossari musical: ligature.
Referència de la notació: Lligadures mensurals blanques, Lligadures de neumes quadrats gregorians.
Advertiments i problemes coneguts
A les lligadures els cal un espaiat especial que encara no s’ha desenvolupat. Com a conseqüència, gairebé sempre hi ha una separació excessiva entres les lligadures, i sovint els salts de línia no són satisfactoris. A més a més, la lletra dels cants no s’alinea correctament amb les lligadures.
Les alteracions accidentals no s’han d’imprimir dins de les lligadures, sinó que s’han de reunir i imprimir-se plegades davant d’elles.
La sintaxi encara fa servir l’obsolet estil infix
\[ expressió_musical \]. Per motius de consistència, algun
dia això canviarà a l’estil postfix nota\[ … nota\].
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Lligadures ] | [ Amunt : Notació antiga - funcionalitats comunes ] | [ Gravat de música mensural > ] | ||
Custos
Un custos (en plural: custodis, que en llatí significa “custodi”) és un símbol que apareix al final d’una pauta. Anticipa l’alçada de la primera o primeres notes de la línia següent, ajudant a l’intèrpret o primeres notes de la línia següent, ajudant a l’intèrpret amb els salts de línia durant l’execució.
Els custodis es van fer servir molt a la notació musical fins al segle XVII. Avui en dia sobreviuen sols en algunes formes particulars de notació musical com les edicions contemporànies de cant gregorià com la Editio Vaticana. Hi ha diferents glifs per al custos que es fan servir a les diferents variacions d’estil de notació.
Per gravar els custodis, simplement col·loqueu un gravador
Custos_engraver dins del context Staff (el
context del pentagrama) en declarar el bloc de \layout
(el bloc de disposició de la pàgina), i modifiqueu l’estil del
custos amb una ordre \override si ho desitgeu, com es
mostra a l’exemple següent:
El glif del custos se selecciona mitjançant la propietat
style. Els estils suportats són vaticana,
medicaea, hufnagel i mensural. Es mostren al
fragment següent:
Vegeu també
Glossari musical: custos.
Fragments de codi: Ancient notation.
Referència de funcionament intern: Custos.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Custos ] | [ Amunt : Notació antiga ] | [ Contextos de la música mensural > ] | ||
2.9.3 Gravat de música mensural
Contextos de la música mensural
Els contextos predefinits de veu MensuralVoice i de pauta
MensuralStaff es poden usar per gravar una peça en estil
mensural. Aquests contextos estableixen a uns valors inicials
adequats totes les propietats rellevants dels contextos i dels
objectes gràfics, de manera que pode començar immediatament a
escriure el cant, como ho demostra el fragment següent:
\score {
<<
\new MensuralVoice = "discantus" \relative {
\hide Score.BarNumber {
c''1\melisma bes a g\melismaEnd
f\breve
\[ f1\melisma a c\breve d\melismaEnd \]
c\longa
c\breve\melisma a1 g1\melismaEnd
fis\longa^\signumcongruentiae
}
}
\new Lyrics \lyricsto "discantus" {
San -- ctus, San -- ctus, San -- ctus
}
>>
}
Vegeu també
Glossari musical: mensural notation.
Claus de la música mensural
La taula següent presenta totes les claus antigues que tenen
suport mitjançant l’ordre \clef. Algunes de les clau usen
el mateix glif, però es diferencien sols en la línia on
s’imprimeixen. En tals casos, s’usa un número afegit al nom per
enumerar aquestes claus, numerat des de la línia inferior fins la
superior. Pot forçar manualment que s’escriu un glif de clau
sobre una línia arbitrària, com es descriu a Clau. La nota
impresa a la dreta de cada clau en la columna dels exemples denota
la situació del Do central (c') amb respecte a aquesta clau.
En Petrucci usava claus de Do que tenien barres verticals en costat esquerre amb un equilibri variable, depenent de la línia de la pauta on s’imprimien.
| Descripció | Claus possibles | Exemple |
| clau de Do, mensural | mensural-c1, mensural-c2,mensural-c3, mensural-c4,mensural-c5 | |
| clau de Fa, mensural | mensural-f | |
| clau de Sol, mensural | mensural-g | |
| clau de Do, mensural negra | blackmensural-c1, blackmensural-c2,blackmensural-c3, blackmensural-c4,blackmensural-c5 | |
| clau de Do, neomensural | neomensural-c1, neomensural-c2,neomensural-c3, neomensural-c4 | |
| claus de Do en l’estil d’en Petrucci, per al seu ús en diferents claus de Do en l’estil de Petrucci, per al seu ús en diferents línies de la pauta (l’exemple mostra la clau de Do en segona) | petrucci-c1, petrucci-c2,petrucci-c3, petrucci-c4,petrucci-c5 | |
| claus de Fa en l’estil d’en Petrucci, per al seu ús en diferents línies de la pauta (l’exemple mostra la clau de Fa en tercera línia) | petrucci-f3, petrucci-f4,petrucci-f5 | |
| clau de Sol en l’estil d’en Petrucci | petrucci-g |
Vegeu també
Glossari musical: mensural notation, clef.
Referència de la notació: Clau.
Advertiments i problemes coneguts
La clau de Sol mensural està assignada a la clau de Sol de Petrucci.
Indicacions de compàs de la música mensural
Els símbols de mensuració (que són quelcom semblant, però no
exactament igual que les indicacions de compàs) tenen suport de
forma limitada. Els glifs estan configurats de forma fixa per a
determinades fraccions de temps. En altres paraules, per obtenir
un símbol de mensuració determinat amb l’ordre \time n/m,
s’ha d’escollir n i m segons la taula següent:
Utilitzeu la propietat style de l’element gràfic
TimeSignature per seleccionar les indicacions de compàs de
la música antiga. Els estils contemplats són
neomensural i mensural. La taula anterior utilitza
l’estil neomensural. Els exemples següents mostren les
diferències que hi ha entre els estils:
Indicació de compàs ofereix una introducció general a l’ús de les indicacions de compàs.
Vegeu també
Glossari musical: mensural notation.
Referència de la notació: Indicació de compàs.
Advertiments i problemes coneguts
Les relacions de duració de les notes no poden canviar amb la indicació de compàs, perquè no són constants. Per exemple, la raó de 1 breu = 3 semibreus (tempus perfectum) es pot fer a mà mitjançant l’establiment de
breveTP = #(ly:make-duration -1 0 3/2)
…
{ c\breveTP f1 }
Això fixa un valor per a breveTP de 3/2 multiplicat por 2 =
3 vegades una rodona.
Els símbols mensural68alt i neomensural68alt
(alternatius al símbol de 6/8) no es pot seleccionar directament
amb \time. En el seu lloc, utilitzeu \markup
{\musicglyph "timesig.mensural68alt" }.
Caps de nota de la música mensural
Per a la notació antiga, es pot escollir un estil de caps de notes
diferent al default (estil predeterminat). Això
s’aconsegueix establint la propietat style de l’objecte
NoteHead als valors baroque, neomensural,
mensural, petrucci, blackpetrucci o
semipetrucci.
L’estil baroque es diferencia de l’estil predeterminat
default en què
- Proporciona un cap de nota per a la
maxima, i - Usa una forma quadrada per as caps de
\breve.
Els estils neomensural, mensural i petrucci
es diferencien de l’estil baroque en què:
- Usen caps romboïdals per a les semibreus i totes les notes més curtes, i
- Centren les pliques sobre els caps.
L’estil blackpetrucci produeix notes amb un cap que pot
usar-se en notació mensural blanca. A causa de què l’estil del
cap de les notes no influeix en el nombre de corxets, en aquest
estil la notació de la semimínima ha de fer-se com a8*2, no
com a4, atès que del contrari tindrà l’aspecte d’una
mínima. El multiplicador pot ser diferent si s’usa la coloratio,
és a dir, per a la notació de tresets.
Utilitzeu l’estil semipetrucci per dibuixar notes amb cap
semi-farcit (breus, longues i màximes).
L’exemple següent mostra l’estil petrucci:
\set Score.skipBars = ##t \autoBeamOff \override NoteHead.style = #'petrucci a'\maxima a'\longa a'\breve a'1 a'2 a'4 a'8 a'16 a' \override NoteHead.style = #'semipetrucci a'\breve*5/6 \override NoteHead.style = #'blackpetrucci a'8*4/3 a' \override NoteHead.style = #'petrucci a'\longa
Estils de caps de nota ofereix una visió de conjunt sobre la totalitat dels estils de cap disponibles.
Vegeu també
Glossari musical: mensural notation, note head.
Referència de la notació: Estils de caps de nota.
Corxets de la música mensural
Utilitzeu la propietat flag-style de l’element gràfic
Stem per seleccionar els corxets d’estil antic. A part de
l’estil per defecte default, sols té suport l’estil
mensural.
\relative c' {
\override Flag.style = #'mensural
\override Stem.thickness = #1.0
\override NoteHead.style = #'mensural
\autoBeamOff
c8 d e f c16 d e f c32 d e f s8
c'8 d e f c16 d e f c32 d e f
}
Observeu que el corxet més intern de cada un dels corxets mensurals s’alinea verticalment amb una línia de la pauta.
No hi ha un estil particular de corxet per a la notació neo-mensural ni Petrucci. No hi ha corxets a la notació de cant gregorià.
Vegeu també
Glossari musical: mensural notation, flag.
Advertiments i problemes coneguts
L’alineació vertical de cada un dels corxets amb una línia de la pauta dóna per suposat que les pliques sempre acaben exactament a sobre o bé exactament al mig de dues línies de la pauta. Això pot no ser sempre cert quan s’utilitzen les possibilitats de disposició avançades de la notació clàssica (que, de totes formes, generalment es troba fora de l’àmbit de la notació mensural).
Silencis de la música mensural
Utilitzeu la propietat style de l’element gràfic
Rest per seleccionar silencis antics. Els estils de música
antiga suportat són classical, neomensural i
mensural.
L’exemple següent mostra aquests estils:
\set Score.skipBars = ##t \override Rest.style = #'mensural r\longa^"mensural" r\breve r1 r2 r4 r8 r16 s \break \override Rest.style = #'neomensural r\longa^"neomensural" r\breve r1 r2 r4 r8 r16
No hi ha silencis de fusa i semifusa específics per als estils mensural ni neo-mensural. S’usen els silencis de l’estil predeterminat.
Vegeu també
Glossari musical: mensural notation.
Referència de la notació: Silencis.
Fragments de codi: Ancient notation.
Advertiments i problemes coneguts
El glif per al silenci de màxima a l’estil mensural és en realitat un silenci de longa perfecta; useu dos (o tres) silencis de longa per imprimir un silenci de màxima. Els silencis de longa no s’agrupen automàticament, per la qual cosa ha de fer-se manualment utilitzant silencis amb alçada determinada.
Alteracions i armadures de la música mensural
L’estil mensural ofereix uns símbols de sostingut i bemoll
diferents dels de l’estil predeterminat. La notació mensural
pràcticament mai no utilitzava el becaire: en el seu lloc, s’usava
el sostingut o bemoll corresponent. Per exemple, un Si natural en
la tonalitat de Fa major s’indicaria amb un sostingut. Tanmateix,
si se sol·licita explícitament, el símbol de becaire s’extrau de
l’estil vaticana.
L’estil de les alteracions i de l’armadura de la tonalitat es
controlen a través de la propietat glyph-name-alist dels
elements gràfics Accidental i KeySignature,
respectivament; per exemple:
\override Staff.Accidental.glyph-name-alist = #alteration-mensural-glyph-name-alist
Vegeu també
Glossari musical: mensural notation, Pitch names, accidental, key signature.
Referència de la notació: Altures, Alteracions accidentals, Alteracions accidentals automàtiques, Armadura de la tonalitat.
Referència de funcionament intern: KeySignature.
Alteracions d’anotació (musica ficta)
En la música europea de fins aproximadament 1600 s’esperava dels cantants que alteressin cromàticament certes notes segons la seva pròpia iniciativa i d’acord a certes regles. Això rep el nom de musica ficta. En les transcripcions modernes, aquestes alteracions accidentals s’imprimeixen normalment a sobre de la nota.
Aquestes alteracions suggerides tenen suport, i es poden activar
establint suggestAccidentals al valor vertader.
\relative {
fis' gis
\set suggestAccidentals = ##t
ais bis
}
Això farà que es tractin totes las alteracions següents
com musica ficta fins que es desactivi amb \set
suggestAccidentals = ##f. Una forma més pràctica és usar
\once \set suggestAccidentals = ##t, que pot fins i tot
definir-se com una forma breu molt convenient:
ficta = { \once \set suggestAccidentals = ##t }
\score { \relative
\new MensuralVoice {
\once \set suggestAccidentals = ##t
bes'4 a2 g2 \ficta fis8 \ficta e! fis2 g1
}
}
Vegeu també
Referència de funcionament intern: Accidental_engraver, AccidentalSuggestion.
Lligadures mensurals blanques
Les lligadures mensurals blanques tenen suport de forma limitada.
Per gravar lligadures mensurals blanques, en el bloc layout o de
disseny de pàgina reemplaci el gravador
Ligature_bracket_engraver pel gravador
Mensural_ligature_engraver en el context Voice:
\layout {
\context {
\Voice
\remove "Ligature_bracket_engraver"
\consists "Mensural_ligature_engraver"
}
}
No hi ha cap llenguatge d’entrada addicional per descriure la forma de la lligadura mensural blanca. Mes bé, le forma es determina exclusivament a partir de l’alçada i duració de las notes compreses. Si bé aquest enfoc podria fer que un usuari amb poca experiència trigués un temps d’acostumar-se a ell, té el gran avantatge que tota la informació musical de la lligadura es coneix internament. Això no es requereix sols per a una sola MIDI correcta, sinó que també permet la transcripció automàtica de les lligadures.
El alguns llocs, dues notes consecutives es poden representar bé
com dos quadrats, bé amb una paral·lelogram oblic (forma de
flexa). En aquests casos la forma per defecte és dos quadrats,
però pot caldre una flexa establint la propietat
ligature-flexa de la segunda cap. La longitud de
una flexa es pot fixar mitjançant la propietat flexa-width
del cap.
Por exemple:
\score {
\relative {
\set Score.timing = ##f
\set Score.defaultBarType = "-"
\override NoteHead.style = #'petrucci
\override Staff.TimeSignature.style = #'mensural
\clef "petrucci-g"
\[ c''\maxima g \]
\[ d'\longa
\override NoteHead.ligature-flexa = ##t
\once \override NoteHead.flexa-width = #3.2
c\breve f e d \]
\[ c\maxima d\longa \]
\[ e1 a, g\breve \]
}
\layout {
\context {
\Voice
\remove "Ligature_bracket_engraver"
\consists "Mensural_ligature_engraver"
}
}
}
Si no es substitueix el gravador Ligature_bracket_engraver
pel Mensural_ligature_engraver, la mateixa música presenta
l’aparença següent:
Vegeu també
Glossari musical: ligature.
Referència de la notació: Lligadures de neumes quadrats gregorians, Lligadures.
Advertiments i problemes coneguts
L’espaiat horitzontal de les lligadures pot ser una mica pobre. Les alteracions accidentals poden col·lisionar amb les notes prèvies.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Lligadures mensurals blanques ] | [ Amunt : Notació antiga ] | [ Contextos del cant gregorià > ] | ||
2.9.4 Gravat del cant gregorià
En gravar una peça de notació de cant gregorià, el gravador
Vaticana_ligature_engraver tria automàticament el cap
adequat de les figures, de manera que no cal establir
explícitament l’estil dels caps. Malgrat això es pot establir
l’estil dels caps, per exemple: a vaticana_punctum per
produir neumes de punctum. De forma semblant, el gravador
Mensural_ligature_engraver construeix lligadures mensurals
automàticament. Consulteu Lligadures per veure com
funcionen els gravadors de lligadures.
Vegeu també
Glossari musical: ligature.
Referència de la notació: Lligadures mensurals blanques, Lligadures.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Gravat del cant gregorià ] | [ Amunt : Gravat del cant gregorià ] | [ Claus de cant gregorià > ] | ||
Contextos del cant gregorià
El context predefinit de veu VaticanaVoice i el de pauta
VaticanaStaff es pot utilitzar per gravar una peça de cant
gregorià a l’estil de la Editio Vaticana. Aquests contextos
estableixen totes les propietats rellevants dels contextos i dels
objectes gràfics a uns valors inicials adequats, de manera que
podeu començar de seguida a escriure el cant mateix, com ho
demostra el fragment següent:
\include "gregorian.ly"
\score {
<<
\new VaticanaVoice = "cantus" {
\[ c'\melisma c' \flexa a \]
\[ a \flexa \deminutum g\melismaEnd \]
f \divisioMinima
\[ f\melisma \pes a c' c' \pes d'\melismaEnd \]
c' \divisioMinima \break
\[ c'\melisma c' \flexa a \]
\[ a \flexa \deminutum g\melismaEnd \] f \divisioMinima
}
\new Lyrics \lyricsto "cantus" {
San- ctus, San- ctus, San- ctus
}
>>
}
Claus de cant gregorià
La taula següent mostra totes les claus gregorianes amb suport
mitjançant l’ordre \clef. Algunes de les claus usen el
mateix glif, però es diferencien sols en la línia on
s’imprimeixen. En aquests casos, per enumerar aquestes claus
s’usa un número a continuació del nom de la clau, comptant des de
la línia inferior. Encara es pot forçar manualment la composició
tipogràfica d’un glif de clau sobre una línia arbitrària, com es
descriu a Clau. La nota que s’imprimeix a la dreta junt a
cada un de les claus en la columna dels exemples, denota el Do
central (c') respectes a aquesta clau.
| Descripció | Claus possibles | Exemple |
| Clau de Do, estil Editio Vaticana | vaticana-do1, vaticana-do2,vaticana-do3 | |
| Clau de Fa, estil Editio Vaticana | vaticana-fa1, vaticana-fa2 | |
| Clau de Do, estil Editio Medicaea | medicaea-do1, medicaea-do2,medicaea-do3 | |
| Clau de Fa, estil Editio Medicaea | medicaea-fa1, medicaea-fa2 | |
| Clau de Do, estil hufnagel | hufnagel-do1, hufnagel-do2,hufnagel-do3 | |
| Clau de Fa, estil hufnagel | hufnagel-fa1, hufnagel-fa2 | |
| Clau combinada de Do i Fa, estil hufnagel | hufnagel-do-fa |
Vegeu també
Glossari musical: clef.
Referència de la notació: Clau.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Claus de cant gregorià ] | [ Amunt : Gravat del cant gregorià ] | [ Divisiones > ] | ||
Alteracions i armadures de cant gregorià
Hi ha disponibles les alteracions dels tres estils gregorians:
Com es veu a l’exemple, cada estil no té suport per a totes les alteracions. En intentar accedir a una alteració que no tingui suport, el LilyPond canvia a un estil diferent.
L’estil de les alteracions i les armadures de tonalitat es
controla mitjanant la propietat glyph-name-alist dels
grobs (objectes gràfics)
Accidental i
KeySignature, respectivament; per exemple:
\override Staff.Accidental.glyph-name-alist = #alteration-mensural-glyph-name-alist
Vegeu també
Glossari musical: accidental, key signature.
Referència de la notació: Altures, Alteracions accidentals, Alteracions accidentals automàtiques, Armadura de la tonalitat.
Referència de funcionament intern: KeySignature.
Divisiones
En la notació del cant gregorià no hi ha silencis, sinó Divisiones.
Una divisio (en plural: divisiones, que en llatí significa ‘divisió’) és un símbol del context del pentagrama que s’usa per estructurar la música gregoriana en frases i seccions. El significat musical de divisio minima, divisio maior i divisio maxima es podrien caracteritzar com una pausa curta, mitjana i llarga (respectivament), quelcom així com les marques de respiració de Marques de respiració. El signe de finalis no sols marca el final d’un cant, sinó que s’usa també sovint dins d’un únic cant antifonal o responsorial per marcar el final de cada un de les seccions.
Per usar divisiones, incloeu el fitxer ‘gregorian.ly’. Conté
definicions que podreu aplicar simplement escrivint
\divisioMinima, \divisioMaior, \divisioMaxima
y \finalis als llocs adequats de l’entrada. Algunes
edicions usen virgula o caesura en comptes de
divisio minima. Per això, ‘gregorian.ly’ defineix també les
ordres \virgula i \caesura.
Instruccions predefinides
\virgula,
\caesura,
\divisioMinima,
\divisioMaior,
\divisioMaxima,
\finalis.
Vegeu també
Glossari musical: caesura, divisio.
Referència de la notació: Marques de respiració.
Fitxers d’inici: ‘ly/gregorian.ly’.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Divisiones ] | [ Amunt : Gravat del cant gregorià ] | [ Punts de augmentació (morae) > ] | ||
Articulacions del cant gregorià
A més dels signes d’articulació estàndard que es descriuen a la secció Articulacions i ornaments, es proveeixen signes d’articulació dissenyats específicament per utilitzar-los amb la notació a l’estil de l’Editio Vaticana.
\include "gregorian.ly"
\score {
\new VaticanaVoice {
\override TextScript.font-family = #'typewriter
\override TextScript.font-shape = #'upright
\override Script.padding = #-0.1
a\ictus_"ictus " \bar "" \break
a\circulus_"circulus " \bar "" \break
a\semicirculus_"semicirculus " \bar "" \break
a\accentus_"accentus " \bar "" \break
\[ a_"episema" \episemInitium \pes b \flexa a b \episemFinis \flexa a \]
}
}
Vegeu també
Referència de la notació: Articulacions i ornaments.
Fragments de codi: Ancient notation.
Referència de funcionament intern: Episema, EpisemaEvent, Episema_engraver, Script, ScriptEvent, Script_engraver.
Advertiments i problemes coneguts
Certes articulacions es col·loquen massa a prop verticalment dels caps de nota corresponents.
Punts de augmentació (morae)
Els punts d’augmentació, anomenats també morae, s’escriuen
amb la funció musical \augmentum. Observeu que
\augmentum està programat com una funció musical unària i
no com un prefix de cap. S’aplica sols a l’expressió musical que
segueix immediatament. És a dir, \augmentum \virga c no
tindrà cap efecte visible. En el seu lloc, escriviu \virga
\augmentum c o \augmentum {\virga c}. Tingueu en compte
també que podeu escriure \augmentum {a g} com abreviatura
de \augmentum a \augmentum g.
\include "gregorian.ly"
\score {
\new VaticanaVoice {
\[ \augmentum a \flexa \augmentum g \]
\augmentum g
}
}
Vegeu també
Referència de la notació: Marques de respiració.
Referència de funcionament intern: BreathingSign.
Fragments de codi: Ancient notation.
Lligadures de neumes quadrats gregorians
La notació de neumes quadrats gregorians té suport de forma limitada (seguint l’estil de l’Editio Vaticana). El nucli principal del conjunt de les lligadures ja es poden gravar, però encara falten aspectes essencials per a una composició tipogràfica seriosa, com (entre d’altres) l’alineació horitzontal de diverses lligadures, l’alineació de la lletra i una gestió correcta de les alteracions accidentals.
El suport dels neumes gregorians s’habilita per mitja de la
inclusió amb \include del fitxer ‘gregorian.ly’ al
principi del fitxer. Això fa que estiguin disponibles algunes
ordres addicionals per produir els símbols dels neumes que s’usen
a la notació del cant pla.
Els caps de les notes es poden modificar i/o unir.
-
La forma del cap es pot modificar precedint el nom de la
nota amb qualssevol de les ordres següents:
\virga,\stropha,\inclinatum,\auctum,\descendens,\ascendens,\oriscus,\quilisma,\deminutum,\cavum,\linea. -
Parlant amb propietat (és a dir, notes unides) les lligadures es
produeixen escrivint una de les ordres d’unió
\peso\flexa, per al moviment ascendent i descendent, respectivament, intercalades entre les notes que s’han d’unir.
Una nota sense modificacions produeix un punctum. Tots els
altres neumes, fins i tot d’una nota amb forma diferent com la
virga, es consideren en principi com lligadures i per això
s’han d’escriure dins de \[…\].
Neumes d’una nota:
- El punctum és la forma bàsica de nota (en l’estil
Vaticana: un quadrat amb una lleugera curvatura a mode
d’excel·lència tipogràfica). A més del punctum normal, estan
el punctum inclinatum, oblic, produït amb el prefix
\inclinatum. El punctum normal es pot modificar amb\cavum, que produeix una nota buida,\linea, que traça línies verticals a ambdós costats de la nota. - La virga té una plica descendent al costat dret. Es
produeix mitjançant el modificador
\virga.
Lligadures
A diferència de gairebé tots el altres sistemes de notació de
neumes, l’aspecte tipogràfic de les lligadures no està determinat
directament per les ordres d’entrada, sinó que segueix unes
convencions que depenen del significat musical. Per exemple, una
lligadura de tres notes amb la forma musical baix-alt-baix, com
\[ a \pes b \flexa g \], produeix un Torculus que
consisteix en tres caps de Punctum, mentre que la forma
alt-baix-alt, com \[ a \flexa g \pes b \], produeix
un Porrectus cma una forma de flexa corbada i un sol cap de
Punctum. No hi ha cap ordre per gravar explícitament la forma de
flexa corbada; la decisió de quan gravar una forma de flexa
corbada està basada en l’entrada musical. La idea d’aquest enfoc
és separar els aspectes musicals de l’entrada, de l’estil de
notació de la sortida. D’aquesta forma, la mateixa entrada es pot
reutilitzar per gravar la mateixa música en un estil diferent de
notació de cant gregorià.
Neumes liquats
Un altra categoria fonamental de notes al cant gregorià és la dels
anomenats neumes liquats. Es fan servir sota certes
circumstàncies al final d’una síl·laba que acaba en una lletra
‘liquada’, és a dir, sonores que poden tenir una altura tonal,
(nasals, l, r, v, j, i els seus diftongs equivalents). Així, els
neumes liquats mai no s’utilitzen aïlladament (tot i que es poden
produir alguns d’ells), i sempre estan al final d’una lligadura.
Els neumes liquats es representen gràficament de dues formes
diferents més o menys intercanviables: amb una nota petita o
‘girant’ la nota principal cap a dalt o cap a baix. La primera
forma es produeix fent un pes o una flexa normals i
modificant la forma de la segona nota: \[ a
\pes \deminutum b \] , mentre que la segona es fa modificant la
forma d’un neuma d’una nota amb \auctum i un dels
generadors de direcció \descendens o \ascendens,
per exemple \[ \auctum \descendens a \] .
Símbols especials
Hi ha una tercera categoria de símbols que es fan a partir d’un
petit nombre de símbols que tenen un significat especial (que, per
cert, gairebé sempre es coneixen sols vagament): el
quilisma, el oriscus i el strophicus. Tots
ells es produeixen anteposant el nom de la nota el modificador
corresponent , \quilisma, \oriscus o
\stropha.
Dins dels delimitadors de lligadures \[ i \], es
poden acumular pràcticament qualsevol quantitat de caps de nota
per formar una sola lligadura, i els prefixos de cap com
\pes, \flexa, \virga, \inclinatum,
etc. es poden barrejar lliurament. L’ús del conjunt de regles que
subjau a la construcció de lligadures a la taula anterior està
consegüentment extrapolada. D’aquesta manera es poden crear un
numero infinit de lligadures diferents.
Observeu que l’ús d’aquests símbols a la pròpia música segueix certes regles que el LilyPond no comprova. Per exemple, el quilisma sempre és la nota intermèdia d’una lligadura ascendent, i sol caure sobre un interval de semitò, però és perfectament possible, si bé incorrecte, fer un quilisma d’una nota.
A més dels símbols de nota, el fitxer ‘gregorian.ly’
defineix també les ordres \versus,
\responsum, \ij, \iij, \IJ i
\IIJ, que produeixen els caràcters corresponents, per
exemple per utilitzar-los a la lletra, com marques de secció,
etc. Aquestes ordres utilitzen caràcters d’Unicode especials i
sols funcionen si s’usa un tipus de lletra que els suportin.
La taula següent mostra un conjunt limitat, però representatiu, de lligadures gregorianes, junt amb fragments de codi que les produeixen. La taula està basada en la taula de neumes estesos del segon volum de l’Antiphonale Romanum (Liber Hymnarius), publicat el 1983 pels monjos de Solesmes. La primera columna dóna el nom de la lligadura, amb la forma principal en tipus negreta i les formes liquades en cursiva. La tercera forma mostra el fragment de codi que produeix aquesta lligadura, utilitzant Sol, La i Si com altures d’exemple.
Neumes d’una nota
| Formes Bàsica i Liquada | Sortida | Codi del LilyPond |
| Punctum | \[ b \] | |
\[ \cavum b \] | ||
\[ \linea b \] | ||
| Punctum Auctum Ascendens | \[ \auctum \ascendens b \] | |
| Punctum Auctum Descendens | \[ \auctum \descendens b \] | |
| Punctum inclinatum | \[ \inclinatum b \] | |
| Punctum Inclinatum Auctum | \[ \inclinatum \auctum b \] | |
| Punctum Inclinatum Parvum | \[ \inclinatum \deminutum b \] | |
| Virga |
Ligaduras de dos notas
| Clivis vel Flexa | \[ b \flexa g \] | |
| Clivis Aucta Descendens | \[ b \flexa \auctum \descendens g \] | |
| Clivis Aucta Ascendens | \[ b \flexa \auctum \ascendens g \] | |
| Cephalicus | \[ b \flexa \deminutum g \] | |
| Podatus o Pes | \[ g \pes b \] | |
| Pes Auctus Descendens | \[ g \pes \auctum \descendens b \] | |
| Pes Auctus Ascendens | \[ g \pes \auctum \ascendens b \] | |
| Epiphonus | \[ g \pes \deminutum b \] | |
| Pes Initio Debilis | \[ \deminutum g \pes b \] | |
| Pes Auctus Descendens Initio Debilis | \[ \deminutum g \pes \auctum \descendens b \] |
Lligadures de diverses notes
| Torculus | \[ a \pes b \flexa g \] | |
| Torculus Auctus Descendens | \[ a \pes b \flexa \auctum \descendens g \] | |
| Torculus Deminutus | \[ a \pes b \flexa \deminutum g \] | |
| Torculus Initio Debilis | \[ \deminutum a \pes b \flexa g \] | |
| Torculus Auctus Descendens Initio Debilis | \[ \deminutum a \pes b \flexa \auctum \descendens g \] | |
| Torculus Deminutus Initio Debilis | \[ \deminutum a \pes b \flexa \deminutum g \] | |
| Porrectus | \[ a \flexa g \pes b \] | |
| Porrectus Auctus Descendens | \[ a \flexa g \pes \auctum \descendens b \] | |
| Porrectus Deminutus | \[ a \flexa g \pes \deminutum b \] | |
| Climacus | \[ \virga b \inclinatum a \inclinatum g \] | |
| Climacus Auctus | \[ \virga b \inclinatum a \inclinatum \auctum g \] | |
| Climacus Deminutus | \[ \virga b \inclinatum a \inclinatum \deminutum g \] | |
| Scandicus | \[ g \pes a \virga b \] | |
| Scandicus Auctus Descendens | \[ g \pes a \pes \auctum \descendens b \] | |
| Scandicus Deminutus | \[ g \pes a \pes \deminutum b \] |
Símbols especials
| Quilisma | \[ g \pes \quilisma a \pes b \] | |
| Quilisma Pes Auctus Descendens | \[ \quilisma g \pes \auctum \descendens b \] | |
| Oriscus | \[ \oriscus b \] | |
| Pes Quassus | \[ \oriscus g \pes \virga b \] | |
| Pes Quassus Auctus Descendens | \[ \oriscus g \pes \auctum \descendens b \] | |
| Salicus | \[ g \oriscus a \pes \virga b \] | |
| Salicus Auctus Descendens | \[ g \oriscus a \pes \auctum \descendens b \] | |
| (Apo)stropha | \[ \stropha b \] | |
| Stropha Aucta | \[ \stropha \auctum b \] | |
| Bistropha | \[ \stropha b \stropha b \] | |
| Tristropha | \[ \stropha b \stropha b \stropha b \] | |
| Trigonus | \[ \stropha b \stropha b \stropha a \] |
Instruccions predefinides
Els següents prefixos de cap tenen suport:
\virga,
\stropha,
\inclinatum,
\auctum,
\descendens,
\ascendens,
\oriscus,
\quilisma,
\deminutum,
\cavum,
\linea.
Es poden acumular els prefixos de cap, tot i que amb certes
restriccions. Per exemple, es poden aplicar \descendens
o \ascendens a una cap, però no els dos al mateix cap.
Es poden lligar dos caps adjacents amb les ordres infixes
\pes i \flexa per a una línia melòdica ascendent i
descendent, respectivament.
Utilitzeu la funció musical unària \augmentum per afegir
punts d’augmentum.
Vegeu també
Glossari musical: ligature.
Referència de la notació: Lligadures de neumes quadrats gregorians, Lligadures mensurals blanques, Lligadures.
Advertiments i problemes coneguts
Quan apareix un punt de \augmentum al final de l’última
pauta dins d’una lligadura, a vegades es posiciona amb defecte en
el sentit vertial. Per evitar aquest problema, escriviu una nota
addicional de salt (per exempe s8) com a última nota de la
pauta.
\augmentum hauria d’estar implementat com un prefix de cap
en comptes d’una funció musical unària, de forma que
\augmentum es pogués barrejar amb els prefixos de cap en un
ordre arbitrari.
2.9.5 Gravat del cant kievà en notació quadrada
| Contextos del cant kievà | ||
| Claus del cant kievà | ||
| Notes del cant kievà | ||
| Alteracions accidentals del cant kievà | ||
| Línies divisòries del cant kievà | ||
| Melismes del cant kievà |
Contextos del cant kievà
De la mateixa manera que amb les notacions mensural i gregoriana,
poden usar-se els contextos predefinitis KievanVoice i
KievanStaff per gravar una peça en notació quadrada.
Aquests contextos inicien totes les propietats de context
necessàries als seus valors adequats, de manera que podem
posar-nos a l’obra immediatament amb la introducció del propi
cant:
% Paràmetres de tipus de lletra per al ciríl·lic
\paper {
#(define fonts
(set-global-fonts
#:roman "Linux Libertine O,serif"
))
}
\score {
<<
\new KievanVoice = "melody" \relative c' {
\cadenzaOn
c4 c c c c2 b\longa
\bar "k"
}
\new Lyrics \lyricsto "melody" {
Го -- спо -- ди по -- ми -- луй.
}
>>
}
Vegeu també
Glossari musical: kievan notation.
Advertiments i problemes coneguts
El Lilypond dóna suport a la notació del cant kievà a l’estil sinodal, tal i com s’usava als cantorals impresos pel Sacre Sínode Rus a la dècada de 1910 i fa poc reimprès per la Casa de Publicacions del Patriarcat de Moscú. El LilyPond no dóna suport a les formes anteriors (menys corrents) de notació kievana que s’usaven a Galitzia per a la notació cant pla rutè.
Claus del cant kievà
A la notació kievana sols s’utilitza una clau (la clau Tse-fa-ut). S’utilitza per indicar la posició del Do:
\clef "kievan-do" \kievanOn c'
Vegeu també
Glossari musical: kievan notation, clef.
Referència de la notació: Clau.
Notes del cant kievà
Per a la notació quadrada del cant kievà, s’ha d’escollir l’estil
apropiat per a la forma del cap de les notes i s’han de suprimir
els corxets i les pliques. Això s’aconsegueix mitjançant una
crida a la funció \kievanOn, que estableix les propietats
adequades per al cap , plica i corxet de les notes. Un cop que
les notes d’estil kievà ja no calen, poden revertir-se aquestes
propietats cridant a la funció \kievanOff.
La nota fina del cant kievà, que sol anar al final d’una peça
musical, pot seleccionar-se establint la duració al valor
\longa. La marca kievana de recitatiu, utilitzada per
indicar l’entonació de diverses síl·labes sobre una sola nota, es
pot seleccionar establint la duració al valor\breve. El
següent exemple mostra les diverses formes del cap de les notes
del cant kievà:
\autoBeamOff \cadenzaOn \kievanOn b'1 b'2 b'4 b'8 b'\breve b'\longa \kievanOff b'2
Vegeu també
Glosario musical: kievan notation, note head.
Referencia de la notació: Estils de caps de nota.
Advertiments i problemes coneguts
El LilyPond determina de forma automàtica s’ha de traçar la forma
d’una nota amb la plica cap amunt o cap avall. Tanmateix, quan
s’està gravant un cant de notació quadrada, és preceptiu que les
pliques estiguin orientades en la mateixa direcció dins d’un
melisma. Això pot fer-se manualment fixant la propietat
direction de l’objecte Stem.
Alteracions accidentals del cant kievà
L’estil kievan per a les alteracions accidentals se
selecciona amb la propietat glyph-name-alist del grob
Accidental. L’estil kievan proveeix uns signes de
sostingut i de bemoll diferents de l’estil predeterminat. No
existeix el becaire a la notació kievana. El símbol del sostingut
no s’utilitza a la música sinodal però pot aparèixer en manuscrits
més antics. S’ha inclòs principalment a efectes de compatibilitat.
\clef "kievan-do" \override Accidental.glyph-name-alist = #alteration-kievan-glyph-name-alist bes' dis'
Vegeu també
Glossari musical: kievan notation, accidental.
Referència de la notació: Alteracions accidentals, Alteracions accidentals automàtiques, El tipus de lletra Emmentaler.
Línies divisòries del cant kievà
Normalment es col·loca una figura decorativa al final d’una peça
de notació kievana, que pot denominar-se com «doble barra final
del cant kievà». Es pot invocar com \bar "k".
\kievanOn \clef "kievan-do" c' \bar "k"
Vegeu també
Barres de compàs, El tipus de lletra Emmentaler.
Melismes del cant kievà
Les notes que estan dins d’un melisma del cant kievà se solen
col·locar a poca distància entre sí i cada melisma està separat
dels altres per un espai buit. Això es fa per permetre al cantor
la identificació ràpida de les estructures melòdiques del cant
Znamenny. Al LilyPond, els melismes es tracten com lligadures i
l’espaiat està implementat pel gravador
Kievan_ligature_engraver.
Quan s’usen els contextos KievanVoice i
KievanStaff, s’habilita el gravador
Kievan_ligature_engraver de forma predeterminada. En
altres contextos es pot invocar substituint el gravador
Ligature_bracket_engraver per
Kievan_ligature_engraver al bloc layout:
\layout {
\context {
\Voice
\remove "Ligature_bracket_engraver"
\consists "Kievan_ligature_engraver"
}
}
L’espaiat entre les notes que estan dins d’una mateixa lligadura
kievana pot controlar-se establint la propietat padding de
KievanLigature. L’exemple següent mostra l’ús de les
lligadures del cant kievà:
% Paràmetres de tipus de lletra per a ciríl·Lic
\paper {
#(define fonts
(set-global-fonts
#:roman "Linux Libertine O,serif"
))
}
\score {
<<
\new KievanVoice = "melody" \relative c' {
\cadenzaOn
e2 \[ e4( d4 ) \] \[ c4( d e d ) \] e1 \bar "k"
}
\new Lyrics \lyricsto "melody" {
Га -- врі -- и -- лу
}
>>
}
Vegeu també
Glossari musical: ligature.
Referència de la notació: Lligadures mensurals blanques, Lligadures de neumes quadrats gregorians, Lligadures.
Advertiments i problemes coneguts
L’espaiat horitzontal de les lligadures és mediocre.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Melismes del cant kievà ] | [ Amunt : Notació antiga ] | [ Incipits > ] | ||
2.9.6 Treball amb música antiga - escenaris i solucions
| Incipits | ||
| Disposició tipus «Mensurstriche» | ||
| Transcripció de cant gregorià | ||
| Antiga i moderna des de la mateixa font | ||
| Marcatge editorial |
El treball amb música antiga implica amb freqüència tasques addicionals que difereixen considerablement de la notació moderna per a la que es va dissenyar el LilyPond. A la resta d’aquesta secció es perfilen uns quants escenaris típics, amb suggeriments de solucions. Entre ells estan els següents:
- com fer incipits (o sigui, material a mode de prefaci que indica com era l’original) a les transcripcions modernes de música mensurals;
- com aconseguir el disseny Mensurstriche que s’usa amb freqüència per a les transcripcions modernes de música polifònica;
- com transcriure cant gregorià en notació moderna;
- com generar notació antiga i moderna a partir de la mateixa font.
Incipits
En transcriure música mensural a la notació moderna, és costum
posar una indicació de la forma en la qual apareixien en la versió
original els silencis i la nota o notes inicials (fins i tot amb
les claus originals). Això rep el nom de incipit. L’ordre
\incipit usa el valor de indent del
pentagrama principal per fixar l’espai horitzontal que ocupa
l’incipit, i incipit-width per establir l’amplada del
pentagrama del propi incipit.
\score {
\new Staff <<
\new Voice = Tenor {
\set Staff.instrumentName = #"Tenor"
\override Staff.InstrumentName.self-alignment-X = #RIGHT
\incipit { \clef "mensural-c4" \key f \major r\breve r1 c'1 }
\clef "treble_8"
\key f \major
R1 r2 c'2 |
a4. c'8
}
\new Lyrics \lyricsto Tenor { Cyn -- thia your }
>>
\layout
{
indent = 5\cm
incipit-width = 3\cm
}
}
Advertiments i problemes coneguts
Observeu que s’ha de configurar el contingut de
instrumentName dins de la música, perquè aparegui
l’incipit. Si no voleu que aparegui cap nom per a l’instrument,
utilitzeu \set Staff.instrumentName = #"".
Disposició tipus «Mensurstriche»
Mensurstriche (‘línies de mensuració’) és el terme acceptat per a les barres de compàs que es tracen entre els pentagrames d’un sistema però no dins dels propis pentagrames. És una forma comuna de preservar l’aspecte visual de les duracions de l’original, és a dir, sense haver de dividir les notes sincopades a les barres de compàs, i al mateix temps oferir l’ajuda orientativa que proporcionen les barres de compàs.
The mensurstriche-layout where the bar lines do not show on the staves
but between staves can be achieved with a StaffGroup instead of
a ChoirStaff. The bar line on staves is blanked out using
\hide.
global = {
\hide Staff.BarLine
s1 s
% the final bar line is not interrupted
\undo \hide Staff.BarLine
\bar "|."
}
\new StaffGroup \relative c'' {
<<
\new Staff { << \global { c1 c } >> }
\new Staff { << \global { c c } >> }
>>
}
Transcripció de cant gregorià
El cant gregorià es pot transcriure a notació moderna amb certs ajustaments senzills.
Pliques. Totes les pliques es poden eliminar d’un cop
retirant el gravador Stem_engraver del context de veu:
\layout {
…
\context {
\Voice
\remove "Stem_engraver"
}
}
Compàs. Per al cant no mesurat, hi ha diverses alternatives.
Es pot eliminar el gravador Time_signature_engraver del context de Staff sense cap efecte secundari negatiu. L’alternativa, que és fer transparent la indicació de compàs, deixa un espai en blanc a la partitura, atès que indicació invisible segueix ocupant un espai.
En molts casos dóna un bon resultat \set Score.timing =
##f. Una altra alternativa és utilitzar \cadenzaOn i
\cadenzaOff.
Per treure les barres de compàs, l’enfoc radical consisteix de
retirar (mitjançant l’ordre \remove) el gravador
Bar_engraver del context de pentagrama Staff. Un cop més, en
comptes d’això podem usar \hide BarLine si cal
ocasionalment una barra de compàs.
Un tipus de transcripció molt comuna és el cant de recitatiu, en el qual la nota repetida s’indica amb una breu. Es pot treballar el text del recitatiu de dues maneres. Podem posar-lo com una sola síl·laba alineada per l’esquerra:
\include "gregorian.ly"
chant = \relative {
\clef "G_8"
c'\breve c4 b4 a c2 c4 \divisioMaior
c\breve c4 c f, f \finalis
}
verba = \lyricmode {
\once \override LyricText.self-alignment-X = #-1
"Noctem quietam et" fi -- nem per -- fec -- tum
\once \override LyricText.self-alignment-X = #-1
"concedat nobis Dominus" om -- ni -- po -- tens.
}
\score {
\new Staff <<
\new Voice = "melody" \chant
\new Lyrics = "one" \lyricsto melody \verba
>>
\layout {
\context {
\Staff
\remove "Time_signature_engraver"
\remove "Bar_engraver"
}
\context {
\Voice
\remove "Stem_engraver"
}
}
}
Això funciona bé en la mesura en què el text no contingui un salt de línia. Si és el cas, una alternativa seria afegir notes ocultes a la partitura, en combinació amb canvis en la visibilitat de les pliques:
En certs estils de transcripció, s’usen pliques de forma
ocasional, per exemple per indicar la transició a partir d’un
recitatiu monotònic a un gest melòdic fix. En aquests casos podem
usar bé \hide Stem o bé \override Stem.length = #0
enlloc d’eliminar el gravador Stem_engraver amb
\remove, i restaurar la plica amb el corresponent
\undo \hide Stem.
\include "gregorian.ly"
chant = \relative {
\clef "G_8"
\set Score.timing = ##f
\hide Stem
c'\breve \hide NoteHead c c c c c
\undo \hide NoteHead
\undo \hide Stem \stemUp c4 b4 a
\hide Stem c2 c4 \divisioMaior
c\breve \hide NoteHead c c c c c c c
\undo \hide NoteHead c4 c f, f \finalis
}
verba = \lyricmode {
No -- ctem qui -- e -- tam et fi -- nem per -- fec -- tum
con -- ce -- dat no -- bis Do -- mi -- nus om -- ni -- po -- tens.
}
\score {
\new Staff <<
\new Voice = "melody" \chant
\new Lyrics \lyricsto "melody" \verba
>>
\layout {
\context {
\Staff
\remove "Time_signature_engraver"
\hide BarLine
}
}
}
Una altra situació és la transcripció de cants neumàtics o
melismàtics, és a dir, cants amb un número variable de notes en
cada síl·laba. En aquest cas, podem establir els grups de
síl·labes clarament separats, normalment també les subdivisions
d’un melisma major. Una forma d’aconseguir-lo és usar un
\time fix, per exemple 1/4, i deixar que cada síl·laba o
grup de notes ompli un d’aquests compassos, amb l’ajuda de grups
de valoració especial o duracions més breus. Si les línies
divisòries i totes les altres indicacions rítmiques es fan
transparents, i l’espai que rodeja les línies divisòries
s’augmenta, es proporciona una representació acceptable de
l’original, en notació moderna.
Per evitar que les síl·labes de diferent amplada (com “-ri” i
“-rum”) disposin els grups de notes de les síl·labes de forma
irregular, es pot ajustar la propietat 'X-extent de
l’objecte LyricText a un valor fix. Una altra forma més
enutjosa seria afegir les síl·labes com elements de
\markup. Si calen més ajustos posteriorment, això es pot
fer fàcilment amb ‘notas’ s.
spiritus = \relative {
\time 1/4
\override Lyrics.LyricText.X-extent = #'(0 . 3)
d'4 \tuplet 3/2 { f8 a g } g a a4 g f8 e
d4 f8 g g8 d f g a g f4 g8 a a4 s
\tuplet 3/2 { g8 f d } e f g a g4
}
spirLyr = \lyricmode {
Spi -- ri -- _ _ tus _ Do -- mi -- ni _ re -- ple -- _ vit _
or -- _ bem _ ter -- ra -- _ rum, al -- _ _ le -- _ lu
-- _ ia.
}
\score {
\new Staff <<
\new Voice = "chant" \spiritus
\new Lyrics = "one" \lyricsto "chant" \spirLyr
>>
\layout {
\context {
\Staff
\remove "Time_signature_engraver"
\override BarLine.X-extent = #'(-1 . 1)
\hide Stem
\hide Beam
\hide BarLine
\hide TupletNumber
}
}
}
Antiga i moderna des de la mateixa font
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
>>
}
}
Marcatge editorial
Continuarà...
>
2.10 Músiques del món
El propòsit d’aquesta secció és remarcar els problemes de notació que són de rellevància a les tradicions musicals diferents a l’occidental.
| 2.10.1 Notació comuna per a músiques no occidentals | ||
| 2.10.2 Música àrab | ||
| 2.10.3 Música clàssica de Turquia |
2.10.1 Notació comuna per a músiques no occidentals
Aquesta secció estudia la forma d’introduir i imprimir partitures musicals que no pertanyen a la tradició clàssica occidental, també coneguda com a Període de la pràctica comuna.
| Extensió de la notació i dels sistemes d’afinació |
Extensió de la notació i dels sistemes d’afinació
La notació clàssica estàndard (també coneguda com la notació del Període de la pràctica comuna) s’usa normalment en tot tipus de música, sense limitació a la música occidental ‘clàssica’. Aquesta notació s’estudia a Escriptura de notes, i els diferents noms de les notes que es poden utilitzar estan explicats a Noms de les notes en altres llengües.
No obstant, molts tipus de música no occidental (i algunes classes de música folk occidental i tradicional) fa servir sistemes d’afinació alternatius o estesos que no encaixen immediatament dins de la notació clàssica estàndard.
En alguns cassos encara s’usa la notació estàndard, fent implícites les diferències d’altura. Per exemple, la notació de la música àrab es realitza amb alteracions accidentals de semitò i de quart de to, on el context determina les alteracions exactes d’altura. S’usen en general els noms de les notes italians, mentre que el fitxer d’inici ‘arabic.ly’ proporciona un conjunt adequat de macros i definicions que estenen la notació estàndard. Per veure més detalls, consulteu Música àrab.
D’altres tipus de música requereixen notacions esteses o singulars. La música clàssica turca o música otomana, per exemple, fa servir formes melòdiques conegudes com makamlar, els intervals de les quals estan basats en divisions de 1/9 de to. Se segueixen usant les notes del pentagrama occidental, però amb alteracions accidentals exclusives de la música turca, que estan definides al fitxer ‘makam.ly’. Per veure més informació sobre la música clàssica turca i els makamlar, consulteu Música clàssica de Turquia.
Per localitzar els fitxers d’inici com ‘arabic.ly’ o ‘makam.ly’ al vostre sistema, consulteu Altres fonts d'informació.
Fragments de codi seleccionats
Makam example
Makam is a type of melody from Turkey using 1/9th-tone microtonal alterations. Consult the initialization file ‘ly/makam.ly’ for details of pitch names and alterations.
% Initialize makam settings
\include "makam.ly"
\relative c' {
\set Staff.keyAlterations = #`((6 . ,(- KOMA)) (3 . ,BAKIYE))
c4 cc db fk
gbm4 gfc gfb efk
fk4 db cc c
}
Vegeu també
Glossari musical: Common Practice Period, makamlar.
Manual d’aprenentatge Altres fonts d'informació.
Referència de la notació: Escriptura de notes, Noms de les notes en altres llengües, Música àrab, Música clàssica de Turquia.
2.10.2 Música àrab
Aquesta secció destaca temes relatius a la música àrab.
| Referències per a música àrab | ||
| Noms de nota àrabs | ||
| Armadures de tonalitat àrabs | ||
| Indicacions de compàs àrabs | ||
| Exemple de música àrab | ||
| Lectures addicionals sobre música àrab |
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Música àrab ] | [ Amunt : Música àrab ] | [ Noms de nota àrabs > ] | ||
Referències per a música àrab
La música àrab ha estat principalment una tradició oral fins el moment. Quan es transcriu la música, se sol fer en la forma d’un esbós sobre el qual els intèrprets han d’improvisar àmpliament. De forma creixent, s’està adoptant la notació occidental amb certes variants per preservar i transmetre la música àrab.
Alguns elements de la notació musical occidental com la transcripció d’acords o la particel·les independents, no calen per gravar les peces àrabs, més tradicionals. Tot i així, hi ha certes qüestions, com ara la necessitat d’indicar intervals que tenen una mesura intermèdia entre el semitò i el to, a més dels intervals majors i menors de la música occidental. També cal agrupar i indicar els nombrosos maqams (modes) que forme part de la música àrab.
En general la notació musical àrab no intenta indicat amb precisió els elements microtonals que es troben presents a la pràctica musical.
Són rellevants per a la música àrab certs assumptes que es tracten a d’altres parts del manual:
- Els noms de les notes i les seves alteracions (entre ells, quarts de to) es realitzar com s’estudia a Notació comuna per a músiques no occidentals.
- Las armadures addicionals es poden realitzar també com es descriu a Armadura de la tonalitat.
- Els compassos complexos poden requerir agrupacions manuals de les notes tal i com es descriu a Barres manuals.
- Els takasim o improvisacions lliures des del punt de vista rítmic es poden escriure ometent les barres de compàs com apareix a Música sense compassos.
Vegeu també
Referència de la notació: Notació comuna per a músiques no occidentals, Armadura de la tonalitat, Barres manuals.
Fragments de codi: World music.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Referències per a música àrab ] | [ Amunt : Música àrab ] | [ Armadures de tonalitat àrabs > ] | ||
Noms de nota àrabs
Els noms de nota àrabs tradicionals de les notes poden arribar a
ser força llargs i no són adequats per a l’escriptura musical, i
per això no es fan servir. Els noms anglesos de les notes no són
familiars dins de l’educació musical àrab, per la qual cosa en el
seu lloc es fan servir els noms italo-franco-espanyols o del
solfeig (do, re, mi, fa, sol, la, si); també es poden fer
servir modificadors (alteracions). Els noms italians de les notes
i les alteracions accidentals estan explicats a
Noms de les notes en altres llengües; l’ús de la notació
occidental estàndard per realitzar la notació de música no
occidental es discuteix a
Notació comuna per a músiques no occidentals.
Per exemple, així és com pot ser la notació de l’escala àrab rast:
\include "arabic.ly"
\relative {
do' re misb fa sol la sisb do sisb la sol fa misb re do
}
El símbol del semibemoll no coincideix amb el símbol que s’utilitza
a la notació àrab. Es pot usar el símbol \dwn definit a
‘arabic.ly’ precedint a un bemoll com via alternativa si és
important usar el símbol àrab específic del semi-bemoll.
L’aspecte del símbol del semibemoll dins de l’armadura no es pot
alterar mitjançant aquest mètode.
\include "arabic.ly"
\relative {
\set Staff.extraNatural = ##f
dod' dob dosd \dwn dob dobsb dodsd do do
}
Vegeu també
Referència de la notació: Noms de les notes en altres llengües, Notació comuna per a músiques no occidentals.
Fragments de codi: World music.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Noms de nota àrabs ] | [ Amunt : Música àrab ] | [ Indicacions de compàs àrabs > ] | ||
Armadures de tonalitat àrabs
A més de les armadures de tonalitats majors i menors, a ‘arabic.ly’ hi ha definides les tonalitats següents: bayati, rast, sikah, iraq i kurd. Aquestes armadures de tonalitat defineixen una petita quantitat de grups de maqam, en contrast amb els nombrosos maqams que són d’ús comú.
En general, un maqam usa l’armadura del seu grup o la d’un grup veí, i les alteracions que difereixen es van marcant al llarg de la música.
Per exemple, per indicar l’armadura d’una peça en el maqam muhayer:
\key re \bayati
Aquí, re és l’altura predeterminada del maqam muhayer, i bayati és el nom del maqam bàsic dins del grup.
Al temps que l’armadura indica el grup, el títol sol indicar el maqam específic, i així en aquest exemple el nom del maqam muhayer ha d’aparèixer al títol.
Es poden indicar de la mateixa forma altres maqams dins del mateix grup bayati, com apareix a la taula a continuació: bayati, hussaini, saba y ushaq. Tots ells són variants del maqam bàsic i més comú dins del grup, que és bayati. Normalment es diferencien del maqam bàsic en el seu tetracord superior, o en certs detalls de discurs que no canvien la seva naturalesa fonamental com a parents.
L’altre maqam del grup (Nawa) es relaciona amb el bayati a través d’una modulació que s’indica a la taula entre parèntesis per a aquells maqams que són modulacions del seu maqam bàsic. Els maqams àrabs admeten sols modulacions limitades, a causa de la naturalesa dels instruments musicals àrabs. El Nawa es pot indicar de la forma següent:
\key sol \bayati
A la música àrab, el mateix termini que s’utilitza per indicar un grup de maqam, com bayati, és també un maqam que normalment és el més important del grup, i podem veure’l com el maqam bàsic.
A continuació presentem una possibilitat d’agrupació que assigna els maqams més comuns a armadures de tonalitat:
| grup de maqam | to | final | altres maqams del grup (final) |
|---|---|---|---|
| ajam | major | sib | jaharka (fa) |
| bayati | bayati | re | hussaini, muhayer, saba, ushaq, nawa (sol) |
| hijaz | kurd | re | shahnaz, shad arban (sol), hijazkar (do) |
| iraq | iraq | sisb | - |
| kurd | kurd | re | hijazkar kurd (do) |
| nahawand | menor | do | busalik (re), farah faza (sol) |
| nakriz | menor | do | nawa athar, hisar (re) |
| rast | rast | do | mahur, yakah (sol) |
| sikah | sikah | misb | huzam |
Fragments de codi seleccionats
Non-traditional key signatures
The commonly used \key command sets the keyAlterations
property, in the Staff context.
To create non-standard key signatures, set this property directly. The format of this command is a list:
\set Staff.keyAlterations = #`(((octave . step) . alter) ((octave
. step) . alter) ...) where, for each element in the list,
octave specifies the octave (0 being the octave from middle C to
the B above), step specifies the note within the octave (0 means
C and 6 means B), and alter is ,SHARP ,FLAT ,DOUBLE-SHARP
etc. (Note the leading comma.)
Alternatively, for each item in the list, using the more concise format
(step . alter) specifies that the same alteration should hold in
all octaves.
For microtonal scales where a “sharp” is not 100 cents, alter
refers to the alteration as a proportion of a 200-cent whole tone.
Here is an example of a possible key signature for generating a whole-tone scale:
\relative {
\set Staff.keyAlterations = #`((6 . ,FLAT)
(5 . ,FLAT)
(3 . ,SHARP))
c'4 d e fis
aes4 bes c2
}
Vegeu també
Glossari musical: maqam, bayati, rast, sikah, iraq, kurd.
Referència de la notació: Armadura de la tonalitat.
Manual de aprenentatge: Alteracions accidentals i armadures
Referència de funcionament intern: KeySignature.
Fragments de codi: World music, Pitches.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Armadures de tonalitat àrabs ] | [ Amunt : Música àrab ] | [ Exemple de música àrab > ] | ||
Indicacions de compàs àrabs
Certes formes clàssiques de música àrab i turca com el Semai utilitzen compassos poc comuns com el 10/8. Això pot derivar en una agrupació automàtica de les notes molt diferent a la de les partitures impreses existents, on les notes poden no estar agrupades sobre el polze, sinó d’una forma difícil d’emular ajustant el barrat automàtic. L’alternativa seria desactivar el barrat automàtic i realitzar un barrat manual de les notes. Fins i tot si no cal una correspondència amb música escrita ja existent, pot seguir sent desitjable ajustar el comportament del barrat automàtic i/o utilitzar indicacions compostes de compàs.
Fragments de codi seleccionats
Arabic improvisation
For improvisations or taqasim which are temporarily free, the time
signature can be omitted and \cadenzaOn can be used. Adjusting
the accidental style might be required, since the absence of bar lines
will cause the accidental to be marked only once. Here is an example
of what could be the start of a hijaz improvisation:
\include "arabic.ly"
\relative sol' {
\key re \kurd
\accidentalStyle forget
\cadenzaOn
sol4 sol sol sol fad mib sol1 fad8 mib re4. r8 mib1 fad sol
}
Vegeu també
Glossari musical: semai, taqasim.
Referència de la notació: Barres manuals, Barres automàtiques, Música sense compassos, Alteracions accidentals automàtiques, Establir el comportament de les barres automàtiques, Indicació de compàs.
Fragments de codi: World music.
Exemple de música àrab
A continuació es pot trobar una plantilla que fa servir també el començament d’un Semai turc molt comú a l’educació musical àrab amb l’objecte d’il·lustrar algunes de les peculiaritats de la notació àrab, com els intervals intermedis i els modes poc usuals que tractem a aquesta secció.
\include "arabic.ly"
\score {
\relative {
\set Staff.extraNatural = ##f
\set Staff.autoBeaming = ##f
\key re \bayati
\time 10/8
re'4 re'8 re16 [misb re do] sisb [la sisb do] re4 r8
re16 [misb do re] sisb [do] la [sisb sol8] la [sisb] do [re] misb
fa4 fa16 [misb] misb8. [re16] re8 [misb] re [do] sisb
do4 sisb8 misb16 [re do sisb] la [do sisb la] la4 r8
}
\header {
title = "Semai Muhayer"
composer = "Jamil Bek"
}
}
Vegeu també
Fragments de codi: World music.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Entrada i sortida generals >> ] | ||
| [ < Exemple de música àrab ] | [ Amunt : Música àrab ] | [ Música clàssica de Turquia > ] | ||
Lectures addicionals sobre música àrab
-
The music of the Arabs, de Habib Hassan Touma [Amadeus Press,
1996], conté un tractat dels maqams i les seves formes d’agrupació.
També hi ha diversos llocs web que expliquen els maqams, i algunes d’els ofereixen exemple d’àudio, com ara:
Hi ha certes variants en els detalls sobre la forma en la qual s’agrupen els maqams, malgrat l’acord relatiu existent a sobre dels criteris d’agrupació de maqams en funció dels tetracordos inferiors comuns, o per mitjà de la modulació.
-
No és completament consistent, fins i tot a vegades dins del
mateix text, la forma en la qual s’han d’especificar les armadures
per als maqams concrets. Malgrat això, és usual utilitzar una
armadura per grup, més que una armadura diferent per a cada maqam
concret.
Diversos mètodes dels següents autors per a l’Ud, el llaüt àrab, contenen exemples de composicions turques i àrabs, principalment.
- Charbel Rouhana
- George Farah
- Ibrahim Ali Darwish Al-masri
2.10.3 Música clàssica de Turquia
Aquesta secció destaca els problemes de rellevància per a la notació de la música clàssica de Turquia.
| Referències per a música clàssica de Turquia | ||
| Noms de les notes en turc |
Referències per a música clàssica de Turquia
La música clàssica de Turquia es va desenvolupar a l’Imperi Otomà durant un període aproximadament contemporani amb la música clàssica d’Europa, i s’ha perllongat fins els segles XX i XXI com un tradició viva i característica amb les seves pròpies formes composicionals, teories i estils d’interpretació. Entre les seves característiques més sobresortints està l’ús d’intervals microtonals basats en ‘comes’ de 1/9 de to, a partir dels quals es construeixen les formes melòdiques conegudes com makam (en plural makamlar).
Certs assumptes de rellevància respecte a la música clàssica de Turquia es tracten a altres parts:
- Els noms especials de les notes i les alteracions es presenten a Notació comuna per a músiques no occidentals.
Noms de les notes en turc
Les notes a la música clàssica de Turquia tenen tradicionalment noms únics, i la base de les altures sobre divisions de 1/9 de to signifiquen que els makamlar utilitzen un conjunt d’intervals completament diferent de les escales i modes occidentals: koma (1/9 de to), eksik bakiye (3/9), bakiye (4/9), kücük mücenneb (5/9), büyük mücenneb (8/9), tanîni (un to) i artık ikili (12/9 o 13/9 de to).
Des del punt de vista de la notació moderna, és convenient utilitzar les notes occidentals (do, re, mi, … o c, d, e, …) amb alteracions especials que pugen o baixen les notes en intervals de 1/9, 4/9, 5/9 i 8/9 de to. Aquestes alteracions estan definides al fitxer ‘makam.ly’.
La taula següent relaciona:
- el nom d’aquestes alteracions accidentals especials,
- el sufix de l’alteració que s’ha d’escriure a darrere de les notes, i
- la seva alteració en altura expressada com una fracció d’un to.
Nom de l’alteració
sufix
alteració d’altura
büyük mücenneb (sostingut)
-bm
+8/9
kücük mücenneb (sostingut)
-k
+5/9
bakiye (sostingut)
-b
+4/9
koma (sostingut)
-c
+1/9
koma (bemoll)
-fc
-1/9
bakiye (bemoll)
-fb
-4/9
kücük mücenneb (bemoll)
-fk
-5/9
büyük mücenneb (bemoll)
-fbm
-8/9
Per veure una explicació més general sobre la notació musical no occidental, consulteu Notació comuna per a músiques no occidentals.
Vegeu també
Glossari musical: makam, makamlar.
Referència de la notació: Notació comuna per a músiques no occidentals.
| [ << Notació especialitzada ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Noms de les notes en turc ] | [ Amunt : Top ] | [ Estructura del codi d'entrada > ] | ||
3. Entrada i sortida generals
Aquesta secció tracta de temes relacionats amb l’entrada i la sortida generals del LilyPond, en comptes de tractar sobre la notació específica.
| 3.1 Estructura del codi d’entrada | ||
| 3.2 Títols i encapçalaments | ||
| 3.3 Treball sobre els fitxers d’entrada | ||
| 3.4 Control de la sortida | ||
| 3.5 Creació de sortida MIDI | ||
| 3.6 Extracció de la informació musical |
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Entrada i sortida generals ] | [ Amunt : Entrada i sortida generals ] | [ Estructura d'una partitura > ] | ||
3.1 Estructura del codi d’entrada
El format principal d’entrada per al Lilypond són fitxers de text. Per convenció, el nom d’aquests fitxers acaba en ‘.ly’.
| 3.1.1 Estructura d’una partitura | ||
| 3.1.2 Diverses partitures a un llibre | ||
| 3.1.3 Diversos fitxers de sortida a partir d’un d’entrada | ||
| 3.1.4 Noms dels fitxers de sortida | ||
| 3.1.5 Estructura del fitxer |
3.1.1 Estructura d’una partitura
Un bloc \score ha de contenir una expressió musical única
delimitada per un parell de claus:
\score {
…
}
Nota: Sol pot haver-hi una expressió musical dins del bloc
score, i ha d’estar envoltada entre claus.
Aquesta expressió musical única pot tenir qualsevol mida, i pot contenir altres expressions musicals fins qualsevol grau de complexitat. Tots els exemples següents són expressions musicals:
{ c'4 c' c' c' }
{
{ c'4 c' c' c' }
{ d'4 d' d' d' }
}
<<
\new Staff { c'4 c' c' c' }
\new Staff { d'4 d' d' d' }
>>
{
\new GrandStaff <<
\new StaffGroup <<
\new Staff { \flute }
\new Staff { \oboe }
>>
\new StaffGroup <<
\new Staff { \violinI }
\new Staff { \violinII }
>>
>>
}
Els comentaris són una excepció a aquesta regla generals (per
veure altres excepcions, consulteu Estructura del fitxer).
Tant els comentaris d’una línia com els que estan delimitat per
%{ … %} es poden escriure en qualsevol lloc dins
del fitxer d’entrada. Es poden escriure dins o fora del bloc
\score, i dins o fora de l’expressió musical única dins del
bloc \score.
Recordeu que fins i tot dins d’un fitxer que contengui sols un bloc
\score, aquest bloc es trob inclòs implícitament dins d’un
bloc \book. Un bloc \book dins d’un fitxer font
produeix almenys un fitxer de sortida, i de forma predeterminada
el nom del fitxer de sortida que es produeix es deriva del nom del
fitxer d’entrada, de forma que ‘sardanaperaelefants.ly’ dóna
com a resultat ‘sardanaperaelefants.pdf’.
(Per veure més detalls sobre els blocs \book, consulteu
Diverses partitures a un llibre,
Diversos fitxers de sortida a partir d’un d’entrada i
Estructura del fitxer.)
Vegeu també
Manual d’aprenentatge: Treball sobre els fitxers d'entrada, Explicació de les expressions musicals, La partitura és una (única) expressió musical composta.
3.1.2 Diverses partitures a un llibre
Un document pot contenir diverses peces de música i text, com per
exemple un llibre d’estudis o una part orquestral amb diversos
moviments. Cada moviment s’introdueix com un bloc \score:
\score {
…música…
}
i els textos s’introdueixen amb un bloc \markup:
\markup {
…text…
}
Tots els moviments i els textos que apareixen en el mateix fitxer ‘.ly’ es graven normalment en la forma d’un sol fitxer de sortida.
\score {
…
}
\markup {
…
}
\score {
…
}
Una excepció important es dóna dins dels documents del
lilypond-book, en els quals hem d’escriure explícitament un bloc
\book, perquè en cas contrari sola apareixerà a la sortida
el primer \score o \markup.
L’encapçalament de cada peça es pot posar dins del bloc
\score. Abans de cada moviment, s’imprimeix el nom de la
peça (piece) extret de l’encapçalament. El títol del
llibre sencer es pot posar dins del bloc \book, però si no
hi és present s’insereix a l’encapçalament \header que està
al principi del fitxer.
\header {
title = "Vuit miniatures"
composer = "Igor Stravinsky"
}
\score {
…
\header { piece = "Romanze" }
}
\markup {
…text de la segona estrofa…
}
\markup {
…text de la tercera estrofa…
}
\score {
…
\header { piece = "Menuetto" }
}
Es poden agrupar diferents peces de música en parts d’una llibre
utilitzant blocs \bookpart. Les parts de llibre se separen
per mitjà de salts de pàgina, i poden donar començament amb un
títol, com el llibre pròpiament dit, mitjançant l’especificació
del bloc \header.
\bookpart {
\header {
title = "Títol del llibre"
subtitle = "Primera part"
}
\score { … }
…
}
\bookpart {
\header {
subtitle = "Segona part"
}
\score { … }
…
}
3.1.3 Diversos fitxers de sortida a partir d’un d’entrada
Si volem diversos fitxers de sortida a partir del mateix fitxer
‘.ly’, podem escriure diversos blocs \book, on cadascú
d’aquests blocs \book donarà com a resulta un fitxer de
sortida diferent. Si no especifiquem cap bloc \book al
fitxer, el LilyPond processa implícitament tot el fitxer com un
sol bloc \book, vegeu Estructura del fitxer.
En produir diversos fitxers a partir d’un únic fitxer font, el
LilyPond s’assegura que cap dels fitxers de sortida de cap bloc
\book sobreescriu el fitxer de sortida produït per un
\book anterior del mateix fitxer d’entrada.
Ho fa afegint un sufix al nom de la sortida per a cada llibre
\book que utilitza el nom del fitxer de sortida
predeterminat, derivat del fitxer font d’entrada.
El comportament predeterminat és afegir un sufix amb el número de versió per a cada nom que pugui coincidir; així:
\book {
\score { … }
\paper { … }
}
\book {
\score { … }
\paper { … }
}
\book {
\score { … }
\paper { … }
}
al fitxer font ‘eightminiatures.ly’, produeix
- ‘eightminiatures.pdf’,
- ‘eightminiatures-1.pdf’ y
- ‘eightminiatures-2.pdf’.
3.1.4 Noms dels fitxers de sortida
El LilyPond us ofereix uns mecanismes que us permeten controlar els noms de fitxer que s’utilitzen per part dels diversos motors finals en produir els fitxers de sortida.
A la secció anterior havíem vist com el LilyPond evita les
coincidències de noms en produir diverses sortides a partir d’un
únic fitxer font d’entrada. També podem especificar els nostres
propis sufixos per a cada bloc \book, de manera que podem
produir, per exemple, fitxers amb els noms
‘eightminiatures-Romanze.pdf’,
‘eightminiatures-Menuetto.pdf’ y
‘eightminiatures-Nocturne.pdf’ afegint una declaració
\bookOutputSuffix dins de cada bloc \book.
\book {
\bookOutputSuffix "Romanze"
\score { … }
\paper { … }
}
\book {
\bookOutputSuffix "Menuetto"
\score { … }
\paper { … }
}
\book {
\bookOutputSuffix "Nocturne"
\score { … }
\paper { … }
}
També podem especificar un nom de fitxer de sortida diferent per a
cada bloc book, mitjançant la utilització de declaracions
\bookOutputName:
\book {
\bookOutputName "Romanze"
\score { … }
\paper { … }
}
\book {
\bookOutputName "Menuetto"
\score { … }
\paper { … }
}
\book {
\bookOutputName "Nocturne"
\score { … }
\paper { … }
}
El codi anterior produeix els següents fitxers de sortida:
- ‘Romanze.pdf’,
- ‘Menuetto.pdf’ i
- ‘Nocturne.pdf’.
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Noms dels fitxers de sortida ] | [ Amunt : Estructura del codi d'entrada ] | [ Títols i encapçalaments > ] | ||
3.1.5 Estructura del fitxer
Un fitxer ‘.ly’ pot contenir qualsevol nombre d’expressions del nivell superior, on una expressió del nivell superior és una de les possibilitats següents:
-
Una definició de sortida, com
\paper,\midii\layout. Una definició d’aquest tipus la nivell més alta canvia els ajustos predeterminats per a tot el llibre. Si s’introdueix més d’una d’aquestes definicions del mateix tipus al nivell més alt, les definicions es combinen, però en situacions de conflicte les definicions més tardanes tenen preferència. Per veure els detalls sobre com afecta al bloc\layout, consulteu El bloc layout. -
Una expressió directa de l’Scheme, com
#(set-default-paper-size "a7" 'landscape)o#(ly:set-option 'point-and-click #f). -
Un bloc
\header. Això estableix l’encapçalament global (és a dir, al principi del fitxer). És el bloc que conté els ajustos predeterminats dels camps d’encapçalament com el compositor, el títol, etc per a tots els llibres que estan dins del fitxer (vegeu Explicació dels títols). -
Un bloc
\score. Aquesta partitura es reuneix amb altres partitures del nivell superior, i es combina amb elles formant un\book(llibre) únic. Aquest comportament es pot canviar establint el valor de la variabletoplevel-score-handleral nivell superior (el handler predeterminat es defineix al fitxer ‘../scm/lily-library.scm’ i el seu valor s’estableix al fitxer ‘../ly/declarations-init.ly’.) -
Un bloc
\bookcombina lògicament diversos moviments (és a dir, diversos blocs\score) en un sol document. Si hi ha diverses partitures\score, es crea un sols fitxer de sortida per a cada bloc\book, en el qual es concatenen tots els moviments corresponents. L’única raó per especificar explícitament blocs\booken un fitxer d’entrada ‘.ly’ és si volem crear diversos fitxers de sortida a partir d’un únic fitxer d’entrada. Una excepció es dóna dins dels documents de lilypond-book, en els quals hem d’escriure explícitament un bloc\booksi volem tenir més d’una única partitura\scoreo marcatge\markupal mateix exemple. Es pot canviar aquest comportament establint el valor de la variabletoplevel-book-handleral nivell superior. El handler predeterminat es defineix al fitxer d’inici ‘../scm/lily.scm’. -
Un bloc
\bookpart. Un llibre pot dividir-se en diverses parts, utilitzant blocs\bookpart, amb l’objectiu de facilitar la inserció de salts de pàtina o suar diferents ajustos de\paperen les diferents parts. -
Una expressió musical composta, com
{ c'4 d' e'2 }Això afegeix la peça al
\scorei la conforma dins d’un llibre únic junt a totes les altres partitures\scorei expressions musicals del nivell superior. En altres paraules, un fitxer que conté sols l’expressió musical anterior es tradueix a\book { \score { \new Staff { \new Voice { { c'4 d' e'2 } } } \layout { } } \paper { } \header { } }Es pot canviar aquest comportament establint el valor de la variable
toplevel-music-handleral nivell més alt. E. handler predeterminat es defineix al fitxer d’inici ‘../scm/lily.scm’. -
Un text de marcatge, per exemple una estrofa
\markup { 2. Estrofa dos, línia u }Els textos de marcatge es col·loquen a sobre, en mig o a sota de les partitures o expressions musicals, segons on apareguin escrits.
-
Una variable, com
pepet = { c4 d e d }Això es pot utilitzar més tard al fitxer escrivint
\pepet. El nom de les variables ha de ser exclusivament alfabètic; sense números, guions ni barres baixes.
L’exemple següent mostra tres coses que se poden introduir al nivell superior:
\layout {
% No justificar la sortida
ragged-right = ##t
}
\header {
title = "Do-re-mi"
}
{ c'4 d' e2 }
En qualsevol punt del fitxer es poden introduir qualssevol de les instruccions lèxiques següents:
-
\version -
\include -
\sourcefilename -
\sourcefileline - Un comentari d’una línia, determinat per un símbol
%al principi. -
Un comentari de diverses línies, delimita per
%{ … %}.
En general s’ignoren els espais entre elements del flux d’entrada, i es poden ometre o augmentar tranquil·lament per millorar la llegibilitat. Tanmateix, els espais s’han d’utilitzar sempre per evitar errors, en les situacions següents:
- Al voltant de totes i cadascuna de les claus i parèntesis d’obertura i tancament.
- A continuació de les ordres i variables, és a dir, tots els
elements que comencen amb signe
\de barra invertida. - A continuació de tot element que s’hagi d’interpretar com a
expressió de l’Scheme, és a dir, tot element que comenci per un
signe
#. - Per separar els elements d’una expressió de l’Scheme.
- Dins de
lyricmodeabans i després de les ordres\seti\override.
Vegeu també
Manual d’aprenentatge: Com funcionen els fitxers d'entrada del LilyPond
Referència de la notació: Explicació dels títols, El bloc layout.
3.2 Títols i encapçalaments
Gairebé tota la música impresa té un títol i el nom del compositor; certes peces tenen molta més informació.
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Títols i encapçalaments ] | [ Amunt : Títols i encapçalaments ] | [ Explicació dels títols > ] | ||
3.2.1 Creació de títols encapçalaments i peus de pàgina
| Explicació dels títols | ||
| Presentació predeterminada dels títols de parts de llibre i partitura | ||
| Disposició predeterminada de les capçaleres i peus de pàgina |
Explicació dels títols
Cada bloc \book d’un sol fitxer d’entrada produeix un
fitxer de sortida diferent, vegeu Estructura del fitxer.
Dins de cada fitxer de sortida estan disponibles tres tipus de
zones per a títols: Títols de llibre al principi de cada
llibre, Títols de part de llibre al principi de cada part
d’un llibre i Títols de partitura al començament d’una
partitura.
Els valors dels camps per a encapçalaments com ara
title (per al títol) i composer (per a l’autor)
s’estableixen en blocs \header (per veure la sintaxi dels
blocs \header i una llista completa dels camps disponibles
de forma predeterminada, consulteu Presentació predeterminada dels títols de parts de llibre i partitura). Tant els títols de
llibre com els títols de part de llibre i els títols de partitura
poden contenir els mateixos camps, tot i que de forma
predeterminada els camps dels títols de partitura es limiten a
piece (peça) i opus.
Els blocs \header es poden situar en quatre llocs diferents
per formar una jerarquia descendent de blocs \header:
-
Al principi del fitxer d’entrada, abans de qualsevol altre bloc
\book,\bookparto\score. -
Dins d’un bloc
\bookperò fora dels blocs\bookparti\scoreque estan dins d’aquest llibre. -
Dins d’un bloc
\bookpartperò fora de qualsevol bloc\scoredins d’aquesta part del llibre. -
Després de l’expressió musical d’un bloc
\score.
Els valors dels camps es filtren a través d’aquesta jerarquia, persistint aquells que s’estableixen més a dalt a no ser que se sobreescriguin per un valor establert més a sota a la jerarquia, i així:
-
El títol d’un llibre deriva dels camps establerts al principi del
fitxer d’entrada, modificat per camps establerts en el bloc
\book. Els camps resultants s’usen per imprimir el títol de llibre per a aquest llibre, sempre i quan hi hagi un altre material que generi una pàgina al començament del llibre, abans de la primera part de llibre. És suficient una sola ordre\pageBreak. -
Un títol de part de llibre es deriva dels camps fixats al principi
del fitxer d’entrada, modificat pels camps establerts dins del bloc
\book, i posteriorment modificat pels camps que se fixen dins del bloc\bookpart. Els valors resultants s’usen per imprimir el títol de part de llibre per a aquesta part. -
Un títol de partitura es deriva dels camps que es fixen al
principi del fitxer d’entrada, modificats pels camps fixats dins
del bloc
\book, posteriorment modificats pels camps que es fixen dins del bloc\bookparti finalment modificats pels camps establerts dins del bloc\score. Els valors resultants s’utilitzen per imprimir el títol de partitura. Observeu, tanmateix, que de forma predeterminada sols s’imprimeixen els campspieceiopusals títols de partitura a no ser que la variable de\paper,print-all-headers, tengui el valor#t.
Nota: Recordeu que al posar un bloc \header dins
d’un bloc \score, l’expressió musical ha d’aparèixer
abans del bloc \header.
No cal aportar blocs \header als quatre llocs: qualssevol
d’ells o, fins i tot tots, poden ometre’s. De forma similar, els
fitxers d’entrada senzills poden ometre els blocs \book i
\bookpart, deixant que es creïn de forma implícita.
Si el llibre sols té una partitura, el bloc
\header hauria de situar-se normalment al principi del
fitxer de forma que sols es produeix una zona de títol de part de
llibre, fent que estiguin disponibles per al seu ús tots els
títols d’encapçalament.
Si el llibre té diverses partitures, són possibles diferents
combinacions de blocs \header, segons els diferents tipus
de publicacions musicals. Per exemple, si la publicació conté
diverses peces del mateix autor, un bloc \header col·locat
al principi del fitxer que especifiqui el títol del llibre i
l’autor, amb blocs \header en cada bloc \score que
especifiqui la piece i/o el opus seria el mes
adequat, com aquí:
\header {
title = "SUITE I."
composer = "J. S. Bach."
}
\score {
\new Staff \relative {
\clef bass
\key g \major
\repeat unfold 2 { g,16( d' b') a b d, b' d, } |
\repeat unfold 2 { g,16( e' c') b c e, c' e, } |
}
\header {
piece = "Prélude."
}
}
\score {
\new Staff \relative {
\clef bass
\key g \major
\partial 16 b16 |
<g, d' b'~>4 b'16 a( g fis) g( d e fis) g( a b c) |
d16( b g fis) g( e d c) b(c d e) fis( g a b) |
}
\header {
piece = "Allemande."
}
}
Són possibles disposicions més complexes. Per exemple, els camps
de text extrets del bloc \header d’un llibre es poden
imprimir en tots els títols de partitura, amb certs camps
sobreescrits i altres suprimits manualment:
\book {
\paper {
print-all-headers = ##t
}
\header {
title = "DAS WOHLTEMPERIRTE CLAVIER"
subtitle = "TEIL I"
% No mostris el peu de pàgina predeterminat del LilyPond per a aquest llibre
tagline = ##f
}
\markup { \vspace #1 }
\score {
\new PianoStaff <<
\new Staff { s1 }
\new Staff { \clef "bass" s1 }
>>
\header {
title = "PRAELUDIUM I"
opus = "BWV 846"
% No mostris el subtítol per a aquesta partitura
subtitle = ##f
}
}
\score {
\new PianoStaff <<
\new Staff { s1 }
\new Staff { \clef "bass" s1 }
>>
\header {
title = "FUGA I"
subsubtitle = "A 4 VOCI"
opus = "BWV 846"
% No mostris el subtítol per a aquesta partitura
subtitle = ##f
}
}
}
Vegeu també
Referència de la notació: Estructura del fitxer, Presentació predeterminada dels títols de parts de llibre i partitura, Personalització dels títols.
Presentació predeterminada dels títols de parts de llibre i partitura
Aquest exemple mostra totes les variables impreses de \header:
\book {
\header {
% Els camps següents estan centrats
dedication = "Dedicatòria"
title = "Títol"
subtitle = "Subtítol"
subsubtitle = "Subsubtítol"
% Els camps següents es distribueixen regularment sobre una línia.
% El camp "instrument" també apareix a les pàgines següents
instrument = \markup \with-color #green "Instrument"
poet = "Poeta"
composer = "Compositor"
% Els camps següents se situen als extrems oposats de la mateixa línia
meter = "Metre"
arranger ="Arreglador"
% Els camps següents estan centrats a la part inferior
tagline = "La línia d'etiqueta va al final de l'ultima pàgina"
copyright = "El copyright va al final de la primera pàgina"
}
\score {
{ s1 }
\header {
% Els camps següents es col·loquen als extrems d'una línia
piece = "Peça 1"
opus = "Opus 1"
}
}
\score {
{ s1 }
\header {
% Els camps següents se situen als extrems d'una línia
piece = "Peça 2 a la mateixa pàgina"
opus = "Opus 2"
}
}
\pageBreak
\score {
{ s1 }
\header {
% Els camps següents se situen als extrems d'una línia
piece = "Peça 3 en una pàgina nova"
opus = "Opus 3"
}
}
}
Observeu que
- El nom d’instrument es repeteix a totes les pàgines.
-
Sols
piece(la peça) iopuss’imprimeixen a un\scorequan la variable de paperprint-all-headerss’estableix a##f(el valor predeterminat). -
Els camps de text que es deixen sense establir dins d’un bloc
\headerse substitueixen per elements de marcatge nuls\nullde manera que no ocupin espai innecessàriament. -
Els ajustos predeterminats per a
scoreTitleMarkupsituen els camps de textpieceiopusen extrems oposants de la mateixa línia.
Per canviar la disposició predeterminada, vegeu Personalització dels títols.
Si un bloc \book comença immediatament amb un bloc
\bookpart, no s’imprimeix cap títol de llibre, atès que no
existeix cap pàgina on imprimir-lo. Si és necessari un títol de
llibre, inicieu el bloc \book amb algun material de
marcatge a amb una ordre \pageBreak.
Utilitzeu la variable breakbefore dins d’un bloc
\header que estigui pròpiament dins d’un bloc
\score per fer que els títols del bloc
\header del nivell superior apareguin ocupant tota la
primera pàgina, començant la música (definida al bloc
\score) a la pagina següent.
\book {
\header {
title = "Aquest és el meu Títol"
subtitle = "Aquest és el meu Subtítol"
copyright = "Aquest és el final de la primera pàgina"
}
\score {
\repeat unfold 4 { e'' e'' e'' e'' }
\header {
piece = "Això és la música"
breakbefore = ##t
}
}
}
Vegeu també
Manual d’aprenentatge: Com funcionen els fitxers d'entrada del LilyPond
Referència de la notació: Personalització dels títols, Estructura del fitxer.
Fitxers d’inici: ‘ly/titling-init.ly’.
Disposició predeterminada de les capçaleres i peus de pàgina
Les capçaleres i els peus de pàgina són línies de
text que apareixen a la part més alta i a la més baixa de les
pàgines separades del text principal d’un llibre. Es controlen
mitjançant les variables següents de \paper:
-
oddHeaderMarkup(marcatge de capçalera imparell) -
evenHeaderMarkup(marcatge de capçalera parell) -
oddFooterMarkup(marcatge de peu imparell) -
evenFooterMarkup(marcatge de peu parell)
Aquestes variables de marcatge sols poden accedir als camps de
text extrets de blocs \header del nivell superior (que
s’apliquen a totes les partitures del llibre) i es defineixen al
fitxer ‘ly/titling-init.ly’. De forma predeterminada:
- els números de pàgina se situen automàticament a l’extrem superior esquerre (si és parell) o superior dret (si és imparell), a partir de la segona pàgina.
-
el camp de text
instrumentse situa al centre en cada pàgina, a partir de la segona pàgina. -
el text de
copyrightse centra a la part baixa de la primera pàgina. -
la línia
taglinese centra al final de l’última pàgina, i a sota del text decopyrightsi sols hi ha una pàgina.
La línia predeterminada de peu de pàgina del LilyPond es pot
canviar afegint un camp tagline al bloc \header del
nivell superior.
\book {
\header {
tagline = "... music notation for Everyone"
}
\score {
\relative {
c'4 d e f
}
}
}
Per eliminar la línia de peu de pàgina predeterminada del
LilyPond, establiu el valor de tagline a ##f.
3.2.2 Títols encapçalaments i peus de pàgina personalitzats
| Formatat personalitzat del text dels títols | ||
| Personalització dels títols | ||
| Disposició personalitzada de capçaleres i peus de pàgina |
Formatat personalitzat del text dels títols
Es poden usar ordres \markup estàndard per personalitzar el
text de qualsevol capçalera, peu o títol dins del bloc \header.
\score {
{ s1 }
\header {
piece = \markup { \fontsize #4 \bold "PRAELUDIUM I" }
opus = \markup { \italic "BWV 846" }
}
}
Vegeu també
Referència de la notació: Donar format al text.
Personalització dels títols
Les ordres \markup dins del bloc \header són útils
per donar un format simple al text, però no permeten un control
precís sobre la col·locació dels títols. Per personalitzar la
col·locació dels camps de text, canvieu un o les dos variables
\paper següents:
-
bookTitleMarkup(marcatge del títol del llibre) -
scoreTitleMarkup(marcatge del títol de la partitura)
La col·locació dels títols quan s’utilitzen els valors
predeterminats d’aquestes variables de \markup es mostra
als exemple de
Presentació predeterminada dels títols de parts de llibre i partitura.
Els ajustos predeterminats per a scoreTitleMarkup tal i com
estan definits al fitxer ‘ly/titling-init.ly’ són:
scoreTitleMarkup = \markup { \column {
\on-the-fly \print-all-headers { \bookTitleMarkup \hspace #1 }
\fill-line {
\fromproperty #'header:piece
\fromproperty #'header:opus
}
}
}
Això situa els camps de text piece i opus en extrems
oposats de la mateixa línia:
\score {
{ s1 }
\header {
piece = "PRAELUDIUM I"
opus = "BWV 846"
}
}
Aquest exemple redefineix scoreTitleMarkup de manera que el
camp de text piece apareix centrat i en un tipus de lletra
gran i en negreta.
\book {
\paper {
indent = 0\mm
scoreTitleMarkup = \markup {
\fill-line {
\null
\fontsize #4 \bold \fromproperty #'header:piece
\fromproperty #'header:opus
}
}
}
\header { tagline = ##f }
\score {
{ s1 }
\header {
piece = "PRAELUDIUM I"
opus = "BWV 846"
}
}
}
Els camps de text que normalment no són efectius dins dels blocs
\header d’una partitura es poden imprimir a la zona del
Títol de la partitura si es col·loca print-all-headers dins
del bloc \paper. Un desavantatge de la utilització
d’aquest mètode es que els camps de text que estan orientats
específicament per a la zona del títol de part de llibre han de
suprimir-se manualment en cada un dels blocs \score.
Vegeu Explicació dels títols.
Per evitar-lo, afegiu el camp de text desitjat a la definició de
scoreTitleMarkup. A l’exemple següent, el camp de text
composer (associat normalment amb bookTitleMarkup)
se afegeix a scoreTitleMarkup, permetent que cada partitura
mostri un compositor diferent:
\book {
\paper {
indent = 0\mm
scoreTitleMarkup = \markup {
\fill-line {
\null
\fontsize #4 \bold \fromproperty #'header:piece
\fromproperty #'header:composer
}
}
}
\header { tagline = ##f }
\score {
{ s1 }
\header {
piece = "MENUET"
composer = "Christian Petzold"
}
}
\score {
{ s1 }
\header {
piece = "RONDEAU"
composer = "François Couperin"
}
}
}
També podem crear els nostres propis camps de text personalitzats, i referir-nos a ells a la definició de l’element de marcatge.
\book {
\paper {
indent = 0\mm
scoreTitleMarkup = \markup {
\fill-line {
\null
\override #`(direction . ,UP) {
\dir-column {
\center-align \fontsize #-1 \bold
\fromproperty #'header:mycustomtext %% Camp definit per l'usuari
\center-align \fontsize #4 \bold
\fromproperty #'header:piece
}
}
\fromproperty #'header:opus
}
}
}
\header { tagline = ##f }
\score {
{ s1 }
\header {
piece = "FUGA I"
mycustomtext = "A 4 VOCI" %% Camp definit per l'usuari
opus = "BWV 846"
}
}
}
Vegeu també
Referència de la notació: Explicació dels títols.
Disposició personalitzada de capçaleres i peus de pàgina
Les ordres \markup dins del bloc \header són
d’utilitat per donar format al text d’una manera senzilla, però no
permeten un control precís sobre la col·locació de les capçaleres
i els peus de pàgina. Per personalitzar la col·locació dels camps
de text, useu una o més de les següents variables de \paper:
-
oddHeaderMarkup(marcatge d’encapçalament imparell) -
evenHeaderMarkup(marcatge d’encapçalament parell) -
oddFooterMarkup(marcatge de peu de pàgina imparell) -
evenFooterMarkup(marcatge de peu de pàgina parell)
L’ordre de marcatge \on-the-fly es pot utilitzar per afegir
elements de forma condicional al text d’encapçalament i peu de
pàgina definit dins del bloc \paper, usant la sintaxi següent:
variable = \markup {
…
\on-the-fly \procediment marcatge
…
}
El procediment es crida cada cop que s’avalua l’ordre
\markup en el qual apareix. El procediment hauria de
comprovar si es compleix una condició determinada i interpretar
(és a dir: gravar) l’argument marcatge si, i sols si, la
condició és vertadera.
Es proveeixen un cert nombre de procediments ja fets per a la comprovació de diverses condicions:
Nom del procediment
Condició que es comprova
print-page-number-check-first
s’hauria d’imprimir aquest número de pàgina?
create-page-number-stencil
és print-page-numbers vertader?
print-all-headers
és print-all-headers vertader?
first-page
és la primera pàgina del llibre?
not-first-page
no es la primera pàgina del llibre?
(on-page num)
és el número de pàgina = num?
last-page
és l’última pàgina del llibre?
part-first-page
és la primera pàgina de la part de llibre?
not-part-first-page
no es la primera pàgina de la part de llibre?
part-last-page
és l’última pàgina de la part de llibre?
not-single-page
és el nombre de pàgines en la part de llibre més gran que 1?
L’exemple següent centra els números de pàgina en la part baixa de
les pàgines. En primer lloc, els ajustaments predeterminats per a
oddHeaderMarkup i evenHeaderMarkup s’eliminen
definint-los com un marcatge nul. Després d’això, es defineix
oddFooterMarkup amb el número de pàgina centrat.
Finalment, evenFooterMarkup rep la mateixa disposició
definint-la com \oddFooterMarkup:
\book {
\paper {
print-page-number = ##t
print-first-page-number = ##t
oddHeaderMarkup = \markup \null
evenHeaderMarkup = \markup \null
oddFooterMarkup = \markup {
\fill-line {
\on-the-fly \print-page-number-check-first
\fromproperty #'page:page-number-string
}
}
evenFooterMarkup = \oddFooterMarkup
}
\score {
\new Staff { s1 \break s1 \break s1 }
}
}
Es poden combinar diverses condicions de \on-the-fly amb un
operador ‘and’, per exemple:
\on-the-fly \first-page \on-the-fly \last-page{ \markup … \fromproperty #'header: … }
determina si la sortida és una sola pàgina.
Vegeu també
Referència de la notació: Explicació dels títols, Presentació predeterminada dels títols de parts de llibre i partitura.
Fitxers instal·lats: ‘../ly/titling-init.ly’.
3.2.3 Creació de metadades al fitxers de sortida
A més de mostrar-se a la sortida impresa, les variables
d’encapçalament de \header s’usen per establir les
metadades per als fitxers de sortida. Per exemple, amb els
fitxers PDF, aquestes metadades poden mostrar-se per part dels
lectors de documents com propietats del PDF. Per a cada
tipus de fitxers de sortida, sols es consulten les definicions de
\header dels blocs que defineixen fitxers separats d’aquest
tipus, i els blocs més alts a la jerarquia de blocs. Per tant,
per als fitxers PDF, sols afecten a les metadades de PDF de cada
document les definicions de \header dels nivells de
\book i de nivell superior, mentre que per a fitxers MIDI
s’usen totes les capçaleres que estiguin per sobre o al nivell de
\score.
Per exemple, si s’estableix la propietat title del bloc
header com ‘Sinfonia núm. 1’, el document PDF portarà
també aquest títol, i el farà servir com a nom de la seqüència del
fitxer MIDI.
\header{
title = "Sinfonia núm. 1"
}
Si voleu fixar el títol de la sortida impresa amb un text però
voleu que la propietat del títol del PDF tingui un text diferent,
podeu usar pdftitle como es mostra a continuació.
\header{
title = "Sinfonia núm. 1"
pdftitle = "Sinfonia núm. 1 de Beethoven"
}
Totes les variables title, subject,
keywords, subtitle, composer,
arranger, poet, author i copyright
estableixen propietats del PDF i poden fer-se precedir de
‘pdf’ per fixar una propietat del fitxer PDF a un valor diferent
del de la sortida impresa.
La propietat de PDF Creator es fixa automàticament a
‘LilyPond’ més la versió actual del LilyPond, y les variables
CreationDate i ModDate es fixen a la data i hora
actuals. Es pot sobreescriure ModDate mitjançant
l’establiment d’un valor per a la variable de capçalera
moddate (o pdfmoddate) a una cadena de data de PDF
vàlida.
La variable title estableix també el nom de la seqüència
per al fitxer MIDI. Es pot usar la variable midititle per
fixar el nom de la seqüència independentment del valor usar per a
la sortida impresa.
3.2.4 Creació de notes al peu
Es poden crear dos tipus de notes al peu: automàtiques i manuals.
| Notes al peu dins d’expressions musicals | ||
| Notes al peu en text independent |
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Creació de notes al peu ] | [ Amunt : Creació de notes al peu ] | [ Notes al peu en text independent > ] | ||
Notes al peu dins d’expressions musicals
Panoràmica de les notes al peu
Les notes al peu dins d’expressions musicals cauen dins de dues categories:
- Notes al peu basades en esdeveniments
S’adjunten a un esdeveniment en particular. En són exemples d’aquests esdeveniments les notes soltes, les articulacions (com indicacions de digitació, accents, indicacions dinàmiques) i els post-esdeveniments (com les lligadures d’expressió i les barres de corxera manuals). La forma general de les notes al peu basades en esdeveniments és com segueix:
[direcció] \footnote [marca] desplaçament text-de-la-nota música
- Notes al peu basades en temps
Es lliguen a un punt temporal determinat, dins d’un context musical. Algunes instruccions com
\timei\clefen realitat no usen esdeveniments per crear objectes com la indicació de compàs i la clau. Un acord tampoc crea un esdeveniment per sí mateix: la seva plica o gafet es crea al final d’un pas de temps (nominalment, a través d’un dels esdeveniments de nota que conté). Una nota al peu basada en temps permet anotar aquest tipus d’objectes de presentació sense referir-se a cap esdeveniment.Una nota al peu basada en temps permet que aquests objectes de presentació es poden anotar sense fer referència a un esdeveniment. La forma general per a les notes al peu basada en temps és:
\footnote [marca] desplaçament text-de-la-nota [Context].Nom-del-Grob
Els elements per a les dues formes són com segueix:
- direcció
Si (i sols si) el
\footnotes’està aplicant a un post-esdeveniment o articulació, ha d’anar precedida d’un indicador de direcció (-, _, ^) amb l’objecte d’adjuntar la música (amb una marca de nota al peu) a la nota o silenci precedent.- marca
és un element de marcatge o cadena de caràcters que especifica la marca de nota al peu que s’usa per marcar tant el punt de referència com la pròpia nota al peu en la part inferior de la pàgina. Es pot ometre (o, de forma equivalent, substituir-se per
\default) en el qual cas es genera un numero seqüencialment de forma automàtica. Tals seqüències numèriques es reinicien en cada pàgina que conté una nota al peu.- desplaçament
és una parella de números tal com ‘#(2 . 1)’ que especifica els desplaçaments en X i en Y en unitats d’espais de pentagrama a partir del límit de l’objecte en el qual es desitja situar la marca. Els valors de desplaçament positius s’agafen a partir del cantó superior dret, els valors negatius a partir del cantó inferior esquerre i zero implica que la marca se centra sobre el cantó.
- Context
és el context en el qual es crea el grob que rep la nota al peu. Es pot ometre si el grob està en un context del nivell inferior, per exemple, un context
Voice.- Nom-del-Grob
especifica un tipus de grob a marcar (com ‘Flag’ per al gafet). Si es dóna, la nota al peu no s’adjunta a una expressió musical en particular, sinó a tots els grobs del tipus especificat que ocorren en aquest moment de temps musical.
- text-de-la-nota
és l’element de marcatge o cadena de caràcters que especifica el text de la nota al peu que utilitza en la part baixa de la pàgina.
- música
és l’esdeveniment musical, post-esdeveniment o articulació que s’està anotant.
Notes al peu basades en esdeveniments
Una nota al peu s’adjunta a un objecte de presentació causat directament per l’esdeveniment que correspon a música, amb la sintaxi següent:
\footnote [marca] desplaçament text-de-la-nota música
\book {
\header { tagline = ##f }
\relative c'' {
\footnote #'(-1 . 3) "Una nota" a4
a4
\footnote #'(2 . 2) "Un silenci" r4
a4
}
}
No és possible marcar un acord complet amb una nota al peu basada en esdeveniment: un acord, fins i tot el que conté una sola nota, no produeix un veritable esdeveniment per sí mateix. Malgrat això, les notes individuals que estiguin dins de l’acord si es poden marcar:
\book {
\header { tagline = ##f }
\relative c'' {
\footnote #'(2 . 3) "No funciona" <a-3>2
<\footnote #'(-2 . -3) "Funciona" a-3>4
<a-3 \footnote #'(3 . 1/2) "També funciona" c-5>4
}
}
Si es desitja que la nota al peu s’adjunta a un post-esdeveniment
o articulació, l’ordre \footnote ha d’anar precedida
per un indicador d’adreça, -, _, ^, i seguida pel
post-esdeveniment o articulació que es desitja anota com a
argument música. En aquesta forma, la \footnote es
pot considerar com una simple còpia del seu últim argument amb una
marca de nota al peu adjunta. La sintaxi és:
direcció \footnote [marca] desplaçament text-de-la-nota música
\book {
\header { tagline = ##f }
\relative {
a'4_\footnote #'(0 . -1) "Lligadura forçada cap avall" (
b8^\footnote #'(1 . 0.5) "Barra manual forçada cap amunt" [
b8 ]
c4 )
c-\footnote #'(1 . 1) "Tenuto" --
}
}
notes al peu basades en temps
Si l’objecte de presentació que rep la nota al peu està
reutilitzat indirectament per un esdeveniment (com un
objecte Accidental, alteració, o Stem, plica,
causats per un esdeveniment NoteHead, cap de nota), el nom
del grob GrobName de l’objecte de presentació és necessari
després del text de la nota al peu, en lloc de música:
\book {
\header { tagline = ##f }
\relative c'' {
\footnote #'(-1 . -3) "Un bemoll" Accidental
aes4 c
\footnote #'(-1 . 0.5) "Un altre bemoll" Accidental
ees
\footnote #'(1 . -2) "Una plica" Stem
aes
}
}
Malgrat això, observeu que quan s’especifica el nom d’un grob, s’adjunta una nota al peu a tots els grobs d’aquest tipus dins de l’instant del temps actual:
\book {
\header { tagline = ##f }
\relative c' {
\footnote #'(-1 . 3) "Un bemoll" Accidental
<ees ges bes>4
\footnote #'(2 . 0.5) "Articulació" Script
c'->-.
}
}
Una nota dins d’un acord pot rebre una nota al peu individual,
basada a l’esdeveniment. L’únic grob causat directament per una
nota d’un acord és ‘NoteHead’, per la qual cosa l’ordre de
nota al peu basada en esdeveniment sols és apta per afegir
una nota al peu a la ‘NoteHead’ dins d’un acord. Tots els
altres grobs de notes d’acord estan causats indirectament. La
pròpia ordre \footnote no ofereix cap sintaxi per
especificar al mateix temps un tipus concret de grob i
també un esdeveniment concret al qual adjuntar la nota. Malgrat
això, es pot usar una ordre \footnote basada en temps per
especificar el tipus de grob, i després d’afegir l’ordre
\single com prefix, amb l’objectiu que s’apliqui sols a
l’esdeveniment següent:
\book {
\header { tagline = ##f }
\relative c'' {
< \footnote #'(1 . -2) "Un La" a
\single \footnote #'(-1 . -1) "Un sostingut" Accidental
cis
\single \footnote #'(0.5 . 0.5) "Un bemoll" Accidental
ees fis
>2
}
}
Nota: Quan les notes al peu s’adjunten a diversos elements musicals que estan dins del mateix musical, com ocorre a l’exemple anterior, les notes al peu es numeren des dels elements més alta als més baixos tal i com apareixen a la sortida impresa, no a l’ordre en el qual s’escriuen al flux d’entrada.
Els objectes de presentació com les claus i les armadures de canvi de tonalitat estan, més bé, causades per propietats que canvien, i no per esdeveniments. D’altres, com les línies divisòries i els números de compàs, són una conseqüència directa del pas del temps. Per aquesta raó, les notes al peu sobre tals objectes tenen que basar-se en el seu temps musical. Les notes al peu basades en temps són preferibles també quan es marquen coses com les pliques i les barres de corxera a acords: atès que aquestes funcionalitats de cada acord individual estan assignades normalment a un sol esdeveniment dins de l’acord, seria imprudent descansar en una elecció particular.
A les notes al peu basades en temps, sempre s’ha d’especificar explícitament l’objecte de presentació en qüestió, i si el grob es crea dins d’un context diferent al de nivell més baix, s’ha d’especificar el context apropiat.
\book {
\header { tagline = ##f }
\relative c'' {
r1 |
\footnote #'(-0.5 . -1) "Canvi de compàs" Staff.TimeSignature
\time 3/4
\footnote #'(1 . -1) "Plica d'acord" Stem
<c e g>4 q q
\footnote #'(-0.5 . 1) "Línia divisòria" Staff.BarLine
q q
\footnote #'(0.5 . -1) "Canvi de tonalitat" Staff.KeySignature
\key c\minor
q
}
}
Es poden usar marques personalitzades com alternatives a les marques numèriques, i es pot suprimir la línia d’anotació que uneix l’objecte marcat amb la seva marca:
\book {
\header { tagline = ##f }
\relative c' {
\footnote "*" #'(0.5 . -2) \markup { \italic "* La primera nota" } a'4
b8
\footnote \markup { \super "$" } #'(0.5 . 1)
\markup { \super "$" \italic " La segona nota" } e
c4
\once \override Score.FootnoteItem.annotation-line = ##f
b-\footnote \markup \tiny "+" #'(0.1 . 0.1)
\markup { \super "+" \italic " Editorial" } \p
}
}
Es mostren més exemples de marques personalitzades a Notes al peu en text independent.
Notes al peu en text independent
S’utilitzen dins d’un element de marcatge fora de qualsevol expressió musical. No es traça una línia fins el punt de referència: la marca simplement segueix a l’element de marcatge que es referencia. Es poden inserir les marques automàticament, en el qual cas són numèriques. De forma alternativa, es poden aportar manualment marques personalitzats.
Les notes al peu per a text independent com marques automàtiques i personalitzades es creen de formes diferents.
Notes al peu en text independent amb marques automàtiques
La sintaxi d’una nota al peu sobre text independent amb marques automàtiques és
\markup { … \auto-footnote text nota … }
Els elements són:
- text
és l’element de marcatge o cadena de caràcters que es desitja anotar.
- nota
és l’element de marcatge o cadena de caràcter que especifica el text de la nota al peu que utilitza a la part baixa de la pàgina.
Per exemple:
\book {
\header { tagline = ##f }
\markup {
"Un melodia"
\auto-footnote "simple" \italic " Meva"
"es mostra a sota. És una"
\auto-footnote "composició" \italic " Ago 2012"
"recent."
}
\relative {
a'4 b8 e c4 d
}
}
Notes al peus sobre text independent amb marques personalitzades
La sintaxi d’una nota al peu sobre text independent amb marques personalitzades és
\markup { … \footnote marca nota … }
Els elements són:
- marca
és un element de marcatge o cadena de caràcters que especifica la marca que s’usa per senyalar el punt de referència. Observeu que aquesta marca no s’insereix automàticament abans de la pròpia nota al peu.
- nota
és l’element de marcatge o cadena de caràcters que especifica el text de la nota que apareix en la part baixa de la pàgina, precedida per la marca especificada.
Es pot usar com marca un caràcter fàcil de teclejar, com * ó +, segons es mostra en Notes al peu dins d’expressions musicals. De forma alternativa, es poden usar àlies en ASCII (vegeu Àlies d’ASCII):
\book {
\paper { #(include-special-characters) }
\header { tagline = ##f }
\markup {
"Es mostra a sota"
\footnote "*" \italic "* Per mi"
"una melodia simple. És una composició"
\footnote \super † \concat {
\super † \italic " Ago 2012"
}
"recent."
}
\relative {
a'4 b8 e c4 d
}
}
També poden utilitzar-se codis de caràcters Unicode per especificar les marques (vegeu Unicode):
\book {
\header { tagline = ##f }
\markup {
"Es mostra a sota"
\footnote \super \char##x00a7 \concat {
\super \char##x00a7 \italic " Per mi"
}
"una melodia simple. És una composició"
\footnote \super \char##x00b6 \concat {
\super \char##x00b6 \italic " Ago 2012"
}
"recent."
}
\relative {
a'4 b8 e c4 d
}
}
Vegeu també
Manual d’aprenentatge: Objectes i interfícies
Referència de la notació: Àlies d’ASCII, Globus d’ajuda, Llista de caràcters especials, Indicacions de text, Scripts de text, Unicode.
Referència de funcionament intern: FootnoteEvent, FootnoteItem, FootnoteSpanner, Footnote_engraver.
Advertiments i problemes coneguts
Diverses notes al peu de la mateixa pàgina sols poden anar apilades unes sobre les altres; es poden imprimir a la mateixa línia.
Les notes al peu no es poden adjuntar a MultiMeasureRests
(silencis multicompàs), o barres de corxera automàtiques ni a la
lletra de les cançons.
Les notes al peu poden col·lisionar amb les pautes, objectes
\markup, altres marques de notes al peu i línies d’anotació.
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Notes al peu en text independent ] | [ Amunt : Títols i encapçalaments ] | [ Índex general > ] | ||
3.2.5 Referència a números de pàgina
Un lloc determinat d’una partitura pot senyalar-se usant l’ordre
\label (etiqueta), ja sigui al nivell superior o dins de la
música. Podem referir-nos a aquesta etiqueta més tard dins d’un
element de marcatge, per obtenir el número de la pàgina en la qual
se situa el punt senyalitzat, usant l’ordre de marcatge \page-ref.
\header { tagline = ##f }
\book {
\label #'firstScore
\score {
{
c'1
\pageBreak \mark A \label #'markA
c'1
}
}
\markup { La primera partitura comença a la pàgina \page-ref #'firstScore "0" "?" }
\markup { La marca A està a la pàgina \page-ref #'markA "0" "?" }
}
L’ordre de marcatge \page-ref pren tres arguments:
- l’etiqueta, un símbol de l’Scheme, per exemple
#'firstScore; - un element de marcatge que s’usarà com mesurador per estimar les dimensions del marcatge;
- un element de marcatge que s’utilitzarà en substitució del número de pàgina si l’etiqueta és desconeguda.
El motiu que calgui un mesurador es que al moment en el qual s’estan interpretant els marcatges, els salts de pàgina encara no s’han produït i per tant els números de pàgina no es coneixen encara. Per sortejar aquest inconvenient, la interpretació real del marcatge s’endarrereix fins un moment posterior: malgrat això, les dimensions del marcatge s’han de conèixer per anticipat, de manera que es fa servir aquest mesurador per decidir aquestes dimensions. Si el llibre té entre 1 i 99 pàgines, el mesurador pot ser "00", és a dir, un nombre de dos dígits.
Instruccions predefinides
3.2.6 Índex general
Es pot inserir un índex general o taula de continguts utilitzant
l’ordre \markuplist \table-of-contents. Els elements que
han d’aparèixer a la taula de continguts s’introdueixen amb
l’ordre \tocItem, que es pot usar al nivell més alt de la
jerarquia del codi, o dins d’una expressió musical.
\markuplist \table-of-contents
\pageBreak
\tocItem \markup "Primera partitura"
\score {
{
c'4 % ...
\tocItem \markup "Un punto concret dins de la primera partitura"
d'4 % ...
}
}
\tocItem \markup "Segona partitura"
\score {
{
e'4 % ...
}
}
Els elements de marcatge que s’usen per donar format a l’índex
general o taula de continguts estan definits dins del bloc
\paper. Hi ha dos elements de marcatge ‘predefinits’ disponibles:
-
tocTitleMarkupUtilitzat per donar format al títol de l’índex general.
tocTitleMarkup = \markup \huge \column { \fill-line { \null "Índex general" \null } \null } -
tocItemMarkupUsat per donar formats als elements de l’índex general.
tocItemMarkup = \markup \fill-line { \fromproperty #'toc:text \fromproperty #'toc:page }
Ambdues variables poden modificar-se.
Vet aquí un exemple que modifica el títol de l’índex general perquè aparegui en francès:
\paper {
tocTitleMarkup = \markup \huge \column {
\fill-line { \null "Table des matières" \null }
\hspace #1
}
A continuació apareix un exemple que modifica la mida del tipus de lletra dels elements de l´índex general:
tocItemMarkup = \markup \large \fill-line {
\fromproperty #'toc:text \fromproperty #'toc:page
}
Observeu la forma en la qual ens referim al text i al número de
pàgina de l’element d l’índex, dins de la definició
tocItemMarkup.
L’ordre \tocItemWithDotsMarkup es pot incloure dins de
tocItemMarkup per omplir la línia amb punts entre un
element de l’índex general i el seu número de pàgina
corresponent:.
\header { tagline = ##f }
\paper {
tocItemMarkup = \tocItemWithDotsMarkup
}
\book {
\markuplist \table-of-contents
\tocItem \markup { Allegro }
\tocItem \markup { Largo }
\markup \null
}
Les ordres predefinides amb els seus propis marcatges poden definir-se també perquè construeixin un índex general més complex. A l’exemple següent es defineix un estil nou per introduir els noms dels actes d’una òpera a l’índex general:
Una nova variable de marcatge (anomenada tocActMarkup) es
defineix al bloc \paper:
\paper {
tocActMarkup = \markup \large \column {
\hspace #1
\fill-line { \null \italic \fromproperty #'toc:text \null }
\hspace #1
}
}
A continuació es crea una funció musical personalitzada
(tocAct), que usa la nova definició de marcatge
tocActMarkup.
tocAct =
#(define-music-function (text) (markup?)
(add-toc-item! 'tocActMarkup text))
Un fitxer d’entrada del LilyPond que usi aquestes definicions personalitzades tindria l’aspecte següent:
Vet aquí un exemple de l’ordre \fill-with-pattern usada
dins del context d’un índex general:
\paper {
tocItemMarkup = \markup { \fill-line {
\override #'(line-width . 70)
\fill-with-pattern #1.5 #CENTER . \fromproperty #'toc:text \fromproperty #'toc:page
}
}
}
Vegeu també
Fitxers d’inici: ‘ly/toc-init.ly’.
Instruccions predefinides
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Índex general ] | [ Amunt : Entrada i sortida generals ] | [ Inclusió de fitxers del LilyPond > ] | ||
3.3 Treball sobre els fitxers d’entrada
| 3.3.1 Inclusió de fitxers del LilyPond | ||
| 3.3.2 Diferents edicions a partir d’una mateixa font | ||
| 3.3.3 Caràcters especials |
3.3.1 Inclusió de fitxers del LilyPond
Un projecte gran es pot dividir en diversos fitxers. Per referir-se a un altre fitxer, utilitzeu
\include "unaltrefitxer.ly"
La línia \include "unaltrefitxer.ly" equival a enganxar el
contingut de ‘unaltrefitxer.ly’ al fitxer actual al lloc en el
qual apareix l’\include. Por exemple, a un projecte gran
podríem voler fitxer diferents per a cada part instrumental i
crear un fitxer de “partitura completa” que reuneix els fitxers
individuals dels instruments. Normalment el fitxer inclòs
defineix un cert nombre de variables que a partir d’aleshores
queden disponibles per poder-les utilitzar al fitxer de la
partitura completa. Als fitxers inclosos es poden marcar les
seccions etiquetades per ajudar a fer-les utilitzables a diferents
llocs de la partitura. Vegeu
Diferents edicions a partir d’una mateixa font.
Els fitxers que estan al directori de treball actual es poden
referenciar simplement especificant el nom després de l’ordre
\include. Els fitxers a d’altres llocs es poden incloure
proporcionant una referència de ruta completa o una ruta relativa
(però utilitzeu la barra inclinada normal de l’UNIX, /, no la
barra invertida de DOS/Windows, \, com a separador de directori).
Per exemple, si ‘material.ly’ està ubicat un directori per
sobre del directori de treball actual, utilitzeu
\include "../material.ly"
o si els fitxers de les parts orquestrals incloses estan tots situats en un subdirectori anomenat ‘parts’ dins del directori actual, useu
\include "partes/VI.ly" \include "partes/VII.ly" … etc.
Els fitxers d’inclusió també poden contenir enunciats
\include al seu cop. De forma predeterminada, aquests
enunciats \include de segon nivell no s’interpreten fins
que s’incorporen al fitxer principal, per la qual cosa els noms de
fitxer que especifiquen han de ser relatius al directori que conté
el fitxer principal, no al directori que conté el fitxer inclòs.
Malgrat això, aquest comportament es pot modificar globalment
passant l’opció ‘-drelative-includes’ a la línia d’ordres
(o mitjançant l’addició de
#(ly:set-option 'relative-includes #t) al principi del
fitxer principal d’entrada).
Quan relative-includes està establert al valor
#t, la ruta de cada ordre \include es considera
relativa al fitxer que conté aquesta ordre. Aquest comportament
és el recomanat i es convertirà en el comportament predeterminat a
una versió futura del LilyPond.
Tant els fitxers relatius al directori principal com els fitxers
relatius a algun altre directori es poden incloure
(\include) mitjançant l’establiment de
relative-includes al valor #t o a #f als
llocs apropiats dins dels fitxers. Per exemple, si s’ha creat una
biblioteca genèrica, libA, que al seu cop utilitza sub-fitxers que
s’inclouen (\include) per mitjà del fitxer d’entrada
d’aquesta biblioteca, aquestes instruccions \include hauran
d’anar precedides per #(ly:set-option
#relative-includes #t) de manera que s’interpretin correctament
en construir el fitxer d’entrada .ly principal, d’aquesta
forma:
libA/ libA.ly A1.ly A2.ly …
aleshores el fitxer d’entrada, libA.ly, conté
#(ly:set-option 'relative-includes #t) \include "A1.ly" \include "A2.ly" … % retorn a l'ajustament predeterminat #(ly:set-option 'relative-includes #f)
Qualsevol fitxer ‘.ly’ pot aleshores incloure la biblioteca completa, simplement amb
\include "~/libA/libA.ly"
Es poden utilitzar estructures de fitxer més complexes instant els canvis als llocs adequats.
També es poden incloure fitxers d’un directori que està a una ruta de cerca especificada com opció en invocar al LilyPond des de la línia d’ordres. Els fitxers inclosos s’especifiquen usant sols el seu nom de fitxer. Per exemple, per compilar mitjançant aquest mètode un fitxer ‘principal.ly’ que inclou fitxers situats a un subdirectori anomenat ‘parts’, canvieu el directori que conté ‘principal.ly’ e introduïu
lilypond --include=parts principal.ly
i a ‘principal.ly’ escriviu
\include "VI.ly" \include "VII.ly" … etc.
Els fitxers que s’inclouen a moltes partitures es poden posar al
directori del LilyPond ‘../ly’ (la localització d’aquest
directori depèn de la instal·lació: vegeu
Altres fonts d'informació). Aquests fitxers es poden
incloure senzillament pel seu nom a una ordre \include.
D’aquesta forma s’inclouen els fitxers dependents de la llengua
com ‘catala.ly’.
El LilyPond inclou de forma predeterminada certes fitxers quan
s’inicia el programa. Aquestes inclusions no són visibles per a
l’usuari, però els fitxers es poden identificar executant
lilypond --verbose des de la línia d’ordres. Això
presentarà una llista de rutes i fitxers que fa servir el
LilyPond, junt amb moltes altres indicacions. De forma
alternativa, poden veure’s explicacions sobre els fitxers més
importants d’aquest conjunt a
Altres fonts d'informació. Aquests fitxers es poden
editar, però els canvis realitzats sobre ells es perdran en
instal·la una nova versió del LilyPond.
Es poden veure exemples senzills sobre l’ús de \include a
en
Partitures i particel·les.
Vegeu també
Manual d’aprenentatge Altres fonts d'informació, Partitures i particel·les.
Advertiments i problemes coneguts
Si un fitxer inclòs rep un nom igual al d’un dels fitxers d’instal·lació del LilyPond, el fitxer que té prioritat és el dels fitxers d’instal·lació del LilyPond.
3.3.2 Diferents edicions a partir d’una mateixa font
Es posen usar diversos mètodes per generar la producció de diferents versions d’una partitura a partir de la mateixa font musical. Les variables són potser el més útil per combinar seccions extenses de música i/o anotacions. Les etiquetes són més útils per seleccionar una secció d’entre diverses seccions de música alternatives, més curtes, i es poden usar també per dividir peces de música en diferents trossos.
Qualsevol que sigui el mètode utilitzat, la separació de la notació de l’estructura de la partitura farà que sigui més fàcil canviar l’estructura deixant intacta la notació.
| Ús de les variables | ||
| Ús d’etiquetes | ||
| Ús d’ajustaments globals |
Ús de les variables
Si les seccions de la música es defineixen dins de variables, es poden reutilitzar en diferents parts de la partitura, vegeu Organitzar les peces mitjançant variables. Per exemple, una partitura vocal a cappella freqüentment inclou una reducció de piano de les parts per assajar que és idèntica a la música vocal, per la qual cosa aquesta partitura sols s’ha d’escriure una vegada. Es pot combinar sobre un sol pentagrama la música de dues variables, vegeu Combinació automàtica de les parts. Vegeu aquí un exemple:
sopranoMusic = \relative { a'4 b c b8( a) }
altoMusic = \relative { e'4 e e f }
tenorMusic = \relative { c'4 b e d8( c) }
bassMusic = \relative { a4 gis a d, }
allLyrics = \lyricmode { King of glo -- ry }
<<
\new Staff = "Soprano" \sopranoMusic
\new Lyrics \allLyrics
\new Staff = "Alto" \altoMusic
\new Lyrics \allLyrics
\new Staff = "Tenor" {
\clef "treble_8"
\tenorMusic
}
\new Lyrics \allLyrics
\new Staff = "Bass" {
\clef "bass"
\bassMusic
}
\new Lyrics \allLyrics
\new PianoStaff <<
\new Staff = "RH" {
\partcombine \sopranoMusic \altoMusic
}
\new Staff = "LH" {
\clef "bass"
\partcombine \tenorMusic \bassMusic
}
>>
>>
Es poden produir partitures diferents que presenten sols les parts vocals o sola la part de piano, canviant sols els enunciats estructurals, sense modificar la notació musical.
Per partitures extenses, les definicions de variable es poden posar a fitxers separats que s’inclouen més tard, vegeu Inclusió de fitxers del LilyPond.
Ús d’etiquetes
L’ordre \tag #'parteA marca una expressió musical amb
el nom parteA. Les expressions etiquetades d’aquesta manera
es poden seleccionar o filtrar més tard pel seu nom, usant o bé
\keepWithTag #'nom o bé
\removeWithTag #'nom. El resultat de l’aplicació
d’aquests filtres a la música etiquetada és com segueix:
| Filtre | Resultat |
|---|---|
Música etiquetada precedida de \keepWithTag #'nom o
de \keepWithTag #'(nom1 nom2…) | S’inclou la música no etiquetada i la música etiquetada amb el nom o noms d’etiquetes donats; s’exclou la música etiquetada amb qualsevol altre nom d’etiqueta. |
Música etiquetada precedida de
\removeWithTag #'nom o
\removeWithTag #'(nom1 nom2…) | S’inclou la música no etiquetada i la música que no està etiquetada amb cap dels noms d’etiqueta donats; s’exclou la musica etiquetada amb els noms d’etiqueta donats. |
Música etiquetada no precedida de \keepWithTag ni de
\removeWithTag | S’inclou la música etiquetada i no etiquetada. |
Els arguments de les ordres \tag,
\keepWithTag i \removeWithTag han de ser un símbol o
llista de símbols (com #'score o #'(violiI
violiII), seguida d’una expressió musical. Si i sols si
els símbols són identificadors del LilyPond vàlids
(caràcters alfabètics sols, sense números, guions baixos ni guions
normals) que no poden confondre’s amb notes, la porció
#' es pot ometre i, com abreviatura, una llista de símbols
pot usar el separador de punt, és a dir: \tag
#'(violiI violiII) es pot escriure com \tag
violiI.violiII. Val el mateix per a \keepWithTag i
\removeWithTag.
A l’exemple següent veiem dues versions d’una peça musical, una que mostra trins amb la notació usual i una altra amb els trins expandits explícitament:
music = \relative {
g'8. c32 d
\tag #'trills { d8.\trill }
\tag #'expand { \repeat unfold 3 { e32 d } }
c32 d
}
\score {
\keepWithTag #'trills \music
}
\score {
\keepWithTag #'expand \music
}
De forma alternativa, a vegades és més fàcil excloure seccions de música:
music = \relative {
g'8. c32 d
\tag #'trills { d8.\trill }
\tag #'expand {\repeat unfold 3 { e32 d } }
c32 d
}
\score {
\removeWithTag #'expand
\music
}
\score {
\removeWithTag #'trills
\music
}
El filtrat d’etiquetes es pot aplicar a articulacions, textos, etc., anteposant
-\tag #'la-meva-etiqueta
a una articulació. Per exemple, això defineix una nota amb una indicació opcional de digitació i una nota amb una anotació condicional:
c1-\tag #'finger ^4 c1-\tag #'warn ^"Alerta!"
Es poden posar diverses etiquetes sobre expressions amb diverses
entrades de \tag, o combinant diverses etiquetes en una
llista de símbols:
music = \relative c'' {
\tag #'a \tag #'both { a4 a a a }
\tag #'(b both) { b4 b b b }
}
<<
\keepWithTag #'a \music
\keepWithTag #'b \music
\keepWithTag #'both \music
>>
Es poden aplicar diversos filtres \removeWithTag a una sola
expressió musical per treure diverses seccions etiquetades amb
noms diferents. De forma alternativa, podem usar una sola ordre
\removeWithTag amb una llista d’etiquetes.
music = \relative c'' {
\tag #'A { a4 a a a }
\tag #'B { b4 b b b }
\tag #'C { c4 c c c }
\tag #'D { d4 d d d }
}
\new Voice {
\removeWithTag #'B
\removeWithTag #'C
\music
\removeWithTag #'(B C)
\music
}
L’ús de dos o més filtres \keepWithTag sobre una sola
expressió musical produeix l’eliminació de totes les
seccions etiquetades. El primer filtre treu totes excepte la que
es nombra, i qualsevol filtre posterior elimina el reste. Usant
una sola ordre \keepWithTag amb una llista de diverses
etiquetes se suprimiran sols les seccions etiquetades que no
apareixen especificades a la llista.
music = \relative c'' {
\tag #'violiI { a4 a a a }
\tag #'violiII { b4 b b b }
\tag #'viola { c4 c c c }
\tag #'violoncel { d4 d d d }
}
\new Staff {
\keepWithTag #'(violinI violinII)
\music
}
imprimirà \tags violiI i violiII però no
viola o violoncel.
Tot i que \keepWithTag és útil per a la gestió de un
sol conjunt d’alternatives, l’eliminació de música etiquetada amb
altres etiquetes no relacionades és problemàtica si
s’utilitza per més d’un propòsit. En aquest cas poden declarar-se
‘grups d’etiquetes’:
\tagGroup #'(violiI violiII viola violoncel)
Ara totes les etiquetes pertanyen a un sol ‘grup d’etiquetes’. Observeu que les etiquetes individuals no poden ser membres de més d’un grup d’etiquetes.
\keepWithTag #'violiI …
mostrarà sols la música etiquetada a partir del grup d’etiquetes
de violiI i qualsevol fragment musical etiquetada amb una
de les altres etiquetes resultarà suprimit.
music = \relative {
\tagGroup #'(violiI violiII viola violoncel)
\tag #'violiI { c''4^"violiI" c c c }
\tag #'violiII { a2 a }
\tag #'viola { e8 e e2. }
\tag #'violoncel { d'2 d4 d }
R1^"untagged"
}
\new Voice {
\keepWithTag #'violiI
\music
}
En usar l’ordre \keepWithTag sols són visibles les
etiquetes dels grups d’aquelles etiquetes que s’inclouen a l’ordre.
A vegades podem desitjar dividir la música en un determinat lloc
dins d’una expressió musical existent. Podem usar
\pushToTag i \appendToTag per afegir material davant
o al final dels elements d’una construcció musical
existent. No tota construcció musical té la part
elements, però les músiques seqüencials i simultànies són
dues apostes segures:
music = { \tag #'here { \tag #'here <<c''>> } }
{
\pushToTag #'here c'
\pushToTag #'here e'
\pushToTag #'here g' \music
\appendToTag #'here c'
\appendToTag #'here e'
\appendToTag #'here g' \music
}
Les dues ordres admeten una etiqueta, el material que divideix en cada aparició de l’etiqueta, i l’expressió etiquetada.
Vegeu també
Manual d’aprenentatge: Organitzar les peces mitjançant variables.
Referència de la notació: Combinació automàtica de les parts, Inclusió de fitxers del LilyPond.
Advertiments i problemes coneguts
En cridar a \relative sobre una expressió musical obtinguda
mitjançant el filtratge de música amb les ordres
\keepWithTag o \removeWithTag, podria passar que
canviessin les altures de les notes que efectivament romanen a
l’expressió filtrada. L’aplicació de \relative en primer
lloc, abans de \keepWithTag o de \removeWithTag,
evita aquest perill perquè en aquest cas
\relative actua sobre totes les notes tal i com s’introdueixen.
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Ús d'etiquetes ] | [ Amunt : Diferents edicions a partir d'una mateixa font ] | [ Caràcters especials > ] | ||
Ús d’ajustaments globals
Es poden incloure ajustos globals a partir d’un fitxer diferent:
lilypond -dinclude-settings=ELS_MEUS_AJUSTAMENTS.ly LA_MEVA_PARTITURA.ly
A fitxers diferents es poden emmagatzemar grups d’ajustaments com la mida de la pàgina o les fonts tipogràfiques. Això permet fer diferents edicions de la mateixa partitura així com aplicar ajustaments estàndard a moltes partitures, simplement per mitjà de l’especificació del fitxer d’ajustaments adequat.
Aquesta tècnica també funciona bé amb l’ús de fulls d’estil, com s’estudia a Fulls d'estil.
Vegeu també
Manual d’aprenentatge: Organitzar les peces mitjançant variables. Fulls d'estil.
Referència de la notació: Inclusió de fitxers del LilyPond.
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Ús d'ajustaments globals ] | [ Amunt : Treball sobre els fitxers d'entrada ] | [ Codificació del text > ] | ||
3.3.3 Caràcters especials
| Codificació del text | ||
| Unicode | ||
| Àlies d’ASCII |
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Caràcters especials ] | [ Amunt : Caràcters especials ] | [ Unicode > ] | ||
Codificació del text
El LilyPond usa el conjunt de caràcters definit pel consorci Unicode i la norma ISO/IEC 10646. Defineix un nom únic i un codi per als conjunts de caràcters que s’utilitzen en pràcticament tots els idiomes moderns i també en molts d’altres. L’Unicode es pot implementar utilitzant diverses esquemes de codificació diferents. El LilyPond usa la codificació UTF-8 (UTF són les sigles d’Unicode Transformation Format, o format de transformació de l’Unicode) que representa tots els caràcters comuns de la codificació Latin en un sol byte, i representa altres caràcters usant un format de longitud variable de fina a quatre bytes.
L’aspecte visual real dels caràcter ve determinat per els glifs que es defineixen als tipus de lletres concretes que es tinguin disponibles: un tipus de lletra defineix l’assignació d’un subconjunt dels codis d’Unicode a glifs. El LilyPond fa servir la biblioteca Pango per representar i disposar tipogràficament els textos multilingües.
El Lilypond no realitza cap conversió a la codificació de l’entrada. Això significa que qualsevol text, ja sigui el títol, la lletra de la cançó o una ordre musical que contingui caràcters diferents als del conjunt ASCII, s’han de codificar en UTF-8. La forma més fàcil d’escriure aquest text és utilitzar un editor preparat per a Unicode i desar el fitxer amb la codificació UTF-8. Gairebé tots els editors moderns populars donen suport al UTF-8, per exemple ho fan el vim, l’Emacs, el jEdit i el Gedit. Tots els sistemes MS Windows posteriors a NT fan servir l’Unicode com a codificació de caràcters nativa, de manera que fins i tot l’accessori Bloc de Notes (Notepad) pot editar-se i desar un fitxer en el format UTF-8. Una alternativa més funcional per a Windows és el BabelPad.
Si un fitxer d’entrada que conté un caràcter que no és ASCII no es desa en el format UTF-8, es genera un missatge d’error.
FT_Get_Glyph_Name () error: argument invàlid
Vet aquí un exemple que mostra text ciríl·lic, hebreu i portuguès:
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Codificació del text ] | [ Amunt : Caràcters especials ] | [ Àlies d'ASCII > ] | ||
Unicode
Per introduir un caràcter aïllat per al qual es coneix el punt de
codi Unicode però no està disponible a l’editor que s’està fent
servir, useu \char ##xhhhh o bé \char
#dddd dins d’un bloc \markup, on hhhh és el codi
hexadecimal del caràcter en qüestió i dddd és el seu valor
decimal corresponent. Poden ometre’s els zeros inicials, però és
costum indicar els quatre caràcters a la representació hexadecimal
(observeu que no s’ha d’utilitzar la codificació UTF-8 del
punt de codi Unicode després de \char, atès que la
codificació UTF-8 conté bits addicionals que indiquen el nombre
d’octets). Hi ha taules de codis Unicode i un índex de noms de
caràcters que dóna el punt de codi en hexadecimal per a qualsevol
caràcter al portal del Consorci Unicode, http://www.unicode.org/.
Per exemple, tant \char ##x03BE com \char #958
insereixen el caràcter Unicode U+03BE, que té el nom Unicode
“Lletra grega Xi petita”.
Es pot escriure d’aquesta forma qualsevol punt de codi Unicode, i si tots els caràcters especials s’escriuen en aquest format no cal desar el fitxer d’entrada en format UTF-8. Per suposat, ha d’estar instal·lat i estar disponible per al LilyPond un tipus de lletra que contingui codificats tots aquests caràcters.
L’exemple següent mostra valors hexadecimals Unicode que s’usen a quatre llocs: a una crida d’assaig, com text d’articulació, a la lletra i com text independent sota la partitura:
\score {
\relative {
c''1 \mark \markup { \char ##x03EE }
c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } }
}
\addlyrics { O \markup { \concat { Ph \char ##x0153 be! } } }
}
\markup { "Copyright 2008--2015" \char ##x00A9 }
Per escriure el símbol de copyrights a la nota de crèdits, utilitzeu:
\header {
copyright = \markup { \char ##x00A9 "2008" }
}
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Unicode ] | [ Amunt : Caràcters especials ] | [ Control de la sortida > ] | ||
Àlies d’ASCII
Es pot incloure una llista d’àlies d’ASCII per a caràcters especials:
\paper {
#(include-special-characters)
}
\markup "&flqq; – &OE;uvre incomplète… &frqq;"
\score {
\new Staff { \repeat unfold 9 a'4 }
\addlyrics {
This is al -- so wor -- kin'~in ly -- rics: –_&OE;…
}
}
\markup \column {
"The replacement can be disabled:"
"– &OE; …"
\override #'(replacement-alist . ()) "– &OE; …"
}
També podem fer els nostres propis àlies, ja sigui de forma global,
\paper {
#(add-text-replacements!
'(("100" . "hundred")
("dpi" . "dots per inch")))
}
\markup "A 100 dpi."
o local:
\markup \replace #'(("100" . "hundred")
("dpi" . "dots per inch")) "A 100 dpi."
Vegeu també
Referència de la notació: Llista de caràcters especials.
Fitxers instal·lats: ‘ly/text-replacements.ly’.
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Àlies d'ASCII ] | [ Amunt : Entrada i sortida generals ] | [ Extracció de fragments de música > ] | ||
3.4 Control de la sortida
| 3.4.1 Extracció de fragments de música | ||
| 3.4.2 Salts sobre la música corregida | ||
| 3.4.3 Formats de sortida alternatius | ||
| 3.4.4 Substitució del tipus de lletra de la notació |
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Control de la sortida ] | [ Amunt : Control de la sortida ] | [ Salts sobre la música corregida > ] | ||
3.4.1 Extracció de fragments de música
És possible produir a la sortida un o més fragments d’una
partitura mitjançant la definició de la situació explícita de la
musica que es vol extraure dins del bloc \layout del fitxer
d’entrada, utilitzant la funció clip-regions, i a
continuació executant el LilyPond amb l’opció
‘-dclip-systems’.
\layout {
clip-regions
= #(list
(cons
(make-rhythmic-location 5 1 2)
(make-rhythmic-location 7 3 4)))
}
Aquest exemple extrau un sol fragment del fitxer d’entrada
començant després de la duració d’una blanca al cinquè
compàs (5 1 2) i acabant després de la tercera negra
del compàs sèptim (7 3 4).
Es poden extraure fragments addicionals afegint més parells
d’entrades de make-rhythmic-location a la llista
clip-regions dins del bloc \layout.
De forma predeterminada, cada fragment de musica s’obtindrà a la
sortida com un fitxer EPS diferent, però també es poden
crear altres formats com PDF o PNG si cal. La
música extreta s’obté a la sortida com si hagués estat literalment
‘tallada’ de la partitura original impresa, de forma que si un
fragment s’estén sobre una o més línies, es genera un fitxer de
sortida diferent per a cada línia generada.
Vegeu també
Referencia de la notació: El bloc layout.
Manual d’utilització: Utilització des de la línia d’ordres.
3.4.2 Salts sobre la música corregida
En escriure o copiar música, normalment sols és interessant veure i corregir la música propera al final (on estem afegint les notes). Per accelerar aquest procés de correcció, és possible saltar la composició tipogràfica de tots excepte uns pocs dels últims compassos. Això s’aconsegueix posant
showLastLength = R1*5
\score { … }
al nostre fitxer fonts. Això farà que es gravin sols els últims
cinc compassos (suposant un compàs de 4/4) de cada una de les
partitures \score del fitxer d’entrada. Per peces
llargues, el gravat d’únicament una part petita és sovint un ordre
de magnitud més ràpid que el de l’obra completa. Si estem
treballant sobre el principi d’una partitura que ja hem gravat
(per exemple, per afegir una part instrumental nova), també pot
ser útil la propietat showFirstLength.
Aquest mecanisme de passar per alt parts d’una partitura es pot
controlar amb un gra més fi mitjançant la propietat
Score.skipTypesetting. Quan el seu valor està establert,
no es fa cap gravat en absolut.
Aquesta propietat s’usa també per controlar la sortida cap al fitxer MIDI. Observeu que passa per alt totes els esdeveniments, inclosos el tempo i els canvis d’instrument. Quedeu amb aquesta advertència.
\relative c' {
c1
\set Score.skipTypesetting = ##t
\tempo 4 = 80
c4 c c c
\set Score.skipTypesetting = ##f
d4 d d d
}
A la música polifònica, Score.skipTypesetting afecta a
totes les veus i pentagrames, estalviant encara més temps.
3.4.3 Formats de sortida alternatius
Els formats de sortida predeterminats per a la partitura impresa són el format de document portàtil (PDF) i PostScript (PS). Els formats de sortida Grafics de xarxa portàtil (PNG), Grafics de vector escalables (SVG) i Postscript encapsulat (EPS) també hi són disponibles a través d’opcions de la línia d’ordres, vegeu Opcions bàsiques de la línia d’ordre per al LilyPond.
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Formats de sortida alternatius ] | [ Amunt : Control de la sortida ] | [ Creació de sortida MIDI > ] | ||
3.4.4 Substitució del tipus de lletra de la notació
Gonville és un conjunt de glifs alternatius al tipus de lletra Feta (que és part del tipus de lletra Emmentaler que s’usa al LilyPond). Es pot descarregar de:
http://www.chiark.greenend.org.uk/~sgtatham/gonville/
Aquí presentem alguns compassos de mostra gravats amb el tipus de lletra Gonville:
Aquí hi ha uns compassos de mostra gravats amb els glifs Feta del LilyPond:
Ordres d’instal·lació
Descarregueu i extraieu els fitxers de tipus de lletra. Copieu els fitxers ‘gonville-11.otf’, ‘gonville-13.otf’, ‘gonville-14.otf’, ‘gonville-16.otf’, ‘gonville-18.otf’, ‘gonville-20.otf’, ‘gonville-23.otf’, ‘gonville-26.otf’ i ‘gonville-brace.otf’ a la carpeta ‘…/share/lilypond/current/fonts/otf’ o ‘…/share/lilypond/X.Y.Z/fonts/otf’. Si teniu els fitxers ‘gonville-*.svg’ i ‘gonville-*.woff’, copieu-los a ‘…/share/lilypond/current/fonts/svg’ o a ‘…/share/lilypond/X.Y.Z/fonts/svg’. Per a més informació consulteu Altres fonts d'informació.
Nota: els fitxers ‘gonville-*.otf’ són per als rerefons
ps i eps (per a les sortides en format PDF i
PostScript). Els fitxers ‘gonville-*.svg’ són per al
rerefons svg sense l’opció svg-woff. Els
fitxers ‘gonville-*.woff’ són per al rerefons
svg amb l’opció svg-woff. Per a més informació,
consulteu
Opcions avançades de línia d’ordres per al LilyPond.
La sintaxi següent canvia el tipus de lletra de la notació (general i claus) al tipus Gonville.
\paper {
#(define fonts
(set-global-fonts
#:music "gonville"
#:brace "gonville"
))
}
Nota: Cada crida a set-global-fonts reinicia completament
tant el tipus de lletra principal de notació com la de text. Si
es deixa sense especificar una qualsevol de les categories,
aleshores s’utilitza el tipus de lletra predeterminat per a
aquesta categoria. Cada crida a set-global-fonts canvia
les fonts per a cada \book que la segueix, tant si s’ha
creat explícitament com implícita. Això significa que cada
\book pot tenir el seu propi conjunt de tipus de lletra
principals cridant a set-global-fonts prèviament. Per a
més informació, vegeu Tipus de lletra del document complet.
Vegeu també
Manual d’aprenentatge: Altres fonts d'informació.
Referència de la notació: El tipus de lletra Emmentaler, Tipus de lletra del document complet.
Advertiments i problemes coneguts
Gonville no es pot usar per gravar notació de ‘Música Antiga’ i és probable que qualsevol nou glif en versions posteriors del LilyPond no existeixin a la família de tipus de lletra Gonville. Dirigiu-vos a la pàgina web de l’autor per obtenir més informació sobre aquest i d’altres assumptes, entre ells el règim de llicències de Gonville.
Altres tipus de lletra de notació
Si teniu altres tipus de lletra de notació com ara ‘fontname-*.otf’, ‘fontname-*.svg’ i ‘fontname-*.woff’, podeu usar-les de la mateixa manera que Gonville.
Això és, copieu els fitxers ‘fontname-*.otf’ a la carpeta ‘…/share/lilypond/current/fonts/otf’ o a ‘…/share/lilypond/X.Y.Z/fonts/otf’. Si teniu els fitxers ‘fontname-*.svg’ i ‘fontname-*.woff’, copieu-los a ‘…/share/lilypond/current/fonts/svg’ o a ‘…/share/lilypond/X.Y.Z/fonts/svg’.
Nota: pel moment, el LilyPond espera que els noms de fitxer tinguin els sufixos següents, tots els quals han d’estar presents a les carpetes d’instal·lació mencionats a dalt perquè funcionin adequadament: ‘-11’, ‘-13’, ‘-14’, ‘-16’, ‘-18’, ‘-20’, ‘-23’, ‘-26’, ‘-brace’. Per exemple, ‘emmentaler-11.otf’, ‘emmentaler-20.svg’ i ‘emmentaler-brace.woff’, etc.
La sintaxi següent canvia el tipus de lletra de la notació (general i de claus) a la font tipusdelletra.
\paper {
#(define fonts
(set-global-fonts
#:music "tipoletra" ; nombre del archivo de fuente sin el sufijo ni la extensión
#:brace "tipoletra" ; nombre del archivo de fuente sin el sufijo ni la extensión
))
}
Nota: per a les categories music i brace,
especifiqueu el nom del fitxer de tipus de lletra sense el sufix
ni l’extensió.
3.5 Creació de sortida MIDI
El LilyPond pot produir fitxers que segueixen l’estàndard MIDI (Musical Instrument Digital Interface; interfície digital per a instruments musicals) i permetre així comprovar la música per l’oïda (amb l’ajuda d’alguna aplicació o dispositiu que entengui el MIDI). L’escolta de la sortida MIDI també pot ser d’ajuda per a la localització d’errors tals com notes que s’han introduït incorrectament, alteracions omeses i d’altres casos per l’estil.
Els fitxers MIDI no contenen so (com els fitxers AAC, MP3 o Vorbis) però requereixen de programari addicional per produir el so a partir d’ells.
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Creació de sortida MIDI ] | [ Amunt : Creació de sortida MIDI ] | [ Notació sense suport del MIDI > ] | ||
3.5.1 Notació amb suport del MIDI
Es pot usar la següent notació musical amb les funcionalitats predeterminades del LilyPond per produir sortida MIDI:
- Marques de respiració
- Acords introduïts com noms d’acord
- Crescendos i decrescendos sobre més d’una nota. El volum s’altera de forma lineal entre els dos extrems
- Indicadors dinàmics des de
pppppfins afffff, incloent-himp,mfysf - Microtons, però no acords microtonals. Cal també un reproductor de MIDI capaç d’executar esdeveniments de roda de to.
- Lletra de les cançons
- Altura de les notes
- Ritme introduït com duracions de les notes, fins i tot grups de valoració especial com ara els tresets.
- Articulacions ‘senzilles’; picato, staccato, accent, marcato i portato
- Canvis de temps introduïts amb la funció
\tempo - Lligadures d’unió
- Trèmolos que no s’hagin introduït com un valor del tipus ‘
:[número]’
També es poden controlar el panorama, el balanç, l’expressió i els efectes de reverberació i chorus mitjançant l’establiment de propietats de context, vegeu Propietats de context per a efectes MIDI.
Si es combina amb l’script ‘articulate’, és possible produir la sortida pel MIDI dels següents elements addicionals de notació musical:
- Appoggiatures. Se’ls dóna la meitat de la duració de la nota següent (sense tenir en compte els puntets). Per exemple:
\appoggiatura c8 d2.
El Do agafa la duració d’una negra.
- Notes i grups d’adorn (mordents d’una nota, trins, grupets circulars, etc.)
- Rallentando, accelerando, ritardando i a temps
- Lligadures d’expressió i fraseig
- Tenuto
Vegeu Enriquiment de la sortida MIDI.
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Notació amb suport del MIDI ] | [ Amunt : Creació de sortida MIDI ] | [ El bloc MIDI > ] | ||
3.5.2 Notació sense suport del MIDI
Els següents elements de notació musical no es poder fer sortir pel MIDI:
- Articulacions diferents al picato, staccato, accent, i portato
- Crescendos i decrescendos sobre una sola nota
- Calderó
- Baix xifrat
- Glissandos
- Caigudes i elevacions
- Acords microtonals
- Duracions introduïdes com anotacions, per exemple el swing
- Canvis de temps sense
\tempo(per exemple introduïdes com anotacions) - Trèmols que s’introdueixen amb la notació de la forma ‘
:[número]’
3.5.3 El bloc MIDI
Per crear un fitxer de sortida MIDI a partir d’un fitxer d’entrada
del LilyPond, introduïu un bloc \midi, que pot estar buit,
dins del bloc \score:
\score {
… música …
\layout { }
\midi { }
}
Nota: Un bloc \score que, a més de la música, conté
sols un bloc \midi (o sigui, sense el bloc
\layout), sols produeix fitxers de sortida MIDI; no
s’imprimeix cap notació musical.
L’extensió predeterminada per als fitxers de sortida
(.midi) es pot canviar usant l’opció
-dmidi-extension amb l’ordre lilypond:
lilypond -dmidi-extension=mid Fitxer.ly
Com alternativa, pot afegir-se la següent expressió de l’Scheme
abans del començament d’un dels blocs \book,
\bookpart o \score. Vegeu Estructura del fitxer.
#(ly:set-option 'midi-extension "mid")
Vegeu també
Referència de la notació: Estructura del fitxer, Creació de metadades al fitxers de sortida.
Fitxers instal·lats: ‘scm/midi.scm’.
Advertiments i problemes coneguts
Hi ha disponibles 15 canals MIDI i un canal addicional (el número 10) per a la percussió. Els pentagrames s’assignen als canals per ordre, de forma que una partitura que contingui més de 15 pentagrames dóna com a resultat que els pentagrames addicionals comparteixen (però no sobreescriuen) el mateix canal MIDI. Això pot ser problemàtic si els pentagrames que comparteixen canal tenen establertes propietats MIDI, basades en canal, en mutu conflicte (amb diferents instruments MIDI).
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < El bloc MIDI ] | [ Amunt : Creació de sortida MIDI ] | [ Indicacions de matís dinàmic al MIDI > ] | ||
3.5.4 Control de les dinàmiques del MIDI
Es possible controlar el volum MIDI general, el volum relatiu de les indicacions de matís dinàmic i el volum relatiu dels diferents instruments.
Les indicacions de matís dinàmic es tradueixen automàticament a nivells de volum dins del rang de volums MIDI disponible mentre que els crescendos i decrescendos varien el volum linealment entre els seus dos extrems. És possible controlar el volum relatiu de les indicacions de matís dinàmic, i el volum general dels diferents instruments.
| Indicacions de matís dinàmic al MIDI | ||
| Establiment del volum MIDI | ||
| Establiment de les propietats del bloc MIDI |
Indicacions de matís dinàmic al MIDI
Sols les marques de dinàmica des de ppppp fins
fffff, inclosos mp, mf i sf tenen
valors assignats. Aquest valor s’aplica a continuació al valor
del rang de volum a la sortida MIDI per a aquesta indicació de
matís dinàmic en particular. Les fraccions predeterminades varien
des de 0.25 per al ppppp fins a 0.95 per al
fffff. El conjunt complet de les indicacions de matís
dinàmic poden veure’s al fitxer ‘scm/midi.scm’.
Fragments de codi seleccionats
Creating custom dynamics in MIDI output
The following example shows how to create a dynamic marking, not included in the default list, and assign it a specific value so that it can be used to affect MIDI output.
The dynamic mark \rfz is assigned a value of 0.9.
#(define (myDynamics dynamic)
(if (equal? dynamic "rfz")
0.9
(default-dynamic-absolute-volume dynamic)))
\score {
\new Staff {
\set Staff.midiInstrument = #"cello"
\set Score.dynamicAbsoluteVolumeFunction = #myDynamics
\new Voice {
\relative {
a'4\pp b c-\rfz
}
}
}
\layout {}
\midi {}
}
Fitxers instal·lats: ‘ly/script-init.ly’ ‘scm/midi.scm’.
Fragments de codi: MIDI.
Referència de funcionament intern: Dynamic_performer.
Establiment del volum MIDI
Els volums generals mínim i màxim de les indicacions de matís
dinàmic MIDI es controlen establint les propietats
midiMinimumVolume i midiMaximumVolume en el nivell
del bloc Score. Aquestes propietats tenen efecte sols al
començament de una veu i sobre les indicacions dinàmiques. La
fracció que correspon a cada indicació dinàmica es modifica amb
aquesta fórmula:
midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fracció
A l’exemple següent, el rang dinàmic del volum MIDI general es
limita a l’interval entre 0.2 i 0.5.
\score {
<<
\new Staff {
\set Staff.midiInstrument = #"flute"
… music …
}
\new Staff {
\set Staff.midiInstrument = #"clarinet"
… music …
}
>>
\midi {
\context {
\Score
midiMinimumVolume = #0.2
midiMaximumVolume = #0.5
}
}
}
Es pot obtenir una equalització senzilla d’instruments MIDI
establint les propietats midiMinimumVolume i
midiMaximumVolume dins del context Staff.
\score {
\new Staff {
\set Staff.midiInstrument = #"flute"
\set Staff.midiMinimumVolume = #0.7
\set Staff.midiMaximumVolume = #0.9
… music …
}
\midi { }
}
Per a partitures amb més d’un pentagrama i més d’un instrument MIDI, es poden fixar individualment els volums relatius de cada instrument:
\score {
<<
\new Staff {
\set Staff.midiInstrument = #"flute"
\set Staff.midiMinimumVolume = #0.7
\set Staff.midiMaximumVolume = #0.9
… music …
}
\new Staff {
\set Staff.midiInstrument = #"clarinet"
\set Staff.midiMinimumVolume = #0.3
\set Staff.midiMaximumVolume = #0.6
… music …
}
>>
\midi { }
}
En aquest exemple el volum del clarinet es redueix de forma relativa al volum de la flauta.
Si no s’estableixen aquestes propietats de volum, el LilyPond encara aplica un ‘petit grau’ d’equalització a certs instruments. Vegeu ‘scm/midi.scm’.
Fitxers instal·lats: ‘scm/midi.scm’.
Vegeu també
Referència de la notació: Disposició de la partitura.
Referència de funcionament intern: Dynamic_performer.
Fragments de codi seleccionats
Replacing default MIDI instrument equalization
The default MIDI instrument equalizer can be replaced by
setting the instrumentEqualizer property in the Score
context to a user-defined Scheme procedure that uses a MIDI instrument
name as its argument along with a pair of fractions indicating the
minimum and maximum volumes respectively to be applied to that
specific instrument.
The following example sets the minimum and maximum volumes for flute and clarinet respectively.
#(define my-instrument-equalizer-alist '())
#(set! my-instrument-equalizer-alist
(append
'(
("flute" . (0.7 . 0.9))
("clarinet" . (0.3 . 0.6)))
my-instrument-equalizer-alist))
#(define (my-instrument-equalizer s)
(let ((entry (assoc s my-instrument-equalizer-alist)))
(if entry
(cdr entry))))
\score {
<<
\new Staff {
\key g \major
\time 2/2
\set Score.instrumentEqualizer = #my-instrument-equalizer
\set Staff.midiInstrument = #"flute"
\new Voice \relative {
r2 g''\mp g fis~
4 g8 fis e2~
4 d8 cis d2
}
}
\new Staff {
\key g \major
\set Staff.midiInstrument = #"clarinet"
\new Voice \relative {
b'1\p a2. b8 a
g2. fis8 e
fis2 r
}
}
>>
\layout { }
\midi { }
}
Advertiments i problemes coneguts
Els canvis al volum del MIDI sols tenen lloc al començament d’una nota, per la qual cosa els crescendos i decrescendos no afecten a volum d’una sola nota.
Establiment de les propietats del bloc MIDI
El bloc \midi pot contenir diverses disposicions dels
contextos, definicions de context noves o codi que estableix els
valors de certes propietats.
\score {
… music …
\midi {
\tempo 4 = 72
}
}
Aquí, el temps s’estableix a 72 pulsacions de negra per minut. La
indicació de temps dins del bloc \midi no apareix a la
partitura impresa. Tot i que qualsevol altra indicació de
\tempo que s’especifiqui dins del bloc \score també
apareixerà a la sortida MIDI.
Dins d’un bloc \midi, l’ordre \tempo està establint
propietats durant la interpretació de la música i en el context de
les definicions de sortida; així, s’interpreta com si fos
una modificació de context.
Les definicions de context segueixen la mateixa sintaxi que les
del bloc \layout:
\score {
… music …
\midi {
\context {
\Voice
\remove "Dynamic_performer"
}
}
}
Aquest exemple suprimeix l’efecte de les indicacions dinàmiques sobre la sortida MIDI. Nota: els mòduls de traducció del LilyPond usats per al so s’anomenen ‘performers’.
Vegeu també
Manual de aprenentatge: Altres fonts d'informació.
Referència de la notació: Expressions, Disposició de la partitura.
Fitxers instal·lats: ‘ly/performer-init.ly’.
Fragments de codi: MIDI.
Referència de funcionament intern: Dynamic_performer.
Advertiments i problemes coneguts
Certs reproductors de MIDI no sempre gestionen correctament els canvis de tempo a la sortida MIDI.
Els canvis fets al midiInstrument, així com certes opcions
MIDI al començament d’un pentagrama, poden aparèixer dos
cops a la sortida MIDI.
3.5.5 Ús dels instruments MIDI
Els instruments MIDI s’estableixen usant la propietat
midiInstrument dins d’un context Staff.
\score {
\new Staff {
\set Staff.midiInstrument = #"glockenspiel"
… music …
}
\midi { }
}
o
\score {
\new Staff \with {midiInstrument = #"cello"} {
… music …
}
\midi { }
}
Si l’instrument escollit no coincideix exactament amb un dels
instruments de la llista de la secció ‘instruments MIDI’,
s’usarà l’instrument Piano de cua ("acoustic grand").
Vegeu
Instruments MIDI.
Vegeu també
Manual d’aprenentatge: Altres fonts d'informació.
Referència de la notació: Instruments MIDI, Disposició de la partitura.
Fitxers instal·lats: ‘scm/midi.scm’.
Advertiments i problemes coneguts
Els instruments de percussió la notació del qual està en un context
DrumStaff es trobaran a la sortida, correctament, sobre el
canal MIDI número 10, però certs instruments de percussió
afinada com el xilòfon, el vibràfon o els timbals, es tracten com
instruments “normals”, de forma que la música d’aquests
instruments s’ha d’introduir en un context Staff (no
DrumStaff) per obtenir una sortida MIDI correcta. Hi ha
una llista completa d’entrades dels sets de percussió del
canal 10 al fitxer ‘scm/midi.scm’. Vegeu
Altres fonts d'informació.
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Ús dels instruments MIDI ] | [ Amunt : Creació de sortida MIDI ] | [ Assignació de canals MIDI > ] | ||
3.5.6 Ús de les repeticions amb el MIDI
Les repeticions es poden representar a la sortida MIDI aplicant
l’ordre \unfoldRepeats.
\score {
\unfoldRepeats {
\repeat tremolo 8 { c'32 e' }
\repeat percent 2 { c''8 d'' }
\repeat volta 2 { c'4 d' e' f' }
\alternative {
{ g' a' a' g' }
{ f' e' d' c' }
}
}
\midi { }
}
Per restringir l’efecte de \unfoldRepeats a la sortida MIDI
únicament, i al mateix temps generar partitures imprimibles, cal
fer dos blocs \score: un per al MIDI (amb les
repeticions desplegades) i un altre per a la notació (amb
repeticions de primera i segona vegada, trèmols i del tipus percentatge):
\score {
… music …
\layout { }
}
\score {
\unfoldRepeats {
… music …
}
\midi { }
}
Si s’usen diverses veus, cada una d’elles ha de contenir les repeticions completament desplegades per poder obtenir una sortida MIDI correcta.
Vegeu també
Referència de la notació: Repeticions.
3.5.7 Assignació de canals MIDI
Quan s’està generant un fitxer MIDI d’una partitura, el LilyPond assigna cada nota de la partitura automàticament a un canal MIDI, aquell que es tocaria quan s’envia cap a un dispositiu MIDI. Un canal MIDI té una certa quantitat de controls disponibles per seleccionar, per exemple, l’instrument a usar per reproduir les notes en aquest canal, o ordenar al dispositiu MIDI que apliqui diversos efectes al so produït sobre el canal. En tot moment, cada control d’un canal MIDI sols pot tenir assignat un valor únic (que malgrat això es pot modificar, per exemple, per canviar a un altre instrument a la meitat d’una partitura).
L’estàndard MIDI dóna suport sols a 16 canals per dispositiu MIDI. Aquest límit en el nombre de canals limita també el nombre d’instruments diferents que poden estar tocant al mateix temps.
El LilyPond crea pistes MIDI separades per a cada pentagrama (o
instrument o veu, segons el valor de
Score.midiChannelMapping), i també per a cada context de
lletra. No hi ha un límit per al nombre de pistes.
Per solucionar el nombre limitat de canals MIDI, el LilyPond dóna
suport a alguns modes diferents per a la assignació de canals
MIDI, que se seleccionen usant la propietat de context
Score.midiChannelMapping. En cada cas, si calen més canals
MIDI que el límit, els números de canal assignats tornen a comptar
des de zero, causant possiblement una assignació incorrecta
d’instrument a algunes notes. Aquesta propietat de context es pot
fixar a un dels valors següent:
-
'staff -
Reservar un canal MIDI diferent per a cada un dels pentagrames de la partitura (és l’ajustament predeterminat). Totes les notes de totes les veus comparteixen el canal MIDI del pentagrama que les envolta, i totes es codifiquen dins de la mateixa pista MIDI.
El límit de 16 canals s’aplica al nombre total de contextos de pentagrama i de lletra, fins i tot que les lletres del MIDI no consumeixin un canal MIDI.
-
'instrument -
Reservar un canal MIDI diferent a cada un dels instruments diferents especificats a la partitura. Això significa que totes les notes reproduïdes amb el mateix instrument MIDI comparteixen el mateix canal MIDI (i la mateixa pista), fins i tot que les notes provinguin de diferents veus o pentagrames.
En aquest cas els contextos de lletra no compten per al límit de 16 canals MIDI (ja que no s’assignen a un instrument MIDI), de forma que aquest ajustament pot permetre una millor distribució dels canals MIDI quan el nombre de contextos de pentagrama i de lletra en la partitura excedeix la quantitat de 16.
-
'voice -
Reservar un canal MIDI a cada veu de la partitura que tingui un nom únic entre les veus del seu pentagrama que l’envolta. Les veus dels diferents pentagrames sempre s’assignen a diferents canals MIDI però dues veus qualssevol contingudes dins del mateix pentagrama comparteixen el mateix canal MIDI si tenen el mateix nom. A causa que
midiInstrumenti els diversos controls MIDI per als efectes són propietats del context de pentagrama, no es poden fixar independentment per a cada veu. La primera veu es reprodueix amb l’instrument i els efectes especificats per al pentagrama, i les veus amb un nom diferent de la primera rebran l’instrument i els efectes predeterminats.Nota: es poden assignar diferents instruments i/o efectes a diverses veus dins del mateix pentagrama movent el
Staff_performerdel contextStaffal contextVoice, y deixant quemidiChannelMappingconservi el seu valor predeterminat de'staffo s’estableixi al valor'instrument; vegeu el fragment de codi següent.
Per exemple, l’assignació predeterminada de canal MIDI d’una
partitura pot canviar-se a l’ajustament 'instrument com es
mostra a continuació:
\score {
...music...
\midi {
\context {
\Score
midiChannelMapping = #'instrument
}
}
}
Fragments de codi seleccionats
Changing MIDI output to one channel per voice
When outputting MIDI, the default behavior is for each staff to represent one MIDI channel, with all the voices on a staff amalgamated. This minimizes the risk of running out of MIDI channels, since there are only 16 available per track.
However, by moving the Staff_performer to the Voice
context, each voice on a staff can have its own MIDI channel, as is
demonstrated by the following example: despite being on the same staff,
two MIDI channels are created, each with a different
midiInstrument.
\score {
\new Staff <<
\new Voice \relative c''' {
\set midiInstrument = #"flute"
\voiceOne
\key g \major
\time 2/2
r2 g-"Flute" ~
g fis ~
fis4 g8 fis e2 ~
e4 d8 cis d2
}
\new Voice \relative c'' {
\set midiInstrument = #"clarinet"
\voiceTwo
b1-"Clarinet"
a2. b8 a
g2. fis8 e
fis2 r
}
>>
\layout { }
\midi {
\context {
\Staff
\remove "Staff_performer"
}
\context {
\Voice
\consists "Staff_performer"
}
\tempo 2 = 72
}
}
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Assignació de canals MIDI ] | [ Amunt : Creació de sortida MIDI ] | [ Enriquiment de la sortida MIDI > ] | ||
3.5.8 Propietats de context per a efectes MIDI
Es poden usar les propietats següents de context per aplicar
diversos efectes MIDI a les notes que es reprodueixen sobre el
canal MIDI associat amb el pentagrama, instrument MIDI o veu
actual (depenent del valor de la propietat de context
Score.midiChannelMapping y del context en la qual està
situat el Staff_performer; vegeu Assignació de canals MIDI).
Els canvis en aquestes propietats de context afecten a totes les notes que es reprodueixen sobre el canal després del canvi, tot i que alguns dels efectes es poden fins i tot aplicar també a notes que estiguin ja sonant en aquest moment (depenent de la implementació del dispositiu MIDI).
Es donen suport a les següents propietats de context:
-
Staff.midiPanPosition -
La posició de panorama controla com es distribueix el so d’un canal MIDI entre les sortides estèreo esquerra i dreta. La propietat de context accepta un nombre entre -1.0 (
#LEFT) i 1.0 (#RIGHT); el valor -1.0 posta tota la potència de so a la sortida estèreo esquerra (deixant la sortida dreta en complet silenci), el valor 0.0 (#CENTER) distribueix el so per igual entre les sortides estèreo esquerra i dreta, i el valor 1.0 mou tot el so a la sortida estèreo dreta. Els valors entre -1.0 i 1.0 es poden usar per obtenir distribucions barrejades entre les sortides estèreo esquerra i dreta. -
Staff.midiBalance -
Equilibri estèreo d’un canal MIDI. De forma semblant a la posició de panorama aquesta propietat de context accepta un nombre entre -1.0 (
#LEFT) i 1.0 (#RIGHT). Varia el volum relatiu que s’envia als dos altaveus estèreo sense afectar a la distribució dels propis senyals estèreo. -
Staff.midiExpression -
Nivell d’expressió (com una fracció de nivell màxim disponible) que s’aplica a un canal MIDI. Un dispositiu MIDI combina el nivell d’expressió del canal MIDI amb el nivell actual de dinàmica d’una veu (controlat mitjançant les ordre de dinàmica com
\po\ff) per obtenir el volum total de cada nota dins de la veu. El control d’expressió es pot usar, per exemple, per implementar efectes de crescendo i decrescendo sobre notes mantingudes (quelcom al qual el LilyPond no dóna suport de forma automàtica).El rang de nivells d’expressió s’estén des de 0.0 (cap expressió, el que significa un volum nul) fins a 1.0 (expressió al màxim).
-
Staff.midiReverbLevel -
El nivell de reverberació (com una fracció del màxim nivell disponible) que s’aplica a un canal MIDI. Aquesta propietat accepta nombre entre 0.0 (sense reverberació) i 1.0 (efecte màxim).
-
Staff.midiChorusLevel -
Nivell de l’efecte Chorus (com una fracció del nivell màxim disponible) que s’aplica a un canal MIDI. Aquesta propietat accepta nombres entre 0.0 (sense efecte de chorus) i 1.0 (efecte al màxim).
Advertiments i problemes coneguts
Atès que els fitxers MIDI no contenen en realitat cap informació sonora, els canvis en aquestes propietats de context sols es converteixen en peticions perquè canviïn els controls de canal MIDI dins dels fitxers MIDI emesos. Si un dispositiu MIDI determinat (com un reproductor MIDI per programari) pot de fer gestionar qualsevol d’aquestes sol·licituds d’un fitxer MIDI, és quelcom que depèn totalment de la implementació del mateix: un dispositiu podria optar per ignorar algunes o totes aquestes sol·licituds. Així mateix, la forma en la qual un dispositiu MIDI interpreta els diferents valors d’aquests controls (generalment, l’estàndard MIDI determina el comportament sols als punts extrems del rang de valors disponibles per a cada control), i el fet de si un canvi en el valor d’un control afecta a les notes que ja s’estan reproduint sobre aquest canal MIDI o no, també śon aspectes específics de la implementació del dispositiu MIDI.
En generar fitxers MIDI, el LilyPond senzillament converteix de forma lineal els valors fraccionaris dins de cada rang (7 bits, o 14 bits per als controls de canal MIDI que admeten resolució fina) en valors enters dins del rang corresponent (de 0 a 127 o de 0 a 32767, respectivament), arrodonint els valors fraccionaris cap al enter més pròxim en direcció oposada al zero. Els valors enters convertits s’emmagatzemen tal qual al fitxer MIDI generat. Consulteu la documentació del seu dispositiu MIDI per veure informació sobre com interpreta aquests valors.
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Spacing issues >> ] | ||
| [ < Propietats de context per a efectes MIDI ] | [ Amunt : Creació de sortida MIDI ] | [ L'script Articulate > ] | ||
3.5.9 Enriquiment de la sortida MIDI
| 3.5.10 L’script Articulate |
La sortida MIDI predeterminada és molt bàsica, però es pot
millorar mitjançant la selecció dels instruments MIDI les
propietats del bloc \midi i/o usant l’script
‘articulate’.
3.5.10 L’script Articulate
Per utilitzar l’script Articulate, l’hem d’incloure al principi del nostre fitxer d’entrada:
\include "articulate.ly"
L’script crea una sortida MIDI en la qual les notes tenen una duració ajustada al temps de forma que es corresponen amb una sèrie d’indicacions d’articulació i de tempo. Malgrat això, la sortida gravada també s’altera per reflectir literalment el contingut de la sortida MIDI.
\score {
\articulate <<
… music …
>>
\midi { }
}
L’ordre \articulate habilita el processat de les
abreviatures com trins i mordents de diverses notes. En el propi
script pot veure’s una llista completa dels elements que estan
previstos. Vegeu ‘ly/articulate.ly’.
Vegeu també
Manual d’aprenentatge: Altres fonts d'informació.
Referència de la notació: Disposició de la partitura.
Fitxers instal·lats: ‘ly/articulate.ly’.
Nota: L’script ‘articulate’ pot escurçar els acords, el
que podria no ser adequat per alguns tipus d’instrument, com
l’òrgan. Les notes que no tenen cap articulació també es poden
escurçar; així, per contenir l’abast d’aquest efecte limiteu l’ús
de la funció articulate a segments de música més breus o
modifiqueu els valors de les variables definides per compensar
l’efecte d’escurçament de les notes.
3.6 Extracció de la informació musical
A més de crear un resultat visual i MIDI, el LilyPond és capaç de presentar informació musical en forma de text.
| 3.6.1 Impressió del codi de notació del LilyPond | ||
| 3.6.2 Impressió de les expressions musicals de l’Scheme | ||
| 3.6.3 Desar els esdeveniments musicals en un fitxer |
3.6.1 Impressió del codi de notació del LilyPond
La impressió textual d’una expressió musical en notació del
LilyPond pot fer-se amb la funció musical
\displayLilyMusic. Per veure el resultat, el més usual és
cridar al LilyPond mitjançant la línia d’ordres. Per exemple,
{
\displayLilyMusic \transpose c a, { c4 e g a bes }
}
imprimeix el següent:
{ a,4 cis e fis g }
De forma predeterminada, el LilyPond imprimeix aquests missatges a
la consola junt a la resta dels missatges de la compilació del
LilyPond. Per discernir entre aquests missatges i desar el
resultat de \displayLilyMusic, canvieu la sortida cap a un
fitxer.
lilypond fitxer.ly >resultat.txt
Observeu que el LilyPond no es limita a mostrar l’expressió
musical, sinó que també la interpreta (perquè
\displayLilyMusic la retorna a més de mostrar-la).
Simplement inseriu
\displayLilyMusic dins de la música existent amb l’objectiu
d’obtenir informació sobre ella.
Per interpretar i mostrar una secció de música a la consola, i al
mateix temps suprimir-la del fitxer de sortida, useu l’ordre \void.
{
\void \displayLilyMusic \transpose c a, { c4 e g a bes }
c1
}
3.6.2 Impressió de les expressions musicals de l’Scheme
Vegeu Presentació de les expressions musicals.
3.6.3 Desar els esdeveniments musicals en un fitxer
Els esdeveniments musicals es poden desar en un fitxer pentagrama a pentagrama mitjançant la inclusió d’un fitxer a la nostra partitura principal.
\include "event-listener.ly"
D’aquesta forma es creen un o més fitxers anomenats ‘FILENAME-STAFFNAME.notes’ ó ‘FILENAME-unnamed-staff.notes’ per a cada pentagrama. Observeu que si teniu més d’un pentagrama sense nom, els esdeveniments de tots els pentagrames es barrejaran entre sí dins del mateix fitxer. El resultat té el següent aspecte:
0.000 note 57 4 p-c 2 12 0.000 dynamic f 0.250 note 62 4 p-c 7 12 0.500 note 66 8 p-c 9 12 0.625 note 69 8 p-c 14 12 0.750 rest 4 0.750 breathe
La sintaxi consisteix en una línia delimitada per caràcters de tabulació, amb dos camps fixos en cada línia seguits de paràmetres opcionals.
temps tipus …paràmetres…
Aquesta informació es pot llegir fàcilment per part d’altres programes com guions del Python, i poden ser molt útils per aquells investigadors que volen realitzar una anàlisi musical o fer experiments de reproducció amb el LilyPond.
Advertiments i problemes coneguts
No tots els esdeveniments musicals del LilyPond tenen suport a ‘event-listener.ly’. Es pretén que sigui una “prova de concepte” ben realitzada. Si alguns esdeveniment que voleu veure no apareixen inclosos, copieu ‘event-listener.ly’ a la vostra carpeta del LilyPond i modifiqueu el fitxer de forma que produeixi la informació que desitgeu.
| [ << Entrada i sortida generals ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Desar els esdeveniments musicals en un fitxer ] | [ Amunt : Top ] | [ Page layout > ] | ||
4. Spacing issues
The global paper layout is determined by three factors: the page layout, the line breaks, and the spacing. These all influence each other. The choice of spacing determines how densely each system of music is set. This influences where line breaks are chosen, and thus ultimately, how many pages a piece of music takes.
Globally speaking, this procedure happens in four steps: first, flexible distances (‘springs’) are chosen, based on durations. All possible line breaking combinations are tried, and a ‘badness’ score is calculated for each. Then the height of each possible system is estimated. Finally, a page breaking and line breaking combination is chosen so that neither the horizontal nor the vertical spacing is too cramped or stretched.
Two types of blocks can contain layout settings:
\paper {…} and \layout {…}. The
\paper block contains page layout settings that are expected
to be the same for all scores in a book or bookpart, such as the
paper height, or whether to print page numbers, etc. See
Page layout. The \layout block contains score layout
settings, such as the number of systems to use, or the space
between staff-groups, etc. See Score layout.
| 4.1 Page layout | ||
| 4.2 Score layout | ||
| 4.3 Breaks | ||
| 4.4 Vertical spacing | ||
| 4.5 Horizontal spacing | ||
| 4.6 Fitting music onto fewer pages |
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Spacing issues ] | [ Amunt : Spacing issues ] | [ The paper block > ] | ||
4.1 Page layout
This section discusses page layout options for the \paper
block.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Page layout ] | [ Amunt : Page layout ] | [ Paper size and automatic scaling > ] | ||
4.1.1 The \paper block
\paper blocks may be placed in three different places to form
a descending hierarchy of \paper blocks:
-
At the top of the input file, before all
\book,\bookpart, and\scoreblocks. -
Within a
\bookblock but outside all the\bookpartand\scoreblocks within that book. -
Within a
\bookpartblock but outside all\scoreblocks within that bookpart.
A \paper block cannot be placed within a \score block.
The values of the fields filter down this hierarchy, with the values set higher in the hierarchy persisting unless they are over-ridden by a value set lower in the hierarchy.
Several \paper blocks can appear at each of the levels, for
example as parts of several \included files. If so, the
fields at each level are merged, with values encountered last taking
precedence if duplicated fields appear.
Settings that can appear in a \paper block include:
-
the
set-paper-sizescheme function, -
\papervariables used for customizing page layout, and - markup definitions used for customizing the layout of headers, footers, and titles.
The set-paper-size function is discussed in the next
section, Paper size and automatic scaling. The
\paper variables that deal with page layout are discussed
in later sections. The markup definitions that deal with headers,
footers, and titles are discussed in
Títols encapçalaments i peus de pàgina personalitzats.
Most \paper variables will only work in a \paper
block. The few that will also work in a \layout block are
listed in The \layout block.
Except when specified otherwise, all \paper variables that
correspond to distances on the page are measured in millimeters,
unless a different unit is specified by the user. For example,
the following declaration sets top-margin to ten
millimeters:
\paper {
top-margin = 10
}
To set it to 0.5 inches, use the \in unit suffix:
\paper {
top-margin = 0.5\in
}
The available unit suffixes are \mm, \cm,
\in, and \pt. These units are simple values for
converting from millimeters; they are defined in
‘ly/paper-defaults-init.ly’. For the sake of clarity, when
using millimeters, the \mm is typically included in the
code, even though it is not technically necessary.
It is also possible to define \paper values using Scheme.
The Scheme equivalent of the above example is:
\paper {
#(define top-margin (* 0.5 in))
}
Vegeu també
Notation Reference:
Paper size and automatic scaling,
Títols encapçalaments i peus de pàgina personalitzats,
The \layout block.
Installed Files: ‘ly/paper-defaults-init.ly’.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < The paper block ] | [ Amunt : Page layout ] | [ Setting the paper size > ] | ||
4.1.2 Paper size and automatic scaling
| Setting the paper size | ||
| Automatic scaling to paper size |
Setting the paper size
‘A4’ is the default value when no explicit paper size is set. However, there are two functions that can be used to change it:
-
set-default-paper-size -
#(set-default-paper-size "quarto")
which must always be placed at the toplevel scope, and
-
set-paper-size -
\paper { #(set-paper-size "tabloid") }which must always be placed in a
\paperblock.
If the set-default-paper-size function is used in the toplevel
scope, it must come before any \paper block.
set-default-paper-size sets the paper size for all pages,
whereas set-paper-size only sets the paper size for the pages
that the \paper block applies to. For example, if the
\paper block is at the top of the file, then it will apply the
paper size to all pages. If the \paper block is inside a
\book, then the paper size will only apply to that book.
When the set-paper-size function is used, it must be
placed before any other functions used within the same
\paper block. See Automatic scaling to paper size.
Paper sizes are defined in ‘scm/paper.scm’, and while it is possible to add custom sizes, they will be overwritten on subsequent software updates. The available paper sizes are listed in Predefined paper sizes.
The following command can be used in the file to add a custom paper size
which can then be used with set-default-paper-size or
set-paper-size as appropriate,
#(set! paper-alist (cons '("my size" . (cons (* 15 in) (* 3 in))) paper-alist))
\paper {
#(set-paper-size "my size")
}
The units in (inches), cm (centimeters) and mm
(millimeters) can all be used.
If the symbol 'landscape is added to the paper size function,
pages will be rotated by 90 degrees, and wider line widths will be set
accordingly.
#(set-default-paper-size "a6" 'landscape)
Swapping the paper dimensions without having the print rotated (like when printing to postcard size, or creating graphics for inclusion rather than a standalone document) can be achieved by appending ‘landscape’ to the name of the paper size itself:
#(set-default-paper-size "a6landscape")
When the paper size ends with an explicit ‘landscape’ or
‘portrait’, the presence of a 'landscape symbol only
affects print orientation, not the paper dimensions used for layout.
Vegeu també
Notation Reference: Automatic scaling to paper size, Predefined paper sizes.
Installed Files: ‘scm/paper.scm’.
Automatic scaling to paper size
If the paper size is changed with one of the scheme functions
(set-default-paper-size or set-paper-size), the
values of several \paper variables are automatically scaled
to the new size. To bypass the automatic scaling for a particular
variable, set the variable after setting the paper size. Note
that the automatic scaling is not triggered by setting the
paper-height or paper-width variables, even though
paper-width can influence other values (this is separate
from scaling and is discussed below). The
set-default-paper-size and set-paper-size functions
are described in Setting the paper size.
The vertical dimensions affected by automatic scaling are
top-margin and bottom-margin (see
Fixed vertical spacing \paper variables).
The horizontal
dimensions affected by automatic scaling are left-margin,
right-margin, inner-margin, outer-margin,
binding-offset, indent, and short-indent (see
Horizontal spacing \paper variables).
The default values for these dimensions are set in
‘ly/paper-defaults-init.ly’, using internal variables named
top-margin-default, bottom-margin-default, etc.
These are the values that result at the default paper size
a4. For reference, with a4 paper the
paper-height is 297\mm and the paper-width is
210\mm.
Vegeu també
Notation Reference:
Fixed vertical spacing \paper variables,
Horizontal spacing \paper variables.
Installed Files: ‘ly/paper-defaults-init.ly’, ‘scm/paper.scm’.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Automatic scaling to paper size ] | [ Amunt : Page layout ] | [ Flexible vertical spacing paper variables > ] | ||
4.1.3 Fixed vertical spacing \paper variables
Nota: Some \paper dimensions are automatically
scaled to the paper size, which may lead to unexpected behavior.
See Automatic scaling to paper size.
Default values (before scaling) are defined in ‘ly/paper-defaults-init.ly’.
-
paper-height -
The height of the page, unset by default. Note that the automatic scaling of some vertical dimensions is not affected by this.
-
top-margin -
The margin between the top of the page and the top of the printable area. If the paper size is modified, this dimension’s default value is scaled accordingly.
-
bottom-margin -
The margin between the bottom of the printable area and the bottom of the page. If the paper size is modified, this dimension’s default value is scaled accordingly.
-
ragged-bottom -
If this is set to true, systems will be set at their natural spacing, neither compressed nor stretched vertically to fit the page.
-
ragged-last-bottom -
If this is set to false, then the last page, and the last page in each section created with a
\bookpartblock, will be vertically justified in the same way as the earlier pages.
Vegeu també
Notation Reference: Automatic scaling to paper size.
Installed Files: ‘ly/paper-defaults-init.ly’.
Snippets: Spacing.
Advertiments i problemes coneguts
The titles (from the \header block) are treated as a
system, so ragged-bottom and ragged-last-bottom will
add space between the titles and the first system of the score.
Explicitly defined paper-sizes will override any user-defined top or bottom margin settings.
4.1.4 Flexible vertical spacing \paper variables
In most cases, it is preferable for the vertical distances between
certain items (such as margins, titles, systems, and separate
scores) to be flexible, so that they stretch and compress nicely
according to each situation. A number of \paper variables
(listed below) are available to fine-tune the stretching behavior
of these dimensions.
Note that the \paper variables discussed in this section do
not control the spacing of staves within individual systems.
Within-system spacing is controlled by grob properties, with
settings typically entered inside a \score or
\layout block, and not inside a \paper block. See
Flexible vertical spacing within systems.
| Structure of flexible vertical spacing alists | ||
List of flexible vertical spacing \paper variables |
Structure of flexible vertical spacing alists
Each of the flexible vertical spacing \paper variables is
an alist (association list) containing four keys:
-
basic-distance– the vertical distance, measured in staff-spaces, between the reference points of the two items, when no collisions would result, and no stretching or compressing is in effect. The reference point of a (title or top-level) markup is its highest point, and the reference point of a system is the vertical center of the nearestStaffSymbol– even if a non-staff line (such as aLyricscontext) is in the way. Values forbasic-distancethat are less than eitherpaddingorminimum-distanceare not meaningful, since the resulting distance will never be less than eitherpaddingorminimum-distance. -
minimum-distance– the smallest allowable vertical distance, measured in staff-spaces, between the reference points of the two items, when compressing is in effect. Values forminimum-distancethat are less thanpaddingare not meaningful, since the resulting distance will never be less thanpadding. -
padding– the minimum required amount of unobstructed vertical whitespace between the bounding boxes (or skylines) of the two items, measured in staff-spaces. -
stretchability– a unitless measure of the dimension’s relative propensity to stretch. If zero, the distance will not stretch (unless collisions would result). When positive, the significance of a particular dimension’sstretchabilityvalue lies only in its relation to thestretchabilityvalues of the other dimensions. For example, if one dimension has twice thestretchabilityof another, it will stretch twice as easily. Values should be non-negative and finite. The value+inf.0triggers aprogramming_errorand is ignored, but1.0e7can be used for an almost infinitely stretchable spring. If unset, the default value is set tobasic-distance. Note that the dimension’s propensity to compress cannot be directly set by the user and is equal to (basic-distance-minimum-distance).
If a page has a ragged bottom, the resulting distance is the largest of:
-
basic-distance, -
minimum-distance, and -
paddingplus the smallest distance necessary to eliminate collisions.
For multi-page scores with a ragged bottom on the last page, the last page uses the same spacing as the preceding page, provided there is enough space for that.
Specific methods for modifying alists are discussed in Modifying alists. The following example demonstrates the two ways these alists can be modified. The first declaration updates one key-value individually, and the second completely redefines the variable:
\paper {
system-system-spacing.basic-distance = #8
score-system-spacing =
#'((basic-distance . 12)
(minimum-distance . 6)
(padding . 1)
(stretchability . 12))
}
List of flexible vertical spacing \paper variables
The names of these variables follow the format
upper-lower-spacing, where upper
and lower are the items to be spaced. Each distance
is measured between the reference points of the two items (see the
description of the alist structure above). Note that in these
variable names, the term ‘markup’ refers to both
title markups (bookTitleMarkup or
scoreTitleMarkup) and top-level markups (see
Estructura del fitxer). All distances are measured in
staff-spaces.
Default settings are defined in ‘ly/paper-defaults-init.ly’.
-
markup-system-spacing -
the distance between a (title or top-level) markup and the system that follows it.
-
score-markup-spacing -
the distance between the last system of a score and the (title or top-level) markup that follows it.
-
score-system-spacing -
the distance between the last system of a score and the first system of the score that follows it, when no (title or top-level) markup exists between them.
-
system-system-spacing -
the distance between two systems in the same score.
-
markup-markup-spacing -
the distance between two (title or top-level) markups.
-
last-bottom-spacing -
the distance from the last system or top-level markup on a page to the bottom of the printable area (i.e., the top of the bottom margin).
-
top-system-spacing -
the distance from the top of the printable area (i.e., the bottom of the top margin) to the first system on a page, when there is no (title or top-level) markup between the two.
-
top-markup-spacing -
the distance from the top of the printable area (i.e., the bottom of the top margin) to the first (title or top-level) markup on a page, when there is no system between the two.
Vegeu també
Notation Reference: Flexible vertical spacing within systems.
Installed Files: ‘ly/paper-defaults-init.ly’.
Snippets: Spacing.
4.1.5 Horizontal spacing \paper variables
Nota: Some \paper dimensions are automatically
scaled to the paper size, which may lead to unexpected behavior.
See Automatic scaling to paper size.
\paper variables for widths and margins | ||
\paper variables for two-sided mode | ||
\paper variables for shifts and indents |
\paper variables for widths and margins
Default values (before scaling) that are not listed here are defined in ‘ly/paper-defaults-init.ly’.
-
paper-width -
The width of the page, unset by default. While
paper-widthhas no effect on the automatic scaling of some horizontal dimensions, it does influence theline-widthvariable. If bothpaper-widthandline-widthare set, thenleft-marginandright-marginwill also be updated. Also seecheck-consistency. -
line-width -
When specified in a
\paperblock this defines the horizontal extent available for the staff lines in un-indented systems. If left unspecified, the paper’sline-widthis determined from(paper-width - left-margin - right-margin). If the paper’sline-widthis specified, and bothleft-marginandright-marginare not, then the margins will be updated to center the systems on the page automatically. Also seecheck-consistency.line-widths for individual scores can be specified in the scores’\layoutblocks. These values control the width of the lines produced on a score-by-score basis. Ifline-widthis not specified for a score, it defaults to the paper’sline-width. Setting a score’sline-widthhas no effect on the paper margins. Staff lines, of a length determined by the score’sline-width, are left-aligned within the paper area defined by the paper’sline-width. If the score and paperline-widths are equal, the staff lines will extend exactly from the left margin to the right margin, but if the score’sline-widthis greater than the paper’sline-widththe staff lines will run over into the right margin. -
left-margin -
The margin between the left edge of the page and the start of the staff lines in unindented systems. If the paper size is modified, this dimension’s default value is scaled accordingly. If
left-marginis unset, and bothline-widthandright-marginare set, thenleft-marginis set to(paper-width - line-width - right-margin). If onlyline-widthis set, then both margins are set to((paper-width - line-width) / 2), and the systems are consequently centered on the page. Also seecheck-consistency. -
right-margin -
The margin between the right edge of the page and the end of the staff lines in non-ragged systems. If the paper size is modified, this dimension’s default value is scaled accordingly. If
right-marginis unset, and bothline-widthandleft-marginare set, thenright-marginis set to(paper-width - line-width - left-margin). If onlyline-widthis set, then both margins are set to((paper-width - line-width) / 2), and the systems are consequently centered on the page. Also seecheck-consistency. -
check-consistency -
If this is true (the default value), print a warning if
left-margin,line-width, andright-margindo not exactly add up topaper-width, and replace each of these (exceptpaper-width) with their default values (scaled to the paper size if necessary). If set to false, ignore any inconsistencies and allow systems to run off the edge of the page. -
ragged-right -
If set to true, systems will not fill the line width. Instead, systems end at their natural horizontal length. Default:
#tfor scores with only one system, and#ffor scores with two or more systems. This variable can also be set in a\layoutblock. -
ragged-last -
If set to true, the last system in the score will not fill the line width. Instead the last system ends at its natural horizontal length. Default:
#f. This variable can also be set in a\layoutblock.
Vegeu també
Notation Reference: Automatic scaling to paper size.
Installed Files: ‘ly/paper-defaults-init.ly’.
Advertiments i problemes coneguts
Explicitly defined paper-sizes will override any user-defined left or right margin settings.
\paper variables for two-sided mode
Default values (before scaling) are defined in ‘ly/paper-defaults-init.ly’.
-
two-sided -
If set to true, use
inner-margin,outer-marginandbinding-offsetto determine margins depending on whether the page number is odd or even. This overridesleft-marginandright-margin. -
inner-margin -
The margin all pages have at the inner side if they are part of a book. If the paper size is modified, this dimension’s default value is scaled accordingly. Works only with
two-sidedset to true. -
outer-margin -
The margin all pages have at the outer side if they are part of a book. If the paper size is modified, this dimension’s default value is scaled accordingly. Works only with
two-sidedset to true. -
binding-offset -
The amount
inner-marginis increased to make sure nothing will be hidden by the binding. If the paper size is modified, this dimension’s default value is scaled accordingly. Works only withtwo-sidedset to true.
Vegeu també
Notation Reference: Automatic scaling to paper size.
Installed Files: ‘ly/paper-defaults-init.ly’.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < paper variables for two-sided mode ] | [ Amunt : Horizontal spacing paper variables ] | [ Other paper variables > ] | ||
\paper variables for shifts and indents
Default values (before scaling) that are not listed here are defined in ‘ly/paper-defaults-init.ly’.
-
horizontal-shift -
The amount that all systems (including titles and system separators) are shifted to the right. Default:
0.0\mm. -
indent -
The level of indentation for the first system in a score. If the paper size is modified, this dimension’s default value is scaled accordingly. The space within
line-widthavailable for the first system is reduced by this amount.indentmay also be specified in\layoutblocks to set indents on a score-by-score basis. -
short-indent -
The level of indentation for all systems in a score besides the first system. If the paper size is modified, this dimension’s default value is scaled accordingly. The space within
line-widthavailable for systems other than the first is reduced by this amount.short-indentmay also be specified in\layoutblocks to set short indents on a score-by-score basis.
Vegeu també
Notation Reference: Automatic scaling to paper size.
Installed Files: ‘ly/paper-defaults-init.ly’.
Snippets: Spacing.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < paper variables for shifts and indents ] | [ Amunt : Page layout ] | [ paper variables for line breaking > ] | ||
4.1.6 Other \paper variables
\paper variables for line breaking | ||
\paper variables for page breaking | ||
\paper variables for page numbering | ||
Miscellaneous \paper variables |
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Other paper variables ] | [ Amunt : Other paper variables ] | [ paper variables for page breaking > ] | ||
\paper variables for line breaking
-
max-systems-per-page -
The maximum number of systems that will be placed on a page. This is currently supported only by the
ly:optimal-breakingalgorithm. Default: unset. -
min-systems-per-page -
The minimum number of systems that will be placed on a page. This may cause pages to be overfilled if it is made too large. This is currently supported only by the
ly:optimal-breakingalgorithm. Default: unset. -
systems-per-page -
The number of systems that should be placed on each page. This is currently supported only by the
ly:optimal-breakingalgorithm. Default: unset. -
system-count -
The number of systems to be used for a score. Default: unset. This variable can also be set in a
\layoutblock.
Vegeu també
Notation Reference: Line breaking.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < paper variables for line breaking ] | [ Amunt : Other paper variables ] | [ paper variables for page numbering > ] | ||
\paper variables for page breaking
Default values not listed here are defined in ‘ly/paper-defaults-init.ly’
-
page-breaking -
The page-breaking algorithm to use. Choices are
ly:minimal-breaking,ly:page-turn-breaking,ly:one-page-breaking,ly:one-line-breaking,ly:one-line-auto-height-breaking, andly:optimal-breaking(the default). -
page-breaking-system-system-spacing -
Tricks the page breaker into thinking that
system-system-spacingis set to something different than it really is. For example, ifpage-breaking-system-system-spacing #'paddingis set to something substantially larger thansystem-system-spacing #'padding, then the page-breaker will put fewer systems on each page. Default: unset. -
page-count -
The number of pages to be used for a score, unset by default.
The following variables are effective only when page-breaking
is set to ly:page-turn-breaking. Page breaks are then chosen
to minimize the number of page turns. Since page turns are required
on moving from an odd-numbered page to an even-numbered one, a
layout in which the last page is odd-numbered will usually be
favoured. Places where page turns are preferred can be indicated
manually by inserting \allowPageTurn or automatically by
including the Page_turn_engraver (see Optimal page turning).
If there are insufficient choices available for making suitable page turns, LilyPond may insert a blank page either within a score, between scores (if there are two or more scores), or by ending a score on an even-numbered page. The values of the following three variables may be increased to make these actions less likely.
The values are penalties, i.e., the higher the value the less likely will be the associated action relative to other choices.
-
blank-page-penalty -
The penalty for having a blank page in the middle of a score. If
blank-page-penaltyis large andly:page-turn-breakingis selected, then LilyPond will be less likely to insert a page in the middle of a score. Instead, it will space out the music further to fill the blank page and the following one. Default: 5. -
blank-last-page-penalty -
The penalty for ending the score on an even-numbered page. If
blank-last-page-penaltyis large andly:page-turn-breakingis selected, then LilyPond will be less likely to produce a score in which the last page is even-numbered. Instead, it will adjust the spacing in order to use one page more or one page less. Default: 0. -
blank-after-score-page-penalty -
The penalty for having a blank page after the end of one score and before the next. By default, this is smaller than
blank-page-penalty, so that blank pages after scores are inserted in preference to blank pages within a score. Default: 2.
Vegeu també
Notation Reference: Page breaking, Optimal page breaking, Optimal page turning, Minimal page breaking, One-page page breaking, One-line page breaking, One-line-auto-height page breaking.
Installed Files: ‘ly/paper-defaults-init.ly’.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < paper variables for page breaking ] | [ Amunt : Other paper variables ] | [ Miscellaneous paper variables > ] | ||
\paper variables for page numbering
Default values not listed here are defined in ‘ly/paper-defaults-init.ly’
-
auto-first-page-number -
The page breaking algorithm is affected by the first page number being odd or even. If set to true, the page breaking algorithm will decide whether to start with an odd or even number. This will result in the first page number remaining as is or being increased by one. Default:
#f. -
first-page-number -
The value of the page number on the first page.
-
print-first-page-number -
If set to true, a page number is printed on the first page.
-
print-page-number -
If set to false, page numbers are not printed.
-
page-number-type -
The type of numerals used for page numbers. Choices include
roman-lower,roman-upperandarabic. Default:'arabic.
Vegeu també
Installed Files: ‘ly/paper-defaults-init.ly’.
Advertiments i problemes coneguts
Odd page numbers are always on the right. If you want the music to start on page 1 there must be a blank page on the back of the cover page so that page 1 is on the right hand side.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < paper variables for page numbering ] | [ Amunt : Other paper variables ] | [ Score layout > ] | ||
Miscellaneous \paper variables
-
page-spacing-weight -
The relative importance of page (vertical) spacing and line (horizontal) spacing. High values will make page spacing more important. Default:
10. -
print-all-headers -
If set to true, this will print all headers for each
\scorein the output. Normally only thepieceandopusheader variables are printed. Default:#f. -
system-separator-markup -
A markup object that is inserted between systems, often used for orchestral scores. Default: unset. The
\slashSeparatormarkup, defined in ‘ly/titling-init.ly’, is provided as a sensible default, for example:#(set-default-paper-size "a8") \book { \paper { system-separator-markup = \slashSeparator } \header { tagline = ##f } \score { \relative { c''1 \break c1 \break c1 } } }
Vegeu també
Installed Files: ‘ly/titling-init.ly’.
Snippets: Spacing.
Advertiments i problemes coneguts
The default page header puts the page number and the instrument
field from the \header block on a line.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Miscellaneous paper variables ] | [ Amunt : Spacing issues ] | [ The layout block > ] | ||
4.2 Score layout
This section discusses score layout options for the \layout
block.
4.2.1 The \layout block | ||
| 4.2.2 Setting the staff size |
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Score layout ] | [ Amunt : Score layout ] | [ Setting the staff size > ] | ||
4.2.1 The \layout block
While the \paper block contains settings that relate to the
page formatting of the whole document, the \layout block
contains settings for score-specific layout. To set score layout
options globally, enter them in a toplevel \layout block.
To set layout options for an individual score, enter them in a
\layout block inside the \score block, after the
music. Settings that can appear in a \layout block
include:
- the
layout-set-staff-sizescheme function, - context modifications in
\contextblocks, and -
\papervariables that affect score layout.
The layout-set-staff-size function is discussed in the next
section, Setting the staff size. Context modifications are
discussed in a separate chapter; see
Modifying context plug-ins and
Changing context default settings.
The \paper variables that can appear in a \layout
block, with default values taken from the \paper block are:
-
line-width,ragged-rightandragged-last(see\papervariables for widths and margins) -
indentandshort-indent(see\papervariables for shifts and indents) -
system-count(see\papervariables for line breaking)
Here is an example \layout block:
\layout {
indent = 2\cm
\context {
\StaffGroup
\override StaffGrouper.staff-staff-spacing.basic-distance = #8
}
\context {
\Voice
\override TextScript.padding = #1
\override Glissando.thickness = #3
}
}
Multiple \layout blocks can be entered as toplevel expressions.
This can, for example, be useful if different settings are stored in
separate files and included optionally. Internally, when
a \layout block is evaluated, a copy of the current
\layout configuration is made, then any changes defined within
the block are applied and the result is saved as the new current
configuration. From the user’s perspective the \layout blocks
are combined, but in conflicting situations (when the same property
is changed in different blocks) the later definitions take precedence.
For example, if this block:
\layout {
\context {
\Voice
\override TextScript.color = #magenta
\override Glissando.thickness = #1.5
}
}
is placed after the one from the preceding example the 'padding
and 'color overrides for TextScript are combined, but
the later 'thickness override for Glissando replaces
(or hides) the earlier one.
\layout blocks may be assigned to variables for reuse later,
but the way this works is slightly but significantly different from
writing them literally.
If a variable is defined like this:
layoutVariable = \layout {
\context {
\Voice
\override NoteHead.font-size = #4
}
}
it will hold the current \layout configuration with the
NoteHead.font-size override added, but this combination
is not saved as the new current configuration. Be aware
that the ‘current configuration’ is read when the variable is
defined and not when it is used, so the content of the variable
is dependent on its position in the source.
The variable can then be used inside another \layout block,
for example:
\layout {
\layoutVariable
\context {
\Voice
\override NoteHead.color = #red
}
}
A \layout block containing a variable, as in the example above,
does not copy the current configuration but instead uses the
content of \layoutVariable as the base configuration for the
further additions. This means that any changes defined between the
definition and the use of the variable are lost.
If layoutVariable is defined (or \included) immediately
before being used, its content is just the current configuration plus
the overrides defined within it. So in the example above showing the
use of \layoutVariable the final \layout block would
consist of:
TextScript.padding = #1 TextScript.color = #magenta Glissando.thickness = #1.5 NoteHead.font-size = #4 NoteHead.color = #red
plus the indent and the StaffGrouper overrides.
But if the variable had already been defined before the first
\layout block the current configuration would now contain
only
NoteHead.font-size = #4 % (written in the variable definition) NoteHead.color = #red % (added after the use of the variable)
If carefully planned, \layout variables can be a valuable tool
to structure the layout design of sources, and also to reset the
\layout configuration to a known state.
Vegeu també
Notation Reference: Changing context default settings.
Snippets: Spacing.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < The layout block ] | [ Amunt : Score layout ] | [ Breaks > ] | ||
4.2.2 Setting the staff size
The default staff size is 20 points, which corresponds to a staff height of 7.03mm (one point is equal to 100/7227 of an inch, or 2540/7227 mm). The staff size may be changed in three ways:
-
To set the staff size globally for all scores in a file (or in a
\bookblock, to be precise), useset-global-staff-size:#(set-global-staff-size 14)
The above example sets the global default staff size to 14pt (4.92mm) and scales all fonts accordingly.
-
To set the staff size for a single score within a book, use
layout-set-staff-sizeinside that score’s\layoutblock:\score { … \layout { #(layout-set-staff-size 14) } } -
To set the staff size for a single staff within a system, use the
\magnifyStaffcommand. For example, traditionally engraved chamber music scores with piano often used 7mm piano staves while the other staves were typically between 3/5 and 5/7 as large (between 60% and 71%). To achieve the 5/7 proportion, use:\score { << \new Staff \with { \magnifyStaff #5/7 } { … } \new PianoStaff { … } >> }If you happen to know which
fontSizeyou wish to use, you could use the following form:\score { << \new Staff \with { \magnifyStaff #(magstep -3) } { … } \new PianoStaff { … } >> }To emulate the look of traditional engraving, it is best to avoid reducing the thickness of the staff lines.
Automatic font weight at different sizes
The Emmentaler font provides the set of Feta musical glyphs in eight different sizes; each one tuned for a different staff size. The smaller the glyph size, the “heavier” it becomes, so as to match the relatively thicker staff lines. Recommended glyphs sizes are listed in the following table:
| font name | staff height (pt) | staff height (mm) | use |
| feta11 | 11.22 | 3.9 | pocket scores |
| feta13 | 12.60 | 4.4 | |
| feta14 | 14.14 | 5.0 | |
| feta16 | 15.87 | 5.6 | |
| feta18 | 17.82 | 6.3 | song books |
| feta20 | 20 | 7.0 | standard parts |
| feta23 | 22.45 | 7.9 | |
| feta26 | 25.2 | 8.9 |
Vegeu també
Notation Reference: Selecció del la mida del tipus de lletra per a la notació, The Emmentaler font.
Snippets: Spacing.
Advertiments i problemes coneguts
layout-set-staff-size does not change the distance between the
staff lines.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Setting the staff size ] | [ Amunt : Spacing issues ] | [ Line breaking > ] | ||
4.3 Breaks
| 4.3.1 Line breaking | ||
| 4.3.2 Page breaking |
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Breaks ] | [ Amunt : Breaks ] | [ Page breaking > ] | ||
4.3.1 Line breaking
Line breaks are normally determined automatically. They are chosen so that lines look neither cramped nor loose, and consecutive lines have similar density.
To manually force a line break at a bar line, use the
\break command:
\relative c'' {
c4 c c c | \break
c4 c c c |
}
By default, a \break command inserted in the ‘middle’ of a
measure will be ignored (and a warning message will be output during the
compilation of the LilyPond file). Adding an invisible bar line
– ‘\bar ""’ – before the \break command will force the
issue:
\relative c'' {
c4 c c
\bar ""
\break
c |
c4 c c c |
}
A \break command that occurrs at a bar line will also ignored if
the previous measure ends in the middle of a note (e.g., when a tuplet
begins in one measure and ends in another). In this case remove the
Forbid_line_break_engraver from the Voice context and,
use a simultaneous music construction inserting the \break at the
appropriate place in the second ‘voice’:
\new Voice \with {
\remove "Forbid_line_break_engraver"
} \relative {
<<
{ c''2. \tuplet 3/2 { c4 c c } c2. | }
{ s1 | \break s1 | }
>>
}
Similarly, by default, line breaks are ignored when beams cross bar
lines. Use the \override Beam.breakable = ##t command to force
this:
\relative c'' {
\override Beam.breakable = ##t
c2. c8[ c | \break
c8 c] c2. |
}
The \noBreak command will prevent a line break at the bar line
where it is inserted.
Within a score, automatic line breaking is prevented within music
lying between \autoLineBreaksOff and \autoLineBreaksOn
commands. If automatic page breaks should also be prevented, the
commands \autoBreaksOff and \autoBreaksOn should be
used. Manual breaks are unaffected by these commands. Note that
inhibiting automatic line breaks may cause music to run over the
right margin if it cannot all be contained within one line.
Automatic line breaks (but not page breaks) may be enabled at single
bar lines by using \once \autoLineBreaksOn at a bar line.
This identifies a permitted rather than a forced line break.
The most basic settings influencing line spacing are indent
and line-width. They are set in the \layout block.
They control the indentation of the first line of music, and the
lengths of the lines.
If ragged-right is set to true in the \layout block,
then systems end at their natural horizontal length, instead of
being spread horizontally to fill the whole line. This is useful
for short fragments, and for checking how tight the natural
spacing is.
The option ragged-last is similar to ragged-right,
but affects only the last line of the piece.
\layout {
indent = 0\mm
line-width = 150\mm
ragged-last = ##t
}
For line breaks at regular intervals use \break separated
by skips and repeated with \repeat. For example, this
would cause the following 28 measures (assuming 4/4 time) to be
broken every 4 measures, and only there:
<<
\repeat unfold 7 {
s1 \noBreak s1 \noBreak
s1 \noBreak s1 \break
}
{ the actual music… }
>>
Instruccions predefinides
\break,
\noBreak,
\autoBreaksOff,
\autoBreaksOn,
\autoLineBreaksOff,
\autoLineBreaksOn.
Fragments de codi seleccionats
Using an extra voice for breaks
Often it is easier to manage line and page-breaking information by
keeping it separate from the music by introducing an extra voice
containing only skips along with the \break, pageBreak
and other layout information.
This pattern becomes especially helpful when overriding
line-break-system-details and the other useful but long
properties of NonMusicalPaperColumnGrob.
music = \relative c'' { c4 c c c }
\score {
\new Staff <<
\new Voice {
s1 * 2 \break
s1 * 3 \break
s1 * 6 \break
s1 * 5 \break
}
\new Voice {
\repeat unfold 2 { \music }
\repeat unfold 3 { \music }
\repeat unfold 6 { \music }
\repeat unfold 5 { \music }
}
>>
}
Vegeu també
Notation Reference:
\paper variables for line breaking
The \layout block.
Snippets: Spacing.
Internals Reference: LineBreakEvent.
Advertiments i problemes coneguts
Placing \autoLineBreaksOff or \autoBreaksOff before
any music will cause error messages to appear. Always place these
commands after some music.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Line breaking ] | [ Amunt : Breaks ] | [ Manual page breaking > ] | ||
4.3.2 Page breaking
This section describes the different page breaking methods, and how to modify them.
| Manual page breaking | ||
| Optimal page breaking | ||
| Minimal page breaking | ||
| One-page page breaking | ||
| One-line page breaking | ||
| One-line-auto-height page breaking | ||
| Optimal page turning |
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Page breaking ] | [ Amunt : Page breaking ] | [ Optimal page breaking > ] | ||
Manual page breaking
The default page breaking may be overridden by inserting
\pageBreak or \noPageBreak commands. These commands
are analogous to \break and \noBreak. They should
be inserted at a bar line. These commands force and forbid a
page-break from happening at that bar line. Of course, the
\pageBreak command also forces a line break.
The \pageBreak and \noPageBreak commands may also be
inserted at top-level, between scores and top-level markups.
Within a score, automatic page breaks are prevented within music
lying between \autoPageBreaksOff and \autoPageBreaksOn
commands. Manual page breaks are unaffected by these commands.
There are also analogous settings to ragged-right and
ragged-last which have the same effect on vertical spacing.
If ragged-bottom is set to #t the systems will not
be justified vertically. When ragged-last-bottom is set
to #t, as it is by default, empty space is allowed at the
bottom of the final page (or the final page in each
\bookpart). See
Fixed vertical spacing \paper variables.
Page breaks are computed by the page-breaking function.
LilyPond provides several algorithms for computing page breaks,
including ly:optimal-breaking, ly:page-turn-breaking and
ly:minimal-breaking. The default is
ly:optimal-breaking, but the value can be changed in the
\paper block:
\paper {
page-breaking = #ly:page-turn-breaking
}
When a book has many scores and pages, the page breaking problem
may be difficult to solve, requiring large processing time and
memory. To ease the page breaking process, \bookpart
blocks are used to divide the book into several parts: the page
breaking occurs separately on each part. Different page breaking
functions may also be used in different book parts.
\bookpart {
\header {
subtitle = "Preface"
}
\paper {
%% In a part consisting mostly of text,
%% ly:minimal-breaking may be preferred
page-breaking = #ly:minimal-breaking
}
\markup { … }
…
}
\bookpart {
%% In this part, consisting of music, the default optimal
%% page breaking function is used.
\header {
subtitle = "First movement"
}
\score { … }
…
}
Instruccions predefinides
\pageBreak,
\noPageBreak,
\autoPageBreaksOn,
\autoPageBreaksOff.
Vegeu també
Notation Reference:
\paper variables for page breaking.
Snippets: Spacing.
Advertiments i problemes coneguts
The \once prefix is ineffective with \autoPageBreaksOn
and \autoPageBreaksOff. If auto page breaking is off and is
then turned on to permit a page break, it must remain on for a few
bars (the precise number of bars depends on the score) before being
turned off, else the opportunity to break the page will not be taken.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Manual page breaking ] | [ Amunt : Page breaking ] | [ Minimal page breaking > ] | ||
Optimal page breaking
The ly:optimal-breaking function is LilyPond’s default
method of determining page breaks. It attempts to find a page
breaking that minimizes cramping and stretching, both horizontally
and vertically. Unlike ly:page-turn-breaking, it has no
concept of page turns.
Vegeu també
Snippets: Spacing.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Optimal page breaking ] | [ Amunt : Page breaking ] | [ One-page page breaking > ] | ||
Minimal page breaking
The ly:minimal-breaking function performs minimal
computations to calculate the page breaking: it fills a page with
as many systems as possible before moving to the next one. Thus,
it may be preferred for scores with many pages, where the other
page breaking functions could be too slow or memory demanding, or
a lot of texts. It is enabled using:
\paper {
page-breaking = #ly:minimal-breaking
}
Vegeu també
Snippets: Spacing.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Minimal page breaking ] | [ Amunt : Page breaking ] | [ One-line page breaking > ] | ||
One-page page breaking
The ly:one-page-breaking function is a special-purpose
page breaking algorithm that automatically adjusts the page height to
fit the music, so that everything fits on a single page. The
paper-height variable in the paper block is ignored, but other
settings work as usual. In particular, the spacing between the last
system (or top level markup) and the footer can be customized with
last-bottom-spacing in the paper block. The width of the page
is left unmodified by default but can be set with paper-width
in the paper block.
Advertiments i problemes coneguts
ly:one-page-breaking is not currently compatible with
\bookpart.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < One-page page breaking ] | [ Amunt : Page breaking ] | [ One-line-auto-height page breaking > ] | ||
One-line page breaking
The ly:one-line-breaking function is a special-purpose
page breaking algorithm that puts each score on its own page, and
on a single line. No titles or margins are typeset; only the score is
displayed.
The page width is adjusted so that the longest score fits on
one line. In particular, paper-width, line-width
and indent variables in the \paper block are ignored,
although left-margin and right-margin are still honored.
The height of the page is left unmodified.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < One-line page breaking ] | [ Amunt : Page breaking ] | [ Optimal page turning > ] | ||
One-line-auto-height page breaking
The ly:one-line-auto-height-breaking function works just like
ly:one-line-breaking except the page height is automatically
modified to fit the height of the music. Specifically, the
paper-height variable in the \paper block is set so that
it spans the height of the tallest score plus the top-margin and
bottom-margin.
Note that the top-system-spacing setting will affect the
vertical position of the music. Set it to ##f in a paper block
to simply place the music between the top and bottom margins.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < One-line-auto-height page breaking ] | [ Amunt : Page breaking ] | [ Vertical spacing > ] | ||
Optimal page turning
Often it is necessary to find a page breaking configuration so
that there is a rest at the end of every second page. This way,
the musician can turn the page without having to miss notes. The
ly:page-turn-breaking function attempts to find a page
breaking minimizing cramping and stretching, but with the
additional restriction that it is only allowed to introduce page
turns in specified places.
There are two steps to using this page breaking function. First,
you must enable it in the \paper block, as explained in
Page breaking. Then you must tell the function where you
would like to allow page breaks.
There are two ways to achieve the second step. First, you can
specify each potential page turn manually, by inserting
\allowPageTurn into your input file at the appropriate
places.
If this is too tedious, you can add a Page_turn_engraver to
a Staff or Voice context. The Page_turn_engraver will scan
the context for sections without notes (note that it does not scan
for rests; it scans for the absence of notes. This is so that
single-staff polyphony with rests in one of the parts does not
throw off the Page_turn_engraver). When it finds a
sufficiently long section without notes, the
Page_turn_engraver will insert an \allowPageTurn at
the final bar line in that section, unless there is a ‘special’
bar line (such as a double bar), in which case the
\allowPageTurn will be inserted at the final ‘special’
bar line in the section.
The Page_turn_engraver reads the context property
minimumPageTurnLength to determine how long a note-free
section must be before a page turn is considered. The default
value for minimumPageTurnLength is
(ly:make-moment 1/1). If you want to disable page turns,
set it to something ‘very large’.
\new Staff \with { \consists "Page_turn_engraver" }
{
a4 b c d |
R1 | % a page turn will be allowed here
a4 b c d |
\set Staff.minimumPageTurnLength = #(ly:make-moment 5/2)
R1 | % a page turn will not be allowed here
a4 b r2 |
R1*2 | % a page turn will be allowed here
a1
}
When using volta repeats, the Page_turn_engraver will only allow
a page turn during the repeat if there is enough time at the beginning
and end of the repeat to turn the page back. If the repeat is too
short then the Page_turn_engraver can be used to disable
page turns by setting an appropriate value for the context property
minimumRepeatLengthForPageTurn. In this case the
Page_turn_engraver will only allows turns in repeats whose
duration is longer than the value specified.
The page turning commands, \pageTurn, \noPageTurn and
\allowPageTurn, may also be used at top-level, in top-level
markups and between scores.
Instruccions predefinides
\pageTurn,
\noPageTurn,
\allowPageTurn.
Vegeu també
Notation Reference:
\paper variables for line breaking.
Snippets: Spacing.
Advertiments i problemes coneguts
Use only one Page_turn_engraver per score. If there are
more, they will interfere with each other.
Vegeu també
Notation Reference: Vertical spacing.
Snippets: Spacing.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Optimal page turning ] | [ Amunt : Spacing issues ] | [ Flexible vertical spacing within systems > ] | ||
4.4 Vertical spacing
Vertical spacing is controlled by three things: the amount of space available (i.e., paper size and margins), the amount of space between systems, and the amount of space between staves inside a system.
| 4.4.1 Flexible vertical spacing within systems | ||
| 4.4.2 Explicit staff and system positioning | ||
| 4.4.3 Vertical collision avoidance |
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Vertical spacing ] | [ Amunt : Vertical spacing ] | [ Within-system spacing properties > ] | ||
4.4.1 Flexible vertical spacing within systems
Three separate mechanisms control the flexible vertical spacing within systems, one for each of the following categories:
- ungrouped staves,
-
grouped staves (staves within a staff-group such as
ChoirStaff, etc.), and -
non-staff lines (such as
Lyrics,ChordNames, etc.).
The height of each system is determined in two steps. First, all of the staves are spaced according to the amount of space available. Then, the non-staff lines are distributed between the staves.
Note that the spacing mechanisms discussed in this section only
control the vertical spacing of staves and non-staff lines within
individual systems. The vertical spacing between separate
systems, scores, markups, and margins is controlled by
\paper variables, which are discussed in
Flexible vertical spacing \paper variables.
| Within-system spacing properties | ||
| Spacing of ungrouped staves | ||
| Spacing of grouped staves | ||
| Spacing of non-staff lines |
Within-system spacing properties
The within-system vertical spacing mechanisms are controlled by
two sets of grob properties. The first set is associated with the
VerticalAxisGroup grob, which is created by all staves and
non-staff lines. The second set is associated with the
StaffGrouper grob, which can be created by staff-groups,
but only if explicitly called. These properties are described
individually at the end of this section.
The names of these properties (except for staff-affinity)
follow the format item1-item2-spacing, where
item1 and item2 are the items to be
spaced. Note that item2 is not necessarily below
item1; for example,
nonstaff-relatedstaff-spacing will measure upwards from the
non-staff line if staff-affinity is UP.
Each distance is measured between the reference points of
the two items. The reference point for a staff is the vertical
center of its StaffSymbol (i.e., the middle line if
line-count is odd; the middle space if line-count is
even). The reference points for individual non-staff lines are
given in the following table:
| Non-staff line | Reference point |
|---|---|
ChordNames | baseline |
NoteNames | baseline |
Lyrics | baseline |
Dynamics | mid-height of ‘m’ |
FiguredBass | highest point |
FretBoards | top line |
In the following image, horizontal lines indicate the positions of these reference points:
Each of the vertical spacing grob properties (except
staff-affinity) uses the same alist structure as the
\paper spacing variables discussed in
Flexible vertical spacing \paper variables.
Specific methods
for modifying alists are discussed in Modifying alists.
Grob properties should be adjusted with an \override inside
a \score or \layout block, and not inside a
\paper block.
The following example demonstrates the two ways these alists can be modified. The first declaration updates one key-value individually, and the second completely re-defines the property:
\new Staff \with {
\override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
} { … }
\new Staff \with {
\override VerticalAxisGroup.default-staff-staff-spacing =
#'((basic-distance . 10)
(minimum-distance . 9)
(padding . 1)
(stretchability . 10))
} { … }
To change any spacing settings globally, put them in the
\layout block:
\layout {
\context {
\Staff
\override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
}
}
Standard settings for the vertical spacing grob properties are listed in VerticalAxisGroup and StaffGrouper. Default overrides for specific types of non-staff lines are listed in the relevant context descriptions in Contexts.
Properties of the VerticalAxisGroup grob
VerticalAxisGroup properties are typically adjusted with an
\override at the Staff level (or equivalent).
-
staff-staff-spacing -
Used to determine the distance between the current staff and the staff just below it in the same system, even if one or more non-staff lines (such as
Lyrics) are placed between the two staves. Does not apply to the bottom staff of a system.Initially, the
staff-staff-spacingof aVerticalAxisGroupis a Scheme function that applies the properties of theStaffGrouperif the staff is part of a group, or thedefault-staff-staff-spacingof the staff otherwise. This allows staves to be spaced differently when they are grouped. For uniform spacing regardless of grouping, this function may be replaced by a flexible-spacing alist, using the complete-redefinition form of override shown above. -
default-staff-staff-spacing A flexible-spacing alist defining the
staff-staff-spacingused for ungrouped staves, unlessstaff-staff-spacinghas been explicitly set with an\override.-
staff-affinity The direction of the staff to use for spacing the current non-staff line. Choices are
UP,DOWN, andCENTER. IfCENTER, the non-staff line will be placed equidistant between the two nearest staves on either side, unless collisions or other spacing constraints prevent this. Adjacent non-staff lines should have non-increasingstaff-affinityfrom top to bottom, e.g., a non-staff line set toUPshould not immediately follow one that is set toDOWN. Non-staff lines at the top of a system should useDOWN; those at the bottom should useUP. Settingstaff-affinityfor a staff causes it to be treated as a non-staff line. Settingstaff-affinityto#fcauses a non-staff line to be treated as a staff. Settingstaff-affinitytoUP,CENTER, orDOWNcauses a staff to be spaced as a non-staff line.-
nonstaff-relatedstaff-spacing The distance between the current non-staff line and the nearest staff in the direction of
staff-affinity, if there are no non-staff lines between the two, andstaff-affinityis eitherUPorDOWN. Ifstaff-affinityisCENTER, thennonstaff-relatedstaff-spacingis used for the nearest staves on both sides, even if other non-staff lines appear between the current one and either of the staves. This means that the placement of a non-staff line depends on both the surrounding staves and the surrounding non-staff lines. Setting thestretchabilityof one of these types of spacing to a small value will make that spacing dominate. Setting thestretchabilityto a large value will make that spacing have little effect.-
nonstaff-nonstaff-spacing The distance between the current non-staff line and the next non-staff line in the direction of
staff-affinity, if both are on the same side of the related staff, andstaff-affinityis eitherUPorDOWN.-
nonstaff-unrelatedstaff-spacing The distance between the current non-staff line and the staff in the opposite direction from
staff-affinity, if there are no other non-staff lines between the two, andstaff-affinityis eitherUPorDOWN. This can be used, for example, to require a minimum amount of padding between aLyricsline and the staff to which it does not belong.
Properties of the StaffGrouper grob
StaffGrouper properties are typically adjusted with an
\override at the StaffGroup level (or equivalent).
-
staff-staff-spacing The distance between consecutive staves within the current staff-group. The
staff-staff-spacingproperty of an individual staff’sVerticalAxisGroupgrob can be overriden with different spacing settings for that staff.-
staffgroup-staff-spacing The distance between the last staff of the current staff-group and the staff just below it in the same system, even if one or more non-staff lines (such as
Lyrics) exist between the two staves. Does not apply to the bottom staff of a system. Thestaff-staff-spacingproperty of an individual staff’sVerticalAxisGroupgrob can be overriden with different spacing settings for that staff.
Vegeu també
Notation Reference:
Flexible vertical spacing \paper variables,
Modifying alists.
Installed Files: ‘ly/engraver-init.ly’, ‘scm/define-grobs.scm’.
Internals Reference: Contexts, VerticalAxisGroup, StaffGrouper.
Spacing of ungrouped staves
Staves (such as Staff, DrumStaff,
TabStaff, etc.) are contexts that can contain one or more
voice contexts, but cannot contain any other staves.
The following properties affect the spacing of ungrouped staves:
-
VerticalAxisGroupproperties:-
default-staff-staff-spacing -
staff-staff-spacing
-
These grob properties are described individually above; see Within-system spacing properties.
Additional properties are involved for staves that are part of a staff-group; see Spacing of grouped staves.
The following example shows how the default-staff-staff-spacing
property can affect the spacing of ungrouped staves.
The same overrides applied to staff-staff-spacing would
have the same effect, but would also apply in cases where the staves
are combined in a group or groups.
\layout {
\context {
\Staff
\override VerticalAxisGroup.default-staff-staff-spacing =
#'((basic-distance . 8)
(minimum-distance . 7)
(padding . 1))
}
}
<<
% The very low note here needs more room than 'basic-distance
% can provide, so the distance between this staff and the next
% is determined by 'padding.
\new Staff { b,2 r | }
% Here, 'basic-distance provides enough room, and there is no
% need to compress the space (towards 'minimum-distance) to make
% room for anything else on the page, so the distance between
% this staff and the next is determined by 'basic-distance.
\new Staff { \clef bass g2 r | }
% By setting 'padding to a negative value, staves can be made to
% collide. The lowest acceptable value for 'basic-distance is 0.
\new Staff \with {
\override VerticalAxisGroup.default-staff-staff-spacing =
#'((basic-distance . 3.5)
(padding . -10))
} { \clef bass g2 r | }
\new Staff { \clef bass g2 r | }
>>
Vegeu també
Installed Files: ‘scm/define-grobs.scm’.
Snippets: Spacing.
Internals Reference: VerticalAxisGroup.
Spacing of grouped staves
In orchestral and other large scores, it is common to place staves in groups. The space between groups is typically larger than the space between staves of the same group.
Staff-groups (such as StaffGroup, ChoirStaff,
etc.) are contexts that can contain one or more staves
simultaneously.
The following properties affect the spacing of staves inside staff-groups:
-
VerticalAxisGroupproperties:-
staff-staff-spacing
-
-
StaffGrouperproperties:-
staff-staff-spacing -
staffgroup-staff-spacing
-
These grob properties are described individually above; see Within-system spacing properties.
The following example shows how properties of the
StaffGrouper grob can affect the spacing of grouped staves:
\layout {
\context {
\Score
\override StaffGrouper.staff-staff-spacing.padding = #0
\override StaffGrouper.staff-staff-spacing.basic-distance = #1
}
}
<<
\new PianoStaff \with {
\override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20
} <<
\new Staff { c'1 }
\new Staff { c'1 }
>>
\new StaffGroup <<
\new Staff { c'1 }
\new Staff { c'1 }
>>
>>
Vegeu també
Installed Files: ‘scm/define-grobs.scm’.
Snippets: Spacing.
Internals Reference: VerticalAxisGroup, StaffGrouper.
Spacing of non-staff lines
Non-staff lines (such as Lyrics, ChordNames,
etc.) are contexts whose layout objects are engraved like staves
(i.e., in horizontal lines within systems). Specifically,
non-staff lines are non-staff contexts that contain the
Axis_group_engraver.
The following properties affect the spacing of non-staff lines:
-
VerticalAxisGroupproperties:-
staff-affinity -
nonstaff-relatedstaff-spacing -
nonstaff-nonstaff-spacing -
nonstaff-unrelatedstaff-spacing
-
These grob properties are described individually above; see Within-system spacing properties.
The following example shows how the
nonstaff-nonstaff-spacing property can affect the spacing
of consecutive non-staff lines. Here, by setting the
stretchability key to a very high value, the lyrics are
able to stretch much more than usual:
\layout {
\context {
\Lyrics
\override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000
}
}
\new StaffGroup
<<
\new Staff \with {
\override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30))
} { c'1 }
\new Lyrics \with {
\override VerticalAxisGroup.staff-affinity = #UP
} \lyricmode { up }
\new Lyrics \with {
\override VerticalAxisGroup.staff-affinity = #CENTER
} \lyricmode { center }
\new Lyrics \with {
\override VerticalAxisGroup.staff-affinity = #DOWN
} \lyricmode { down }
\new Staff { c'1 }
>>
Vegeu també
Installed Files: ‘ly/engraver-init.ly’, ‘scm/define-grobs.scm’.
Snippets: Spacing.
Internals Reference: Contexts, VerticalAxisGroup.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Spacing of non-staff lines ] | [ Amunt : Vertical spacing ] | [ Vertical collision avoidance > ] | ||
4.4.2 Explicit staff and system positioning
One way to understand the flexible vertical spacing mechanisms explained above is as a collection of settings that control the amount of vertical padding between staves and systems.
It is possible to approach vertical spacing in a different way
using NonMusicalPaperColumn.line-break-system-details.
While the flexible vertical spacing mechanisms specify vertical
padding, NonMusicalPaperColumn.line-break-system-details
can specify exact vertical positions on the page.
NonMusicalPaperColumn.line-break-system-details accepts
an associative list of four different settings:
-
X-offset -
Y-offset -
extra-offset -
alignment-distances
Grob overrides, including the overrides for NonMusicalPaperColumn
below, can occur in any of three different places in an input file:
- in the middle of note entry directly
- in a
\contextblock - in the
\withblock
When we override NonMusicalPaperColumn, we use the usual
\override command in \context blocks and in the
\with block. On the other hand, when we override
NonMusicalPaperColumn in the middle of note entry,
use the special \overrideProperty command. Here are some
example NonMusicalPaperColumn overrides with the special
\overrideProperty command:
\overrideProperty NonMusicalPaperColumn.line-break-system-details
#'((X-offset . 20))
\overrideProperty NonMusicalPaperColumn.line-break-system-details
#'((Y-offset . 40))
\overrideProperty NonMusicalPaperColumn.line-break-system-details
#'((X-offset . 20)
(Y-offset . 40))
\overrideProperty NonMusicalPaperColumn.line-break-system-details
#'((alignment-distances . (15)))
\overrideProperty NonMusicalPaperColumn.line-break-system-details
#'((X-offset . 20)
(Y-offset . 40)
(alignment-distances . (15)))
To understand how each of these different settings work, we begin by looking at an example that includes no overrides at all.
\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
\score {
<<
\new Staff <<
\new Voice {
s1*5 \break
s1*5 \break
s1*5 \break
}
\new Voice { \repeat unfold 15 { c'4 c' c' c' } }
>>
\new Staff {
\repeat unfold 15 { d'4 d' d' d' }
}
>>
}
}
This score isolates both line-breaking and page-breaking information in a dedicated voice. This technique of creating a breaks voice will help keep layout separate from music entry as our example becomes more complicated. Also see Breaks.
By using explicit \break commands, the music is divided into five
measures per line. Vertical spacing is from LilyPond’s own defaults but
the vertical startpoint of each system is set explicitly using the
Y-offset pair in the line-break-system-details attribute
of the NonMusicalPaperColumn grob:
\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
\score {
<<
\new Staff <<
\new Voice {
\overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
#'((Y-offset . 0))
s1*5 \break
\overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
#'((Y-offset . 40))
s1*5 \break
\overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
#'((Y-offset . 60))
s1*5 \break
}
\new Voice { \repeat unfold 15 { c'4 c' c' c' } }
>>
\new Staff {
\repeat unfold 15 { d'4 d' d' d' }
}
>>
}
}
Note that line-break-system-details takes an associative list of
potentially many values, but that we set only one value here. Note,
too, that the Y-offset property here determines the exact vertical
position on the page at which each new system will render.
In contrast to the absolute positioning available through
Y-offset and X-offset, relative positioning is possible
with the extra-offset property of
line-break-system-details. Placement is relative to the
default layout or to the absolute positioning created by setting
X-offset and Y-offset. The property extra-offset
accepts a pair consisting of displacements along the X-axis and
Y-axis.
\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
\score {
<<
\new Staff <<
\new Voice {
s1*5 \break
\overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
#'((extra-offset . (0 . 10)))
s1*5 \break
\overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
#'((extra-offset . (0 . 10)))
s1*5 \break
}
\new Voice { \repeat unfold 15 { c'4 c' c' c' } }
>>
\new Staff {
\repeat unfold 15 { d'4 d' d' d' }
}
>>
}
}
Now that we have set the vertical startpoint of each system
explicitly, we can also set the vertical distances between staves
within each system manually. We do this using the alignment-distances
subproperty of line-break-system-details.
\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
\score {
<<
\new Staff <<
\new Voice {
\overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
#'((Y-offset . 20)
(alignment-distances . (10)))
s1*5 \break
\overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
#'((Y-offset . 60)
(alignment-distances . (15)))
s1*5 \break
\overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
#'((Y-offset . 85)
(alignment-distances . (20)))
s1*5 \break
}
\new Voice { \repeat unfold 15 { c'4 c' c' c' } }
>>
\new Staff {
\repeat unfold 15 { d'4 d' d' d' }
}
>>
}
}
Note that here we assign two different values to the
line-break-system-details attribute of the
NonMusicalPaperColumn grob. Though the
line-break-system-details attribute alist accepts many
additional spacing parameters (including, for example, a corresponding
X-offset pair), we need only set the Y-offset and
alignment-distances pairs to control the vertical startpoint of
every system and every staff. Finally, note that alignment-distances
specifies the vertical positioning of staves but not of staff groups.
\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
\score {
<<
\new Staff <<
\new Voice {
\overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
#'((Y-offset . 0)
(alignment-distances . (30 10)))
s1*5 \break
\overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
#'((Y-offset . 60)
(alignment-distances . (10 10)))
s1*5 \break
\overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
#'((Y-offset . 100)
(alignment-distances . (10 30)))
s1*5 \break
}
\new Voice { \repeat unfold 15 { c'4 c' c' c' } }
>>
\new StaffGroup <<
\new Staff { \repeat unfold 15 { d'4 d' d' d' } }
\new Staff { \repeat unfold 15 { e'4 e' e' e' } }
>>
>>
}
}
Some points to consider:
- When using
alignment-distances, lyrics and other non-staff lines do not count as a staff. - The units of the numbers passed to
X-offset,Y-offset,extra-offsetandalignment-distancesare interpreted as multiples of the distance between adjacent staff lines. Positive values move staves and lyrics up, negative values move staves and lyrics down. - Because the
NonMusicalPaperColumn.line-break-system-detailssettings given here allow the positioning of staves and systems anywhere on the page, it is possible to violate paper or margin boundaries or even to print staves or systems on top of one another. Reasonable values passed to these different settings will avoid this.
Vegeu també
Snippets: Spacing.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Explicit staff and system positioning ] | [ Amunt : Vertical spacing ] | [ Horizontal spacing > ] | ||
4.4.3 Vertical collision avoidance
Intuitively, there are some objects in musical notation that belong to the staff and there are other objects that should be placed outside the staff. Objects belonging outside the staff include things such as rehearsal marks, text and dynamic markings (from now on, these will be called outside-staff objects). LilyPond’s rule for the vertical placement of outside-staff objects is to place them as close to the staff as possible but not so close that they collide with another object.
LilyPond uses the outside-staff-priority property to determine
whether a grob is an outside-staff object: if outside-staff-priority
is a number, the grob is an outside-staff object. In addition,
outside-staff-priority tells LilyPond in which order the objects
should be placed.
First, LilyPond places all the objects that do not belong outside
the staff. Then it sorts the outside-staff objects according to their
outside-staff-priority (in increasing order). One by one, LilyPond
takes the outside-staff objects and places them so that they do
not collide with any objects that have already been placed. That
is, if two outside-staff grobs are competing for the same space, the one
with the lower outside-staff-priority will be placed closer to
the staff.
A listing of outside-staff-priorities may be found in The outside-staff-priority property.
\relative c'' {
c4_"Text"\pp
r2.
\once \override TextScript.outside-staff-priority = #1
c4_"Text"\pp % this time the text will be closer to the staff
r2.
% by setting outside-staff-priority to a non-number,
% we disable the automatic collision avoidance
\once \override TextScript.outside-staff-priority = ##f
\once \override DynamicLineSpanner.outside-staff-priority = ##f
c4_"Text"\pp % now they will collide
}
The vertical padding around outside-staff objects
can be controlled with outside-staff-padding.
\relative {
\once \override TextScript.outside-staff-padding = #0
a'4-"outside-staff-padding = #0"
\once \override TextScript.outside-staff-padding = #3
d-"outside-staff-padding = #3"
c-"default outside-staff-padding"
b-"default outside-staff-padding"
R1
}
By default, outside-staff objects are placed so they avoid
a horizontal collision with previously-positioned grobs. This
can lead to situations in which objects are placed close to each
other horizontally.
As shown in the example below, setting outside-staff-horizontal-padding
increases the horizontal spacing required, and in this case moves the text up
to prevent it from getting too close to the ledger lines.
\relative {
c''4^"Word" c c''2
R1
\once \override TextScript.outside-staff-horizontal-padding = #1
c,,4^"Word" c c''2
}
Vegeu també
Snippets: Spacing.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Vertical collision avoidance ] | [ Amunt : Spacing issues ] | [ Horizontal spacing overview > ] | ||
4.5 Horizontal spacing
| 4.5.1 Horizontal spacing overview | ||
| 4.5.2 New spacing section | ||
| 4.5.3 Changing horizontal spacing | ||
| 4.5.4 Line width | ||
| 4.5.5 Proportional notation |
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Horizontal spacing ] | [ Amunt : Horizontal spacing ] | [ New spacing section > ] | ||
4.5.1 Horizontal spacing overview
The spacing engine translates differences in durations into stretchable
distances (‘springs’) of differing lengths. Longer durations get
more space, shorter durations get less. The shortest durations get a
fixed amount of space (which is controlled by
shortest-duration-space in the
SpacingSpanner
object). The longer the duration, the more space it gets: doubling a
duration adds spacing-increment of space to the note.
For example, the following piece contains lots of half, quarter, and 8th notes; the eighth note is followed by 1 note head width (NHW). The quarter note is followed by 2 NHW, the half by 3 NHW, etc.
\relative c' {
c2 c4. c8
c4. c8 c4. c8
c8 c c4 c c
}
Normally, spacing-increment is set to 1.2 staff space, which is
approximately the width of a note head, and
shortest-duration-space is set to 2.0, meaning that the
shortest note gets 2.4 staff space (2.0 times the
spacing-increment) of horizontal space. This space is counted
from the left edge of the symbol, so the shortest notes are generally
followed by one NHW of space.
If one would follow the above procedure exactly, then adding a single 32nd note to a score that uses 8th and 16th notes, would widen up the entire score a lot. The shortest note is no longer a 16th, but a 32nd, thus adding 1 NHW to every note. To prevent this, the shortest duration for spacing is not the shortest note in the score, but rather the one which occurs most frequently.
The most common shortest duration is determined as follows: in every measure, the shortest duration is determined. The most common shortest duration is taken as the basis for the spacing, with the stipulation that this shortest duration should always be equal to or shorter than an 8th note.
These durations may also be customized. If you set the
common-shortest-duration in
SpacingSpanner, then
this sets the base duration for spacing. The maximum duration for this
base (normally an 8th), is set through base-shortest-duration.
Notes that are even shorter than the common shortest note are followed by a space that is proportional to their duration relative to the common shortest note. So if we were to add only a few 16th notes to the example above, they would be followed by half a NHW:
\relative { c''2 c4. c8 | c4. c16[ c] c4. c8 | c8 c c4 c c }
As explained in the Essay on automated music engraving, stem
directions will influence spacing (see
Optical spacing) and can
be adjusted using the stem-spacing-correction property of the
NoteSpacing object (which are generated for every
Voice context).
The StaffSpacing object (generated in
Staff context)
contains the same property for controlling the stem/bar line spacing.
The following example shows this; once with the default settings and once with an exaggerated adjustment:
Proportional notation is supported; see Proportional notation.
Vegeu també
Essay on automated music engraving: Optical spacing.
Snippets: Spacing.
Internals Reference: SpacingSpanner, NoteSpacing, StaffSpacing, NonMusicalPaperColumn.
Advertiments i problemes coneguts
There is no convenient mechanism to manually override spacing. The following work-around may be used to insert extra space into a score, adjusting the padding value as necessary.
\override Score.NonMusicalPaperColumn.padding = #10
No work-around exists for decreasing the amount of space.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Horizontal spacing overview ] | [ Amunt : Horizontal spacing ] | [ Changing horizontal spacing > ] | ||
4.5.2 New spacing section
New sections with different spacing parameters can be started with the
newSpacingSection command. This is useful for sections with
different notions of ‘long’ and ‘short’ notes. The
\newSpacingSection command creates a new SpacingSpanner
object at that musical moment.
In the following example the time signature change introduces a new section, and the 16ths notes are automatically spaced slightly wider apart.
\relative c' {
\time 2/4
c4 c8 c
c8 c c4 c16[ c c8] c4
\newSpacingSection
\time 4/16
c16[ c c8]
}
If the automatic spacing adjustments do not give the required spacing,
manual \overrides may be applied to its properties. These must
be applied at the same musical moment as the \newSpacingSection
command itself and will then affect the spacing of all the following
music until the properties are changed in a new spacing section, for
example:
\relative c' {
\time 4/16
c16[ c c8]
\newSpacingSection
\override Score.SpacingSpanner.spacing-increment = #2
c16[ c c8]
\newSpacingSection
\revert Score.SpacingSpanner.spacing-increment
c16[ c c8]
}
Vegeu també
Snippets: Spacing.
Internals Reference: SpacingSpanner.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < New spacing section ] | [ Amunt : Horizontal spacing ] | [ Line width > ] | ||
4.5.3 Changing horizontal spacing
Horizontal spacing may be altered with the
base-shortest-duration property. Here
we compare the same music; once without altering
the property, and then altered. Larger values
of ly:make-moment will produce smaller
music. Note that ly:make-moment constructs
a duration, so 1 4 is a longer duration
than 1 16.
\score {
\relative {
g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
}
}
\score {
\relative {
g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
}
\layout {
\context {
\Score
\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/16)
}
}
}
Fragments de codi seleccionats
By default, spacing in tuplets depends on various non-duration
factors (such as accidentals, clef changes, etc). To disregard
such symbols and force uniform equal-duration spacing, use
Score.SpacingSpanner.uniform-stretching. This
property can only be changed at the beginning of a score,
\score {
<<
\new Staff {
\tuplet 5/4 { c8 c c c c } c8 c c c
}
\new Staff {
c8 c c c \tuplet 5/4 { c8 c c c c }
}
>>
\layout {
\context {
\Score
\override SpacingSpanner.uniform-stretching = ##t
}
}
}
When strict-note-spacing is set, notes are spaced without
regard for clefs, bar lines, and grace notes,
\override Score.SpacingSpanner.strict-note-spacing = ##t
\new Staff \relative {
c''8[ c \clef alto c \grace { c16 c } c8 c c] c32[ c] }
Vegeu també
Snippets: Spacing.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Changing horizontal spacing ] | [ Amunt : Horizontal spacing ] | [ Proportional notation > ] | ||
4.5.4 Line width
The most basic settings influencing the spacing are indent and
line-width. They are set in the \layout block. They
control the indentation of the first line of music, and the lengths of
the lines.
If ragged-right is set to true in the \layout block, then
systems ends at their natural horizontal length, instead of being spread
horizontally to fill the whole line. This is useful for
short fragments, and for checking how tight the natural spacing is.
The normal default setting is false, but if the score has only one
system the default value is true.
The option ragged-last is similar to ragged-right, but
only affects the last line of the piece. No restrictions are put on
that line. The result is similar to formatting text paragraphs. In a
paragraph, the last line simply takes its natural horizontal length.
\layout {
indent = #0
line-width = #150
ragged-last = ##t
}
Vegeu també
Snippets: Spacing.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Line width ] | [ Amunt : Horizontal spacing ] | [ Fitting music onto fewer pages > ] | ||
4.5.5 Proportional notation
LilyPond supports proportional notation, a type of horizontal spacing in which each note consumes an amount of horizontal space exactly equivalent to its rhythmic duration. This type of proportional spacing is comparable to horizontal spacing on top of graph paper. Some late 20th- and early 21st-century scores use proportional notation to clarify complex rhythmic relationships or to facilitate the placement of timelines or other graphics directly in the score.
LilyPond supports five different settings for proportional notation, which may be used together or alone:
-
proportionalNotationDuration -
uniform-stretching -
strict-note-spacing -
\remove "Separating_line_group_engraver" -
\override PaperColumn.used = ##t
In the examples that follow, we explore these five different proportional notation settings and examine how these settings interact.
We start with the following one-measure example, which uses classical spacing with ragged-right turned on.
\score {
<<
\new RhythmicStaff {
c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
>>
}
Notice that the half note which begins the measure takes up far less than half of the horizontal space of the measure. Likewise, the sixteenth notes and sixteenth-note quintuplets (or twentieth notes) which end the measure together take up far more than half the horizontal space of the measure.
In classical engraving, this spacing may be exactly what we want because we can borrow horizontal space from the half note and conserve horizontal space across the measure as a whole.
On the other hand, if we want to insert a measured timeline or other graphic above or below our score, we need proportional notation. We turn proportional notation on with the proportionalNotationDuration setting.
\score {
<<
\new RhythmicStaff {
c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
>>
\layout {
\context {
\Score
proportionalNotationDuration = #(ly:make-moment 1/20)
}
}
}
The half note at the beginning of the measure and the faster notes in the second half of the measure now occupy equal amounts of horizontal space. We could place a measured timeline or graphic above or below this example.
The proportionalNotationDuration setting is a context setting
that lives in Score. Remember that context settings can appear
in one of three locations within our input file – in a \with
block, in a \context block, or directly in music entry preceded
by the \set command. As with all context settings, users can
pick which of the three different locations they would like to
set proportionalNotationDuration in to.
The proportionalNotationDuration setting takes a single argument,
which is the reference duration against that all music will be spaced.
The LilyPond Scheme function make-moment takes two arguments
– a numerator and denominator which together express some fraction of
a whole note. The call (ly:make-moment 1/20) therefore produces
a reference duration of a twentieth note. Values such as
(ly:make-moment 1/16), (ly:make-moment 1/8), and
(ly:make-moment 3/97) are all possible as well.
How do we select the right reference duration to pass to
proportionalNotationDuration? Usually by a process of trial
and error, beginning with a duration close to the fastest (or smallest)
duration in the piece. Smaller reference durations space music loosely;
larger reference durations space music tightly.
\score {
<<
\new RhythmicStaff {
c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
>>
\layout {
\context {
\Score
proportionalNotationDuration = #(ly:make-moment 1/8)
}
}
}
\score {
<<
\new RhythmicStaff {
c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
>>
\layout {
\context {
\Score
proportionalNotationDuration = #(ly:make-moment 1/16)
}
}
}
\score {
<<
\new RhythmicStaff {
c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
>>
\layout {
\context {
\Score
proportionalNotationDuration = #(ly:make-moment 1/32)
}
}
}
Note that too large a reference duration – such as the eighth note, above – spaces music too tightly and can cause note head collisions. Also that proportional notation in general takes up more horizontal space than classical spacing. Proportional spacing provides rhythmic clarity at the expense of horizontal space.
Next we examine how to optimally space overlapping tuplets.
We start by examining what happens to our original example, with classical spacing, when we add a second staff with a different type of tuplet.
\score {
<<
\new RhythmicStaff {
c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
\new RhythmicStaff {
\tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
}
>>
}
The spacing is bad because the evenly spaced notes of the bottom staff
do not stretch uniformly. Classical engravings include very few complex
triplets and so classical engraving rules can generate this type of
result. Setting proportionalNotationDuration fixes this.
\score {
<<
\new RhythmicStaff {
c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
\new RhythmicStaff {
\tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
}
>>
\layout {
\context {
\Score
proportionalNotationDuration = #(ly:make-moment 1/20)
}
}
}
But if we look very carefully we can see that notes of the second half
of the 9-tuplet space ever so slightly more widely than the notes
of the first half of the 9-tuplet. To ensure uniform stretching, we
turn on uniform-stretching, which is a property of
SpacingSpanner.
\score {
<<
\new RhythmicStaff {
c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
\new RhythmicStaff {
\tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
}
>>
\layout {
\context {
\Score
proportionalNotationDuration = #(ly:make-moment 1/20)
\override SpacingSpanner.uniform-stretching = ##t
}
}
}
Our two-staff example now spaces exactly, our rhythmic relationships are visually clear, and we can include a measured timeline or graphic if we want.
Note that the LilyPond’s proportional notation package expects that all proportional scores set the SpacingSpanner’s ’uniform-stretching attribute to ##t. Setting proportionalNotationDuration without also setting the SpacingSpanner’s ’uniform-stretching attribute to ##t will, for example, cause Skips to consume an incorrect amount of horizontal space.
The SpacingSpanner is an abstract grob that lives in the Score context. As with our settings of proportionalNotationDuration, overrides to the SpacingSpanner can occur in any of three different places in our input file – in the Score \with block, in a Score \context block, or in note entry directly.
There is by default only one SpacingSpanner per Score. This
means that, by default, uniform-stretching is either turned on for the
entire score or turned off for the entire score. We can, however,
override this behavior and turn on different spacing features at
different places in the score. We do this with the command
\newSpacingSection. See New spacing section, for more info.
Next we examine the effects of the Separating_line_group_engraver and
see why proportional scores frequently remove this engraver. The following
example shows that there is a small amount of “prefatory” space
just before the first note in each system.
\paper {
indent = #0
}
\new Staff {
c'1
\break
c'1
}
The amount of this prefatory space is the same whether after a time
signature, a key signature or a clef. Separating_line_group_engraver
is responsible for this space. Removing Separating_line_group_engraver
reduces this space to zero.
\paper {
indent = #0
}
\new Staff \with {
\remove "Separating_line_group_engraver"
} {
c'1
\break
c'1
}
non-musical elements like time signatures, key signatures, clefs and accidentals are problematic in proportional notation. None of these elements has rhythmic duration. But all of these elements consume horizontal space. Different proportional scores approach these problems differently.
It may be possible to avoid spacing problems with key signatures simply by not having any. This is a valid option since most proportional scores are contemporary music. The same may be true of time signatures, especially for those scores that include a measured timeline or other graphic. But these scores are exceptional and most proportional scores include at least some time signatures. Clefs and accidentals are even more essential.
So what strategies exist for spacing non-musical elements in a
proportional context? One good option is the strict-note-spacing
property of SpacingSpanner. Compare the two scores below:
\new Staff {
\set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
c''8 8 8 \clef alto d'2 2
}
\new Staff {
\set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
\override Score.SpacingSpanner.strict-note-spacing = ##t
c''8 8 8 \clef alto d'2 2
}
Both scores are proportional, but the spacing in the first score is too loose because of the clef change. The spacing of the second score remains strict, however, because strict-note-spacing is turned on. Turning on strict-note-spacing causes the width of time signatures, key signatures, clefs and accidentals to play no part in the spacing algorithm.
In addition to the settings given here, there are other settings that frequently appear in proportional scores. These include:
-
\override SpacingSpanner.strict-grace-spacing = ##t -
\set tupletFullLength = ##t -
\override Beam.breakable = ##t -
\override Glissando.breakable = ##t -
\override TextSpanner.breakable = ##t -
\remove "Forbid_line_break_engraver" in the Voice context
These settings space grace notes strictly, extend tuplet brackets to mark both rhythmic start- and stop-points, and allow spanning elements to break across systems and pages. See the respective parts of the manual for these related settings.
Vegeu també
Notation Reference: New spacing section.
Snippets: Spacing.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Proportional notation ] | [ Amunt : Spacing issues ] | [ Displaying spacing > ] | ||
4.6 Fitting music onto fewer pages
Sometimes you can end up with one or two staves on a second (or third, or fourth…) page. This is annoying, especially if you look at previous pages and it looks like there is plenty of room left on those.
When investigating layout issues, annotate-spacing is an
invaluable tool. This command prints the values of various layout
spacing variables; for more details see the following section,
Displaying spacing.
| 4.6.1 Displaying spacing | ||
| 4.6.2 Changing spacing |
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Fitting music onto fewer pages ] | [ Amunt : Fitting music onto fewer pages ] | [ Changing spacing > ] | ||
4.6.1 Displaying spacing
To graphically display the dimensions of vertical layout variables
that may be altered for page formatting, set
annotate-spacing in the \paper block:
\book {
\score { { c4 } }
\paper { annotate-spacing = ##t }
}
All layout dimensions are displayed in staff-spaces, regardless
of the units specified in the \paper or \layout block.
In the above example, paper-height has a value of 59.75
staff-spaces, and the staff-size is 20 points (the
default value). Note that:
| 1 point | = (25.4/72.27) mm |
| 1 staff-space | = (staff-size)/4 pts |
= (staff-size)/4 * (25.4/72.27) mm |
In this case, one staff-space is approximately equal to
1.757mm. Thus the paper-height measurement of 59.75
staff-spaces is equivalent to 105 millimeters, the height
of a6 paper in landscape orientation. The pairs
(a,b) are intervals, where a is the lower
edge and b the upper edge of the interval.
Vegeu també
Notation Reference: Setting the staff size.
Snippets: Spacing.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Changing defaults >> ] | ||
| [ < Displaying spacing ] | [ Amunt : Fitting music onto fewer pages ] | [ Changing defaults > ] | ||
4.6.2 Changing spacing
The output of annotate-spacing reveals vertical dimensions
in great detail. For details about modifying margins and other
layout variables, see Page layout.
Other than margins, there are a few other options to save space:
-
Force systems to move as close together as possible (to fit as
many systems as possible onto a page) while being spaced so that
there is no blank space at the bottom of the page.
\paper { system-system-spacing = #'((basic-distance . 0.1) (padding . 0)) ragged-last-bottom = ##f ragged-bottom = ##f } -
Force the number of systems. This can help in two ways. Just
setting a value, even the same value as the number of systems
being typeset by default, will sometimes cause more systems to
be fitted onto each page, as an estimation step is then bypassed,
giving a more accurate fit to each page. Also, forcing an actual
reduction in the number of systems may save a further page. For
example, if the default layout has 11 systems, the following
assignment will force a layout with 10 systems.
\paper { system-count = #10 } -
Force the number of pages. For example, the following
assignment will force a layout with 2 pages.
\paper { page-count = #2 } -
Avoid (or reduce) objects that increase the vertical size of a
system. For example, volta brackets for alternative repeat endings
require extra space. If these endings are spread over two systems,
they take up more space than if they were on the same system.
As another example, dynamics that ‘stick out’ of a system
can be moved closer to the staff:
\relative e' { e4 c g\f c e4 c g-\tweak X-offset #-2.7 \f c } -
Alter the horizontal spacing via
SpacingSpanner. For more details, see Changing horizontal spacing. The following example illustrates the default spacing:\score { \relative { g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 | g4 e e2 | } }The next example modifies
common-shortest-durationfrom a value of1/4to1/2. The quarter note is the most common and shortest duration in this example, so by making this duration longer, a ‘squeezing’ effect occurs:\score { \relative { g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 | g4 e e2 | } \layout { \context { \Score \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/2) } } }The
common-shortest-durationproperty cannot be modified dynamically, so it must always be placed in a\contextblock so that it applies to the whole score.
Vegeu també
Notation Reference: Page layout, Changing horizontal spacing.
Snippets: Spacing.
| [ << Spacing issues ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Changing spacing ] | [ Amunt : Top ] | [ Interpretation contexts > ] | ||
5. Changing defaults
The purpose of LilyPond’s design is to provide the finest quality output by default. Nevertheless, it may happen that you need to change this default layout. The layout is controlled through a large number of ‘knobs and switches’ collectively called ‘properties’. A tutorial introduction to accessing and modifying these properties can be found in the Learning Manual, see Tweaking output. This should be read first. This chapter covers similar ground, but in a style more appropriate to a reference manual.
The definitive description of the controls available for tuning can be found in a separate document: the Internals Reference. That manual lists all the variables, functions and options available in LilyPond. It is written as a HTML document, which is available on-line, and is also included with the LilyPond documentation package.
Internally, LilyPond uses Scheme (a LISP dialect) to provide
infrastructure. Overriding layout decisions in effect accesses the
program internals, which requires Scheme input. Scheme elements are
introduced in a ‘.ly’ file with the hash
mark #.1
| 5.1 Interpretation contexts | ||
| 5.2 Explaining the Internals Reference | ||
| 5.3 Modifying properties | ||
| 5.4 Useful concepts and properties | ||
| 5.5 Advanced tweaks | ||
| 5.6 Using music functions |
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Changing defaults ] | [ Amunt : Changing defaults ] | [ Contexts explained > ] | ||
5.1 Interpretation contexts
This section describes what contexts are, and how to modify them.
Vegeu també
Learning Manual: Contexts and engravers.
Installed Files: ‘ly/engraver-init.ly’, ‘ly/performer-init.ly’.
Snippets: Contexts and engravers.
Internals Reference: Contexts, Engravers and Performers.
5.1.1 Contexts explained
Contexts are arranged hierarchically:
| Output definitions - blueprints for contexts | ||
| Score - the master of all contexts | ||
| Top-level contexts - staff containers | ||
| Intermediate-level contexts - staves | ||
| Bottom-level contexts - voices |
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Contexts explained ] | [ Amunt : Contexts explained ] | [ Score - the master of all contexts > ] | ||
Output definitions - blueprints for contexts
This section explains the relevance of output definitions when working with contexts. Examples for actual output definitions are given later (see Changing all contexts of the same type).
While music written in a file may refer to context types and
names, contexts are created only when the music is actually being
interpreted. LilyPond interprets music under control of an
‘output definition’ and may do so for several different output
definitions, resulting in different output. The output definition
relevant for printing music is specified using \layout.
A much simpler output definition used for producing Midi output is
specified using \midi. Several other output definitions
are used by LilyPond internally, like when using the part combiner
(Combinació automàtica de les parts) or creating music quotes
(Cites a altres veus).
Output definitions define the relation between contexts as well as
their respective default settings. While most changes will
usually be made inside of a \layout block, Midi-related
settings will only have an effect when made within a \midi
block.
Some settings affect several outputs: for example, if
autoBeaming is turned off in some context, beams count as
melismata for the purpose of matching music to lyrics as described
in Duració automàtica de les síl·labes. This matching is done both
for printed output as well as for Midi. If changes made to
autoBeaming within a context definition of a \layout
block are not repeated in the corresponding \midi block,
lyrics and music will get out of sync in Midi.
Vegeu també
Installed Files: ‘ly/engraver-init.ly’. ‘ly/performer-init.ly’.
Score - the master of all contexts
This is the top level notation context. No other context can contain a Score context. By default the Score context handles the administration of time signatures and makes sure that items such as clefs, time signatures, and key-signatures are aligned across staves.
A Score context is instantiated implicitly when a
\score {…} block is processed.
Top-level contexts - staff containers
StaffGroup
Groups staves while adding a bracket on the left side, grouping
the staves together. The bar lines of the contained staves are
connected vertically. StaffGroup only consists of a collection
of staves, with a bracket in front and spanning bar lines.
ChoirStaff
Identical to StaffGroup except that the bar lines of the
contained staves are not connected vertically.
GrandStaff
A group of staves, with a brace on the left side, grouping the staves together. The bar lines of the contained staves are connected vertically.
PianoStaff
Just like GrandStaff, but with support for instrument names
to the left of each system.
Intermediate-level contexts - staves
Staff
Handles clefs, bar lines, keys, accidentals. It can contain
Voice contexts.
RhythmicStaff
Like Staff but for printing rhythms. Pitches are ignored
when engraving; the notes are printed on one line. The MIDI
rendition retains pitches unchanged.
TabStaff
Context for generating tablature. By default lays the music expression out as a guitar tablature, printed on six lines.
DrumStaff
Handles typesetting for percussion. Can contain DrumVoice.
VaticanaStaff
Same as Staff, except that it is designed for typesetting
a piece in gregorian style.
MensuralStaff
Same as Staff, except that it is designed for typesetting
a piece in mensural style.
Bottom-level contexts - voices
Voice-level contexts initialise certain properties and start
appropriate engravers. A bottom-level context is one without
defaultchild. While it is possible to let it
accept/contain subcontexts, they can only be created and entered
explicitly.
Voice
Corresponds to a voice on a staff. This context handles the conversion of dynamic signs, stems, beams, super- and sub-scripts, slurs, ties, and rests. You have to instantiate this explicitly if you require multiple voices on the same staff.
VaticanaVoice
Same as Voice, except that it is designed for typesetting
a piece in gregorian style.
MensuralVoice
Same as Voice, with modifications for typesetting a piece in
mensural style.
Lyrics
Corresponds to a voice with lyrics. Handles the printing of a single line of lyrics.
DrumVoice
The voice context used in a percussion staff.
FiguredBass
The context in which BassFigure objects are created from
input entered in \figuremode mode.
TabVoice
The voice context used within a TabStaff context. Usually
left to be created implicitly.
CueVoice
A voice context used to render notes of a reduced size, intended primarily for adding cue notes to a staff, see Format de les notes guia. Usually left to be created implicitly.
ChordNames
Typesets chord names.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Bottom-level contexts - voices ] | [ Amunt : Interpretation contexts ] | [ Keeping contexts alive > ] | ||
5.1.2 Creating and referencing contexts
LilyPond will create lower-level contexts automatically if a music
expression is encountered before a suitable context exists, but this
is usually successful only for simple scores or music fragments like
the ones in the documentation. For more complex scores it is
advisable to specify all contexts explicitly with either the
\new or \context command. The syntax of
these two commands is very similar:
[\new | \context] Context [ = name] [music-expression]
where either \new or \context may be specified.
Context is the type of context which is to be created,
name is an optional name to be given to the particular context
being created and music-expression is a single music expression
that is to be interpreted by the engravers and performers in this
context.
The \new prefix without a name is commonly used to create
scores with many staves:
<<
\new Staff \relative {
% leave the Voice context to be created implicitly
c''4 c
}
\new Staff \relative {
d''4 d
}
>>
and to place several voices into one staff:
\new Staff <<
\new Voice \relative {
\voiceOne
c''8 c c4 c c
}
\new Voice \relative {
\voiceTwo
g'4 g g g
}
>>
\new should always be used to specify unnamed contexts.
The difference between \new and \context is in the
action taken:
-
\newwith or without a name will always create a fresh, distinct, context, even if one with the same name already exists:\new Staff << \new Voice = "A" \relative { \voiceOne c''8 c c4 c c } \new Voice = "A" \relative { \voiceTwo g'4 g g g } >> -
\contextwith a name specified will create a distinct context only if a context of the same type with the same name in the same context hierarchy does not already exist. Otherwise it will be taken as a reference to that previously created context, and its music expression will be passed to that context for interpretation.One application of named contexts is in separating the score layout from the musical content. Either of these two forms is valid:
\score { << % score layout \new Staff << \new Voice = "one" { \voiceOne } \new Voice = "two" { \voiceTwo } >> % musical content \context Voice = "one" { \relative { c''4 c c c } } \context Voice = "two" { \relative { g'8 g g4 g g } } >> }\score { << % score layout \new Staff << \context Voice = "one" { \voiceOne } \context Voice = "two" { \voiceTwo } >> % musical content \context Voice = "one" { \relative { c''4 c c c } } \context Voice = "two" { \relative { g'8 g g4 g g } } >> }Alternatively, variables may be employed to similar effect. See Organizing pieces with variables.
-
\contextwith no name will match the first of any previously created contexts of the same type in the same context heirarchy, even one that has been given a name, and its music expression will be passed to that context for interpretation. This form is rarely useful. However,\contextwith no name and no music expression is used to set the context in which a Scheme procedure specified with\applyContextis executed:\new Staff \relative { c'1 \context Timing \applyContext #(lambda (ctx) (newline) (display (ly:context-current-moment ctx))) c1 }
A context must be named if it is to be referenced later, for example when lyrics are associated with music:
\new Voice = "tenor" music … \new Lyrics \lyricsto "tenor" lyrics
For details of associating lyrics with music see Duració automàtica de les síl·labes.
The properties of all contexts of a particular type can be modified
in a \layout block (with a different syntax), see
Changing all contexts of the same type. This construct also
provides a means of keeping layout instructions separate from the
musical content. If a single context is to be modified, a \with
block must be used, see Changing just one specific context.
Vegeu també
Learning Manual: Organizing pieces with variables.
Notation Reference: Changing just one specific context, Duració automàtica de les síl·labes.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Creating and referencing contexts ] | [ Amunt : Interpretation contexts ] | [ Modifying context plug-ins > ] | ||
5.1.3 Keeping contexts alive
Contexts are usually terminated at the first musical moment in
which they have nothing to do. So Voice contexts die as
soon as they contain no events, Staff contexts die as soon
as all the Voice contexts within them contain no events, etc.
This can cause difficulties if earlier contexts which have died
have to be referenced, for example, when changing staves with
\change commands, associating lyrics with a voice with
\lyricsto commands, or when adding further musical events to
an earlier context.
There is an exception to this general rule: inside of an
{…} construct (sequential music), the construct’s
notion of the “current context” will descend whenever an element
of the sequence ends in a subcontext of the previous current
context. This avoids spurious creation of implicit contexts in a
number of situations but means that the first context descended
into will be kept alive until the end of the expression.
In contrast, the contexts of a <<…>> construct’s
(simultaneous music) expression are not carried forth, so
enclosing a context creating command in an extra pair of
<<…>> will keep the context from persisting through
all of the enclosing {…} sequence.
Any context can be kept alive by ensuring it has something to do at
every musical moment. Staff contexts are kept alive by
ensuring one of their voices is kept alive. One way of doing this
is to add spacer rests to a voice in parallel with the real music.
These need to be added to every Voice context which needs to
be kept alive. If several voices are to be used sporadically it is
safest to keep them all alive rather than attempting to rely on the
exceptions mentioned above.
In the following example, both voice A and voice B are kept alive in this way for the duration of the piece:
musicA = \relative { d''4 d d d }
musicB = \relative { g'4 g g g }
keepVoicesAlive = {
<<
\new Voice = "A" { s1*5 } % Keep Voice "A" alive for 5 bars
\new Voice = "B" { s1*5 } % Keep Voice "B" alive for 5 bars
>>
}
music = {
\context Voice = "A" {
\voiceOneStyle
\musicA
}
\context Voice = "B" {
\voiceTwoStyle
\musicB
}
\context Voice = "A" { \musicA }
\context Voice = "B" { \musicB }
\context Voice = "A" { \musicA }
}
\score {
\new Staff <<
\keepVoicesAlive
\music
>>
}
The following example shows how a sporadic melody line with lyrics might be written using this approach. In a real situation the melody and accompaniment would consist of several different sections, of course.
melody = \relative { a'4 a a a }
accompaniment = \relative { d'4 d d d }
words = \lyricmode { These words fol -- low the mel -- o -- dy }
\score {
<<
\new Staff = "music" {
<<
\new Voice = "melody" {
\voiceOne
s1*4 % Keep Voice "melody" alive for 4 bars
}
{
\new Voice = "accompaniment" {
\voiceTwo
\accompaniment
}
<<
\context Voice = "melody" { \melody }
\context Voice = "accompaniment" { \accompaniment }
>>
\context Voice = "accompaniment" { \accompaniment }
<<
\context Voice = "melody" { \melody }
\context Voice = "accompaniment" { \accompaniment }
>>
}
>>
}
\new Lyrics \with { alignAboveContext = #"music" }
\lyricsto "melody" { \words }
>>
}
An alternative way, which may be better in many circumstances, is to keep the melody line alive by simply including spacer notes to line it up correctly with the accompaniment:
melody = \relative {
s1 % skip a bar
a'4 a a a
s1 % skip a bar
a4 a a a
}
accompaniment = \relative {
d'4 d d d
d4 d d d
d4 d d d
d4 d d d
}
words = \lyricmode { These words fol -- low the mel -- o -- dy }
\score {
<<
\new Staff = "music" {
<<
\new Voice = "melody" {
\voiceOne
\melody
}
\new Voice = "accompaniment" {
\voiceTwo
\accompaniment
}
>>
}
\new Lyrics \with { alignAboveContext = #"music" }
\lyricsto "melody" { \words }
>>
}
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Keeping contexts alive ] | [ Amunt : Interpretation contexts ] | [ Changing context default settings > ] | ||
5.1.4 Modifying context plug-ins
Notation contexts (like Score and Staff) not only store
properties, they also contain plug-ins called ‘engravers’ that create
notation elements. For example, the Voice context contains a
Note_heads_engraver and the Staff context contains a
Key_engraver.
For a full a description of each plug-in, see Engravers and Performers. Every context described in Contexts lists the engravers used for that context.
It can be useful to shuffle around these plug-ins. This is done by
starting a new context with \new or \context, and
modifying it,
\new context \with {
\consists …
\consists …
\remove …
\remove …
etc.
}
{
…music…
}
where the … should be the name of an engraver. Here is a simple
example which removes Time_signature_engraver and
Clef_engraver from a Staff context,
<<
\new Staff \relative {
f'2 g
}
\new Staff \with {
\remove "Time_signature_engraver"
\remove "Clef_engraver"
} \relative {
f'2 g2
}
>>
In the second staff there are no time signature or clef symbols. This is a rather crude method of making objects disappear since it will affect the entire staff. This method also influences the spacing, which may or may not be desirable. More sophisticated methods of blanking objects are shown in Visibility and color of objects.
The next example shows a practical application. Bar lines and time
signatures are normally synchronized across the score. This is done
by the Timing_translator and Default_bar_line_engraver.
This plug-in keeps an administration of time signature, location
within the measure, etc. By moving these engraver from Score to
Staff context, we can have a score where each staff has its own
time signature.
\score {
<<
\new Staff \with {
\consists "Timing_translator"
\consists "Default_bar_line_engraver"
}
\relative {
\time 3/4
c''4 c c c c c
}
\new Staff \with {
\consists "Timing_translator"
\consists "Default_bar_line_engraver"
}
\relative {
\time 2/4
c''4 c c c c c
}
>>
\layout {
\context {
\Score
\remove "Timing_translator"
\remove "Default_bar_line_engraver"
}
}
}
Advertiments i problemes coneguts
The order in which the engravers are specified is the order in which they are called to carry out their processing. Usually the order in which the engravers are specified does not matter, but in a few special cases the order is important, for example where one engraver writes a property and another reads it, or where one engraver creates a grob and another must process it.
The following orderings are important:
-
the
Bar_engravermust normally be first, -
the
New_fingering_engravermust come before theScript_column_engraver, -
the
Timing_translatormust come before theBar_number_engraver.
Vegeu també
Installed Files: ‘ly/engraver-init.ly’.
5.1.5 Changing context default settings
Context and grob properties can be changed with \set
and \override commands, as described in
Modifying properties. These commands create music events,
making the changes take effect at the point in time the music
is being processed.
In contrast, this section explains how to change the default values of context and grob properties at the time the context is created. There are two ways of doing this. One modifies the default values in all contexts of a particular type, the other modifies the default values in just one particular instance of a context.
| Changing all contexts of the same type | ||
| Changing just one specific context | ||
| Order of precedence |
Changing all contexts of the same type
The default context settings which are to be used for typesetting in
Score, Staff, Voice and other contexts may be
specified in a \context block within any \layout
block.
Settings for Midi output as opposed to typesetting will have to be
separately specified in \midi blocks (see Output definitions - blueprints for contexts).
The \layout block should be placed within the \score
block to which it is to apply, after the music.
\layout {
\context {
\Voice
[context settings for all Voice contexts]
}
\context {
\Staff
[context settings for all Staff contexts]
}
}
The following types of settings may be specified:
-
An
\overridecommand, but with the context name omitted\score { \relative { a'4^"Thicker stems" a a a a4 a a\ff a } \layout { \context { \Staff \override Stem.thickness = #4.0 } } } -
Directly setting a context property
\score { \relative { a'4^"Smaller font" a a a a4 a a\ff a } \layout { \context { \Staff fontSize = #-4 } } } -
A predefined command such as
\dynamicUpor a music expression like\accidentalStyle dodecaphonic\score { \relative { a'4^"Dynamics above" a a a a4 a a\ff a } \layout { \context { \Voice \dynamicUp } \context { \Staff \accidentalStyle dodecaphonic } } } -
A user-defined variable containing a
\withblock; for details of the\withblock see Changing just one specific context.StaffDefaults = \with { fontSize = #-4 } \score { \new Staff { \relative { a'4^"Smaller font" a a a a4 a a a } } \layout { \context { \Staff \StaffDefaults } } }
Property-setting commands can be placed in a \layout block
without being enclosed in a \context block. Such settings
are equivalent to including the same property-setting commands at
the start of every context of the type specified. If no context
is specified every bottom-level context is affected, see
Bottom-level contexts - voices. The syntax of a
property-setting command in a \layout block is the same as
the same command written in the music stream.
\score {
\new Staff {
\relative {
a'4^"Smaller font" a a a
a4 a a a
}
}
\layout {
\accidentalStyle dodecaphonic
\set fontSize = #-4
\override Voice.Stem.thickness = #4.0
}
}
Changing just one specific context
The context properties of just one specific context instance can be
changed in a \with block. All other context instances of the
same type retain the default settings built into LilyPond and modified
by any \layout block within scope. The \with block
must be placed immediately after the \new context-type
command:
\new Staff \with { [context settings for this context instance only] }
{
…
}
Alternatively, if the music is being entered using the short form of the
input mode-specifying commands, e.g. \chords rather than
\chordmode, the \with command must be placed immediately
after the mode-specifying command:
\chords \with { [context settings for this (implicit) context instance only] }
{
…
}
as it is the implicit context created by these short forms which should
be modified. The same consideration applies to the other input
mode-specifying short forms (\drums, \figures), see
Input modes.
Since context modifications specified in \with blocks are inside
music, they will affect all outputs (typesetting and
Midi) as opposed to changes within an output definition.
The following types of settings may be specified:
-
An
\overridecommand, but with the context name omitted\score { \new Staff { \new Voice \with { \override Stem.thickness = #4.0 } { \relative { a'4^"Thick stems" a a a a4 a a a } } } } -
Directly setting a context property
\score { << \new Staff { \relative { a'4^"Default font" a a a a4 a a a } } \new Staff \with { fontSize = #-4 } { \relative { a'4^"Smaller font" a a a a4 a a a } } >> } -
A predefined command such as
\dynamicUp\score { << \new Staff { \new Voice { \relative { a'4^"Dynamics below" a a a a4 a a\ff a } } } \new Staff \with { \accidentalStyle dodecaphonic } { \new Voice \with { \dynamicUp } { \relative { a'4^"Dynamics above" a a a a4 a a\ff a } } } >> }
Vegeu també
Notation Reference: Input modes
Order of precedence
The value of a property which applies at a particular time is determined as follows:
-
if an
\overrideor\setcommand in the input stream is in effect that value is used, -
otherwise the default value taken from a
\withstatement on the context initiation statement is used, -
otherwise the default value taken from the most recent appropriate
\contextblock in the\layoutor\midiblocks is used, - otherwise the LilyPond built-in default is used.
Vegeu també
Learning Manual: Modifying context properties.
Notation Reference:
Contexts explained,
Bottom-level contexts - voices,
The \set command,
The \override command,
The \layout block.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Order of precedence ] | [ Amunt : Interpretation contexts ] | [ Context layout order > ] | ||
5.1.6 Defining new contexts
Specific contexts, like Staff and Voice, are made from
simple building blocks. It is possible to create new types of
contexts with different combinations of engraver plug-ins.
The next example shows how to build a different type of
Voice context from scratch. It will be similar to
Voice, but only prints centered slash note heads. It can be used
to indicate improvisation in jazz pieces,
These settings are defined within a \context block inside a
\layout block,
\layout {
\context {
…
}
}
In the following discussion, the example input shown should go in place of the … in the previous fragment.
First it is necessary to define a name for the new context:
\name ImproVoice
Since it is similar to the Voice context, we want commands that
work in (existing) Voice contexts to continue working. This is
achieved by giving the new context an alias of Voice,
\alias Voice
The context will print notes and instructive texts, so we need to add the engravers which provide this functionality, plus the engraver which groups notes, stems and rests which occur at the same musical moment into columns,
\consists "Note_heads_engraver" \consists "Text_engraver" \consists "Rhythmic_column_engraver"
The note heads should all be placed on the center line,
\consists "Pitch_squash_engraver" squashedPosition = #0
The Pitch_squash_engraver modifies note heads (created
by the Note_heads_engraver) and sets their vertical
position to the value of squashedPosition, in this
case 0, the center line.
The notes look like a slash, and have no stem,
\override NoteHead.style = #'slash \hide Stem
All these plug-ins have to communicate under the control of the
context. The mechanisms with which contexts communicate are
established by declaring the context \type. Within a
\layout block, most contexts will be of type
Engraver_group. Some special contexts and contexts in
\midi blocks use other context types. Copying and
modifying an existing context definition will also fill in the
type. Since this example creates a definition from scratch, it
needs to be specified explicitly.
\type "Engraver_group"
Put together, we get
\context {
\name ImproVoice
\type "Engraver_group"
\consists "Note_heads_engraver"
\consists "Text_engraver"
\consists "Rhythmic_column_engraver"
\consists "Pitch_squash_engraver"
squashedPosition = #0
\override NoteHead.style = #'slash
\hide Stem
\alias Voice
}
Contexts form hierarchies. We want to place the ImproVoice
context within the Staff context, just like normal Voice
contexts. Therefore, we modify the Staff definition with the
\accepts command,
\context {
\Staff
\accepts ImproVoice
}
Often when reusing an existing context definition, the resulting context can be used anywhere where the original context would have been useful.
\layout {
…
\inherit-acceptability to from
}
will arrange to have contexts of type to accepted by all contexts also accepting from. For example, using
\layout {
…
\inherit-acceptability "ImproVoice" "Voice"
}
will add an \accepts for ImproVoice to both
Staff and RhythmicStaff definitions.
The opposite of \accepts is \denies,
which is sometimes needed when reusing existing context definitions.
Arranging the required pieces into a \layout block leaves
us with
\layout {
\context {
\name ImproVoice
…
}
\inherit-acceptability "ImproVoice" "Voice"
}
Then the output at the start of this subsection can be entered as
\relative {
a'4 d8 bes8
\new ImproVoice {
c4^"ad lib" c
c4 c^"undress"
c c_"while playing :)"
}
a1
}
To complete this example, changes affecting the context hierarchy
should be repeated in a \midi block so that Midi output
depends on the same context relations.
Vegeu també
Internals Reference: Note_heads_engraver, Text_engraver, Rhythmic_column_engraver, Pitch_squash_engraver.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Defining new contexts ] | [ Amunt : Interpretation contexts ] | [ Explaining the Internals Reference > ] | ||
5.1.7 Context layout order
Contexts are normally positioned in a system from top to bottom in the order in which they are encountered in the input file. When contexts are nested, the outer context will include inner nested contexts as specified in the input file, provided the inner contexts are included in the outer context’s “accepts” list. Nested contexts which are not included in the outer context’s “accepts” list will be repositioned below the outer context rather than nested within it.
The “accepts” list of a context can be changed with the
\accepts or \denies commands. \accepts adds a
context to the “accepts” list and \denies removes a context
from the list.
For example, a square-braced staff group is not usually found within a
curved-braced staff with connecting staff bars, and a GrandStaff
does not accept a StaffGroup inside it by default.
\score {
\new GrandStaff <<
\new StaffGroup <<
\new Staff { c'1 }
\new Staff { d'1 }
>>
\new Staff { \set Staff.instrumentName = bottom f'1 }
>>
}
However, by using the \accepts command, StaffGroup can be
added to the GrandStaff context:
\score {
\new GrandStaff <<
\new StaffGroup <<
\new Staff { c'1 }
\new Staff { d'1 }
>>
\new Staff { \set Staff.instrumentName = bottom f'1 }
>>
\layout {
\context {
\GrandStaff
\accepts "StaffGroup"
}
}
}
\denies is mainly used when a new context is being based on
another, but the required nesting differs. For example, the
VaticanaStaff context is based on the Staff context, but
with the VaticanaVoice context substituted for the Voice
context in the “accepts” list.
Note that a context will be silently created implicitly if a command is encountered when there is no suitable context available to contain it.
Within a context definition, the type of subcontext to be
implicitly created is specified using \defaultchild. A
number of music events require a ‘Bottom’ context: when such
an event is encountered, subcontexts are created recursively until
reaching a context with no ‘defaultchild’ setting.
Implicit context creation can at times give rise to unexpected new
staves or scores. Using \new to create contexts explicitly
avoids those problems.
Sometimes a context is required to exist for just a brief period, a good example being the staff context for an ossia. This is usually achieved by introducing the context definition at the appropriate place in parallel with corresponding section of the main music. By default, the temporary context will be placed below all the existing contexts. To reposition it above the context called “main”, it should be defined like this:
\new Staff \with { alignAboveContext = #"main" }
A similar situation arises when positioning a temporary lyrics
context within a multi-staved layout such as a ChoirStaff,
for example, when adding a second verse to a repeated section.
By default the temporary lyrics context will be placed beneath the
lower staves. By defining the temporary lyrics context with
alignBelowContext it can be positioned correctly beneath
the (named) lyrics context containing the first verse.
Examples showing this repositioning of temporary contexts can be found elsewhere — see Nesting music expressions, Modificació de pentagrames separats and Tècniques específiques per a les lletres.
Vegeu també
Learning Manual: Nesting music expressions.
Notation Reference: Modificació de pentagrames separats, Tècniques específiques per a les lletres.
Application Usage: An extra staff appears.
Installed Files: ‘ly/engraver-init.ly’.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Context layout order ] | [ Amunt : Changing defaults ] | [ Navigating the program reference > ] | ||
5.2 Explaining the Internals Reference
| 5.2.1 Navigating the program reference | ||
| 5.2.2 Layout interfaces | ||
| 5.2.3 Determining the grob property | ||
| 5.2.4 Naming conventions |
5.2.1 Navigating the program reference
Suppose we want to move the fingering indication in the fragment below:
c''-2
If you visit the documentation on fingering instructions (in Indicacions de digitació), you will notice:
See also
Internals Reference: Fingering.
Follow the link to Fingering. At the top of the page, you will see
Fingering objects are created by: Fingering_engraver and New_fingering_engraver.
By following related links inside the program reference, we can follow the flow of information within the program:
- Fingering: Fingering objects are created by: Fingering_engraver
- Fingering_engraver: Music types accepted: fingering-event
-
fingering-event:
Music event type
fingering-eventis in Music expressions named FingeringEvent
This path goes against the flow of information in the program: it starts from the output, and ends at the input event. You could also start at an input event, and read with the flow of information, eventually ending up at the output object(s).
The program reference can also be browsed like a normal document. It contains chapters on Music definitions, on Translation, and the Backend. Every chapter lists all the definitions used and all properties that may be tuned.
5.2.2 Layout interfaces
The HTML page that we found in the previous section describes the layout object called Fingering. Such an object is a symbol within the score. It has properties that store numbers (like thicknesses and directions), but also pointers to related objects. A layout object is also called a Grob, which is short for Graphical Object. For more details about Grobs, see grob-interface.
The page for Fingering lists the definitions for the
Fingering object. For example, the page says
padding(dimension, in staff space):
0.5
which means that the number will be kept at a distance of at least 0.5 of the note head.
Each layout object may have several functions as a notational or typographical element. For example, the Fingering object has the following aspects
- Its size is independent of the horizontal spacing, unlike slurs or beams.
- It is a piece of text. Granted, it is usually a very short text.
- That piece of text is typeset with a font, unlike slurs or beams.
- Horizontally, the center of the symbol should be aligned to the center of the note head.
- Vertically, the symbol is placed next to the note and the staff.
- The vertical position is also coordinated with other superscript and subscript symbols.
Each of these aspects is captured in so-called interfaces, which are listed on the Fingering page at the bottom
This object supports the following interfaces: item-interface, self-alignment-interface, side-position-interface, text-interface, text-script-interface, font-interface, finger-interface, and grob-interface.
Clicking any of the links will take you to the page of the respective object interface. Each interface has a number of properties. Some of them are not user-serviceable (‘Internal properties’), but others can be modified.
We have been talking of the Fingering object, but actually it
does not amount to much. The initialization file (see
Other sources of information)
‘scm/define-grobs.scm’ shows the soul of the ‘object’,
(Fingering
. ((padding . 0.5)
(avoid-slur . around)
(slur-padding . 0.2)
(staff-padding . 0.5)
(self-alignment-X . 0)
(self-alignment-Y . 0)
(script-priority . 100)
(stencil . ,ly:text-interface::print)
(direction . ,ly:script-interface::calc-direction)
(font-encoding . fetaText)
(font-size . -5) ; don't overlap when next to heads.
(meta . ((class . Item)
(interfaces . (finger-interface
font-interface
text-script-interface
text-interface
side-position-interface
self-alignment-interface
item-interface))))))
As you can see, the Fingering object is nothing more than a
bunch of variable settings, and the webpage in the Internals Reference
is directly generated from this definition.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Layout interfaces ] | [ Amunt : Explaining the Internals Reference ] | [ Naming conventions > ] | ||
5.2.3 Determining the grob property
Recall that we wanted to change the position of the 2 in
c''-2
Since the 2 is vertically positioned next to its note, we have to
meddle with the interface associated with this positioning. This is
done using side-position-interface. The page for this interface
says
side-position-interfacePosition a victim object (this one) next to other objects (the support). The property
directionsignifies where to put the victim object relative to the support (left or right, up or down?)
Below this description, the variable padding is described as
padding(dimension, in staff space)
Add this much extra space between objects that are next to each other.
By increasing the value of padding, we can move the fingering
away from the note head. The following command will insert “three
staff spaces” worth of distance between the note and a fingering mark:
\once \override Voice.Fingering.padding = #3
Inserting the padding before the fingering object is created results in the following:
\once \override Voice.Fingering.padding = #3 c''-2
In this case, the context for this tweak is Voice. See
Fingering_engraver plug-in, which says:
Fingering_engraver is part of contexts: … Voice
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Determining the grob property ] | [ Amunt : Explaining the Internals Reference ] | [ Modifying properties > ] | ||
5.2.4 Naming conventions
Another thing that is needed, is an overview of the various naming conventions:
- scheme functions: lowercase-with-hyphens (also includes one-word names)
- LilyPond-specific scheme functions: ly:plus-scheme-style
- music events, music classes and music properties: as-scheme-functions
- Grob interfaces: scheme-style
- backend properties: scheme-style (but X and Y!)
- contexts (and MusicExpressions and grobs): Capitalized or CamelCase
- context properties: lowercaseFollowedByCamelCase
- engravers: Capitalized_followed_by_lowercase_and_with_underscores
Questions to be answered:
- Which of these are conventions and which are rules?
- Which are rules of the underlying language, and which are LilyPond-specific?
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Naming conventions ] | [ Amunt : Changing defaults ] | [ Overview of modifying properties > ] | ||
5.3 Modifying properties
| 5.3.1 Overview of modifying properties | ||
5.3.2 The \set command | ||
5.3.3 The \override command | ||
5.3.4 The \tweak command | ||
5.3.5 \set vs. \override | ||
5.3.6 The \offset command | ||
| 5.3.7 Modifying alists |
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Modifying properties ] | [ Amunt : Modifying properties ] | [ The set command > ] | ||
5.3.1 Overview of modifying properties
Each context is responsible for creating certain types of graphical objects. The settings used for printing these objects are also stored by context. By changing these settings, the appearance of objects can be altered.
There are two different kinds of properties stored in contexts: context properties and grob properties. Context properties are properties that apply to the context as a whole and control how the context itself is displayed. In contrast, grob properties apply to specific grob types that will be displayed in the context.
The \set and \unset commands are used to change values
for context properties. The \override and \revert
commands are used to change values for grob properties.
Vegeu també
Internals Reference: Backend, All layout objects, OverrideProperty, RevertProperty, PropertySet.
Advertiments i problemes coneguts
The back-end is not very strict in type-checking object properties. Cyclic references in Scheme values for properties can cause hangs or crashes, or both.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Overview of modifying properties ] | [ Amunt : Modifying properties ] | [ The override command > ] | ||
5.3.2 The \set command
Each context has a set of properties, variables contained
in that context. Context properties are changed with the \set
command, which has the following syntax:
\set context.property = #value
value is a Scheme object, which is why it must be preceded by
the # character.
Contexts properties are usually named in
studlyCaps. They mostly control the translation from
music to notation, e.g., localAlterations (for determining
whether to print accidentals), or measurePosition (for
determining when to print a bar line). Context properties can
change value over time while interpreting a piece of music;
measurePosition is an obvious example of
this. Context properties are modified with \set.
For example, multimeasure rests will be combined into a single bar
if the context property skipBars is set to #t:
R1*2 \set Score.skipBars = ##t R1*2
If the context argument is left out, then the property will be
set in the current bottom context (typically ChordNames,
Voice, TabVoice, or Lyrics).
\set Score.autoBeaming = ##f
\relative {
e''8 e e e
\set autoBeaming = ##t
e8 e e e
} \\
\relative {
c''8 c c c c8 c c c
}
The change is applied ‘on-the-fly’, during the music, so that the setting only affects the second group of eighth notes.
Note that the bottom-most context does not always contain the property
that you wish to change – for example, attempting to set the
skipBars property of the default bottom context, in this case
Voice, will have no effect, because skipBars is a property of
the Score context.
R1*2 \set skipBars = ##t R1*2
Contexts are hierarchical, so if an enclosing context was specified, for
example Staff, then the change would also apply to all
Voices in the current staff.
The \unset command:
\unset context.property
is used to remove the definition of property from context. This command removes the definition only if it is set in context. Properties that have been set in enclosing contexts will not be altered by an unset in an enclosed context:
\set Score.autoBeaming = ##t
\relative {
\unset autoBeaming
e''8 e e e
\unset Score.autoBeaming
e8 e e e
} \\
\relative {
c''8 c c c c8 c c c
}
Like \set, the context argument does not have to be
specified for a bottom context, so the two statements
\set Voice.autoBeaming = ##t \set autoBeaming = ##t
are equivalent if the current bottom context is Voice.
Preceding a \set or \unset command by \once
makes the setting apply to only a single time-step:
c''4 \once \set fontSize = #4.7 c''4 c''4
A full description of all available context properties is in the internals reference, see Tunable context properties.
Vegeu també
Internals Reference: Tunable context properties.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < The set command ] | [ Amunt : Modifying properties ] | [ The tweak command > ] | ||
5.3.3 The \override command
There is a special type of context property: the grob
description. Grob descriptions are named in StudlyCaps
(starting with capital letters). They contain the
‘default settings’ for a particular kind of grob as an
association list. See ‘scm/define-grobs.scm’
to see the settings for each grob description. Grob descriptions
are modified with \override.
The syntax for the \override command is
\override [context.]GrobName.property = #value
For example, we can increase the thickness of a note stem by
overriding the thickness property of the Stem
object:
c''4 c'' \override Voice.Stem.thickness = #3.0 c''4 c''
If no context is specified in an \override, the bottom
context is used:
\override Staff.Stem.thickness = #3.0
<<
\relative {
e''4 e
\override Stem.thickness = #0.5
e4 e
} \\
\relative {
c''4 c c c
}
>>
Some tweakable options are called ‘subproperties’ and reside inside properties. To tweak those, use commands in the form
\override Stem.details.beamed-lengths = #'(4 4 3)
or to modify the ends of spanners, use a form like these
\override TextSpanner.bound-details.left.text = #"left text" \override TextSpanner.bound-details.right.text = #"right text"
The effects of \override can be undone by \revert.
The syntax for the \revert command is
\revert [context.]GrobName.property
For example,
\relative {
c''4
\override Voice.Stem.thickness = #3.0
c4 c
\revert Voice.Stem.thickness
c4
}
The effects of \override and \revert apply to all
grobs in the affected context from the current time forward:
<<
\relative {
e''4
\override Staff.Stem.thickness = #3.0
e4 e e
} \\
\relative {
c''4 c c
\revert Staff.Stem.thickness
c4
}
>>
\once can be used with \override or \revert
to affect only the current time step:
<<
\relative c {
\override Stem.thickness = #3.0
e''4 e e e
} \\
\relative {
c''4
\once \override Stem.thickness = #3.0
c4 c c
}
>>
Vegeu també
Internals Reference: Backend
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < The override command ] | [ Amunt : Modifying properties ] | [ set versus override > ] | ||
5.3.4 The \tweak command
Changing grob properties
with \override causes the changes to apply to all of the
given grobs in the context at the moment the change applies.
Sometimes, however, it is desirable to have changes apply to just
one grob, rather than to all grobs in the affected context. This is
accomplished with the \tweak command, which has the following
syntax:
\tweak [layout-object.]grob-property value
Specifying layout-object is optional.
The \tweak command applies to the music object that immediately
follows value in the music stream.
For an introduction to the syntax and uses of the tweak command see Tweaking methods.
When several similar items are placed at the same musical moment,
the \override command cannot be used to modify just one of
them – this is where the \tweak command must be used.
Items which may appear more than once at the same musical moment
include the following:
- note heads of notes inside a chord
- articulation signs on a single note
- ties between notes in a chord
- tuplet brackets starting at the same time
In this example, the color of one note head and the type of another note head are modified within a single chord:
< c'' \tweak color #red d'' g'' \tweak duration-log #1 a'' > 4
\tweak can be used to modify slurs:
\relative { c'-\tweak thickness #5 ( d e f) }
For the \tweak command to work, it must
remain immediately adjacent to the object to which it is
to apply after the input file has been converted to a music stream.
Tweaking a whole chord does not do anything since its music event
only acts as a container, and all layout objects are created from events
inside of the EventChord:
\tweak color #red c''4 \tweak color #red <c'' e''>4 <\tweak color #red c'' e''>4
The simple \tweak command cannot be used to modify any object
that is not directly created from the input. In particular
it will not affect stems, automatic
beams or accidentals, since these are generated later by
NoteHead layout objects rather than by music elements in the
input stream.
Such indirectly created layout objects can be tweaked using the form
of the \tweak command in which the grob name is specified
explicitly:
\tweak Stem.color #red \tweak Beam.color #green c''8 e'' <c'' e'' \tweak Accidental.font-size #-3 ges''>4
\tweak cannot be used to modify clefs or time
signatures, since these become separated from any preceding
\tweak command in the input stream by the automatic
insertion of extra elements required to specify the context.
Several \tweak commands may be placed before a
notational element – all affect it:
c' -\tweak style #'dashed-line -\tweak dash-fraction #0.2 -\tweak thickness #3 -\tweak color #red \glissando f''
The music stream which is generated from a section of an input file,
including any automatically inserted elements, may be examined,
see
Displaying music expressions. This may be helpful in
determining what may be modified by a \tweak command, or
in determining how to adjust the input to make a \tweak
apply.
Vegeu també
Learning Manual: Tweaking methods.
Extending LilyPond: Displaying music expressions.
Advertiments i problemes coneguts
The \tweak command cannot be used to modify the control
points of just one of several ties in a chord, other than the first
one encountered in the input file.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < The tweak command ] | [ Amunt : Modifying properties ] | [ The offset command > ] | ||
5.3.5 \set vs. \override
The \set and \override commands manipulate properties
associated with contexts. In both cases, the properties follow a
hierarchy of contexts; properties that are not set themselves in
a context will still show the values of their respective parent’s
context.
The lifetime and value of a context property is dynamic and only available when music is being interpreted (i.e., ‘iterated’). At the time of the context’s creation, properties are initialized from its corresponding definitions (along with any other modifications) of that context. Any subsequent changes are achieved with any ‘property-setting’ commands that are within the music itself.
Graphical Object (or “grob”) definitions are a special category of context properties as their structure and use is different from that of normal context properties. Unlike normal context properties, grob definitions are subdivided into grob properties.
Also, in contrast to normal context properties, grob definitions have their own internal ‘bookkeeping’ used to keep track of their own individual grob properties and any sub-properties. This means that it is possible to define those parts within different contexts and yet still have the overall grob definition at the time of grob creation from all the pieces provided amongst the current context and its parent(s).
A grob is usually created by an engraver at the time of interpreting a music expression and receives its initial properties from the current grob definition of the engraver’s context. The engraver (or other ‘backend’ parts of LilyPond) can then change (or add to) the grob’s initial properties. However, this does not affect the context’s own grob definition.
What LilyPond calls grob properties in the context of ‘user-level’ tweaks are really the properties of a context’s own grob definition.
Grob definitions are accessed with a different set of commands and are
manipulated using \override and \revert and have a name
starting with a capital letter (e.g., ‘NoteHead’); whereas normal
context properties are manipulated using \set and \unset
and are named starting with a lowercase letter.
The commands \tweak and \overrideProperty change grob
properties by bypassing all context properties completely and, instead,
catch grobs as they are being created, setting properties on them for
a music event (\tweak) or, in the case of
\overrideProperty for a specific override.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < set versus override ] | [ Amunt : Modifying properties ] | [ Modifying alists > ] | ||
5.3.6 The \offset command
While it is possible to set grob properties to new values with the
\override, \tweak, and \overrideProperty commands,
it is often more convenient to modify such properties relative to a
default value. The \offset command is available for this
purpose.
The syntax for \offset is
[-]\offset property offsets item
The command works by adding the contents of offsets to the default setting of the property property of the grob indicated by item.
Depending on the formulation of the command, \offset may act
as either a \tweak or \override. The variations in
usage are discussed after consideration is given to grob properties
that may be used with \offset.
Properties which may be offset
Many, but not all, grob properties may be offset. If property
cannot be offset, the object will remain unchanged and a warning will
be issued. In such cases, \override or \tweak should be
used to modify the object instead.
One can work by trial and error and let the warnings be the guide to what may or may not be offset. A more systematic approach is possible, however.
The following criteria determine whether a property can be modified with
\offset:
- The property has a ‘default setting’ in the grob’s description. Such properties are listed for each grob in All layout objects. (They are also found in ‘scm/define-grobs.scm’.)
-
The property takes a numerical value. Numerical values include
number, list ofnumbers,number-pair, andnumber-pair-list. The pages at All layout objects list the type of data characteristic to each property. It is immaterial whether the default setting is a function. - The property cannot be a ‘subproperty’—a property residing within another property.
- Properties set to infinite values cannot be offset. There is no sensible way to offset positive and negative infinity.
The following examples consider several grob properties against the criteria outlined above.
- Properties that may be offset
-
Hairpin.height -
This property is not a subproperty, and it is listed at Hairpin. For a value, it takes ‘dimension, in staff space’ set to
0.6666—clearly a non-infinitenumber. -
Arpeggio.positions -
The page Arpeggio lists a
positionsproperty which accepts a ‘pair of numbers’. It defaults toly:arpeggio::positions—a callback which will be evaluated during the typesetting phase to yield a pair of numbers for any givenArpeggioobject.
-
- Properties that may not be offset
-
Hairpin.color -
There is no listing for
colorat Hairpin. -
Hairpin.circled-tip -
The listing for
Hairpin.circled-tipat Hairpin shows that it takes abooleanvalue. Booleans are non-numerical. -
Stem.details.lengths -
Though listed at Stem and defaulting to a list of
numbers, this is a ‘subproperty’. There is currently no support for ‘nested properties’.
-
\offset as an override
If item is a grob name like Arpeggio or
Staff.OttavaBracket, the result is an \override of the
specified grob-type.
\offset property offsets [context.]GrobName
Note that the leading hyphen is never used with the ‘override’
form, just as it is never used with the \override command itself.
The following example uses the ‘override’ form to lengthen the
default arpeggios shown in the first measure to cover the extent of
the chords more fully. The arpeggios are stretched by a half
staff-space to top and bottom. Also shown is the same operation done on
the first chord with an ordinary override of the positions
property. This method is not at all expressive of the task of
‘stretching by a half staff-space’, as the endpoints must be specified
with absolute rather than relative coordinates. Furthermore, individual
overrides would be needed for the other chords, as they vary in size and
position.
arpeggioMusic = {
<c' e' g'>\arpeggio <a' c'' e''>\arpeggio
<d' f' a' c''>\arpeggio <c' e' g' b' d'' f'' a''>\arpeggio
}
{
\arpeggioMusic
\bar "||"
\offset positions #'(-0.5 . 0.5) Arpeggio
\arpeggioMusic
\bar "||"
\once \override Arpeggio.positions = #'(-3.5 . -0.5)
<c' e' g'>1\arpeggio
\bar "||"
}
In its ‘override’ usage, \offset may be prefaced with
\once or \temporary and reverted using \revert with
property. This follows from the fact that \offset actually
creates an \override of property.
music = { c'8\< d' e' f'\! }
{
\music
\offset height 1 Hairpin
\music
\music
\revert Hairpin.height
\music
\bar "||"
\once \offset height 1 Hairpin
\music \music
\bar "||"
\override Hairpin.height = 0.2
\music
\temporary \offset height 2 Hairpin
\music
\music
\revert Hairpin.height
\music
\bar "||"
}
Also like \override, the ‘override’ form of \offset may
be used with \undo and \single.
longStem = \offset length 6 Stem
{
\longStem c'4 c''' c' c''
\bar "||"
\undo \longStem c'4 c''' c' c''
\bar "||"
\single \longStem c'4 c''' c' c''
\bar "||"
}
\offset as a tweak
If item is a music expression such as ( or
\arpeggio, the result is the same music expression with a tweak
applied.
[-]\offset [GrobName.]property offsets music-expression
The syntax of \offset in its ‘tweak’ form is analogous to the
\tweak command itself, both in ordering and in the presence or
absence of the leading hyphen.
The following example uses the ‘tweak’ form to adjust the vertical
position of the BreathingSign object. Compare this with the
ordinary \tweak command also demonstrated. The syntax is
equivalent; however, the output of \tweak is less intuitive,
since BreathingSign.Y-offset is calculated from the middle
staff-line. It is not necessary to know how Y-offset is
calculated when using \offset.
{
c''4
\breathe
c''4
\offset Y-offset 2 \breathe
c''2
\tweak Y-offset 3 \breathe
}
In the previous example, the tweaked objects were created directly from
the user input: the \breathe command was an explicit instruction
to return a BreathingSign object. Since the focus of the command
was unambiguous, there was no need to specify the object’s name. When
an object is indirectly created, however, it is necessary to
include the grob’s name. This is the same as for the \tweak
command.
In the following example, the Beam object is lowered two
staff-spaces by applying \offset to the positions
property.
The first application of \offset requires that the grob’s name
be included, because nothing in the input explicitly creates the
beam. In the second application, the beam is created manually with the
music expression [; therefore, the grob’s name is not needed.
(Also illustrated is a shorthand: a single number will be applied
to both members of a number-pair.)
{
c''8 g'' e'' d''
\offset Beam.positions #'(-2 . -2)
c''8 g'' e'' d''
c''8 g'' e'' d''
c''8-\offset positions #-2 [ g'' e'' d'']
}
\offset with broken spanners
Independently modifying segments of a spanner extending over a line break or breaks is also possible. In this case, offsets takes a list of values of the property’s required data type.
The \offset command used in this manner is similar to the
\alterBroken command. (See Modifying broken spanners.)
In contrast with \alterBroken, however, the values given to
\offset are relative, not absolute.
The following example displaces the ‘broken’ OttavaBracket
object through its staff-padding property. Since the property
takes a number, offsets is provided with a list of
numbers to account for the two segments created by the line
break. The bracket piece on the first line is effectively untouched
since 0 is added to its default value of staff-padding.
The segment on the second line is raised three staff-spaces from its
default height. The default height happens to be 2, though it is
not necessary to know this to achieve the desired positioning.
{
\offset staff-padding #'(0 3) Staff.OttavaBracket
\ottava #1
c'''2 c'''
\break
c'''2 c'''
}
The following example mimics the effect of the \shape command by
offsetting the control-points property of the Slur object.
Here, offsets is a list of number-pair-lists, one for each
slur segment. This example achieves a result identical to the
corresponding illustration at Modifying shapes.
{
c'4-\offset control-points #'(
((0 . 0) (0 . 0) (0 . 0) (0 . 1))
((0.5 . 1.5) (1 . 0) (0 . 0) (0 . -1.5))
) ( f'4 g' c''
\break
d'4 c'' f' c')
}
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < The offset command ] | [ Amunt : Modifying properties ] | [ Useful concepts and properties > ] | ||
5.3.7 Modifying alists
Some user-configurable properties are internally represented as alists (association lists), which store pairs of keys and values. The structure of an alist is:
'((key1 . value1) (key2 . value2) (key3 . value3) …)
If an alist is a grob property or \paper variable, its keys
can be modified individually without affecting other keys.
For example, to reduce the space between adjacent staves in a
staff-group, use the staff-staff-spacing property of the
StaffGrouper grob. The property is an alist with four
keys: basic-distance, minimum-distance,
padding, and stretchability. The standard settings
for this property are listed in the “Backend” section of the
Internals Reference (see
StaffGrouper):
'((basic-distance . 9) (minimum-distance . 7) (padding . 1) (stretchability . 5))
One way to bring the staves closer together is by reducing the
value of the basic-distance key (9) to match the
value of minimum-distance (7). To modify a single
key individually, use a nested declaration:
% default space between staves
\new PianoStaff <<
\new Staff { \clef treble c''1 }
\new Staff { \clef bass c1 }
>>
% reduced space between staves
\new PianoStaff \with {
% this is the nested declaration
\override StaffGrouper.staff-staff-spacing.basic-distance = #7
} <<
\new Staff { \clef treble c''1 }
\new Staff { \clef bass c1 }
>>
Using a nested declaration will update the specified key (such as
basic-distance in the above example) without altering any
other keys already set for the same property.
Now suppose we want the staves to be as close as possible without overlapping. The simplest way to do this is to set all four alist keys to zero. However, it is not necessary to enter four nested declarations, one for each key. Instead, the property can be completely re-defined with one declaration, as an alist:
\new PianoStaff \with {
\override StaffGrouper.staff-staff-spacing =
#'((basic-distance . 0)
(minimum-distance . 0)
(padding . 0)
(stretchability . 0))
} <<
\new Staff { \clef treble c''1 }
\new Staff { \clef bass c1 }
>>
Note that any keys not explicitly listed in the alist definition
will be reset to their default-when-unset values. In the
case of staff-staff-spacing, any unset key-values would be
reset to zero (except stretchability, which takes the value
of basic-distance when unset). Thus the following two
declarations are equivalent:
\override StaffGrouper.staff-staff-spacing =
#'((basic-distance . 7))
\override StaffGrouper.staff-staff-spacing =
#'((basic-distance . 7)
(minimum-distance . 0)
(padding . 0)
(stretchability . 7))
One (possibly unintended) consequence of this is the removal of
any standard settings that are set in an initialization file and
loaded each time an input file is compiled. In the above example,
the standard settings for padding and
minimum-distance (defined in ‘scm/define-grobs.scm’)
are reset to their default-when-unset values (zero for both keys).
Defining a property or variable as an alist (of any size) will
always reset all unset key-values to their default-when-unset
values. Unless this is the intended result, it is safer to update
key-values individually with a nested declaration.
Nota: Nested declarations will not work for context property
alists (such as beamExceptions, keyAlterations,
timeSignatureSettings, etc.). These properties can only be
modified by completely re-defining them as alists.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Modifying alists ] | [ Amunt : Changing defaults ] | [ Input modes > ] | ||
5.4 Useful concepts and properties
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Useful concepts and properties ] | [ Amunt : Useful concepts and properties ] | [ Direction and placement > ] | ||
5.4.1 Input modes
The way in which the notation contained within an input file is
interpreted is determined by the current input mode. In general,
there are two ways of specifying the mode: a long form, e.g.
\chordmode, and a short form, e.g. \chords. The long
form is typically used when supplying input to a variable or when
entering input directly into an explicitly created context. The short
form implicitly creates a context of the correct type for the input and
passes the input directly to it. It is useful in simple situations
when there is no requirement to explicitly create the receiving context.
Chord mode
This is activated with the \chordmode command, and causes
input to be interpreted with the syntax of chord notation, see
Notació d’acords. Music in chord mode is rendered as chords on a staff
when entered into a Staff context, as chord names when entered
into a ChordNames context or as fret boards when entered into
a FretBoards context.
Chord mode is also activated with the \chords command. This
also causes the following input to be interpreted with the syntax of
chord notation but in addition it implicitly creates a new
ChordNames context and renders the input into it as chord names,
see Impressió dels noms d’acord.
Drum mode
This is activated with the \drummode command, and causes
input to be interpreted with the syntax of drum notation, see
Notació bàsica de percussió. Music in drum mode is rendered as
percussion notes when entered into a DrumStaff context.
Drum mode is also activated with the \drums command. This
also causes the following input to be interpreted with the syntax of
drum notation but in addition it implicitly creates a new
DrumStaff context and renders the input into it as percussion
notes, see Notació bàsica de percussió.
Figure mode
This is activated with the \figuremode command, and causes
input to be interpreted with the syntax of figured bass, see
Introduir el baix xifrat. Music in figure mode is rendered as
figured bass when entered into a FiguredBass context or a
Staff context.
Figure mode is also activated with the \figures command.
This also causes the following input to be interpreted with the
figured bass syntax but in addition it implicitly creates a new
FiguredBass context and renders the input into it as figured
bass, see Introducció al baix xifrat.
Fret and tab modes
There are no special input modes for entering fret and tab symbols.
To create tab diagrams, enter notes or chords in note mode and
render them in a TabStaff context, see
Tabulatures predeterminades.
To create fret diagrams above a staff, enter notes or chords in either
note mode or chord mode and render them in a FretBoards context,
see Diagrames de trast automàtics. Alternatively, fret diagrams can be
entered as markup above the notes using the \fret-diagram
command, see Marcatges de diagrames de trasts.
Lyrics mode
This is activated with the \lyricmode command, and causes
input to be interpreted as lyric syllables with optional durations
and associated lyric modifiers, see Música vocal. Input in
lyric mode is rendered as lyric syllables when entered into a
Lyrics context.
Lyric mode is also activated with the \lyrics command. This
also causes the following input to be interpreted as lyric syllables
but in addition it implicitly creates a new Lyrics context and
renders the input into it as lyric syllables.
Lyric mode is also activated with the \addlyrics command. This
also implicitly creates a new Lyrics context and in addition it
adds an implicit \lyricsto command which associates the following
lyrics with the preceding music, see Duració automàtica de les síl·labes.
Markup mode
This is activated with the \markup command, and causes
input to be interpreted with the syntax of markup, see
Text markup commands.
Note mode
This is the default mode or it may be activated with the
\notemode command. Input is interpreted as pitches,
durations, markup, etc and typeset as musical notation on a staff.
It is not normally necessary to specify note mode explicitly, but it may be useful to do so in certain situations, for example if you are in lyric mode, chord mode or any other mode and want to insert something that only can be done with note mode syntax.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Input modes ] | [ Amunt : Useful concepts and properties ] | [ Articulation direction indicators > ] | ||
5.4.2 Direction and placement
In typesetting music the direction and placement of many items is a matter of choice. For example, the stems of notes can be directed up or down; lyrics, dynamics, and other expressive marks may be placed above or below the staff; text may be aligned left, right or center; etc. Most of these choices may be left to be determined automatically by LilyPond, but in some cases it may be desirable to force a particular direction or placement.
| Articulation direction indicators | ||
| The direction property |
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Direction and placement ] | [ Amunt : Direction and placement ] | [ The direction property > ] | ||
Articulation direction indicators
By default some directions are always up or always down (e.g., dynamics or fermata), while other things can alternate between up or down based on the stem direction (like slurs or accents).
The default action may be overridden by prefixing the articulation
by a direction indicator. Three direction indicators are
available: ^ (meaning “up”), _ (meaning “down”)
and - (meaning “use default direction”). The direction
indicator can usually be omitted, in which case - is assumed,
but a direction indicator is always required before
-
\tweakcommands -
\markupcommands -
\tagcommands - string markups, e.g., -"string"
- fingering instructions, e.g.,
-1 - articulation shortcuts, e.g.,
-.,->,--
Direction indicators affect only the next note:
\relative {
c''2( c)
c2_( c)
c2( c)
c2^( c)
}
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Articulation direction indicators ] | [ Amunt : Direction and placement ] | [ Distances and measurements > ] | ||
The direction property
The position or direction of many layout objects is controlled by the
direction property.
The value of the direction property may be set to 1,
meaning “up” or “above”, or to -1, meaning “down” or
“below”. The symbols UP and DOWN may be used instead
of 1 and -1 respectively. The default direction may
be specified by setting direction to 0 or CENTER.
Alternatively, in many cases predefined commands exist to specify the
direction. These are of the form
\xxxUp, \xxxDown or \xxxNeutral
where \xxxNeutral means “use the default” direction.
See
Within-staff objects.
In a few cases, arpeggio for example, the value of the direction
property can specify whether the object is to be placed to the right or
left of the parent. In this case -1 or LEFT means
“to the left” and 1 or RIGHT means “to the right”.
0 or CENTER means “use the default” direction.
These indications affect all notes until they are canceled.
\relative {
c''2( c)
\slurDown
c2( c)
c2( c)
\slurNeutral
c2( c)
}
In polyphonic music, it is generally better to specify an explicit
voice than change an object’s direction. For more information,
see Veus múltiples.
Vegeu també
Learning Manual: Within-staff objects.
Notation Reference: Veus múltiples.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < The direction property ] | [ Amunt : Useful concepts and properties ] | [ Dimensions > ] | ||
5.4.3 Distances and measurements
Distances in LilyPond are of two types: absolute and scaled.
Absolute distances are used for specifying margins, indents, and
other page layout details, and are by default specified in
millimeters. Distances may be specified in other units by
following the quantity by \mm, \cm,
\in (inches), or \pt (points, 1/72.27 of
an inch). Page layout distances can also be specified in scalable
units (see the following paragraph) by appending
\staff-space to the quantity. Page layout is described in
detail in Page layout.
Scaled distances are always specified in units of the staff-space
or, rarely, the half staff-space. The staff-space is the distance
between two adjacent staff lines. The default value can be changed
globally by setting the global staff size, or it can be overridden
locally by changing the staff-space property of
StaffSymbol. Scaled distances automatically scale with any
change to the either the global staff size or the
staff-space property of StaffSymbol, but fonts scale
automatically only with changes to the global staff size.
The global staff size thus enables the overall size of a rendered
score to be easily varied. For the methods of setting the global
staff size see Setting the staff size.
If just a section of a score needs to be rendered to a different
scale, for example an ossia section or a footnote, the global staff
size cannot simply be changed as this would affect the entire score.
In such cases the change in size is made by overriding both the
staff-space property of StaffSymbol and the size of
the fonts. A Scheme function, magstep, is available to
convert from a font size change to the equivalent change in
staff-space. For an explanation and an example of its use,
see
Length and thickness of objects.
Vegeu també
Learning Manual: Length and thickness of objects.
Notation Reference: Page layout, Setting the staff size.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Distances and measurements ] | [ Amunt : Useful concepts and properties ] | [ Staff symbol properties > ] | ||
5.4.4 Dimensions
The dimensions of a graphical object specify the positions of the left
and right edges and the bottom and top edges of the objects’ bounding
box as distances from the objects’ reference point in units of
staff-spaces. These positions are usually coded as two Scheme pairs.
For example, the text markup command \with-dimensions takes
three arguments, the first two of which are a Scheme pair giving the
left and right edge positions and a Scheme pair giving the bottom and
top edge positions:
\with-dimensions #'(-5 . 10) #'(-3 . 15) arg
This specifies a bounding box for arg with its left edge at -5, its right edge at 10, its bottom edge at -3 and its top edge at 15, all measured from the objects’ reference point in units of staff-spaces.
Vegeu també
Notation Reference: Distances and measurements.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Dimensions ] | [ Amunt : Useful concepts and properties ] | [ Spanners > ] | ||
5.4.5 Staff symbol properties
The vertical position of staff lines and the number of staff lines can be defined at the same time. As the following example shows, note positions are not influenced by the staff line positions.
Nota: The 'line-positions property overrides the
'line-count property. The number of staff lines is
implicitly defined by the number of elements in the list of values
for 'line-positions.
\new Staff \with {
\override StaffSymbol.line-positions = #'(7 3 0 -4 -6 -7)
}
\relative { a4 e' f b | d1 }
The width of a staff can be modified. The units are staff spaces. The spacing of objects inside the staff is not affected by this setting.
\new Staff \with {
\override StaffSymbol.width = #23
}
\relative { a4 e' f b | d1 }
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Staff symbol properties ] | [ Amunt : Useful concepts and properties ] | [ Using the spanner-interface > ] | ||
5.4.6 Spanners
Many objects of musical notation extend over several notes or even several bars. Examples are slurs, beams, tuplet brackets, volta repeat brackets, crescendi, trills, and glissandi. Such objects are collectively called “spanners”, and have special properties to control their appearance and behaviour. Some of these properties are common to all spanners; others are restricted to a sub-set of the spanners.
All spanners support the spanner-interface. A few, essentially
those that draw a straight line between the two objects, support in
addition the line-spanner-interface.
Using the spanner-interface | ||
Using the line-spanner-interface |
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Spanners ] | [ Amunt : Spanners ] | [ Using the line-spanner-interface > ] | ||
Using the spanner-interface
This interface provides two properties that apply to several spanners.
The minimum-length property
The minimum length of the spanner is specified by the
minimum-length property. Increasing this usually has the
necessary effect of increasing the spacing of the notes between the
two end points. However, this override has no effect on
many spanners, as their length is determined by other considerations.
A few examples where it is effective are shown below.
a'~ a' a' % increase the length of the tie -\tweak minimum-length #5 ~ a'
\relative \compressMMRests {
a'1
R1*23
% increase the length of the rest bar
\once \override MultiMeasureRest.minimum-length = #20
R1*23
a1
}
\relative {
a' \< a a a \!
% increase the length of the hairpin
\override Hairpin.minimum-length = #20
a \< a a a \!
}
This override can also be used to increase the length of slurs and phrasing slurs:
\relative {
a'( g)
a
-\tweak minimum-length #5
( g)
a\( g\)
a
-\tweak minimum-length #5
\( g\)
}
For some layout objects, the minimum-length property becomes
effective only if the set-spacing-rods procedure is called
explicitly. To do this, the springs-and-rods property should
be set to ly:spanner::set-spacing-rods. For example,
the minimum length of a glissando has no effect unless the
springs-and-rods property is set:
% default e' \glissando c'' % not effective alone \once \override Glissando.minimum-length = #20 e' \glissando c'' % effective only when both overrides are present \once \override Glissando.minimum-length = #20 \once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods e' \glissando c''
The same is true of the Beam object:
% not effective alone \once \override Beam.minimum-length = #20 e'8 e' e' e' % effective only when both overrides are present \once \override Beam.minimum-length = #20 \once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods e'8 e' e' e'
The to-barline property
The second useful property of the spanner-interface is
to-barline. By default this is true, causing hairpins and
other spanners which are terminated on the first note of a measure to
end instead on the immediately preceding bar line. If set to false,
the spanner will extend beyond the bar line and end on the note
itself:
\relative {
a' \< a a a a \! a a a \break
\override Hairpin.to-barline = ##f
a \< a a a a \! a a a
}
This property is not effective for all spanners. For example,
setting it to #t has no effect on slurs or phrasing slurs
or on other spanners for which terminating on the bar line would
not be meaningful.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Using the spanner-interface ] | [ Amunt : Spanners ] | [ Visibility of objects > ] | ||
Using the line-spanner-interface
Objects which support the line-spanner-interface include
-
DynamicTextSpanner -
Glissando -
TextSpanner -
TrillSpanner -
VoiceFollower
The routine responsible for drawing the stencils for these spanners is
ly:line-spanner::print. This routine determines the
exact location of the two end points and draws a line
between them, in the style requested. The locations of the two
end points of the spanner are computed on-the-fly, but it is
possible to override their Y-coordinates. The
properties which need to be specified are nested
two levels down within the property hierarchy, but the syntax of
the \override command is quite simple:
e''2 \glissando b' \once \override Glissando.bound-details.left.Y = #3 \once \override Glissando.bound-details.right.Y = #-2 e''2 \glissando b'
The units for the Y property are staff-spaces,
with the center line of the staff being the zero point.
For the glissando, this is the value for Y at the
X-coordinate corresponding to the center point of each note head,
if the line is imagined to be extended to there.
If Y is not set, the value is computed from the vertical
position of the corresponding attachment point of the spanner.
In case of a line break, the values for the end points are
specified by the left-broken and right-broken
sub-lists of bound-details. For example:
\override Glissando.breakable = ##t \override Glissando.bound-details.right-broken.Y = #-3 c''1 \glissando \break f''1
A number of further properties of the left and
right sub-lists of the bound-details property
may be modified in the same way as Y:
-
Y This sets the Y-coordinate of the end point, in
staff-spaces offset from the staff center line. By default, it is the center of the bound object, so a glissando points to the vertical center of the note head.For horizontal spanners, such as text spanners and trill spanners, it is hardcoded to 0.
-
attach-dir This determines where the line starts and ends in the X-direction, relative to the bound object. So, a value of
-1(orLEFT) makes the line start/end at the left side of the note head it is attached to.-
X This is the absolute X-coordinate of the end point. It is usually computed on the fly, and overriding it has little useful effect.
-
stencil Line spanners may have symbols at the beginning or end, which is contained in this sub-property. This is for internal use; it is recommended that
textbe used instead.-
text This is a markup that is evaluated to yield the stencil. It is used to put cresc., tr and other text on horizontal spanners.
\override TextSpanner.bound-details.left.text = \markup { \small \bold Slower } \relative { c''2\startTextSpan b c a\stopTextSpan }-
stencil-align-dir-y -
stencil-offset Without setting one of these, the stencil is simply put at the end-point, centered on the line, as defined by the
XandYsub-properties. Setting eitherstencil-align-dir-yorstencil-offsetwill move the symbol at the edge vertically relative to the end point of the line:\override TextSpanner.bound-details.left.stencil-align-dir-y = #-2 \override TextSpanner.bound-details.right.stencil-align-dir-y = #UP \override TextSpanner.bound-details.left.text = #"ggg" \override TextSpanner.bound-details.right.text = #"hhh" \relative { c'4^\startTextSpan c c c \stopTextSpan }Note that negative values move the text up, contrary to the effect that might be expected, as a value of
-1orDOWNmeans align the bottom edge of the text with the spanner line. A value of1orUPaligns the top edge of the text with the spanner line.-
arrow Setting this sub-property to
#tproduces an arrowhead at the end-points of the line.-
padding This sub-property controls the space between the specified end point of the line and the actual end. Without padding, a glissando would start and end in the center of each note head.
The music function \endSpanners terminates the spanner
which starts on the immediately following note prematurely. It
is terminated after exactly one note, or at the following bar line
if to-barline is true and a bar line occurs before the next
note.
\relative c'' {
\endSpanners
c2 \startTextSpan c2 c2
\endSpanners
c2 \< c2 c2
}
When using \endSpanners it is not necessary to close
\startTextSpan with \stopTextSpan, nor is it necessary to close
hairpins with \!.
Vegeu també
Internals Reference: TextSpanner, Glissando, VoiceFollower, TrillSpanner, line-spanner-interface.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Using the line-spanner-interface ] | [ Amunt : Useful concepts and properties ] | [ Removing the stencil > ] | ||
5.4.7 Visibility of objects
There are four main ways in which the visibility of layout objects
can be controlled: their stencil can be removed, they can be made
transparent, they can be colored white, or their
break-visibility property can be overridden. The first
three apply to all layout objects; the last to just a few – the
breakable objects. The Learning Manual introduces these
four techniques, see
Visibility and color of objects.
There are also a few other techniques which are specific to certain layout objects. These are covered under Special considerations.
| Removing the stencil | ||
| Making objects transparent | ||
| Painting objects white | ||
| Using break-visibility | ||
| Special considerations |
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Visibility of objects ] | [ Amunt : Visibility of objects ] | [ Making objects transparent > ] | ||
Removing the stencil
Every layout object has a stencil property. By default this is set
to the specific function which draws that object. If this property
is overridden to #f no function will be called and the object
will not be drawn. The default action can be recovered with
\revert.
a1 a \override Score.BarLine.stencil = ##f a a \revert Score.BarLine.stencil a a a
This rather common operation has a shortcut \omit:
a1 a \omit Score.BarLine a a \undo \omit Score.BarLine a a a
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Removing the stencil ] | [ Amunt : Visibility of objects ] | [ Painting objects white > ] | ||
Making objects transparent
Every layout object has a transparent property which by default is
set to #f. If set to #t the object still occupies
space but is made invisible.
a'4 a' \once \override NoteHead.transparent = ##t a' a'
This rather common operation has a shortcut \hide:
a'4 a' \once \hide NoteHead a' a'
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Making objects transparent ] | [ Amunt : Visibility of objects ] | [ Using break-visibility > ] | ||
Painting objects white
Every layout object has a color property which by default is set
to black. If this is overridden to white the object
will be indistinguishable from the white background. However,
if the object crosses other objects the color of the crossing
points will be determined by the order in which they are drawn,
and this may leave a ghostly image of the white object, as shown
here:
\override Staff.Clef.color = #white a'1
This may be avoided by changing the order of printing the objects.
All layout objects have a layer property which should be set
to an integer. Objects with the lowest value of layer are
drawn first, then objects with progressively higher values are drawn,
so objects with higher values overwrite objects with lower values.
By default most objects are assigned a layer value of
1, although a few objects, including StaffSymbol and
BarLine, are assigned a value of 0. The order of
printing objects with the same value of layer is indeterminate.
In the example above the white clef, with a default layer
value of 1, is drawn after the staff lines (default
layer value 0), so overwriting them. To change this,
the Clef object must be given in a lower value of
layer, say -1, so that it is drawn earlier:
\override Staff.Clef.color = #white \override Staff.Clef.layer = #-1 a'1
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Painting objects white ] | [ Amunt : Visibility of objects ] | [ Special considerations > ] | ||
Using break-visibility
Most layout objects are printed only once, but some like
bar lines, clefs, time signatures and key signatures, may need
to be printed twice when a line break occurs – once at the end
of the line and again at the start of the next line. Such
objects are called breakable, and have a property, the
break-visibility property to control their visibility
at the three positions in which they may appear – at the
start of a line, within a line if they are changed, and at the
end of a line if a change takes place there.
For example, the time signature by default will be printed at the start of the first line, but nowhere else unless it changes, when it will be printed at the point at which the change occurs. If this change occurs at the end of a line the new time signature will be printed at the start of the next line and a cautionary time signature will be printed at the end of the previous line as well.
This behaviour is controlled by the break-visibility
property, which is explained in
Visibility and color of objects. This property takes
a vector of three booleans which, in order, determine whether the
object is printed at the end of, within the body of, or at the
beginning of a line. Or to be more precise, before a line break,
where there is no line break, or after a line break.
Alternatively, these eight combinations may be specified by pre-defined functions, defined in ‘scm/output-lib.scm’, where the last three columns indicate whether the layout objects will be visible in the positions shown at the head of the columns:
| Function | Vector | Before | At no | After |
|---|---|---|---|---|
| form | form | break | break | break |
all-visible | #(#t #t #t) | yes | yes | yes |
begin-of-line-visible | #(#f #f #t) | no | no | yes |
center-visible | #(#f #t #f) | no | yes | no |
end-of-line-visible | #(#t #f #f) | yes | no | no |
begin-of-line-invisible | #(#t #t #f) | yes | yes | no |
center-invisible | #(#t #f #t) | yes | no | yes |
end-of-line-invisible | #(#f #t #t) | no | yes | yes |
all-invisible | #(#f #f #f) | no | no | no |
The default settings of break-visibility depend on the
layout object. The following table shows all the layout objects
of interest which are affected by break-visibility and the
default setting of this property:
| Layout object | Usual context | Default setting |
|---|---|---|
BarLine | Score | calculated |
BarNumber | Score | begin-of-line-visible |
BreathingSign | Voice | begin-of-line-invisible |
Clef | Staff | begin-of-line-visible |
Custos | Staff | end-of-line-visible |
DoublePercentRepeat | Voice | begin-of-line-invisible |
KeyCancellation | Staff | begin-of-line-invisible |
KeySignature | Staff | begin-of-line-visible |
ClefModifier | Staff | begin-of-line-visible |
RehearsalMark | Score | end-of-line-invisible |
TimeSignature | Staff | all-visible |
The example below shows the use of the vector form to control the visibility of bar lines:
\relative {
f'4 g a b
f4 g a b
% Remove bar line at the end of the current line
\once \override Score.BarLine.break-visibility = ##(#f #t #t)
\break
f4 g a b
f4 g a b
}
Although all three components of the vector used to override
break-visibility must be present, not all of them are
effective with every layout object, and some combinations may
even give errors. The following limitations apply:
- Bar lines cannot be printed at the start of line.
- A bar number cannot be printed at the start of the first
line unless it is set to be different from
1. - Clef – see the next section.
- Double percent repeats are either all printed or
all suppressed. Use
begin-of-line-invisibleto print them andall-invisibleto suppress them. - Key signature – see the next section.
- ClefModifier – see the next section.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Using break-visibility ] | [ Amunt : Visibility of objects ] | [ Line styles > ] | ||
Special considerations
Visibility following explicit changes
The break-visibility property controls the visibility of
key signatures and changes of clef only at the start of lines,
i.e., after a break. It has no effect on the visibility of the
key signature or clef following an explicit key change or an
explicit clef change within or at the end of a line. In the
following example the key signature following the explicit change
to B-flat major is still visible, even though all-invisible
is set.
\relative {
\key g \major
f'4 g a b
% Try to remove all key signatures
\override Staff.KeySignature.break-visibility = #all-invisible
\key bes \major
f4 g a b
\break
f4 g a b
f4 g a b
}
The visibility of such explicit key signature and clef changes is
controlled by the explicitKeySignatureVisibility and
explicitClefVisibility properties. These are the equivalent
of the break-visibility property and both take a vector of
three booleans or the predefined functions listed above, exactly like
break-visibility. Both are properties of the Staff context,
not the layout objects themselves, and so they are set using the
\set command. Both are set by default to all-visible.
These properties control only the visibility of key signatures and
clefs resulting from explicit changes and do not affect key
signatures and clefs at the beginning of lines;
break-visibility must still be overridden in the appropriate
object to remove these.
\relative {
\key g \major
f'4 g a b
\set Staff.explicitKeySignatureVisibility = #all-invisible
\override Staff.KeySignature.break-visibility = #all-invisible
\key bes \major
f4 g a b \break
f4 g a b
f4 g a b
}
Visibility of cancelling accidentals
To remove the cancelling accidentals printed at an explicit key
change, set the Staff context property printKeyCancellation
to #f:
\relative {
\key g \major
f'4 g a b
\set Staff.explicitKeySignatureVisibility = #all-invisible
\set Staff.printKeyCancellation = ##f
\override Staff.KeySignature.break-visibility = #all-invisible
\key bes \major
f4 g a b \break
f4 g a b
f4 g a b
}
With these overrides only the accidentals before the notes remain to indicate the change of key.
Note that when changing the key to C major or A minor
the cancelling accidentals would be the only indication of
the key change. In this case setting printKeyCancellation to
#f has no effect:
\relative {
\key g \major
f'4 g a b
\set Staff.explicitKeySignatureVisibility = #all-invisible
\set Staff.printKeyCancellation = ##f
\key c \major
f4 g a b \break
f4 g a b
f4 g a b
}
To suppress the cancelling accidentals even when the key is
changed to C major or A minor, override
the visibility of the KeyCancellation grob instead:
\relative {
\key g \major
f'4 g a b
\set Staff.explicitKeySignatureVisibility = #all-invisible
\override Staff.KeyCancellation.break-visibility = #all-invisible
\key c \major
f4 g a b \break
f4 g a b
f4 g a b
}
Automatic bars
As a special case, the printing of bar lines can also be turned off
by setting the automaticBars property in the Score context.
If set to #f, bar lines will not be printed automatically;
they must be explicitly created with a \bar command. Unlike
the \cadenzaOn predefined command, measures are still counted.
Bar generation will resume according to that count if this property
is later set to #t. When set to #f, line breaks can
occur only at explicit \bar commands.
Transposed clefs
The small transposition symbol on transposed clefs is produced by the
ClefModifier layout object. Its visibility is automatically
inherited from the Clef object, so it is not necessary to apply
any required break-visibility overrides to the ClefModifier
layout objects to suppress transposition symbols for invisible clefs.
For explicit clef changes, the explicitClefVisibility
property controls both the clef symbol and any transposition symbol
associated with it.
Vegeu també
Learning Manual: Visibility and color of objects.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Special considerations ] | [ Amunt : Useful concepts and properties ] | [ Rotating objects > ] | ||
5.4.8 Line styles
Some performance indications, e.g., rallentando and accelerando and trills are written as text and are extended over many measures with lines, sometimes dotted or wavy.
These all use the same routines as the glissando for drawing the
texts and the lines, and tuning their behavior is therefore also
done in the same way. It is done with a spanner, and the routine
responsible for drawing the spanners is
ly:line-spanner::print. This routine determines the
exact location of the two span points and draws a line
between them, in the style requested.
Here is an example showing the different line styles available, and how to tune them.
\relative {
d''2 \glissando d'2
\once \override Glissando.style = #'dashed-line
d,2 \glissando d'2
\override Glissando.style = #'dotted-line
d,2 \glissando d'2
\override Glissando.style = #'zigzag
d,2 \glissando d'2
\override Glissando.style = #'trill
d,2 \glissando d'2
}
The locations of the end-points of the spanner are computed on-the-fly for every graphic object, but it is possible to override these:
\relative {
e''2 \glissando f
\once \override Glissando.bound-details.right.Y = #-2
e2 \glissando f
}
The value for Y is set to -2 for the right end
point. The left side may be similarly adjusted by specifying
left instead of right.
If Y is not set, the value is computed from the vertical
position of the left and right attachment points of the spanner.
Other adjustments of spanners are possible, for details, see Spanners.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Line styles ] | [ Amunt : Useful concepts and properties ] | [ Rotating layout objects > ] | ||
5.4.9 Rotating objects
Both layout objects and elements of markup text can be rotated by any angle about any point, but the method of doing so differs.
| Rotating layout objects | ||
| Rotating markup |
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Rotating objects ] | [ Amunt : Rotating objects ] | [ Rotating markup > ] | ||
Rotating layout objects
All layout objects which support the grob-interface can be
rotated by setting their rotation property. This takes a
list of three items: the angle of rotation counter-clockwise,
and the x and y coordinates of the point relative to the object’s
reference point about which the rotation is to be performed. The
angle of rotation is specified in degrees and the coordinates in
staff-spaces.
The angle of rotation and the coordinates of the rotation point must be determined by trial and error.
There are only a few situations where the rotation of layout objects is useful; the following example shows one situation where they may be:
g4\< e' d'' f''\! \override Hairpin.rotation = #'(20 -1 0) g4\< e' d'' f''\!
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Rotating layout objects ] | [ Amunt : Rotating objects ] | [ Advanced tweaks > ] | ||
Rotating markup
All markup text can be rotated to lie at any angle by prefixing it
with the \rotate command. The command takes two arguments:
the angle of rotation in degrees counter-clockwise and the text to
be rotated. The extents of the text are not rotated: they take
their values from the extremes of the x and y coordinates of the
rotated text. In the following example the
outside-staff-priority property for text is set to #f
to disable the automatic collision avoidance, which would push some
of the text too high.
\override TextScript.outside-staff-priority = ##f
g4^\markup { \rotate #30 "a G" }
b^\markup { \rotate #30 "a B" }
des'^\markup { \rotate #30 "a D-Flat" }
fis'^\markup { \rotate #30 "an F-Sharp" }
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Rotating markup ] | [ Amunt : Changing defaults ] | [ Aligning objects > ] | ||
5.5 Advanced tweaks
This section discusses various approaches to fine tuning the appearance of the printed score.
| 5.5.1 Aligning objects | ||
| 5.5.2 Vertical grouping of grobs | ||
| 5.5.3 Modifying stencils | ||
| 5.5.4 Modifying shapes | ||
| 5.5.5 Modifying broken spanners | ||
| 5.5.6 Unpure-pure containers |
Vegeu també
Learning Manual: Tweaking output, Other sources of information.
Notation Reference: Explaining the Internals Reference, Modifying properties.
Extending LilyPond: Interfaces for programmers.
Installed Files: ‘scm/define-grobs.scm’.
Snippets: Tweaks and overrides.
Internals Reference: All layout objects.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Advanced tweaks ] | [ Amunt : Advanced tweaks ] | [ Setting X-offset and Y-offset directly > ] | ||
5.5.1 Aligning objects
Graphical objects which support the self-alignment-interface
and/or the side-position-interface can be aligned to a previously
placed object in a variety of ways. For a list of these objects, see
self-alignment-interface and
side-position-interface.
All graphical objects have a reference point, a horizontal extent and a vertical extent. The horizontal extent is a pair of numbers giving the displacements from the reference point of the left and right edges, displacements to the left being negative. The vertical extent is a pair of numbers giving the displacement from the reference point to the bottom and top edges, displacements down being negative.
An object’s position on a staff is given by the values of the
X-offset and Y-offset properties. The value of
X-offset gives the displacement from the X coordinate of
the reference point of the parent object, and the value of
Y-offset gives the displacement from the center line of the
staff. The values of X-offset and Y-offset may
be set directly or may be set to be calculated by procedures in order
to achieve alignment with the parent object.
Nota: Many objects have special positioning considerations which
cause any setting of X-offset or Y-offset to be
ignored or modified, even though the object supports the
self-alignment-interface. Overriding the X-offset
or Y-offset properties to a fixed value causes the respective
self-alignment property to be disregarded.
For example, an accidental can be repositioned vertically by setting
Y-offset but any changes to X-offset have no effect.
Rehearsal marks may be aligned with breakable objects such as bar
lines, clef symbols, time signature symbols and key signatures. There
are special properties to be found in the break-aligned-interface
for positioning rehearsal marks on such objects.
Vegeu també
Notation Reference:
Using the break-alignable-interface.
Extending LilyPond: Callback functions.
Setting X-offset and Y-offset directly | ||
Using the side-position-interface | ||
Using the self-alignment-interface | ||
Using the break-alignable-interface |
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Aligning objects ] | [ Amunt : Aligning objects ] | [ Using the side-position-interface > ] | ||
Setting X-offset and Y-offset directly
Numerical values may be given to the X-offset and Y-offset
properties of many objects. The following example shows three
notes with the default fingering position and the positions with X-offset
and Y-offset modified.
a'-3 a' -\tweak X-offset #0 -\tweak Y-offset #0 -3 a' -\tweak X-offset #-1 -\tweak Y-offset #1 -3
Using the side-position-interface
An object which supports the side-position-interface can be
placed next to its parent object so that
the specified edges of the two objects touch. The object may be
placed above, below, to the right or to the left of the parent.
The parent cannot be specified; it is determined by the order of
elements in the input stream. Most objects have the associated
note head as their parent.
The values of the side-axis and direction properties
determine where the object is to be placed, as follows:
side-axis | direction | |
|---|---|---|
| property | property | Placement |
0 | -1 | left |
0 | 1 | right |
1 | -1 | below |
1 | 1 | above |
When side-axis is 0, X-offset should be set to
the procedure ly:side-position-interface::x-aligned-side.
This procedure will return the correct value of X-offset to
place the object to the left or right side of the parent according
to value of direction.
When side-axis is 1, Y-offset should be set to
the procedure ly:side-position-interface::y-aligned-side.
This procedure will return the correct value of Y-offset to
place the object to the top or bottom of the parent according
to value of direction.
Using the self-alignment-interface
Self-aligning objects horizontally
The horizontal alignment of an object which supports the
self-alignment-interface is controlled by the value of
the self-alignment-X property, provided the object’s
X-offset property is set to
ly:self-alignment-interface::x-aligned-on-self.
self-alignment-X may be given any
real value, in units of half the total X extent of the
object. Negative values move the object to the right, positive
to the left. A value of 0 centers the object on the
reference point of its parent, a value of -1 aligns the
left edge of the object on the reference point of its parent,
and a value of 1 aligns the right edge of the object on the
reference point of its parent. The symbols LEFT,
CENTER, and RIGHT may be used instead of the values
-1, 0, and 1, respectively.
Normally the \override command would be used to modify the
value of self-alignment-X, but the \tweak command
can be used to separately align several annotations on a single
note:
a' -\tweak self-alignment-X #-1 ^"left-aligned" -\tweak self-alignment-X #0 ^"center-aligned" -\tweak self-alignment-X #RIGHT ^"right-aligned" -\tweak self-alignment-X #-2.5 ^"aligned further to the right"
Self-aligning objects vertically
Objects may be aligned vertically in an analogous way to aligning
them horizontally if the Y-offset property is set to
ly:self-alignment-interface::y-aligned-on-self. However,
other mechanisms are often involved in vertical alignment: the
value of Y-offset is just one variable taken into account.
This may make adjusting the value of some objects tricky.
The units are just half the vertical extent of the object, which
is usually quite small, so quite large numbers may be required.
A value of -1 aligns the lower edge of the object with
the reference point of the parent object, a value of 0
aligns the center of the object with the reference point of the
parent, and a value of 1 aligns the top edge of the object
with the reference point of the parent. The symbols DOWN,
CENTER, and UP may be substituted for -1,
0, and 1, respectively.
Self-aligning objects in both directions
By setting both X-offset and Y-offset, an object may
be aligned in both directions simultaneously.
The following example shows how to adjust a fingering mark so that it nestles close to the note head.
a' -\tweak self-alignment-X #0.5 % move horizontally left -\tweak Y-offset #ly:self-alignment-interface::y-aligned-on-self -\tweak self-alignment-Y #-1 % move vertically up -3 % third finger
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Using the self-alignment-interface ] | [ Amunt : Aligning objects ] | [ Vertical grouping of grobs > ] | ||
Using the break-alignable-interface
Rehearsal marks and bar numbers may be aligned with notation
objects other than bar lines. These objects include ambitus,
breathing-sign, clef, custos, staff-bar,
left-edge, key-cancellation, key-signature, and
time-signature.
Each type of object has its own default reference point, to which rehearsal marks are aligned:
% The rehearsal mark will be aligned to the right edge of the Clef \override Score.RehearsalMark.break-align-symbols = #'(clef) \key a \major \clef treble \mark "↓" e'1 % The rehearsal mark will be aligned to the left edge of the Time Signature \override Score.RehearsalMark.break-align-symbols = #'(time-signature) \key a \major \clef treble \time 3/4 \mark "↓" e'2. % The rehearsal mark will be centered above the Breath Mark \override Score.RehearsalMark.break-align-symbols = #'(breathing-sign) \key a \major \clef treble \time 4/4 e'1 \breathe \mark "↓"
A list of possible target alignment objects may be specified. If
some of the objects are invisible at that point due to the setting
of break-visibility or the explicit visibility settings for
keys and clefs, the rehearsal mark or bar number is aligned to the
first object in the list which is visible. If no objects in the
list are visible the object is aligned to the bar line. If the bar
line is invisible the object is aligned to the place where the bar
line would be.
% The rehearsal mark will be aligned to the right edge of the Key Signature \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef treble \mark "↓" e'1 % The rehearsal mark will be aligned to the right edge of the Clef \set Staff.explicitKeySignatureVisibility = #all-invisible \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef bass \mark "↓" gis,1 % The rehearsal mark will be centered above the Bar Line \set Staff.explicitKeySignatureVisibility = #all-invisible \set Staff.explicitClefVisibility = #all-invisible \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef treble \mark "↓" e'1
The alignment of the rehearsal mark relative to the notation object can be changed, as shown in the following example. In a score with multiple staves, this setting should be done for all the staves.
% The RehearsalMark will be aligned with the right edge of the Key Signature \override Score.RehearsalMark.break-align-symbols = #'(key-signature) \key a \major \clef treble \time 4/4 \mark "↓" e'1 % The RehearsalMark will be centered above the Key Signature \once \override Score.KeySignature.break-align-anchor-alignment = #CENTER \mark "↓" \key a \major e'1 % The RehearsalMark will be aligned with the left edge of the Key Signature \once \override Score.KeySignature.break-align-anchor-alignment = #LEFT \key a \major \mark "↓" e'1
The rehearsal mark can also be offset to the right or left of the left edge by an arbitrary amount. The units are staff-spaces:
% The RehearsalMark will be aligned with the left edge of the Key Signature % and then shifted right by 3.5 staff-spaces \override Score.RehearsalMark.break-align-symbols = #'(key-signature) \once \override Score.KeySignature.break-align-anchor = #3.5 \key a \major \mark "↓" e'1 % The RehearsalMark will be aligned with the left edge of the Key Signature % and then shifted left by 2 staff-spaces \once \override Score.KeySignature.break-align-anchor = #-2 \key a \major \mark "↓" e'1
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Using the break-alignable-interface ] | [ Amunt : Advanced tweaks ] | [ Modifying stencils > ] | ||
5.5.2 Vertical grouping of grobs
The VerticalAlignment and VerticalAxisGroup grobs work together. VerticalAxisGroup groups together different grobs like Staff, Lyrics, etc. VerticalAlignment then vertically aligns the different grobs grouped together by VerticalAxisGroup. There is usually only one VerticalAlignment per score but every Staff, Lyrics, etc., has its own VerticalAxisGroup.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Vertical grouping of grobs ] | [ Amunt : Advanced tweaks ] | [ Modifying shapes > ] | ||
5.5.3 Modifying stencils
All layout objects have a stencil property which is part of
the grob-interface. By default, this property is usually
set to a function specific to the object that is tailor-made to
render the symbol which represents it in the output. For example,
the standard setting for the stencil property of the
MultiMeasureRest object is ly:multi-measure-rest::print.
The standard symbol for any object can be replaced by modifying the
stencil property to reference a different, specially-written,
procedure. This requires a high level of knowledge of the internal
workings of LilyPond, but there is an easier way which can often
produce adequate results.
This is to set the stencil property to the procedure which
prints text – ly:text-interface::print – and to add a
text property to the object which is set to contain the
markup text which produces the required symbol. Due to the
flexibility of markup, much can be achieved – see in particular
Notació gràfica dins d’elements de marcatge.
The following example demonstrates this by changing the note head symbol to a cross within a circle.
XinO = {
\once \override NoteHead.stencil = #ly:text-interface::print
\once \override NoteHead.text = \markup {
\combine
\halign #-0.7 \draw-circle #0.85 #0.2 ##f
\musicglyph "noteheads.s2cross"
}
}
\relative {
a' a \XinO a a
}
Any of the Feta glyphs used in the Emmentaler font can be
supplied to the \musicglyph markup command – see
The Emmentaler font.
‘EPS’ files and Postscript commands can both be inserted inline
using the \epsfile and \postscript markup commands
respectively – see Graphic.
Vegeu també
Notation Reference: Notació gràfica dins d’elements de marcatge, Donar format al text, Text markup commands, The Emmentaler font, Graphic.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Modifying stencils ] | [ Amunt : Advanced tweaks ] | [ Modifying ties and slurs > ] | ||
5.5.4 Modifying shapes
| Modifying ties and slurs |
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Modifying shapes ] | [ Amunt : Modifying shapes ] | [ Modifying broken spanners > ] | ||
Modifying ties and slurs
Ties, Slurs, PhrasingSlurs,
LaissezVibrerTies and RepeatTies are all drawn as
third-order Bézier curves. If the shape of the tie or slur which
is calculated automatically is not optimum, the shape may be
modified manually in two ways:
- by specifying the displacements to be made to the control points of the automatically calculated Bézier curve, or
- by explicitly specifying the positions of the four control points required to define the wanted curve.
Both methods are explained below. The first method is more suitable if only slight adjustments to the curve are required; the second may be better for creating curves which are related to just a single note.
Cubic Bézier curves
Third-order or cubic Bézier curves are defined by four control points. The first and fourth control points are precisely the starting and ending points of the curve. The intermediate two control points define the shape. Animations showing how the curve is drawn can be found on the web, but the following description may be helpful. The curve starts from the first control point heading directly towards the second, gradually bending over to head towards the third and continuing to bend over to head towards the fourth, arriving there travelling directly from the third control point. The curve is entirely contained in the quadrilateral defined by the four control points. Translations, rotations and scaling of the control points all result in exactly the same operations on the curve.
Specifying displacements from current control points
In this example the automatic placement of the tie is not optimum,
and \tieDown would not help.
<<
{ e'1~ 1 }
\\
\relative { r4 <g' c,> <g c,> <g c,> }
>>
Adjusting the control points of the tie with \shape allows
the collisions to be avoided.
The syntax of \shape is
[-]\shape displacements item
This will reposition the control-points of item by the amounts
given by displacements. The displacements argument is a
list of number pairs or a list of such lists. Each element of a pair
represents the displacement of one of the coordinates of a
control-point. If item is a string, the result is
\once\override for the specified grob type. If item is
a music expression, the result is the same music expression with an
appropriate tweak applied.
In other words, the \shape function can act as either a
\once\override command or a \tweak command depending
on whether the item argument is a grob name, like “Slur”,
or a music expression, like “(”. The displacements argument
specifies the displacements of the four control points as a list of
four pairs of (dx . dy) values in units of staff-spaces (or a list
of such lists if the curve has more than one segment).
The leading hyphen is required if and only if the \tweak form
is being used.
So, using the same example as above and the \once\override
form of \shape, this will raise the tie by half a staff-space:
<<
{
\shape #'((0 . 0.5) (0 . 0.5) (0 . 0.5) (0 . 0.5)) Tie
e'1~ 1
}
\\
\relative { r4 <g' c,> <g c,> <g c,> }
>>
This positioning of the tie is better, but maybe it should be raised
more in the center. The following example does this, this time using
the alternative \tweak form:
<<
{
e'1-\shape #'((0 . 0.5) (0 . 1) (0 . 1) (0 . 0.5)) ~ e'
}
\\
\relative { r4 <g' c,> <g c,> <g c,> }
>>
Changes to the horizontal positions of the control points may be made in the same way, and two different curves starting at the same musical moment may also be shaped:
\relative {
c''8(\( a) a'4 e c\)
\shape #'((0.7 . -0.4) (0.5 . -0.4) (0.3 . -0.3) (0 . -0.2)) Slur
\shape #'((0 . 0) (0 . 0.5) (0 . 0.5) (0 . 0)) PhrasingSlur
c8(\( a) a'4 e c\)
}
The \shape function can also displace the control points of
curves which stretch across line breaks. Each piece of the broken
curve can be given its own list of offsets. If changes to a
particular segment are not needed, the empty list can serve as a
placeholder. In this example the line break makes the single slur
look like two:
\relative {
c'4( f g c
\break
d,4 c' f, c)
}
Changing the shapes of the two halves of the slur makes it clearer that the slur continues over the line break:
% () may be used as a shorthand for ((0 . 0) (0 . 0) (0 . 0) (0 . 0))
% if any of the segments does not need to be changed
\relative c' {
\shape #'(
(( 0 . 0) (0 . 0) (0 . 0) (0 . 1))
((0.5 . 1.5) (1 . 0) (0 . 0) (0 . -1.5))
) Slur
c4( f g c
\break
d,4 c' f, c)
}
If an S-shaped curve is required the control points must always be adjusted manually — LilyPond will never select such shapes automatically.
\relative c'' {
c8( e b-> f d' a e-> g)
\shape #'((0 . -1) (5.5 . -0.5) (-5.5 . -10.5) (0 . -5.5)) PhrasingSlur
c8\( e b-> f d' a e-> g\)
}
Specifying control points explicitly
The coordinates of the Bézier control points are specified in units of staff-spaces. The X coordinate is relative to the reference point of the note to which the tie or slur is attached, and the Y coordinate is relative to the staff center line. The coordinates are specified as a list of four pairs of decimal numbers (reals). One approach is to estimate the coordinates of the two end points, and then guess the two intermediate points. The optimum values are then found by trial and error. Be aware that these values may need to be manually adjusted if any further changes are made to the music or the layout.
One situation where specifying the control points explicitly is preferable to specifying displacements is when they need to be specified relative to a single note. Here is an example of this. It shows one way of indicating a slur extending into alternative sections of a volta repeat.
\relative {
c''1
\repeat volta 3 { c4 d( e f }
\alternative {
{ g2) d }
{
g2
% create a slur and move it to a new position
% the <> is just an empty chord to carry the slur termination
-\tweak control-points #'((-2 . 3.8) (-1 . 3.9) (0 . 4) (1 . 3.4)) ( <> )
f,
}
{
e'2
% create a slur and move it to a new position
-\tweak control-points #'((-2 . 3) (-1 . 3.1) (0 . 3.2) (1 . 2.4)) ( <> )
f,
}
}
}
Advertiments i problemes coneguts
It is not possible to modify shapes of ties or slurs by changing
the control-points property if there are multiple ties or slurs
at the same musical moment – the \tweak command will also not
work in this case. However, the tie-configuration property of
TieColumn can be overridden to set start line and direction as
required.
Vegeu també
Internals Reference: TieColumn.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Modifying ties and slurs ] | [ Amunt : Advanced tweaks ] | [ Using alterBroken > ] | ||
5.5.5 Modifying broken spanners
Using \alterBroken |
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Modifying broken spanners ] | [ Amunt : Modifying broken spanners ] | [ Unpure-pure containers > ] | ||
Using \alterBroken
When a spanner crosses a line break or breaks, each piece
inherits the attributes of the original spanner. Thus, ordinary
tweaking of a broken spanner applies the same modifications to
each of its segments. In the example below, overriding
thickness affects the slur on either side of the line
break.
\relative c'' {
r2
\once\override Slur.thickness = 10
c8( d e f
\break
g8 f e d) r2
}
Independently modifying the appearance of individual pieces
of a broken spanner is possible with the \alterBroken
command. This command can produce either an \override
or a \tweak of a spanner property.
The syntax for \alterBroken is
[-]\alterBroken property values item
The argument values is a list of values, one for each
broken piece. If item is a grob name like Slur or
Staff.PianoPedalBracket, the result is an \override
of the specified grob type. If item is a music expression
such as “(” or “[” the result is the same music expression
with an appropriate tweak applied.
The leading hyphen must be used with the \tweak form. Do
not add it when \alterBroken is used as an
\override.
In its \override usage, \alterBroken may be
prefaced by \once or \temporary and reverted by
using \revert with property.
The following code applies an independent \override to
each of the slur segments in the previous example:
\relative c'' {
r2
\alterBroken thickness #'(10 1) Slur
c8( d e f
\break
g8 f e d) r2
}
The \alterBroken command may be used with any spanner
object, including Tie, PhrasingSlur, Beam
and TextSpanner. For example, an editor preparing a
scholarly edition may wish to indicate the absence of part of a
phrasing slur in a source by dashing only the segment which has
been added. The following example illustrates how this can be
done, in this case using the \tweak form of the command:
% The empty list is conveniently used below, because it is the
% default setting of dash-definition, resulting in a solid curve.
\relative {
c''2-\alterBroken dash-definition #'(() ((0 1.0 0.4 0.75))) \(e
\break
g2 e\)
}
It is important to understand that \alterBroken will set
each piece of a broken spanner to the corresponding value in
values. When there are fewer values than pieces, any
additional piece will be assigned the empty list. This may lead
to undesired results if the layout property is not set to the
empty list by default. In such cases, each segment should be
assigned an appropriate value.
Advertiments i problemes coneguts
Line breaks may occur in different places following changes in
layout. Settings chosen for \alterBroken may be unsuitable
for a spanner that is no longer broken or is split into more
segments than before. Explicit use of \break can guard
against this situation.
The \alterBroken command is ineffective for spanner
properties accessed before line-breaking such as
direction.
Vegeu també
Extending LilyPond: Difficult tweaks.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Using alterBroken ] | [ Amunt : Advanced tweaks ] | [ Using music functions > ] | ||
5.5.6 Unpure-pure containers
Unpure-pure containers are useful for overriding Y-axis spacing
calculations - specifically Y-offset and Y-extent - with a
Scheme function instead of a literal (i.e., a number or pair).
For certain grobs, the Y-extent is based on the stencil
property, overriding the stencil property of one of these will
require an additional Y-extent override with an unpure-pure
container. When a function overrides a Y-offset and/or
Y-extent it is assumed that this will trigger line breaking
calculations too early during compilation. So the function is not
evaluated at all (usually returning a value of ‘0’ or
‘'(0 . 0)’) which can result in collisions. A ‘pure’ function
will not affect properties, objects or grob suicides and therefore will
always have its Y-axis-related evaluated correctly.
Currently, there are about thirty functions that are already considered ‘pure’ and Unpure-pure containers are a way to set functions not on this list as ‘pure’. The ‘pure’ function is evaluated before any line-breaking and so the horizontal spacing can be adjusted ‘in time’. The ‘unpure’ function is then evaluated after line breaking.
Nota: As it is difficult to always know which functions are on this
list we recommend that any ‘pure’ functions you create do not use
Beam or VerticalAlignment grobs.
An unpure-pure container is constructed as follows;
(ly:make-unpure-pure-container f0 f1)
where f0 is a function taking n arguments (n >= 1)
and the first argument must always be the grob. This is the function
that gives the actual result. f1 is the function being labeled
as ‘pure’ that takes n + 2 arguments. Again, the first argument
must always still be the grob but the second and third are ‘start’
and ‘end’ arguments.
start and end are, for all intents and purposes, dummy
values that only matter for Spanners (i.e Hairpin or
Beam), that can return different height estimations based on a
starting and ending column.
The rest are the other arguments to the first function (which may be none if n = 1).
The results of the second function are used as an approximation of the value needed which is then used by the first function to get the real value which is then used for fine-tuning much later during the spacing process.
#(define (square-line-circle-space grob)
(let* ((pitch (ly:event-property (ly:grob-property grob 'cause) 'pitch))
(notename (ly:pitch-notename pitch)))
(if (= 0 (modulo notename 2))
(make-circle-stencil 0.5 0.0 #t)
(make-filled-box-stencil '(0 . 1.0)
'(-0.5 . 0.5)))))
squareLineCircleSpace = {
\override NoteHead.stencil = #square-line-circle-space
}
smartSquareLineCircleSpace = {
\squareLineCircleSpace
\override NoteHead.Y-extent =
#(ly:make-unpure-pure-container
ly:grob::stencil-height
(lambda (grob start end) (ly:grob::stencil-height grob)))
}
\new Voice \with { \remove "Stem_engraver" }
\relative c'' {
\squareLineCircleSpace
cis4 ces disis d
\smartSquareLineCircleSpace
cis4 ces disis d
}
In the first measure, without the unpure-pure container, the spacing engine does not know the width of the note head and lets it collide with the accidentals. In the second measure, with unpure-pure containers, the spacing engine knows the width of the note heads and avoids the collision by lengthening the line accordingly.
Usually for simple calculations nearly-identical functions for
both the ‘unpure’ and ‘pure’ parts can be used, by only
changing the number of arguments passed to, and the scope of, the
function. This use case is frequent enough that
ly:make-unpure-pure-container constructs such a second
function by default when called with only one function argument.
Nota: If a function is labeled as ‘pure’ and it turns out not to be, the results can be unexpected.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Unpure-pure containers ] | [ Amunt : Changing defaults ] | [ Substitution function syntax > ] | ||
5.6 Using music functions
Where tweaks need to be reused with different music expressions, it is often convenient to make the tweak part of a music function. In this section, we discuss only substitution functions, where the object is to substitute a variable into a piece of LilyPond input code. Other more complex functions are described in Music functions.
| 5.6.1 Substitution function syntax | ||
| 5.6.2 Substitution function examples |
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Using music functions ] | [ Amunt : Using music functions ] | [ Substitution function examples > ] | ||
5.6.1 Substitution function syntax
Making a function that substitutes a variable into LilyPond code is easy. The general form of these functions is
function =
#(define-music-function
(arg1 arg2 …)
(type1? type2? …)
#{
…music…
#})
where
argN | nth argument |
typeN? | a scheme type predicate for which argN
must return #t. |
…music… | normal LilyPond input, using $ (in places where only
LilyPond constructs are allowed) or # (to use it as a Scheme
value or music function argument or music inside of music lists) to
reference arguments
(eg. ‘#arg1’). |
The list of type predicates is required. Some of the most common type predicates used in music functions are:
boolean? cheap-list? (use instead of ‘list?’ for faster processing) ly:duration? ly:music? ly:pitch? markup? number? pair? string? symbol?
For a list of available type predicates, see Predefined type predicates. User-defined type predicates are also allowed.
Vegeu també
Notation Reference: Predefined type predicates.
Extending LilyPond: Music functions.
Installed Files: ‘lily/music-scheme.cc’, ‘scm/c++.scm’, ‘scm/lily.scm’.
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Notation manual tables >> ] | ||
| [ < Substitution function syntax ] | [ Amunt : Using music functions ] | [ Notation manual tables > ] | ||
5.6.2 Substitution function examples
This section introduces some substitution function examples. These are not intended to be exhaustive, but rather to demonstrate some of the possibilities of simple substitution functions.
In the first example, a function is defined that simplifies setting the padding of a TextScript:
padText =
#(define-music-function
(padding)
(number?)
#{
\once \override TextScript.padding = #padding
#})
\relative {
c''4^"piu mosso" b a b
\padText #1.8
c4^"piu mosso" b a b
\padText #2.6
c4^"piu mosso" b a b
}
In addition to numbers, we can use music expressions such as notes for arguments to music functions:
custosNote =
#(define-music-function
(note)
(ly:music?)
#{
\tweak NoteHead.stencil #ly:text-interface::print
\tweak NoteHead.text
\markup \musicglyph "custodes.mensural.u0"
\tweak Stem.stencil ##f
#note
#})
\relative { c'4 d e f \custosNote g }
Both of those functions are simple single expressions where only
the last element of a function call or override is missing. For
those particular function definitions, there is a simpler
alternative syntax, namely just writing out the constant part of
the expression and replacing its final missing element with
\etc:
padText =
\once \override TextScript.padding = \etc
\relative {
c''4^"piu mosso" b a b
\padText #1.8
c4^"piu mosso" b a b
\padText #2.6
c4^"piu mosso" b a b
}
custosNote =
\tweak NoteHead.stencil #ly:text-interface::print
\tweak NoteHead.text
\markup \musicglyph "custodes.mensural.u0"
\tweak Stem.stencil ##f
\etc
\relative { c'4 d e f \custosNote g }
Substitution functions with multiple arguments can be defined:
tempoPadded =
#(define-music-function
(padding tempotext)
(number? markup?)
#{
\once \override Score.MetronomeMark.padding = #padding
\tempo \markup { \bold #tempotext }
#})
\relative {
\tempo \markup { "Low tempo" }
c''4 d e f g1
\tempoPadded #4.0 "High tempo"
g4 f e d c1
}
| [ << Changing defaults ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Substitution function examples ] | [ Amunt : Top ] | [ Chord name chart > ] | ||
A. Notation manual tables
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Notation manual tables ] | [ Amunt : Notation manual tables ] | [ Common chord modifiers > ] | ||
A.1 Chord name chart
The following chart shows two standard systems for printing chord names, along with the pitches they represent.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Chord name chart ] | [ Amunt : Notation manual tables ] | [ Predefined string tunings > ] | ||
A.2 Common chord modifiers
The following table shows chord modifiers that can be used to generate standard chord structures.
| Type | Interval | Modifier | Example | Output |
| Major | Major third, perfect fifth | 5 or nothing | c1:5 | |
| Minor | Minor third, perfect fifth | m or m5 | c1:m | |
| Augmented | Major third, augmented fifth | aug | c1:aug | |
| Diminished | Minor third, diminished fifth | dim | c1:dim | |
| Dominant seventh | Major triad, minor seventh | 7 | c1:7 | |
| Major seventh | Major triad, major seventh | maj7 or maj | c1:maj7 | |
| Minor seventh | Minor triad, minor seventh | m7 | c1:m7 | |
| Diminished seventh | Diminished triad, diminished seventh | dim7 | c1:dim7 | |
| Augmented seventh | Augmented triad, minor seventh | aug7 | c1:aug7 | |
| Half-diminished seventh | Diminished triad, minor seventh | m7.5- | c1:m7.5- | |
| Minor-major seventh | Minor triad, major seventh | m7+ | c1:m7+ | |
| Major sixth | Major triad, sixth | 6 | c1:6 | |
| Minor sixth | Minor triad, sixth | m6 | c1:m6 | |
| Dominant ninth | Dominant seventh, major ninth | 9 | c1:9 | |
| Major ninth | Major seventh, major ninth | maj9 | c1:maj9 | |
| Minor ninth | Minor seventh, major ninth | m9 | c1:m9 | |
| Dominant eleventh | Dominant ninth, perfect eleventh | 11 | c1:11 | |
| Major eleventh | Major ninth, perfect eleventh | maj11 | c1:maj11 | |
| Minor eleventh | Minor ninth, perfect eleventh | m11 | c1:m11 | |
| Dominant thirteenth | Dominant ninth, major thirteenth | 13 | c1:13 | |
| Dominant thirteenth | Dominant eleventh, major thirteenth | 13.11 | c1:13.11 | |
| Major thirteenth | Major eleventh, major thirteenth | maj13.11 | c1:maj13.11 | |
| Minor thirteenth | Minor eleventh, major thirteenth | m13.11 | c1:m13.11 | |
| Suspended second | Major second, perfect fifth | sus2 | c1:sus2 | |
| Suspended fourth | Perfect fourth, perfect fifth | sus4 | c1:sus4 | |
| Power chord (two-voiced) | Perfect fifth | 1.5 | \powerChords c1:5 | |
| Power chord (three-voiced) | Perfect fifth, octave | 1.5.8 | \powerChords c1:5.8 |
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Common chord modifiers ] | [ Amunt : Notation manual tables ] | [ Predefined fretboard diagrams > ] | ||
A.3 Predefined string tunings
The chart below shows the predefined string tunings.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Predefined string tunings ] | [ Amunt : Notation manual tables ] | [ Diagrams for Guitar > ] | ||
A.4 Predefined fretboard diagrams
| Diagrams for Guitar | ||
| Diagrams for Ukulele | ||
| Diagrams for Mandolin |
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Predefined fretboard diagrams ] | [ Amunt : Predefined fretboard diagrams ] | [ Diagrams for Ukulele > ] | ||
Diagrams for Guitar
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Diagrams for Guitar ] | [ Amunt : Predefined fretboard diagrams ] | [ Diagrams for Mandolin > ] | ||
Diagrams for Ukulele
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Diagrams for Ukulele ] | [ Amunt : Predefined fretboard diagrams ] | [ Predefined paper sizes > ] | ||
Diagrams for Mandolin
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Diagrams for Mandolin ] | [ Amunt : Notation manual tables ] | [ MIDI instruments > ] | ||
A.5 Predefined paper sizes
Paper sizes are defined in ‘scm/paper.scm’
The “ISO 216” A Series
-
"a10" (26 x 37 mm)
-
"a9" (37 x 52 mm)
-
"a8" (52 x 74 mm)
-
"a7" (74 x 105 mm)
-
"a6" (105 x 148 mm)
-
"a5" (148 x 210 mm)
-
"a4" (210 x 297 mm)
-
"a3" (297 x 420 mm)
-
"a2" (420 x 594 mm)
-
"a1" (594 x 841 mm)
-
"a0" (841 x 1189 mm)
The “ISO 216” B Series
-
"b10" (31 x 44 mm)
-
"b9" (44 x 62 mm)
-
"b8" (62 x 88 mm)
-
"b7" (88 x 125 mm)
-
"b6" (125 x 176 mm)
-
"b5" (176 x 250 mm)
-
"b4" (250 x 353 mm)
-
"b3" (353 x 500 mm)
-
"b2" (500 x 707 mm)
-
"b1" (707 x 1000 mm)
-
"b0" (1000 x 1414 mm)
Two extended sizes as defined in “DIN 476”
-
"4a0" (1682 x 2378 mm)
-
"2a0" (1189 x 1682 mm)
“ISO 269” standard C series
-
"c10" (28 x 40 mm)
-
"c9" (40 x 57 mm)
-
"c8" (57 x 81 mm)
-
"c7" (81 x 114 mm)
-
"c6" (114 x 162 mm)
-
"c5" (162 x 229 mm)
-
"c4" (229 x 324 mm)
-
"c3" (324 x 458 mm)
-
"c2" (458 x 648 mm)
-
"c1" (648 x 917 mm)
-
"c0" (917 x 1297 mm)
North American paper sizes
-
"junior-legal" (8.0 x 5.0 in)
-
"legal" (8.5 x 14.0 in)
-
"ledger" (17.0 x 11.0 in)
-
"letter" (8.5 x 11.0 in)
-
"tabloid" (11.0 x 17.0 in)
-
"11x17" (11.0 x 17.0 in)
-
"17x11" (17.0 x 11.0 in)
Government-letter by IEEE Printer Working Group, for children’s writing
-
"government-letter" (8 x 10.5 in)
-
"government-legal" (8.5 x 13.0 in)
-
"philippine-legal" (8.5 x 13.0 in)
ANSI sizes
-
"ansi a" (8.5 x 11.0 in)
-
"ansi b" (17.0 x 11.0 in)
-
"ansi c" (17.0 x 22.0 in)
-
"ansi d" (22.0 x 34.0 in)
-
"ansi e" (34.0 x 44.0 in)
-
"engineering f" (28.0 x 40.0 in)
North American Architectural sizes
-
"arch a" (9.0 x 12.0 in)
-
"arch b" (12.0 x 18.0 in)
-
"arch c" (18.0 x 24.0 in)
-
"arch d" (24.0 x 36.0 in)
-
"arch e" (36.0 x 48.0 in)
-
"arch e1" (30.0 x 42.0 in)
Antique sizes still used in the United Kingdom
-
"statement" (5.5 x 8.5 in)
-
"half letter" (5.5 x 8.5 in)
-
"quarto" (8.0 x 10.0 in)
-
"octavo" (6.75 x 10.5 in)
-
"executive" (7.25 x 10.5 in)
-
"monarch" (7.25 x 10.5 in)
-
"foolscap" (8.27 x 13.0 in)
-
"folio" (8.27 x 13.0 in)
-
"super-b" (13.0 x 19.0 in)
-
"post" (15.5 x 19.5 in)
-
"crown" (15.0 x 20.0 in)
-
"large post" (16.5 x 21.0 in)
-
"demy" (17.5 x 22.5 in)
-
"medium" (18.0 x 23.0 in)
-
"broadsheet" (18.0 x 24.0 in)
-
"royal" (20.0 x 25.0 in)
-
"elephant" (23.0 x 28.0 in)
-
"double demy" (22.5 x 35.0 in)
-
"quad demy" (35.0 x 45.0 in)
-
"atlas" (26.0 x 34.0 in)
-
"imperial" (22.0 x 30.0 in)
-
"antiquarian" (31.0 x 53.0 in)
PA4 based sizes
-
"pa0" (840 x 1120 mm)
-
"pa1" (560 x 840 mm)
-
"pa2" (420 x 560 mm)
-
"pa3" (280 x 420 mm)
-
"pa4" (210 x 280 mm)
-
"pa5" (140 x 210 mm)
-
"pa6" (105 x 140 mm)
-
"pa7" (70 x 105 mm)
-
"pa8" (52 x 70 mm)
-
"pa9" (35 x 52 mm)
-
"pa10" (26 x 35 mm)
Used in Southeast Asia and Australia
-
"f4" (210 x 330 mm)
Used for very small @lilypond examples in the
documentation based on a8 landscape.
-
"a8landscape" (74 x 52 mm)
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Predefined paper sizes ] | [ Amunt : Notation manual tables ] | [ List of colors > ] | ||
A.6 MIDI instruments
The following is a list of names that can be used for the
midiInstrument property. The order of the instruments
below, starting in the left-hand column moving down, corresponds
to the General MIDI Standard’s 128 Program Numbers.
acoustic grand contrabass lead 7 (fifths) bright acoustic tremolo strings lead 8 (bass+lead) electric grand pizzicato strings pad 1 (new age) honky-tonk orchestral harp pad 2 (warm) electric piano 1 timpani pad 3 (polysynth) electric piano 2 string ensemble 1 pad 4 (choir) harpsichord string ensemble 2 pad 5 (bowed) clav synthstrings 1 pad 6 (metallic) celesta synthstrings 2 pad 7 (halo) glockenspiel choir aahs pad 8 (sweep) music box voice oohs fx 1 (rain) vibraphone synth voice fx 2 (soundtrack) marimba orchestra hit fx 3 (crystal) xylophone trumpet fx 4 (atmosphere) tubular bells trombone fx 5 (brightness) dulcimer tuba fx 6 (goblins) drawbar organ muted trumpet fx 7 (echoes) percussive organ french horn fx 8 (sci-fi) rock organ brass section sitar church organ synthbrass 1 banjo reed organ synthbrass 2 shamisen accordion soprano sax koto harmonica alto sax kalimba concertina tenor sax bagpipe acoustic guitar (nylon) baritone sax fiddle acoustic guitar (steel) oboe shanai electric guitar (jazz) english horn tinkle bell electric guitar (clean) bassoon agogo electric guitar (muted) clarinet steel drums overdriven guitar piccolo woodblock distorted guitar flute taiko drum guitar harmonics recorder melodic tom acoustic bass pan flute synth drum electric bass (finger) blown bottle reverse cymbal electric bass (pick) shakuhachi guitar fret noise fretless bass whistle breath noise slap bass 1 ocarina seashore slap bass 2 lead 1 (square) bird tweet synth bass 1 lead 2 (sawtooth) telephone ring synth bass 2 lead 3 (calliope) helicopter violin lead 4 (chiff) applause viola lead 5 (charang) gunshot cello lead 6 (voice)
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < MIDI instruments ] | [ Amunt : Notation manual tables ] | [ The Emmentaler font > ] | ||
A.7 List of colors
Normal colors
Usage syntax is detailed in Acoloriment d’objectes.
black white red green blue cyan magenta yellow grey darkred darkgreen darkblue darkcyan darkmagenta darkyellow
X color names
X color names come several variants:
Any name that is spelled as a single word with capitalization (e.g., ‘LightSlateBlue’) can also be spelled as space separated words without capitalization (e.g., ‘light slate blue’).
The word ‘grey’ can always be spelled ‘gray’ (e.g., ‘DarkSlateGray’).
Some names can take a numerical suffix (e.g., ‘LightSalmon4’).
Color Names without a numerical suffix:
snow GhostWhite WhiteSmoke gainsboro FloralWhite OldLace linen AntiqueWhite PapayaWhip BlanchedAlmond bisque PeachPuff NavajoWhite moccasin cornsilk ivory LemonChiffon seashell honeydew MintCream azure AliceBlue lavender LavenderBlush MistyRose white black DarkSlateGrey DimGrey SlateGrey LightSlateGrey grey LightGrey MidnightBlue navy NavyBlue CornflowerBlue DarkSlateBlue SlateBlue MediumSlateBlue LightSlateBlue MediumBlue RoyalBlue blue DodgerBlue DeepSkyBlue SkyBlue LightSkyBlue SteelBlue LightSteelBlue LightBlue PowderBlue PaleTurquoise DarkTurquoise MediumTurquoise turquoise cyan LightCyan CadetBlue MediumAquamarine aquamarine DarkGreen DarkOliveGreen DarkSeaGreen SeaGreen MediumSeaGreen LightSeaGreen PaleGreen SpringGreen LawnGreen green chartreuse MediumSpringGreen GreenYellow LimeGreen YellowGreen ForestGreen OliveDrab DarkKhaki khaki PaleGoldenrod LightGoldenrodYellow LightYellow yellow gold LightGoldenrod goldenrod DarkGoldenrod RosyBrown IndianRed SaddleBrown sienna peru burlywood beige wheat SandyBrown tan chocolate firebrick brown DarkSalmon salmon LightSalmon orange DarkOrange coral LightCoral tomato OrangeRed red HotPink DeepPink pink LightPink PaleVioletRed maroon MediumVioletRed VioletRed magenta violet plum orchid MediumOrchid DarkOrchid DarkViolet BlueViolet purple MediumPurple thistle DarkGrey DarkBlue DarkCyan DarkMagenta DarkRed LightGreen
Color names with a numerical suffix
In the following names the suffix N can be a number in the range 1-4:
snowN seashellN AntiqueWhiteN bisqueN PeachPuffN NavajoWhiteN LemonChiffonN cornsilkN ivoryN honeydewN LavenderBlushN MistyRoseN azureN SlateBlueN RoyalBlueN blueN DodgerBlueN SteelBlueN DeepSkyBlueN SkyBlueN LightSkyBlueN LightSteelBlueN LightBlueN LightCyanN PaleTurquoiseN CadetBlueN turquoiseN cyanN aquamarineN DarkSeaGreenN SeaGreenN PaleGreenN SpringGreenN greenN chartreuseN OliveDrabN DarkOliveGreenN khakiN LightGoldenrodN LightYellowN yellowN goldN goldenrodN DarkGoldenrodN RosyBrownN IndianRedN siennaN burlywoodN wheatN tanN chocolateN firebrickN brownN salmonN LightSalmonN orangeN DarkOrangeN coralN tomatoN OrangeRedN redN DeepPinkN HotPinkN pinkN LightPinkN PaleVioletRedN maroonN VioletRedN magentaN orchidN plumN MediumOrchidN DarkOrchidN purpleN MediumPurpleN thistleN
Grey Scale
A grey scale can be obtained using:
greyN
Where N is in the range 0-100.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < List of colors ] | [ Amunt : Notation manual tables ] | [ Clef glyphs > ] | ||
A.8 The Emmentaler font
The Emmentaler font consists of two sub-sets of glyphs. “Feta”, used for classical notation and “Parmesan”, used for Ancient notation.
Any glyph within the Emmentaler font can be accessed directly by using text markup along with the name of the glyph (as shown in the tables below). For example;
g^\markup {\musicglyph "scripts.segno" }
or
\markup {\musicglyph "five"}
For more information see Donar format al text.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < The Emmentaler font ] | [ Amunt : The Emmentaler font ] | [ Time Signature glyphs > ] | ||
Clef glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Clef glyphs ] | [ Amunt : The Emmentaler font ] | [ Number glyphs > ] | ||
Time Signature glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Time Signature glyphs ] | [ Amunt : The Emmentaler font ] | [ Accidental glyphs > ] | ||
Number glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Number glyphs ] | [ Amunt : The Emmentaler font ] | [ Default Notehead glyphs > ] | ||
Accidental glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Accidental glyphs ] | [ Amunt : The Emmentaler font ] | [ Special Notehead glyphs > ] | ||
Default Notehead glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Default Notehead glyphs ] | [ Amunt : The Emmentaler font ] | [ Shape-note Notehead glyphs > ] | ||
Special Notehead glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Special Notehead glyphs ] | [ Amunt : The Emmentaler font ] | [ Rest glyphs > ] | ||
Shape-note Notehead glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Shape-note Notehead glyphs ] | [ Amunt : The Emmentaler font ] | [ Flag glyphs > ] | ||
Rest glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Rest glyphs ] | [ Amunt : The Emmentaler font ] | [ Dot glyphs > ] | ||
Flag glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Flag glyphs ] | [ Amunt : The Emmentaler font ] | [ Dynamic glyphs > ] | ||
Dot glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Dot glyphs ] | [ Amunt : The Emmentaler font ] | [ Script glyphs > ] | ||
Dynamic glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Dynamic glyphs ] | [ Amunt : The Emmentaler font ] | [ Arrowhead glyphs > ] | ||
Script glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Script glyphs ] | [ Amunt : The Emmentaler font ] | [ Bracket-tip glyphs > ] | ||
Arrowhead glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Arrowhead glyphs ] | [ Amunt : The Emmentaler font ] | [ Pedal glyphs > ] | ||
Bracket-tip glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Bracket-tip glyphs ] | [ Amunt : The Emmentaler font ] | [ Accordion glyphs > ] | ||
Pedal glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Pedal glyphs ] | [ Amunt : The Emmentaler font ] | [ Tie glyphs > ] | ||
Accordion glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Accordion glyphs ] | [ Amunt : The Emmentaler font ] | [ Vaticana glyphs > ] | ||
Tie glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Tie glyphs ] | [ Amunt : The Emmentaler font ] | [ Medicaea glyphs > ] | ||
Vaticana glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Vaticana glyphs ] | [ Amunt : The Emmentaler font ] | [ Hufnagel glyphs > ] | ||
Medicaea glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Medicaea glyphs ] | [ Amunt : The Emmentaler font ] | [ Mensural glyphs > ] | ||
Hufnagel glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Hufnagel glyphs ] | [ Amunt : The Emmentaler font ] | [ Neomensural glyphs > ] | ||
Mensural glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Mensural glyphs ] | [ Amunt : The Emmentaler font ] | [ Petrucci glyphs > ] | ||
Neomensural glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Neomensural glyphs ] | [ Amunt : The Emmentaler font ] | [ Solesmes glyphs > ] | ||
Petrucci glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Petrucci glyphs ] | [ Amunt : The Emmentaler font ] | [ Kievan Notation glyphs > ] | ||
Solesmes glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Solesmes glyphs ] | [ Amunt : The Emmentaler font ] | [ Note head styles > ] | ||
Kievan Notation glyphs
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Kievan Notation glyphs ] | [ Amunt : Notation manual tables ] | [ Clef styles > ] | ||
A.9 Note head styles
The following styles may be used for note heads.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Note head styles ] | [ Amunt : Notation manual tables ] | [ Standard clefs > ] | ||
A.10 Clef styles
The following table shows all the clef styles possible (including where middle C sits relative to the clef).
| Standard clefs | ||
| Percussion staff clef | ||
| Tab staff clefs | ||
| Ancient music clefs |
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Clef styles ] | [ Amunt : Clef styles ] | [ Percussion staff clef > ] | ||
Standard clefs
| Example | Output | Example | Output |
|---|---|---|---|
\clef G | \clef "G2" | ||
\clef treble | \clef violin | ||
\clef french | \clef GG | ||
\clef tenorG |
| ||
\clef soprano | \clef mezzosoprano | ||
\clef C | \clef alto | ||
\clef tenor | \clef baritone |
| |
\clef varC | \clef altovarC | ||
\clef tenorvarC | \clef baritonevarC |
| |
\clef varbaritone | \clef baritonevarF | ||
\clef F | \clef bass | ||
\clef subbass |
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Standard clefs ] | [ Amunt : Clef styles ] | [ Tab staff clefs > ] | ||
Percussion staff clef
| Example | Output | Example | Output |
|---|---|---|---|
\clef percussion | \clef varpercussion |
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Percussion staff clef ] | [ Amunt : Clef styles ] | [ Ancient music clefs > ] | ||
Tab staff clefs
| Example | Output | Example | Output |
|---|---|---|---|
\new TabStaff { |
\new TabStaff { |
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Tab staff clefs ] | [ Amunt : Clef styles ] | [ Text markup commands > ] | ||
Ancient music clefs
Gregorian
| Example | Output | Example | Output |
|---|---|---|---|
\clef "vaticana-do1" | \clef "vaticana-do2" | ||
\clef "vaticana-do3" | \clef "vaticana-fa1" | ||
\clef "vaticana-fa2" |
| ||
\clef "medicaea-do1" | \clef "medicaea-do2" | ||
\clef "medicaea-do3" | \clef "medicaea-fa1" | ||
\clef "medicaea-fa2" |
| ||
\clef "hufnagel-do1" | \clef "hufnagel-do2" | ||
\clef "hufnagel-do3" | \clef "hufnagel-fa1" | ||
\clef "hufnagel-fa2" | \clef |
Mensural
| Example | Output | Example | Output |
|---|---|---|---|
\clef "mensural-c1" | \clef "mensural-c2" | ||
\clef "mensural-c3" | \clef "mensural-c4" | ||
\clef "mensural-c5" |
| ||
\clef "mensural-f" | \clef "mensural-g" |
| |
\clef "blackmensural-c1" | \clef "blackmensural-c2" | ||
\clef "blackmensural-c3" | \clef "blackmensural-c4" | ||
\clef "blackmensural-c5" |
| ||
\clef "neomensural-c1" | \clef "neomensural-c2" | ||
\clef "neomensural-c3" | \clef "neomensural-c4" | ||
\clef "neomensural-c5" |
| ||
\clef "petrucci-c1" | \clef "petrucci-c2" | ||
\clef "petrucci-c3" | \clef "petrucci-c4" | ||
\clef "petrucci-c5" |
| ||
\clef "petrucci-f" | \clef "petrucci-f2" | ||
\clef "petrucci-f3" | \clef "petrucci-f4" | ||
\clef "petrucci-f5" |
| ||
\clef "petrucci-g1" | \clef "petrucci-g2" | ||
\clef "petrucci-g" |
Kievan
| Example | Output | ||
|---|---|---|---|
\clef "kievan-do" |
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Ancient music clefs ] | [ Amunt : Notation manual tables ] | [ Font > ] | ||
A.11 Text markup commands
The following commands can all be used inside \markup { }.
| A.11.1 Font | ||
| A.11.2 Align | ||
| A.11.3 Graphic | ||
| A.11.4 Music | ||
| A.11.5 Instrument Specific Markup | ||
| A.11.6 Accordion Registers | ||
| A.11.7 Other |
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Text markup commands ] | [ Amunt : Text markup commands ] | [ Align > ] | ||
A.11.1 Font
-
\abs-fontsizesize (number) arg (markup) -
Use size as the absolute font size (in points) to display arg. Adjusts
baseline-skipandword-spaceaccordingly.\markup { default text font size \hspace #2 \abs-fontsize #16 { text font size 16 } \hspace #2 \abs-fontsize #12 { text font size 12 } }Used properties:
-
baseline-skip(3) -
word-space(0.6)
-
-
\boldarg (markup) -
Switch to bold font-series.
\markup { default \hspace #2 \bold bold } -
\boxarg (markup) -
Draw a box round arg. Looks at
thickness,box-paddingandfont-sizeproperties to determine line thickness and padding around the markup.\markup { \override #'(box-padding . 0.5) \box \line { V. S. } }Used properties:
-
box-padding(0.2) -
font-size(0) -
thickness(1)
-
-
\capsarg (markup) -
Copy of the
\smallCapscommand.\markup { default \hspace #2 \caps { Text in small caps } } -
\dynamicarg (markup) -
Use the dynamic font. This font only contains s, f, m, z, p, and r. When producing phrases, like ‘più f’, the normal words (like ‘più’) should be done in a different font. The recommended font for this is bold and italic.
\markup { \dynamic { sfzp } } -
\fingerarg (markup) -
Set arg as small numbers.
\markup { \finger { 1 2 3 4 5 } } -
\fontCapsarg (markup) -
Set
font-shapetocapsNote:
\fontCapsrequires the installation and selection of fonts which support thecapsfont shape. -
\fontsizeincrement (number) arg (markup) -
Add increment to the font-size. Adjusts
baseline-skipaccordingly.\markup { default \hspace #2 \fontsize #-1.5 smaller }Used properties:
-
baseline-skip(2) -
word-space(1) -
font-size(0)
-
-
\hugearg (markup) -
Set font size to +2.
\markup { default \hspace #2 \huge huge } -
\italicarg (markup) -
Use italic
font-shapefor arg.\markup { default \hspace #2 \italic italic } -
\largearg (markup) -
Set font size to +1.
\markup { default \hspace #2 \large large } -
\largerarg (markup) -
Increase the font size relative to the current setting.
\markup { default \hspace #2 \larger larger } -
\magnifysz (number) arg (markup) -
Set the font magnification for its argument. In the following example, the middle A is 10% larger:
A \magnify #1.1 { A } ANote: Magnification only works if a font name is explicitly selected. Use
\fontsizeotherwise.\markup { default \hspace #2 \magnify #1.5 { 50% larger } } -
\mediumarg (markup) -
Switch to medium font-series (in contrast to bold).
\markup { \bold { some bold text \hspace #2 \medium { medium font series } \hspace #2 bold again } } -
\normal-size-subarg (markup) -
Set arg in subscript with a normal font size.
\markup { default \normal-size-sub { subscript in standard size } }Used properties:
-
font-size(0)
-
-
\normal-size-superarg (markup) -
Set arg in superscript with a normal font size.
\markup { default \normal-size-super { superscript in standard size } }Used properties:
-
font-size(0)
-
-
\normal-textarg (markup) -
Set all font related properties (except the size) to get the default normal text font, no matter what font was used earlier.
\markup { \huge \bold \sans \caps { huge bold sans caps \hspace #2 \normal-text { huge normal } \hspace #2 as before } } -
\normalsizearg (markup) -
Set font size to default.
\markup { \teeny { this is very small \hspace #2 \normalsize { normal size } \hspace #2 teeny again } } -
\numberarg (markup) -
Set font family to
number, which yields the font used for time signatures and fingerings. This font contains numbers and some punctuation; it has no letters.\markup { \number { 0 1 2 3 4 5 6 7 8 9 . , } } -
\overtiearg (markup) -
Overtie arg.
\markup \line { \overtie "overtied" \override #'(offset . 5) \override #'(thickness . 1) \overtie "overtied" \override #'(offset . 1) \override #'(thickness . 5) \overtie "overtied" }Used properties:
-
shorten-pair((0 . 0)) -
direction(1) -
offset(2) -
thickness(1)
-
-
\replacereplacements (list) arg (markup) -
Used to automatically replace a string by another in the markup arg. Each pair of the alist replacements specifies what should be replaced. The
keyis the string to be replaced by thevaluestring.\markup \replace #'(("thx" . "Thanks!")) thx -
\romanarg (markup) -
Set font family to
roman.\markup { \sans \bold { sans serif, bold \hspace #2 \roman { text in roman font family } \hspace #2 return to sans } } -
\sansarg (markup) -
Switch to the sans serif font family.
\markup { default \hspace #2 \sans { sans serif } } -
\simplestr (string) -
A simple text string;
\markup { foo }is equivalent with\markup { \simple #"foo" }.Note: for creating standard text markup or defining new markup commands, the use of
\simpleis unnecessary.\markup { \simple #"simple" \simple #"text" \simple #"strings" } -
\smallarg (markup) -
Set font size to -1.
\markup { default \hspace #2 \small small } -
\smallCapsarg (markup) -
Emit arg as small caps.
Note:
\smallCapsdoes not support accented characters.\markup { default \hspace #2 \smallCaps { Text in small caps } } -
\smallerarg (markup) -
Decrease the font size relative to the current setting.
\markup { \fontsize #3.5 { some large text \hspace #2 \smaller { a bit smaller } \hspace #2 more large text } } -
\subarg (markup) -
Set arg in subscript.
\markup { \concat { H \sub { 2 } O } }Used properties:
-
font-size(0)
-
-
\superarg (markup) -
Set arg in superscript.
\markup { E = \concat { mc \super 2 } }Used properties:
-
font-size(0)
-
-
\teenyarg (markup) -
Set font size to -3.
\markup { default \hspace #2 \teeny teeny } -
\textarg (markup) -
Use a text font instead of music symbol or music alphabet font.
\markup { \number { 1, 2, \text { three, four, } 5 } } -
\tiearg (markup) -
Adds a horizontal bow created with
make-tie-stencilat bottom or top of arg. Looks atthicknessto determine line thickness, andoffsetto determine y-offset. The added bow fits the extent of arg,shorten-pairmay be used to modify this. direction may be set using anoverrideor direction-modifiers orvoiceOne, etc.\markup { \override #'(direction . 1) \tie "above" \override #'(direction . -1) \tie "below" }Used properties:
-
shorten-pair((0 . 0)) -
direction(1) -
offset(2) -
thickness(1)
-
-
\tinyarg (markup) -
Set font size to -2.
\markup { default \hspace #2 \tiny tiny } -
\typewriterarg (markup) -
Use
font-familytypewriter for arg.\markup { default \hspace #2 \typewriter typewriter } -
\underlinearg (markup) -
Underline arg. Looks at
thicknessto determine line thickness, andoffsetto determine line y-offset.\markup \fill-line { \underline "underlined" \override #'(offset . 5) \override #'(thickness . 1) \underline "underlined" \override #'(offset . 1) \override #'(thickness . 5) \underline "underlined" }Used properties:
-
offset(2) -
thickness(1)
-
-
\undertiearg (markup) -
\markup \line { \undertie "undertied" \override #'(offset . 5) \override #'(thickness . 1) \undertie "undertied" \override #'(offset . 1) \override #'(thickness . 5) \undertie "undertied" }Used properties:
-
shorten-pair((0 . 0)) -
direction(1) -
offset(2) -
thickness(1)
-
-
\uprightarg (markup) -
Set
font-shapetoupright. This is the opposite ofitalic.\markup { \italic { italic text \hspace #2 \upright { upright text } \hspace #2 italic again } }
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Font ] | [ Amunt : Text markup commands ] | [ Graphic > ] | ||
A.11.2 Align
-
\center-alignarg (markup) -
Align
argto its X center.\markup { \column { one \center-align two three } } -
\center-columnargs (markup list) -
Put
argsin a centered column.\markup { \center-column { one two three } }Used properties:
-
baseline-skip
-
-
\columnargs (markup list) -
Stack the markups in args vertically. The property
baseline-skipdetermines the space between markups in args.\markup { \column { one two three } }Used properties:
-
baseline-skip
-
-
\combinearg1 (markup) arg2 (markup) -
Print two markups on top of each other.
Note:
\combinecannot take a list of markups enclosed in curly braces as an argument; for this purpose use\overlayinstead.\markup { \fontsize #5 \override #'(thickness . 2) \combine \draw-line #'(0 . 4) \arrow-head #Y #DOWN ##f } -
\concatargs (markup list) -
Concatenate args in a horizontal line, without spaces in between. Strings and simple markups are concatenated on the input level, allowing ligatures. For example,
\concat { "f" \simple #"i" }is equivalent to"fi".\markup { \concat { one two three } } -
\dir-columnargs (markup list) -
Make a column of args, going up or down, depending on the setting of the
directionlayout property.\markup { \override #`(direction . ,UP) { \dir-column { going up } } \hspace #1 \dir-column { going down } \hspace #1 \override #'(direction . 1) { \dir-column { going up } } }Used properties:
-
baseline-skip -
direction
-
-
\fill-lineargs (markup list) -
Put markups in a horizontal line of width line-width. The markups are spaced or flushed to fill the entire line. If there are no arguments, return an empty stencil.
\markup { \column { \fill-line { Words evenly spaced across the page } \null \fill-line { \line { Text markups } \line { \italic { evenly spaced } } \line { across the page } } } }Used properties:
-
line-width(#f) -
word-space(0.6) -
text-direction(1)
-
-
\fill-with-patternspace (number) dir (direction) pattern (markup) left (markup) right (markup) -
Put left and right in a horizontal line of width
line-widthwith a line of markups pattern in between. Patterns are spaced apart by space. Patterns are aligned to the dir markup.\markup \column { "right-aligned :" \fill-with-pattern #1 #RIGHT . first right \fill-with-pattern #1 #RIGHT . second right \null "center-aligned :" \fill-with-pattern #1.5 #CENTER - left right \null "left-aligned :" \override #'(line-width . 50) \fill-with-pattern #2 #LEFT : left first \override #'(line-width . 50) \fill-with-pattern #2 #LEFT : left second }Used properties:
-
line-width -
word-space
-
-
\general-alignaxis (integer) dir (number) arg (markup) -
Align arg in axis direction to the dir side.
\markup { \column { one \general-align #X #LEFT two three \null one \general-align #X #CENTER two three \null \line { one \general-align #Y #UP two three } \null \line { one \general-align #Y #3.2 two three } } } -
\haligndir (number) arg (markup) -
Set horizontal alignment. If dir is
-1, then it is left-aligned, while+1is right. Values in between interpolate alignment accordingly.\markup { \column { one \halign #LEFT two three \null one \halign #CENTER two three \null one \halign #RIGHT two three \null one \halign #-5 two three } } -
\hcenter-inlength (number) arg (markup) -
Center arg horizontally within a box of extending length/2 to the left and right.
\new StaffGroup << \new Staff { \set Staff.instrumentName = \markup { \hcenter-in #12 Oboe } c''1 } \new Staff { \set Staff.instrumentName = \markup { \hcenter-in #12 Bassoon } \clef tenor c'1 } >> -
\hspaceamount (number) -
Create an invisible object taking up horizontal space amount.
\markup { one \hspace #2 two \hspace #8 three } -
\justify-fieldsymbol (symbol) -
Justify the data which has been assigned to symbol.
\header { title = "My title" myText = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." } \paper { bookTitleMarkup = \markup { \column { \fill-line { \fromproperty #'header:title } \null \justify-field #'header:myText } } } \markup { \null } -
\justify-lineargs (markup list) -
Put markups in a horizontal line of width line-width. The markups are spread to fill the entire line and separated by equal space. If there are no arguments, return an empty stencil.
\markup { \justify-line { Space between neighboring words is constant } }Used properties:
-
line-width(#f) -
word-space(0.6) -
text-direction(1)
-
-
\justifyargs (markup list) -
Like
\wordwrap, but with lines stretched to justify the margins. Use\override #'(line-width . X)to set the line width; X is the number of staff spaces.\markup { \justify { Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. } }Used properties:
-
text-direction(1) -
word-space -
line-width(#f) -
baseline-skip
-
-
\justify-stringarg (string) -
Justify a string. Paragraphs may be separated with double newlines
\markup { \override #'(line-width . 40) \justify-string #"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum" }Used properties:
-
text-direction(1) -
word-space -
line-width -
baseline-skip
-
-
\left-alignarg (markup) -
Align arg on its left edge.
\markup { \column { one \left-align two three } } -
\left-columnargs (markup list) -
Put
argsin a left-aligned column.\markup { \left-column { one two three } }Used properties:
-
baseline-skip
-
-
\lineargs (markup list) -
Put args in a horizontal line. The property
word-spacedetermines the space between markups in args.\markup { \line { one two three } }Used properties:
-
text-direction(1) -
word-space
-
-
\loweramount (number) arg (markup) -
Lower arg by the distance amount. A negative amount indicates raising; see also
\raise.\markup { one \lower #3 two three } -
\overlayargs (markup list) -
Takes a list of markups combining them.
\markup { \fontsize #5 \override #'(thickness . 2) \overlay { \draw-line #'(0 . 4) \arrow-head #Y #DOWN ##f \translate #'(0 . 4)\arrow-head #Y #UP ##f } } -
\pad-aroundamount (number) arg (markup) -
Add padding amount all around arg.
\markup { \box { default } \hspace #2 \box { \pad-around #0.5 { padded } } } -
\pad-markupamount (number) arg (markup) -
Add space around a markup object. Identical to
pad-around.\markup { \box { default } \hspace #2 \box { \pad-markup #1 { padded } } } -
\pad-to-boxx-ext (pair of numbers) y-ext (pair of numbers) arg (markup) -
Make arg take at least x-ext, y-ext space.
\markup { \box { default } \hspace #4 \box { \pad-to-box #'(0 . 10) #'(0 . 3) { padded } } } -
\pad-xamount (number) arg (markup) -
Add padding amount around arg in the X direction.
\markup { \box { default } \hspace #4 \box { \pad-x #2 { padded } } } -
\put-adjacentaxis (integer) dir (direction) arg1 (markup) arg2 (markup) -
Put arg2 next to arg1, without moving arg1.
-
\raiseamount (number) arg (markup) -
Raise arg by the distance amount. A negative amount indicates lowering, see also
\lower.The argument to
\raiseis the vertical displacement amount, measured in (global) staff spaces.\raiseand\superraise objects in relation to their surrounding markups.If the text object itself is positioned above or below the staff, then
\raisecannot be used to move it, since the mechanism that positions it next to the staff cancels any shift made with\raise. For vertical positioning, use thepaddingand/orextra-offsetproperties.\markup { C \small \bold \raise #1.0 9/7+ } -
\right-alignarg (markup) -
Align arg on its right edge.
\markup { \column { one \right-align two three } } -
\right-columnargs (markup list) -
Put
argsin a right-aligned column.\markup { \right-column { one two three } }Used properties:
-
baseline-skip
-
-
\rotateang (number) arg (markup) -
Rotate object with ang degrees around its center.
\markup { default \hspace #2 \rotate #45 \line { rotated 45° } } -
\translateoffset (pair of numbers) arg (markup) -
Translate arg relative to its surroundings. offset is a pair of numbers representing the displacement in the X and Y axis.
\markup { * \translate #'(2 . 3) \line { translated two spaces right, three up } } -
\translate-scaledoffset (pair of numbers) arg (markup) -
Translate arg by offset, scaling the offset by the
font-size.\markup { \fontsize #5 { * \translate #'(2 . 3) translate \hspace #2 * \translate-scaled #'(2 . 3) translate-scaled } }Used properties:
-
font-size(0)
-
-
\vcenterarg (markup) -
Align
argto its Y center.\markup { one \vcenter two three } -
\vspaceamount (number) -
Create an invisible object taking up vertical space of amount multiplied by 3.
\markup { \center-column { one \vspace #2 two \vspace #5 three } } -
\wordwrap-fieldsymbol (symbol) -
Wordwrap the data which has been assigned to symbol.
\header { title = "My title" myText = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." } \paper { bookTitleMarkup = \markup { \column { \fill-line { \fromproperty #'header:title } \null \wordwrap-field #'header:myText } } } \markup { \null } -
\wordwrapargs (markup list) -
Simple wordwrap. Use
\override #'(line-width . X)to set the line width, where X is the number of staff spaces.\markup { \wordwrap { Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. } }Used properties:
-
text-direction(1) -
word-space -
line-width(#f) -
baseline-skip
-
-
\wordwrap-stringarg (string) -
Wordwrap a string. Paragraphs may be separated with double newlines.
\markup { \override #'(line-width . 40) \wordwrap-string #"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum" }Used properties:
-
text-direction(1) -
word-space -
line-width -
baseline-skip
-
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Align ] | [ Amunt : Text markup commands ] | [ Music > ] | ||
A.11.3 Graphic
-
\arrow-headaxis (integer) dir (direction) filled (boolean) -
Produce an arrow head in specified direction and axis. Use the filled head if filled is specified.
\markup { \fontsize #5 { \general-align #Y #DOWN { \arrow-head #Y #UP ##t \arrow-head #Y #DOWN ##f \hspace #2 \arrow-head #X #RIGHT ##f \arrow-head #X #LEFT ##f } } } -
\beamwidth (number) slope (number) thickness (number) -
Create a beam with the specified parameters.
\markup { \beam #5 #1 #2 } -
\bracketarg (markup) -
Draw vertical brackets around arg.
\markup { \bracket { \note #"2." #UP } } -
\circlearg (markup) -
Draw a circle around arg. Use
thickness,circle-paddingandfont-sizeproperties to determine line thickness and padding around the markup.\markup { \circle { Hi } }Used properties:
-
circle-padding(0.2) -
font-size(0) -
thickness(1)
-
-
\draw-circleradius (number) thickness (number) filled (boolean) -
A circle of radius radius and thickness thickness, optionally filled.
\markup { \draw-circle #2 #0.5 ##f \hspace #2 \draw-circle #2 #0 ##t } -
\draw-dashed-linedest (pair of numbers) -
A dashed line.
If
full-lengthis set to #t (default) the dashed-line extends to the whole length given by dest, without white space at beginning or end.offwill then be altered to fit. To insist on the given (or default) values ofon,offuse\override #'(full-length . #f)Manual settings foron,offandphaseare possible.\markup { \draw-dashed-line #'(5.1 . 2.3) \override #'(on . 0.3) \override #'(off . 0.5) \draw-dashed-line #'(5.1 . 2.3) }Used properties:
-
full-length(#t) -
phase(0) -
off(1) -
on(1) -
thickness(1)
-
-
\draw-dotted-linedest (pair of numbers) -
A dotted line.
The dotted-line always extends to the whole length given by dest, without white space at beginning or end. Manual settings for
offare possible to get larger or smaller space between the dots. The given (or default) value ofoffwill be altered to fit the line-length.\markup { \draw-dotted-line #'(5.1 . 2.3) \override #'(thickness . 2) \override #'(off . 0.2) \draw-dotted-line #'(5.1 . 2.3) }Used properties:
-
phase(0) -
off(1) -
thickness(1)
-
-
\draw-hline -
Draws a line across a page, where the property
span-factorcontrols what fraction of the page is taken up.\markup { \column { \draw-hline \override #'(span-factor . 1/3) \draw-hline } }Used properties:
-
span-factor(1) -
line-width -
draw-line-markup
-
-
\draw-linedest (pair of numbers) -
A simple line.
\markup { \draw-line #'(4 . 4) \override #'(thickness . 5) \draw-line #'(-3 . 0) }Used properties:
-
thickness(1)
-
-
\draw-squiggle-linesq-length (number) dest (pair of numbers) eq-end? (boolean) -
A squiggled line.
If
eq-end?is set to#t, it is ensured the squiggled line ends with a bow in same direction as the starting one.sq-lengthis the length of the first bow.destis the end point of the squiggled line. To matchdestthe squiggled line is scaled accordingly. Its appearance may be customized by overrides forthickness,angularity,heightandorientation.\markup \column { \draw-squiggle-line #0.5 #'(6 . 0) ##t \override #'(orientation . -1) \draw-squiggle-line #0.5 #'(6 . 0) ##t \draw-squiggle-line #0.5 #'(6 . 0) ##f \override #'(height . 1) \draw-squiggle-line #0.5 #'(6 . 0) ##t \override #'(thickness . 5) \draw-squiggle-line #0.5 #'(6 . 0) ##t \override #'(angularity . 2) \draw-squiggle-line #0.5 #'(6 . 0) ##t }Used properties:
-
orientation(1) -
height(0.5) -
angularity(0) -
thickness(0.5)
-
-
\ellipsearg (markup) -
Draw an ellipse around arg. Use
thickness,x-padding,y-paddingandfont-sizeproperties to determine line thickness and padding around the markup.\markup { \ellipse { Hi } }Used properties:
-
y-padding(0.2) -
x-padding(0.2) -
font-size(0) -
thickness(1)
-
-
\epsfileaxis (number) size (number) file-name (string) -
Inline an EPS image. The image is scaled along axis to size.
\markup { \general-align #Y #DOWN { \epsfile #X #20 #"context-example.eps" \epsfile #Y #20 #"context-example.eps" } } -
\filled-boxxext (pair of numbers) yext (pair of numbers) blot (number) -
Draw a box with rounded corners of dimensions xext and yext. For example,
\filled-box #'(-.3 . 1.8) #'(-.3 . 1.8) #0
creates a box extending horizontally from -0.3 to 1.8 and vertically from -0.3 up to 1.8, with corners formed from a circle of diameter 0 (i.e., sharp corners).
\markup { \filled-box #'(0 . 4) #'(0 . 4) #0 \filled-box #'(0 . 2) #'(-4 . 2) #0.4 \filled-box #'(1 . 8) #'(0 . 7) #0.2 \with-color #white \filled-box #'(-4.5 . -2.5) #'(3.5 . 5.5) #0.7 } -
\hbracketarg (markup) -
Draw horizontal brackets around arg.
\markup { \hbracket { \line { one two three } } } -
\ovalarg (markup) -
Draw an oval around arg. Use
thickness,x-padding,x-paddingandfont-sizeproperties to determine line thickness and padding around the markup.\markup { \oval { Hi } }Used properties:
-
y-padding(0.75) -
x-padding(0.75) -
font-size(0) -
thickness(1)
-
-
\parenthesizearg (markup) -
Draw parentheses around arg. This is useful for parenthesizing a column containing several lines of text.
\markup { \line { \parenthesize { \column { foo bar } } \override #'(angularity . 2) { \parenthesize { \column { bah baz } } } } }Used properties:
-
width(0.25) -
line-thickness(0.1) -
thickness(1) -
size(1) -
padding -
angularity(0)
-
-
\paththickness (number) commands (list) -
Draws a path with line thickness according to the directions given in commands. commands is a list of lists where the
carof each sublist is a drawing command and thecdrcomprises the associated arguments for each command.There are seven commands available to use in the list
commands:moveto,rmoveto,lineto,rlineto,curveto,rcurveto, andclosepath. Note that the commands that begin with r are the relative variants of the other three commands.The commands
moveto,rmoveto,lineto, andrlinetotake 2 arguments; they are the X and Y coordinates for the destination point.The commands
curvetoandrcurvetocreate cubic Bézier curves, and take 6 arguments; the first two are the X and Y coordinates for the first control point, the second two are the X and Y coordinates for the second control point, and the last two are the X and Y coordinates for the destination point.The
closepathcommand takes zero arguments and closes the current subpath in the active path.Note that a sequence of commands must begin with a
movetoorrmovetoto work with the SVG output.Line-cap styles and line-join styles may be customized by overriding the
line-cap-styleandline-join-styleproperties, respectively. Available line-cap styles are'butt,'round, and'square. Available line-join styles are'miter,'round, and'bevel.The property
filledspecifies whether or not the path is filled with color.samplePath = #'((moveto 0 0) (lineto -1 1) (lineto 1 1) (lineto 1 -1) (curveto -5 -5 -5 5 -1 0) (closepath)) \markup { \path #0.25 #samplePath \override #'(line-join-style . miter) \path #0.25 #samplePath \override #'(filled . #t) \path #0.25 #samplePath }Used properties:
-
filled(#f) -
line-join-style(round) -
line-cap-style(round)
-
-
\postscriptstr (string) -
This inserts str directly into the output as a PostScript command string.
ringsps = #" 0.15 setlinewidth 0.9 0.6 moveto 0.4 0.6 0.5 0 361 arc stroke 1.0 0.6 0.5 0 361 arc stroke " rings = \markup { \with-dimensions #'(-0.2 . 1.6) #'(0 . 1.2) \postscript #ringsps } \relative c'' { c2^\rings a2_\rings } -
\rounded-boxarg (markup) -
Draw a box with rounded corners around arg. Looks at
thickness,box-paddingandfont-sizeproperties to determine line thickness and padding around the markup; thecorner-radiusproperty makes it possible to define another shape for the corners (default is 1).c4^\markup { \rounded-box { Overtura } } c,8. c16 c4 rUsed properties:
-
box-padding(0.5) -
font-size(0) -
corner-radius(1) -
thickness(1)
-
-
\scalefactor-pair (pair of numbers) arg (markup) -
Scale arg. factor-pair is a pair of numbers representing the scaling-factor in the X and Y axes. Negative values may be used to produce mirror images.
\markup { \line { \scale #'(2 . 1) stretched \scale #'(1 . -1) mirrored } } -
\trianglefilled (boolean) -
A triangle, either filled or empty.
\markup { \triangle ##t \hspace #2 \triangle ##f }Used properties:
-
baseline-skip(2) -
font-size(0) -
thickness(0.1)
-
-
\with-urlurl (string) arg (markup) -
Add a link to URL url around arg. This only works in the PDF backend.
\markup { \with-url #"http://lilypond.org/" { LilyPond ... \italic { music notation for everyone } } }
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Graphic ] | [ Amunt : Text markup commands ] | [ Instrument Specific Markup > ] | ||
A.11.4 Music
-
\compound-metertime-sig (number or pair) -
Draw a numeric time signature.
\markup { \column { \line { Single number: \compound-meter #3 } \line { Conventional: \compound-meter #'(4 . 4) or \compound-meter #'(4 4) } \line { Compound: \compound-meter #'(2 3 8) } \line { Single-number compound: \compound-meter #'((2) (3)) } \line { Complex compound: \compound-meter #'((2 3 8) (3 4)) } } } -
\customTabClefnum-strings (integer) staff-space (number) -
Draw a tab clef sans-serif style.
-
\doubleflat -
Draw a double flat symbol.
\markup { \doubleflat } -
\doublesharp -
Draw a double sharp symbol.
\markup { \doublesharp } -
\fermata -
Create a fermata glyph. When direction is
DOWN, use an inverted glyph. Note that within music, one would usually use the\fermataarticulation instead of a markup.{ c''1^\markup \fermata d''1_\markup \fermata } \markup { \fermata \override #`(direction . ,DOWN) \fermata }Used properties:
-
direction(1)
-
-
\flat -
Draw a flat symbol.
\markup { \flat } -
\musicglyphglyph-name (string) -
glyph-name is converted to a musical symbol; for example,
\musicglyph #"accidentals.natural"selects the natural sign from the music font. See The Emmentaler font for a complete listing of the possible glyphs.\markup { \musicglyph #"f" \musicglyph #"rests.2" \musicglyph #"clefs.G_change" } -
\natural -
Draw a natural symbol.
\markup { \natural } -
\note-by-numberlog (number) dot-count (number) dir (number) -
Construct a note symbol, with stem and flag. By using fractional values for dir, longer or shorter stems can be obtained. Supports all note-head-styles. Ancient note-head-styles will get mensural-style-flags.
flag-stylemay be overridden independently. Supported flag-styles aredefault,old-straight-flag,modern-straight-flag,flat-flag,mensuralandneomensural. The latter two flag-styles will both result in mensural-flags. Both are supplied for convenience.\markup { \note-by-number #3 #0 #DOWN \hspace #2 \note-by-number #1 #2 #0.8 }Used properties:
-
style(’()) -
flag-style(’()) -
font-size(0)
-
-
\noteduration (string) dir (number) -
This produces a note with a stem pointing in dir direction, with the duration for the note head type and augmentation dots. For example,
\note #"4." #-0.75creates a dotted quarter note, with a shortened down stem.\markup { \override #'(style . cross) { \note #"4.." #UP } \hspace #2 \note #"breve" #0 }Used properties:
-
style(’()) -
flag-style(’()) -
font-size(0)
-
-
\rest-by-numberlog (number) dot-count (number) -
A rest or multi-measure-rest symbol.
\markup { \rest-by-number #3 #2 \hspace #2 \rest-by-number #0 #1 \hspace #2 \override #'(multi-measure-rest . #t) \rest-by-number #0 #0 }Used properties:
-
multi-measure-rest(#f) -
style(’()) -
font-size(0)
-
-
\restduration (string) -
This produces a rest, with the duration for the rest type and augmentation dots.
"breve","longa"and"maxima"are valid input-strings.Printing MultiMeasureRests could be enabled with
\override #'(multi-measure-rest . #t)If MultiMeasureRests are taken, the MultiMeasureRestNumber is printed above. This is enabled for all styles using default-glyphs. Could be disabled with\override #'(multi-measure-rest-number . #f)\markup { \rest #"4.." \hspace #2 \rest #"breve" \hspace #2 \override #'(multi-measure-rest . #t) { \rest #"7" \hspace #2 \override #'(multi-measure-rest-number . #f) \rest #"7" } }Used properties:
-
word-space(0.6) -
multi-measure-rest-number(#t) -
multi-measure-rest(#f) -
style(’())
-
-
\scorescore (score) -
Inline an image of music. The reference point (usually the middle staff line) of the lowest staff in the top system is placed on the baseline.
\markup { \score { \new PianoStaff << \new Staff \relative c' { \key f \major \time 3/4 \mark \markup { Allegro } f2\p( a4) c2( a4) bes2( g'4) f8( e) e4 r } \new Staff \relative c { \clef bass \key f \major \time 3/4 f8( a c a c a f c' es c es c) f,( bes d bes d bes) f( g bes g bes g) } >> \layout { indent = 0.0\cm \context { \Score \override RehearsalMark #'break-align-symbols = #'(time-signature key-signature) \override RehearsalMark #'self-alignment-X = #LEFT } \context { \Staff \override TimeSignature #'break-align-anchor-alignment = #LEFT } } } }Used properties:
-
baseline-skip
-
-
\semiflat -
Draw a semiflat symbol.
\markup { \semiflat } -
\semisharp -
Draw a semisharp symbol.
\markup { \semisharp } -
\sesquiflat -
Draw a 3/2 flat symbol.
\markup { \sesquiflat } -
\sesquisharp -
Draw a 3/2 sharp symbol.
\markup { \sesquisharp } -
\sharp -
Draw a sharp symbol.
\markup { \sharp } -
\tied-lyricstr (string) -
Like simple-markup, but use tie characters for ‘~’ tilde symbols.
\markup \column { \tied-lyric #"Siam navi~all'onde~algenti Lasciate~in abbandono" \tied-lyric #"Impetuosi venti I nostri~affetti sono" \tied-lyric #"Ogni diletto~e scoglio Tutta la vita~e~un mar." }Used properties:
-
word-space
-
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Music ] | [ Amunt : Text markup commands ] | [ Accordion Registers > ] | ||
A.11.5 Instrument Specific Markup
-
\fret-diagramdefinition-string (string) -
Make a (guitar) fret diagram. For example, say
\markup \fret-diagram #"s:0.75;6-x;5-x;4-o;3-2;2-3;1-2;"
for fret spacing 3/4 of staff space, D chord diagram
Syntax rules for definition-string:
- - Diagram items are separated by semicolons.
- -
Possible items:
-
s:number – Set the fret spacing of the diagram (in staff spaces). Default: 1. -
t:number – Set the line thickness (relative to normal line thickness). Default: 0.5. -
h:number – Set the height of the diagram in frets. Default: 4. -
w:number – Set the width of the diagram in strings. Default: 6. -
f:number – Set fingering label type (0 = none, 1 = in circle on string, 2 = below string). Default: 0. -
d:number – Set radius of dot, in terms of fret spacing. Default: 0.25. -
p:number – Set the position of the dot in the fret space. 0.5 is centered; 1 is on lower fret bar, 0 is on upper fret bar. Default: 0.6. -
c:string1-string2-fret – Include a barre mark from string1 to string2 on fret. -
string
-fret – Place a dot on string at fret. If fret is ‘o’, string is identified as open. If fret is ‘x’, string is identified as muted. -
string
-fret-fingering – Place a dot on string at fret, and label with fingering as defined by thef:code.
-
- - Note: There is no limit to the number of fret indications per string.
Used properties:
-
thickness(0.5) -
fret-diagram-details -
size(1.0) -
align-dir(-0.4)
-
\fret-diagram-tersedefinition-string (string) -
Make a fret diagram markup using terse string-based syntax.
Here is an example
\markup \fret-diagram-terse #"x;x;o;2;3;2;"
for a D chord diagram.
Syntax rules for definition-string:
- Strings are terminated by semicolons; the number of semicolons is the number of strings in the diagram.
- Mute strings are indicated by ‘x’.
- Open strings are indicated by ‘o’.
- A number indicates a fret indication at that fret.
- If there are multiple fret indicators desired on a string, they should be separated by spaces.
-
Fingerings are given by following the fret number with a
-, followed by the finger indicator, e.g. ‘3-2’ for playing the third fret with the second finger. -
Where a barre indicator is desired, follow the fret (or fingering) symbol
with
-(to start a barre and-)to end the barre.
Used properties:
-
thickness(0.5) -
fret-diagram-details -
size(1.0) -
align-dir(-0.4)
-
\fret-diagram-verbosemarking-list (pair) -
Make a fret diagram containing the symbols indicated in marking-list.
For example,
\markup \fret-diagram-verbose #'((mute 6) (mute 5) (open 4) (place-fret 3 2) (place-fret 2 3) (place-fret 1 2))produces a standard D chord diagram without fingering indications.
Possible elements in marking-list:
-
(mute string-number) Place a small ‘x’ at the top of string string-number.
-
(open string-number) Place a small ‘o’ at the top of string string-number.
-
(barre start-string end-string fret-number) Place a barre indicator (much like a tie) from string start-string to string end-string at fret fret-number.
-
(capo fret-number) Place a capo indicator (a large solid bar) across the entire fretboard at fret location fret-number. Also, set fret fret-number to be the lowest fret on the fret diagram.
(place-fret string-number fret-number [finger-value] [color-modifier] [color] [
'parenthesized['default-paren-color]]) Place a fret playing indication on string string-number at fret fret-number with an optional fingering label finger-value, an optional color modifier color-modifier, an optional color color, an optional parenthesis'parenthesizedand an optional paranthesis color'default-paren-color. By default, the fret playing indicator is a solid dot. This can be globally changed by setting the value of the variable dot-color or for a single dot by setting the value of color. The dot can be parenthesized by adding'parenthesized. By default the color for the parenthesis is taken from the dot. Adding'default-paren-colorwill take the parenthesis-color from the global dot-color, as a fall-back black will be used. Setting color-modifier toinvertedinverts the dot color for a specific fingering. The values for string-number, fret-number, and the optional finger should be entered first in that order. The order of the other optional arguments does not matter. If the finger part of theplace-fretelement is present, finger-value will be displayed according to the setting of the variable finger-code. There is no limit to the number of fret indications per string.
Used properties:
-
thickness(0.5) -
fret-diagram-details -
size(1.0) -
align-dir(-0.4)
-
-
\harp-pedaldefinition-string (string) -
Make a harp pedal diagram.
Possible elements in definition-string:
-
^ pedal is up
-
- pedal is neutral
-
v pedal is down
-
| vertical divider line
-
o the following pedal should be circled (indicating a change)
The function also checks if the string has the typical form of three pedals, then the divider and then the remaining four pedals. If not it prints out a warning. However, in any case, it will also print each symbol in the order as given. This means you can place the divider (even multiple dividers) anywhere you want, but you’ll have to live with the warnings.
The appearance of the diagram can be tweaked inter alia using the size property of the TextScript grob (
\override Voice.TextScript #'size = #0.3) for the overall, the thickness property (\override Voice.TextScript #'thickness = #3) for the line thickness of the horizontal line and the divider. The remaining configuration (box sizes, offsets and spaces) is done by the harp-pedal-details list of properties (\override Voice.TextScript #'harp-pedal-details #'box-width = #1). It contains the following settings:box-offset(vertical shift of the box center for up/down pedals),box-width,box-height,space-before-divider(the spacing between two boxes before the divider) andspace-after-divider(box spacing after the divider).\markup \harp-pedal #"^-v|--ov^"
Used properties:
-
thickness(0.5) -
harp-pedal-details(’()) -
size(1.2)
-
-
\woodwind-diagraminstrument (symbol) user-draw-commands (list) -
Make a woodwind-instrument diagram. For example, say
\markup \woodwind-diagram #'oboe #'((lh . (d ees)) (cc . (five3qT1q)) (rh . (gis)))
for an oboe with the left-hand d key, left-hand ees key, and right-hand gis key depressed while the five-hole of the central column effectuates a trill between 1/4 and 3/4 closed.
The following instruments are supported:
- - piccolo
- - flute
- - oboe
- - clarinet
- - bass-clarinet
- - saxophone
- - bassoon
- - contrabassoon
To see all of the callable keys for a given instrument, include the function
(print-keys 'instrument)in your .ly file, where instrument is the instrument whose keys you want to print.Certain keys allow for special configurations. The entire gamut of configurations possible is as follows:
- - 1q (1/4 covered)
- - 1h (1/2 covered)
- - 3q (3/4 covered)
- - R (ring depressed)
- - F (fully covered; the default if no state put)
Additionally, these configurations can be used in trills. So, for example,
three3qTReffectuates a trill between 3/4 full and ring depressed on the three hole. As another example,threeRTeffectuates a trill between R and open, whereasthreeTReffectuates a trill between open and shut. To see all of the possibilities for all of the keys of a given instrument, invoke(print-keys-verbose 'instrument).Lastly, substituting an empty list for the pressed-key alist will result in a diagram with all of the keys drawn but none filled, for example:
\markup \woodwind-diagram #'oboe #'()
Used properties:
-
graphical(#t) -
thickness(0.1) -
size(1)
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Instrument Specific Markup ] | [ Amunt : Text markup commands ] | [ Other > ] | ||
A.11.6 Accordion Registers
-
\discantname (string) -
\discant namegenerates a discant accordion register symbol.To make it available,
#(use-modules (scm accreg))
is required near the top of your input file.
The register names in the default
\discantregister set have modeled after numeric Swiss notation like depicted in http://de.wikipedia.org/wiki/Register_%28Akkordeon%29, omitting the slashes and dropping leading zeros.The string name is basically a three-digit number with the lowest digit specifying the number of 16’ reeds, the tens the number of 8’ reeds, and the hundreds specifying the number of 4’ reeds. Without modification, the specified number of reeds in 8’ is centered in the symbol. Newer instruments may have registrations where 8’ can be used either within or without a tone chamber, ‘cassotto’. Notationally, the central dot then indicates use of cassotto. One can suffix the tens’ digits ‘1’ and ‘2’ with ‘+’ or ‘-’ to indicate clustering the dots at the right or left respectively rather than centered.
Some examples are
Used properties:
-
font-size(0)
-
-
\freeBassname (string) -
\freeBass namegenerates a free bass/converter accordion register symbol for the usual two-reed layout.To make it available,
#(use-modules (scm accreg))
is required near the top of your input file.
Available registrations are
Used properties:
-
font-size(0)
-
-
\stdBassname (string) -
\stdBass namegenerates a standard bass accordion register symbol.To make it available,
#(use-modules (scm accreg))
is required near the top of your input file.
The default bass register definitions have been modeled after the article http://www.accordions.com/index/art/stradella.shtml originally appearing in Accord Magazine.
The underlying register model is
This kind of overlapping arrangement is common for Italian instruments though the exact location of the octave breaks differ.
When not composing for a particular target instrument, using the five reed definitions makes more sense than using a four reed layout: in that manner, the ‘Master’ register is unambiguous. This is rather the rule in literature bothering about bass registrations at all.
Available registrations are
Used properties:
-
font-size(0)
-
-
\stdBassIVname (string) -
\stdBassIV namegenerates a standard bass accordion register symbol.To make it available,
#(use-modules (scm accreg))
is required near the top of your input file.
The main use is for four-reed standard bass instruments with reedbank layout
Notable instruments are Morino models with MIII (the others are five-reed instead) and the Atlantic IV. Most of those models have three register switches. Some newer Morinos with MIII might have five or even seven.
The prevalent three-register layout uses the middle three switches ‘Tenor’, ‘Master’, ‘Soft Bass’. Note that the sound is quite darker than the same registrations of ‘c,’-based instruments.
Available registrations are
Used properties:
-
font-size(0)
-
-
\stdBassVname (string) -
\stdBassV namegenerates a standard bass accordion register symbol.To make it available,
#(use-modules (scm accreg))
is required near the top of your input file.
The main use is for five-reed standard bass instruments with reedbank layout
This tends to be the bass layout for Hohner’s Morino series without convertor or MIII manual.
With the exception of the rather new 7-register layout, the highest two chord reeds are usually sounded together. The Older instruments offer 5 or 3 bass registers. The Tango VM offers an additional ‘Solo Bass’ setting that mutes the chord reeds. The symbol on the register buttons of the Tango VM would actually match the physical five-octave layout reflected here, but it is not used in literature.
Composers should likely prefer the five-reed versions of these symbols. The mismatch of a four-reed instrument with five-reed symbols is easier to resolve for the player than the other way round.
Available registrations are
Used properties:
-
font-size(0)
-
-
\stdBassVIname (string) -
\stdBassVI namegenerates a standard bass accordion register symbol for six reed basses.To make it available,
#(use-modules (scm accreg))
is required near the top of your input file.
This is primarily the register layout for the Hohner “Gola” model. The layout is
The registers are effectively quite similar to that of
\stdBass. An additional bass reed at alto pitch is omitted for esthetical reasons from the ‘Master’ setting, so the symbols are almost the same except for the ‘Alto/Soprano’ register with bass notes at Alto pitch and chords at Soprano pitch.Available registrations are
Used properties:
-
font-size(0)
-
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Accordion Registers ] | [ Amunt : Text markup commands ] | [ Text markup list commands > ] | ||
A.11.7 Other
-
\auto-footnotemkup (markup) note (markup) -
Have footnote note act as an annotation to the markup mkup.
\markup { \auto-footnote a b \override #'(padding . 0.2) \auto-footnote c d }The footnote will be annotated automatically.
Used properties:
-
padding(0.0) -
raise(0.5)
-
-
\backslashed-digitnum (integer) -
A feta number, with backslash. This is for use in the context of figured bass notation.
\markup { \backslashed-digit #5 \hspace #2 \override #'(thickness . 3) \backslashed-digit #7 }Used properties:
-
thickness(1.6) -
font-size(0)
-
-
\charnum (integer) -
Produce a single character. Characters encoded in hexadecimal format require the prefix
#x.\markup { \char #65 \char ##x00a9 } -
\eyeglasses -
Prints out eyeglasses, indicating strongly to look at the conductor.
\markup { \eyeglasses } -
\first-visibleargs (markup list) -
Use the first markup in args that yields a non-empty stencil and ignore the rest.
\markup { \first-visible { \fromproperty #'header:composer \italic Unknown } } -
\footnotemkup (markup) note (markup) -
Have footnote note act as an annotation to the markup mkup.
\markup { \auto-footnote a b \override #'(padding . 0.2) \auto-footnote c d }The footnote will not be annotated automatically.
-
\fractionarg1 (markup) arg2 (markup) -
Make a fraction of two markups.
\markup { π ≈ \fraction 355 113 }Used properties:
-
font-size(0)
-
-
\frompropertysymbol (symbol) -
Read the symbol from property settings, and produce a stencil from the markup contained within. If symbol is not defined, it returns an empty markup.
\header { myTitle = "myTitle" title = \markup { from \italic \fromproperty #'header:myTitle } } \markup { \null } -
\left-bracesize (number) -
A feta brace in point size size.
\markup { \left-brace #35 \hspace #2 \left-brace #45 } -
\lookupglyph-name (string) -
Lookup a glyph by name.
\markup { \override #'(font-encoding . fetaBraces) { \lookup #"brace200" \hspace #2 \rotate #180 \lookup #"brace180" } } -
\markalphabetnum (integer) -
Make a markup letter for num. The letters start with A to Z and continue with double letters.
\markup { \markalphabet #8 \hspace #2 \markalphabet #26 } -
\markletternum (integer) -
Make a markup letter for num. The letters start with A to Z (skipping letter I), and continue with double letters.
\markup { \markletter #8 \hspace #2 \markletter #26 } -
\null -
An empty markup with extents of a single point.
\markup { \null } -
\on-the-flyprocedure (procedure) arg (markup) -
Apply the procedure markup command to arg. procedure takes the same arguments as
interpret-markupand returns a stencil. -
\overridenew-prop (pair) arg (markup) -
Add the argument new-prop to the property list. Properties may be any property supported by font-interface, text-interface and instrument-specific-markup-interface.
\markup { \line { \column { default baseline-skip } \hspace #2 \override #'(baseline-skip . 4) { \column { increased baseline-skip } } } } -
\page-linkpage-number (number) arg (markup) -
Add a link to the page page-number around arg. This only works in the PDF backend.
\markup { \page-link #2 { \italic { This links to page 2... } } } -
\page-reflabel (symbol) gauge (markup) default (markup) -
Reference to a page number. label is the label set on the referenced page (using the
\labelcommand), gauge a markup used to estimate the maximum width of the page number, and default the value to display when label is not found.(If the current book or bookpart is set to use roman numerals for page numbers, the reference will be formatted accordingly – in which case the gauge’s width may require additional tweaking.)
-
\patterncount (integer) axis (integer) space (number) pattern (markup) -
Prints count times a pattern markup. Patterns are spaced apart by space. Patterns are distributed on axis.
\markup \column { "Horizontally repeated :" \pattern #7 #X #2 \flat \null "Vertically repeated :" \pattern #3 #Y #0.5 \flat } -
\property-recursivesymbol (symbol) -
Print out a warning when a header field markup contains some recursive markup definition.
-
\right-bracesize (number) -
A feta brace in point size size, rotated 180 degrees.
\markup { \right-brace #45 \hspace #2 \right-brace #35 } -
\slashed-digitnum (integer) -
A feta number, with slash. This is for use in the context of figured bass notation.
\markup { \slashed-digit #5 \hspace #2 \override #'(thickness . 3) \slashed-digit #7 }Used properties:
-
thickness(1.6) -
font-size(0)
-
-
\stencilstil (stencil) -
Use a stencil as markup.
\markup { \stencil #(make-circle-stencil 2 0 #t) } -
\strut -
Create a box of the same height as the space in the current font.
-
\transparentarg (markup) -
Make arg transparent.
\markup { \transparent { invisible text } } -
\verbatim-filename (string) -
Read the contents of file name, and include it verbatim.
\markup { \verbatim-file #"simple.ly" } -
\whiteoutarg (markup) -
Provide a white background for arg. The shape of the white background is determined by
style. The default isboxwhich produces a rectangle.rounded-boxproduces a rounded rectangle.outlineapproximates the outline of the markup.\markup { \combine \filled-box #'(-1 . 15) #'(-3 . 4) #1 \override #'(thickness . 1.5) \whiteout whiteout-box } \markup { \combine \filled-box #'(-1 . 24) #'(-3 . 4) #1 \override #'(style . rounded-box) \override #'(thickness . 3) \whiteout whiteout-rounded-box } \markup { \combine \filled-box #'(-1 . 18) #'(-3 . 4) #1 \override #'(style . outline) \override #'(thickness . 3) \whiteout whiteout-outline }Used properties:
-
thickness(’()) -
style(box)
-
-
\with-colorcolor (color) arg (markup) -
Draw arg in color specified by color.
\markup { \with-color #red red \hspace #2 \with-color #green green \hspace #2 \with-color #blue blue } -
\with-dimensions-fromarg1 (markup) arg2 (markup) -
Print arg2 with the dimensions of arg1.
-
\with-dimensionsx (pair of numbers) y (pair of numbers) arg (markup) -
Set the dimensions of arg to x and y.
-
\with-linklabel (symbol) arg (markup) -
Add a link to the page holding label label around arg. This only works in the PDF backend.
\markup { \with-link #'label { \italic { This links to the page containing the label... } } } -
\with-outlineoutline (markup) arg (markup) -
Print arg with the outline and dimensions of outline.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Other ] | [ Amunt : Notation manual tables ] | [ List of special characters > ] | ||
A.12 Text markup list commands
The following commands can all be used with \markuplist:
-
\column-linesargs (markup list) -
Like
\column, but return a list of lines instead of a single markup.baseline-skipdetermines the space between each markup in args.Used properties:
-
baseline-skip
-
-
\justified-linesargs (markup list) -
Like
\justify, but return a list of lines instead of a single markup. Use\override-lines #'(line-width . X)to set the line width; X is the number of staff spaces.Used properties:
-
text-direction(1) -
word-space -
line-width(#f) -
baseline-skip
-
-
\map-markup-commandscompose (procedure) args (markup list) -
This applies the function compose to every markup in args (including elements of markup list command calls) in order to produce a new markup list. Since the return value from a markup list command call is not a markup list but rather a list of stencils, this requires passing those stencils off as the results of individual markup calls. That way, the results should work out as long as no markups rely on side effects.
-
\override-linesnew-prop (pair) args (markup list) -
Like
\override, for markup lists. -
\score-linesscore (score) -
This is the same as the
\scoremarkup but delivers its systems as a list of lines. Its score argument is entered in braces like it would be for\score. -
\tablecolumn-align (number list) lst (markup list) -
Returns a table.
column-align specifies how each column is aligned, possible values are -1, 0, 1. The number of elements in column-align determines how many columns will be printed. The entries to print are given by lst, a markup-list. If needed, the last row is filled up with
point-stencils. Overridingpaddingmay be used to increase columns horizontal distance. Overridingbaseline-skipto increase rows vertical distance.\markuplist { \override #'(padding . 2) \table #'(0 1 0 -1) { \underline { center-aligned right-aligned center-aligned left-aligned } one \number 1 thousandth \number 0.001 eleven \number 11 hundredth \number 0.01 twenty \number 20 tenth \number 0.1 thousand \number 1000 one \number 1.0 } }Used properties:
-
baseline-skip -
padding(0)
-
-
\table-of-contents -
Used properties:
-
baseline-skip
-
-
\wordwrap-internaljustify (boolean) args (markup list) -
Internal markup list command used to define
\justifyand\wordwrap.Used properties:
-
text-direction(1) -
word-space -
line-width(#f)
-
-
\wordwrap-linesargs (markup list) -
Like
\wordwrap, but return a list of lines instead of a single markup. Use\override-lines #'(line-width . X)to set the line width, where X is the number of staff spaces.Used properties:
-
text-direction(1) -
word-space -
line-width(#f) -
baseline-skip
-
-
\wordwrap-string-internaljustify (boolean) arg (string) -
Internal markup list command used to define
\justify-stringand\wordwrap-string.Used properties:
-
text-direction(1) -
word-space -
line-width
-
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Text markup list commands ] | [ Amunt : Notation manual tables ] | [ List of articulations > ] | ||
A.13 List of special characters
The following special characters references can be used; for more details, see Àlies d’ASCII.
The HTML syntax is used and most of these references are the same as HTML. The rest of them are inspired by LaTeX.
The characters are boxed so that you can see their size. A small padding has been added between the character and the box for more readability.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < List of special characters ] | [ Amunt : Notation manual tables ] | [ Articulation scripts > ] | ||
A.14 List of articulations
The following lists show all the scripts in the Feta font that may be attached to notes (eg. ‘f\accent’ or ‘f->’). Each example shows the script in the up, down and neutral positions respectively.
| Articulation scripts | ||
| Ornament scripts | ||
| Fermata scripts | ||
| Instrument-specific scripts | ||
| Repeat sign scripts | ||
| Ancient scripts |
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < List of articulations ] | [ Amunt : List of articulations ] | [ Ornament scripts > ] | ||
Articulation scripts
\accent or ->
| \espressivo
| \marcato or -^
| \portato or -_
|
\staccatissimo or -!
| \staccato or -.
| \tenuto or --
|
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Articulation scripts ] | [ Amunt : List of articulations ] | [ Fermata scripts > ] | ||
Ornament scripts
\prall
| \prallup
| \pralldown
| \upprall
|
\downprall
| \prallprall
| \lineprall
| \prallmordent
|
\mordent
| \upmordent
| \downmordent
| \trill
|
\turn
| \reverseturn
|
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Ornament scripts ] | [ Amunt : List of articulations ] | [ Instrument-specific scripts > ] | ||
Fermata scripts
\shortfermata
| \fermata
| \longfermata
| \verylongfermata
|
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Fermata scripts ] | [ Amunt : List of articulations ] | [ Repeat sign scripts > ] | ||
Instrument-specific scripts
\upbow
| \downbow
| \flageolet
| \open
|
\halfopen
| \lheel
| \rheel
| \ltoe
|
\rtoe
| \snappizzicato
| \stopped or -+
|
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Instrument-specific scripts ] | [ Amunt : List of articulations ] | [ Ancient scripts > ] | ||
Repeat sign scripts
\segno
| \coda
| \varcoda
|
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Repeat sign scripts ] | [ Amunt : List of articulations ] | [ Percussion notes > ] | ||
Ancient scripts
\accentus
| \circulus
| \ictus
|
\semicirculus
| \signumcongruentiae
|
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Ancient scripts ] | [ Amunt : Notation manual tables ] | [ Technical glossary > ] | ||
A.15 Percussion notes
bassdrum
| acousticbassdrum
| snare
| acousticsnare
|
electricsnare
| lowfloortom
| highfloortom
| lowtom
|
hightom
| lowmidtom
| highmidtom
| highhat
|
closedhihat
| openhighhat
| halfopenhihat
| pedalhihat
|
crashcymbal
| crashcymbala
| crashcymbalb
| ridecymbal
|
ridecymbala
| ridecymbalb
| chinesecymbal
| splashcymbal
|
ridebell
| cowbell
| hibongo
| openhibongo
|
mutehibongo
| lobongo
| openlobongo
| mutelobongo
|
hiconga
| openhiconga
| mutehiconga
| loconga
|
openloconga
| muteloconga
| hitimbale
| lotimbale
|
hiagogo
| loagogo
| sidestick
| hisidestick
|
losidestick
| guiro
| shortguiro
| longguiro
|
cabasa
| maracas
| shortwhistle
| longwhistle
|
handclap
| tambourine
| vibraslap
| tamtam
|
claves
| hiwoodblock
| lowoodblock
| opencuica
|
mutecuica
| triangle
| opentriangle
| mutetriangle
|
oneup
| twoup
| threeup
| fourup
|
fiveup
| onedown
| twodown
| threedown
|
fourdown
| fivedown
|
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Percussion notes ] | [ Amunt : Notation manual tables ] | [ alist > ] | ||
A.16 Technical glossary
A glossary of the technical terms and concepts used internally in LilyPond. These terms may appear in the manuals, on mailing lists or in the source code.
| alist | ||
| callback | ||
| closure | ||
| glyph | ||
| grob | ||
| immutable | ||
| interface | ||
| lexer | ||
| mutable | ||
| output-def | ||
| parser | ||
| parser variable | ||
| prob | ||
| smob | ||
| stencil |
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Technical glossary ] | [ Amunt : Technical glossary ] | [ callback > ] | ||
alist
An association list or alist for short is a Scheme pair
which associates a value with a key: (key . value). For
example, in ‘scm/lily.scm’, the alist
“type-p-name-alist” associates certain type predicates
(e.g., ly:music?) with names (e.g., “music”) so
that type-check failures can be reported with a console message that
includes the name of the expected type predicate.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < alist ] | [ Amunt : Technical glossary ] | [ closure > ] | ||
callback
A callback is a routine, function or method whose reference is passed as an argument in a call to another routine, so allowing the called routine to invoke it. The technique enables a lower- level software layer to call a function defined in a higher layer. Callbacks are used extensively in LilyPond to permit user-level Scheme code to define how many low-level actions are performed.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < callback ] | [ Amunt : Technical glossary ] | [ glyph > ] | ||
closure
In Scheme, a closure is created when a function, usually a lambda expression, is passed as a variable. The closure contains the function’s code plus references to the lexical bindings of the function’s free variables (i.e., those variables used in the expression but defined outside it). When this function is applied to different arguments later, the free variable bindings that were captured in the closure are used to obtain the values of the free variables to be used in the calculation. One useful property of closures is the retention of internal variable values between invocations, so permitting state to be maintained.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < closure ] | [ Amunt : Technical glossary ] | [ grob > ] | ||
glyph
A glyph is a particular graphical representation of a typographic character, or a combination of two characters formating a ligature. A set of glyphs with a single style and shape comprise a font, and a set of fonts covering several styles and sizes comprise a typeface.
Vegeu també
Notation Reference: Tipus de lletra, Caràcters especials.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < glyph ] | [ Amunt : Technical glossary ] | [ immutable > ] | ||
grob
LilyPond objects which represent items of notation in the printed
output such as note heads, stems, slurs, ties, fingering, clefs,
etc are called ‘Layout objects’, often known as ‘GRaphical
OBjects’, or grobs for short. They are represented by
instances of the Grob class.
Vegeu també
Learning Manual: Objects and interfaces, Naming conventions of objects and properties, Properties of layout objects.
Internals Reference: grob-interface, All layout objects.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < grob ] | [ Amunt : Technical glossary ] | [ interface > ] | ||
immutable
An immutable object is one whose state cannot be modified after creation, in contrast to a mutable object, which can be modified after creation.
In LilyPond, immutable or shared properties define the default
style and behavior of grobs. They are shared between many objects.
In apparent contradiction to the name, they can be changed using
\override and \revert.
Vegeu també
Notation Reference: mutable.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < immutable ] | [ Amunt : Technical glossary ] | [ lexer > ] | ||
interface
Actions and properties which are common to a number of grobs are
grouped together in an object called a grob-interface, or
just ‘interface’ for short.
Vegeu també
Learning Manual: Objects and interfaces, Naming conventions of objects and properties, Properties found in interfaces.
Notation Reference: Layout interfaces.
Internals Reference: Graphical Object Interfaces.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < interface ] | [ Amunt : Technical glossary ] | [ mutable > ] | ||
lexer
A lexer is a program which converts a sequence of characters into a sequence of tokens, a process called lexical analysis. The LilyPond lexer converts the stream obtained from an input ‘.ly’ file into a tokenized stream more suited to the next stage of processing - parsing, for which see parser. The LilyPond lexer is built with Flex from the lexer file ‘lily/lexer.ll’ which contains the lexical rules. This file is part of the source code and is not included in the LilyPond binary installation.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < lexer ] | [ Amunt : Technical glossary ] | [ output-def > ] | ||
mutable
A mutable object is one whose state can be modified after creation, in contrast to an immutable object, whose state is fixed at the time of creation.
In LilyPond, mutable properties contain values that are specific to one grob. Typically, lists of other objects or results from computations are stored in mutable properties.
Vegeu també
Notation Reference: immutable.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < mutable ] | [ Amunt : Technical glossary ] | [ parser > ] | ||
output-def
An instance of the Output-def class contains the methods and
data structures associated with an output block. Instances are
created for midi, layout and paper blocks.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < output-def ] | [ Amunt : Technical glossary ] | [ parser variable > ] | ||
parser
A parser analyzes the sequence of tokens produced by a lexer to determine its grammatical structure, grouping the tokens progressively into larger groupings according to the rules of the grammar. If the sequence of tokens is valid the end product is a tree of tokens whose root is the grammar’s start symbol. If this cannot be achieved the file is invalid and an appropriate error message is produced. The syntactic groupings and the rules for constructing the groupings from their parts for the LilyPond syntax are defined in ‘lily/parser.yy’ and shown in Backus Normal Form (BNF) in LilyPond grammar. This file is used to build the parser during the program build by the parser generator, Bison. It is part of the source code and is not included in the LilyPond binary installation.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < parser ] | [ Amunt : Technical glossary ] | [ prob > ] | ||
parser variable
These are variables defined directly in Scheme. Their direct use by users is strongly discouraged, because their scoping semantics can be confusing.
When the value of such a variable is changed in a ‘.ly’ file,
the change is global, and unless explicitly reverted, the new value
will persist to the end of the file, affecting subsequent
\score blocks as well as external files added with the
\include command. This can lead to unintended consequences
and in complex typesetting projects the consequent errors can be
difficult to track down.
LilyPond uses the following parser variables:
- afterGraceFraction
- musicQuotes
- mode
- output-count
- output-suffix
- partCombineListener
- pitchnames
- toplevel-bookparts
- toplevel-scores
- showLastLength
- showFirstLength
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < parser variable ] | [ Amunt : Technical glossary ] | [ smob > ] | ||
prob
PRoperty OBjects, or probs for short, are instances of
the Prob class, a simple base class for objects which have
mutable and immutable property alists and the methods to manipulate
them. The Music and Stream_event classes derive from
Prob. Instances of the Prob class are also created
to hold the formatted content of system grobs and titling blocks
during page layout.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < prob ] | [ Amunt : Technical glossary ] | [ stencil > ] | ||
smob
Smobs, or ScheMe OBjects, are part of the mechanism used by Guile to export C and C++ objects to Scheme code. In LilyPond, smobs are created from C++ objects through macros. There are two types of smob objects: simple smobs, intended for simple immutable objects like numbers, and complex smobs, used for objects with identities. If you have access to the LilyPond sources, more information can be found in ‘lily/includes/smob.hh’.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < smob ] | [ Amunt : Technical glossary ] | [ All context properties > ] | ||
stencil
An instance of the stencil class holds the information required to print a typographical object. It is a simple smob containing a confining box, which defines the vertical and horizontal extents of the object, and a Scheme expression which will print the object when evaluated. Stencils may be combined to form more complex stencils defined by a tree of Scheme expressions formed from the Scheme expressions of the component stencils.
The stencil property, which connects a grob to its stencil,
is defined in the grob-interface interface.
Vegeu també
Internals Reference: grob-interface.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < stencil ] | [ Amunt : Notation manual tables ] | [ Layout properties > ] | ||
A.17 All context properties
-
accidentalGrouping(symbol) If set to
'voice, accidentals on the same note in different octaves may be horizontally staggered if in different voices.-
additionalBassStrings(list) The additional tablature bass-strings, which will not get a seprate line in TabStaff. It is a list of the pitches of each string (starting with the lowest numbered one).
-
additionalPitchPrefix(string) Text with which to prefix additional pitches within a chord name.
-
aDueText(markup) Text to print at a unisono passage.
-
alignAboveContext(string) Where to insert newly created context in vertical alignment.
-
alignBassFigureAccidentals(boolean) If true, then the accidentals are aligned in bass figure context.
-
alignBelowContext(string) Where to insert newly created context in vertical alignment.
-
alternativeNumberingStyle(symbol) The style of an alternative’s bar numbers. Can be
numbersfor going back to the same number ornumbers-with-lettersfor going back to the same number with letter suffixes. No setting will not go back in measure-number time.-
alternativeRestores(symbol list) Timing variables that are restored to their value at the start of the first alternative in subsequent alternatives.
-
associatedVoice(string) Name of the context (see
associatedVoiceTypefor its type, usuallyVoice) that has the melody for thisLyricsline.-
associatedVoiceType(symbol) Type of the context that has the melody for this
Lyricsline.-
autoAccidentals(list) List of different ways to typeset an accidental.
For determining when to print an accidental, several different rules are tried. The rule that gives the highest number of accidentals is used.
Each entry in the list is either a symbol or a procedure.
- symbol
The symbol is the name of the context in which the following rules are to be applied. For example, if context is Score then all staves share accidentals, and if context is Staff then all voices in the same staff share accidentals, but staves do not.
- procedure
The procedure represents an accidental rule to be applied to the previously specified context.
The procedure takes the following arguments:
-
context The current context to which the rule should be applied.
-
pitch The pitch of the note to be evaluated.
-
barnum The current bar number.
-
measurepos The current measure position.
The procedure returns a pair of booleans. The first states whether an extra natural should be added. The second states whether an accidental should be printed.
(#t . #f)does not make sense.-
-
autoBeamCheck(procedure) A procedure taking three arguments, context, dir [start/stop (-1 or 1)], and test [shortest note in the beam]. A non-
#freturn value starts or stops the auto beam.-
autoBeaming(boolean) If set to true then beams are generated automatically.
-
autoCautionaries(list) List similar to
autoAccidentals, but it controls cautionary accidentals rather than normal ones. Both lists are tried, and the one giving the most accidentals wins. In case of draw, a normal accidental is typeset.-
automaticBars(boolean) If set to false then bar lines will not be printed automatically; they must be explicitly created with a
\barcommand. Unlike the\cadenzaOnkeyword, measures are still counted. Bar line generation will resume according to that count if this property is unset.-
barAlways(boolean) If set to true a bar line is drawn after each note.
-
barCheckSynchronize(boolean) If true then reset
measurePositionwhen finding a bar check.-
barNumberFormatter(procedure) A procedure that takes a bar number, measure position, and alternative number and returns a markup of the bar number to print.
-
barNumberVisibility(procedure) A procedure that takes a bar number and a measure position and returns whether the corresponding bar number should be printed. Note that the actual print-out of bar numbers is controlled with the
break-visibilityproperty.The following procedures are predefined:
-
all-bar-numbers-visible Enable bar numbers for all bars, including the first one and broken bars (which get bar numbers in parentheses).
-
first-bar-number-invisible Enable bar numbers for all bars (including broken bars) except the first one. If the first bar is broken, it doesn’t get a bar number either.
-
first-bar-number-invisible-save-broken-bars Enable bar numbers for all bars (including broken bars) except the first one. A broken first bar gets a bar number.
-
first-bar-number-invisible-and-no-parenthesized-bar-numbers Enable bar numbers for all bars except the first bar and broken bars. This is the default.
-
(every-nth-bar-number-visible n) Assuming n is value 2, for example, this enables bar numbers for bars 2, 4, 6, etc.
-
(modulo-bar-number-visible n m) If bar numbers 1, 4, 7, etc., should be enabled, n (the modulo) must be set to 3 and m (the division remainder) to 1.
-
-
baseMoment(moment) Smallest unit of time that will stand on its own as a subdivided section.
-
bassFigureFormatFunction(procedure) A procedure that is called to produce the formatting for a
BassFiguregrob. It takes a list ofBassFigureEvents, a context, and the grob to format.-
beamExceptions(list) An alist of exceptions to autobeam rules that normally end on beats.
-
beamHalfMeasure(boolean) Whether to allow a beam to begin halfway through the measure in triple time, which could look like 6/8.
-
beatStructure(list) List of
baseMoments that are combined to make beats.-
chordChanges(boolean) Only show changes in chords scheme?
-
chordNameExceptions(list) An alist of chord exceptions. Contains
(chord . markup)entries.-
chordNameExceptionsFull(list) An alist of full chord exceptions. Contains
(chord . markup)entries.-
chordNameExceptionsPartial(list) An alist of partial chord exceptions. Contains
(chord . (prefix-markup suffix-markup))entries.-
chordNameFunction(procedure) The function that converts lists of pitches to chord names.
-
chordNameLowercaseMinor(boolean) Downcase roots of minor chords?
-
chordNameSeparator(markup) The markup object used to separate parts of a chord name.
-
chordNoteNamer(procedure) A function that converts from a pitch object to a text markup. Used for single pitches.
-
chordPrefixSpacer(number) The space added between the root symbol and the prefix of a chord name.
-
chordRootNamer(procedure) A function that converts from a pitch object to a text markup. Used for chords.
-
clefGlyph(string) Name of the symbol within the music font.
-
clefPosition(number) Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
-
clefTransposition(integer) Add this much extra transposition. Values of 7 and -7 are common.
-
clefTranspositionFormatter(procedure) A procedure that takes the Transposition number as a string and the style as a symbol and returns a markup.
-
clefTranspositionStyle(symbol) Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
-
completionBusy(boolean) Whether a completion-note head is playing.
-
completionFactor(an exact rational or procedure) When
Completion_heads_engraverandCompletion_rest_engraverneed to split a note or rest with a scaled duration, such asc2*3, this specifies the scale factor to use for the newly-split notes and rests created by the engraver.If
#f, the completion engraver uses the scale-factor of each duration being split.If set to a callback procedure, that procedure is called with the context of the completion engraver, and the duration to be split.
-
completionUnit(moment) Sub-bar unit of completion.
-
connectArpeggios(boolean) If set, connect arpeggios across piano staff.
-
countPercentRepeats(boolean) If set, produce counters for percent repeats.
-
createKeyOnClefChange(boolean) Print a key signature whenever the clef is changed.
-
createSpacing(boolean) Create
StaffSpacingobjects? Should be set for staves.-
crescendoSpanner(symbol) The type of spanner to be used for crescendi. Available values are ‘hairpin’ and ‘text’. If unset, a hairpin crescendo is used.
-
crescendoText(markup) The text to print at start of non-hairpin crescendo, i.e., ‘cresc.’.
-
cueClefGlyph(string) Name of the symbol within the music font.
-
cueClefPosition(number) Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
-
cueClefTransposition(integer) Add this much extra transposition. Values of 7 and -7 are common.
-
cueClefTranspositionFormatter(procedure) A procedure that takes the Transposition number as a string and the style as a symbol and returns a markup.
-
cueClefTranspositionStyle(symbol) Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
-
currentBarNumber(integer) Contains the current barnumber. This property is incremented at every bar line.
-
decrescendoSpanner(symbol) The type of spanner to be used for decrescendi. Available values are ‘hairpin’ and ‘text’. If unset, a hairpin decrescendo is used.
-
decrescendoText(markup) The text to print at start of non-hairpin decrescendo, i.e., ‘dim.’.
-
defaultBarType(string) Set the default type of bar line. See
whichBarfor information on available bar types.This variable is read by Timing_translator at Score level.
-
defaultStrings(list) A list of strings to use in calculating frets for tablatures and fretboards if no strings are provided in the notes for the current moment.
-
doubleRepeatSegnoType(string) Set the default bar line for the combinations double repeat with segno. Default is ‘:|.S.|:’.
-
doubleRepeatType(string) Set the default bar line for double repeats.
-
doubleSlurs(boolean) If set, two slurs are created for every slurred note, one above and one below the chord.
-
drumPitchTable(hash table) A table mapping percussion instruments (symbols) to pitches.
-
drumStyleTable(hash table) A hash table which maps drums to layout settings. Predefined values: ‘drums-style’, ‘agostini-drums-style’, ‘timbales-style’, ‘congas-style’, ‘bongos-style’, and ‘percussion-style’.
The layout style is a hash table, containing the drum-pitches (e.g., the symbol ‘hihat’) as keys, and a list
(notehead-style script vertical-position)as values.-
endRepeatSegnoType(string) Set the default bar line for the combinations ending of repeat with segno. Default is ‘:|.S’.
-
endRepeatType(string) Set the default bar line for the ending of repeats.
-
explicitClefVisibility(vector) ‘break-visibility’ function for clef changes.
-
explicitCueClefVisibility(vector) ‘break-visibility’ function for cue clef changes.
-
explicitKeySignatureVisibility(vector) ‘break-visibility’ function for explicit key changes. ‘\override’ of the
break-visibilityproperty will set the visibility for normal (i.e., at the start of the line) key signatures.-
extendersOverRests(boolean) Whether to continue extenders as they cross a rest.
-
extraNatural(boolean) Whether to typeset an extra natural sign before accidentals that reduce the effect of a previous alteration.
-
figuredBassAlterationDirection(direction) Where to put alterations relative to the main figure.
-
figuredBassCenterContinuations(boolean) Whether to vertically center pairs of extender lines. This does not work with three or more lines.
-
figuredBassFormatter(procedure) A routine generating a markup for a bass figure.
-
figuredBassPlusDirection(direction) Where to put plus signs relative to the main figure.
-
fingeringOrientations(list) A list of symbols, containing ‘left’, ‘right’, ‘up’ and/or ‘down’. This list determines where fingerings are put relative to the chord being fingered.
-
firstClef(boolean) If true, create a new clef when starting a staff.
-
followVoice(boolean) If set, note heads are tracked across staff switches by a thin line.
-
fontSize(number) The relative size of all grobs in a context.
-
forbidBreak(boolean) If set to
#t, prevent a line break at this point.-
forceClef(boolean) Show clef symbol, even if it has not changed. Only active for the first clef after the property is set, not for the full staff.
-
fretLabels(list) A list of strings or Scheme-formatted markups containing, in the correct order, the labels to be used for lettered frets in tablature.
-
glissandoMap(list) A map in the form of ’((source1 . target1) (source2 . target2) (sourcen . targetn)) showing the glissandi to be drawn for note columns. The value ’() will default to ’((0 . 0) (1 . 1) (n . n)), where n is the minimal number of note-heads in the two note columns between which the glissandi occur.
-
gridInterval(moment) Interval for which to generate
GridPoints.-
handleNegativeFrets(symbol) How the automatic fret calculator should handle calculated negative frets. Values include
'ignore, to leave them out of the diagram completely,'include, to include them as calculated, and'recalculate, to ignore the specified string and find a string where they will fit with a positive fret number.-
harmonicAccidentals(boolean) If set, harmonic notes in chords get accidentals.
-
harmonicDots(boolean) If set, harmonic notes in dotted chords get dots.
-
highStringOne(boolean) Whether the first string is the string with highest pitch on the instrument. This used by the automatic string selector for tablature notation.
-
ignoreBarChecks(boolean) Ignore bar checks.
-
ignoreFiguredBassRest(boolean) Don’t swallow rest events.
-
ignoreMelismata(boolean) Ignore melismata for this Lyrics line.
-
implicitBassFigures(list) A list of bass figures that are not printed as numbers, but only as extender lines.
-
includeGraceNotes(boolean) Do not ignore grace notes for Lyrics.
-
initialTimeSignatureVisibility(vector) break visibility for the initial time signature.
-
instrumentCueName(markup) The name to print if another instrument is to be taken.
-
instrumentEqualizer(procedure) A function taking a string (instrument name), and returning a
(min . max)pair of numbers for the loudness range of the instrument.-
instrumentName(markup) The name to print left of a staff. The
instrumentNameproperty labels the staff in the first system, and theshortInstrumentNameproperty labels following lines.-
instrumentTransposition(pitch) Define the transposition of the instrument. Its value is the pitch that sounds when the instrument plays written middle C. This is used to transpose the MIDI output, and
\quotes.-
internalBarNumber(integer) Contains the current barnumber. This property is used for internal timekeeping, among others by the
Accidental_engraver.-
keepAliveInterfaces(list) A list of symbols, signifying grob interfaces that are worth keeping a staff with
remove-emptyset around for.-
keyAlterationOrder(list) An alist that defines in what order alterations should be printed. The format is
(step . alter), where step is a number from 0 to 6 and alter from -2 (sharp) to 2 (flat).-
keyAlterations(list) The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).-
lyricMelismaAlignment(number) Alignment to use for a melisma syllable.
-
magnifyStaffValue(positive number) The most recent value set with
\magnifyStaff.-
majorSevenSymbol(markup) How should the major 7th be formatted in a chord name?
-
markFormatter(procedure) A procedure taking as arguments the context and the rehearsal mark. It should return the formatted mark as a markup object.
-
maximumFretStretch(number) Don’t allocate frets further than this from specified frets.
-
measureLength(moment) Length of one measure in the current time signature.
-
measurePosition(moment) How much of the current measure have we had. This can be set manually to create incomplete measures.
-
melismaBusyProperties(list) A list of properties (symbols) to determine whether a melisma is playing. Setting this property will influence how lyrics are aligned to notes. For example, if set to
'(melismaBusy beamMelismaBusy), only manual melismata and manual beams are considered. Possible values includemelismaBusy,slurMelismaBusy,tieMelismaBusy, andbeamMelismaBusy.-
metronomeMarkFormatter(procedure) How to produce a metronome markup. Called with two arguments: a
TempoChangeEventand context.-
middleCClefPosition(number) The position of the middle C, as determined only by the clef. This can be calculated by looking at
clefPositionandclefGlyph.-
middleCCuePosition(number) The position of the middle C, as determined only by the clef of the cue notes. This can be calculated by looking at
cueClefPositionandcueClefGlyph.-
middleCOffset(number) The offset of middle C from the position given by
middleCClefPositionThis is used for ottava brackets.-
middleCPosition(number) The place of the middle C, measured in half staff-spaces. Usually determined by looking at
middleCClefPositionandmiddleCOffset.-
midiBalance(number) Stereo balance for the MIDI channel associated with the current context. Ranges from -1 to 1, where the values -1 (
#LEFT), 0 (#CENTER) and 1 (#RIGHT) correspond to leftmost emphasis, center balance, and rightmost emphasis, respectively.-
midiChannelMapping(symbol) How to map MIDI channels: per
staff(default),instrumentorvoice.-
midiChorusLevel(number) Chorus effect level for the MIDI channel associated with the current context. Ranges from 0 to 1 (0=off, 1=full effect).
-
midiExpression(number) Expression control for the MIDI channel associated with the current context. Ranges from 0 to 1 (0=off, 1=full effect).
-
midiInstrument(string) Name of the MIDI instrument to use.
-
midiMaximumVolume(number) Analogous to
midiMinimumVolume.-
midiMergeUnisons(boolean) If true, output only one MIDI note-on event when notes with the same pitch, in the same MIDI-file track, overlap.
-
midiMinimumVolume(number) Set the minimum loudness for MIDI. Ranges from 0 to 1.
-
midiPanPosition(number) Pan position for the MIDI channel associated with the current context. Ranges from -1 to 1, where the values -1 (
#LEFT), 0 (#CENTER) and 1 (#RIGHT) correspond to hard left, center, and hard right, respectively.-
midiReverbLevel(number) Reverb effect level for the MIDI channel associated with the current context. Ranges from 0 to 1 (0=off, 1=full effect).
-
minimumFret(number) The tablature auto string-selecting mechanism selects the highest string with a fret at least
minimumFret.-
minimumPageTurnLength(moment) Minimum length of a rest for a page turn to be allowed.
-
minimumRepeatLengthForPageTurn(moment) Minimum length of a repeated section for a page turn to be allowed within that section.
-
minorChordModifier(markup) Markup displayed following the root for a minor chord
-
noChordSymbol(markup) Markup to be displayed for rests in a ChordNames context.
-
noteToFretFunction(procedure) Convert list of notes and list of defined strings to full list of strings and fret numbers. Parameters: The context, a list of note events, a list of tabstring events, and the fretboard grob if a fretboard is desired.
-
nullAccidentals(boolean) The
Accidental_engravergenerates no accidentals for notes in contexts were this is set. In addition to supressing the printed accidental, this option removes any effect the note would have had on accidentals in other voices.-
ottavation(markup) If set, the text for an ottava spanner. Changing this creates a new text spanner.
-
output(music output) The output produced by a score-level translator during music interpretation.
-
partCombineForced(symbol) Override for the partcombine decision. Can be
apart,chords,unisono,solo1, orsolo2.-
partCombineTextsOnNote(boolean) Print part-combine texts only on the next note rather than immediately on rests or skips.
-
pedalSostenutoStrings(list) See
pedalSustainStrings.-
pedalSostenutoStyle(symbol) See
pedalSustainStyle.-
pedalSustainStrings(list) A list of strings to print for sustain-pedal. Format is
(up updown down), where each of the three is the string to print when this is done with the pedal.-
pedalSustainStyle(symbol) A symbol that indicates how to print sustain pedals:
text,bracketormixed(both).-
pedalUnaCordaStrings(list) See
pedalSustainStrings.-
pedalUnaCordaStyle(symbol) See
pedalSustainStyle.-
predefinedDiagramTable(hash table) The hash table of predefined fret diagrams to use in FretBoards.
-
printKeyCancellation(boolean) Print restoration alterations before a key signature change.
-
printOctaveNames(boolean) Print octave marks for the
NoteNamescontext.-
printPartCombineTexts(boolean) Set ‘Solo’ and ‘A due’ texts in the part combiner?
-
proportionalNotationDuration(moment) Global override for shortest-playing duration. This is used for switching on proportional notation.
-
rehearsalMark(integer) The last rehearsal mark printed.
-
repeatCommands(list) This property is a list of commands of the form
(list 'volta x), where x is a string or#f.'end-repeatis also accepted as a command.-
repeatCountVisibility(procedure) A procedure taking as arguments an integer and context, returning whether the corresponding percent repeat number should be printed when
countPercentRepeatsis set.-
restCompletionBusy(boolean) Signal whether a completion-rest is active.
-
restNumberThreshold(number) If a multimeasure rest has more measures than this, a number is printed.
-
restrainOpenStrings(boolean) Exclude open strings from the automatic fret calculator.
-
searchForVoice(boolean) Signal whether a search should be made of all contexts in the context hierarchy for a voice to provide rhythms for the lyrics.
-
segnoType(string) Set the default bar line for a requested segno. Default is ‘S’.
-
shapeNoteStyles(vector) Vector of symbols, listing style for each note head relative to the tonic (qv.) of the scale.
-
shortInstrumentName(markup) See
instrumentName.-
shortVocalName(markup) Name of a vocal line, short version.
-
skipBars(boolean) If set to true, then skip the empty bars that are produced by multimeasure notes and rests. These bars will not appear on the printed output. If not set (the default), multimeasure notes and rests expand into their full length, printing the appropriate number of empty bars so that synchronization with other voices is preserved.
{ r1 r1*3 R1*3 \set Score.skipBars= ##t r1*3 R1*3 }-
skipTypesetting(boolean) If true, no typesetting is done, speeding up the interpretation phase. Useful for debugging large scores.
-
slashChordSeparator(markup) The markup object used to separate a chord name from its root note in case of inversions or slash chords.
-
soloIIText(markup) The text for the start of a solo for voice ‘two’ when part-combining.
-
soloText(markup) The text for the start of a solo when part-combining.
-
squashedPosition(integer) Vertical position of squashing for Pitch_squash_engraver.
-
staffLineLayoutFunction(procedure) Layout of staff lines,
traditional, orsemitone.-
stanza(markup) Stanza ‘number’ to print before the start of a verse. Use in
Lyricscontext.-
startRepeatSegnoType(string) Set the default bar line for the combinations beginning of repeat with segno. Default is ‘S.|:’.
-
startRepeatType(string) Set the default bar line for the beginning of repeats.
-
stemLeftBeamCount(integer) Specify the number of beams to draw on the left side of the next note. Overrides automatic beaming. The value is only used once, and then it is erased.
-
stemRightBeamCount(integer) See
stemLeftBeamCount.-
strictBeatBeaming(boolean) Should partial beams reflect the beat structure even if it causes flags to hang out?
-
stringNumberOrientations(list) See
fingeringOrientations.-
stringOneTopmost(boolean) Whether the first string is printed on the top line of the tablature.
-
stringTunings(list) The tablature strings tuning. It is a list of the pitches of each string (starting with the lowest numbered one).
-
strokeFingerOrientations(list) See
fingeringOrientations.-
subdivideBeams(boolean) If set, multiple beams will be subdivided at
baseMomentpositions by only drawing one beam over the beat.-
suggestAccidentals(boolean) If set, accidentals are typeset as cautionary suggestions over the note.
-
supportNonIntegerFret(boolean) If set in
ScoretheTabStaffwill print micro-tones as ‘2½’-
suspendRestMerging(boolean) When using the Merge_rest_engraver do not merge rests when this is set to true.
-
systemStartDelimiter(symbol) Which grob to make for the start of the system/staff? Set to
SystemStartBrace,SystemStartBracketorSystemStartBar.-
systemStartDelimiterHierarchy(pair) A nested list, indicating the nesting of a start delimiters.
-
tablatureFormat(procedure) A function formatting a tablature note head. Called with three arguments: context, string number and, fret number. It returns the text as a markup.
-
tabStaffLineLayoutFunction(procedure) A function determining the staff position of a tablature note head. Called with two arguments: the context and the string.
-
tempoHideNote(boolean) Hide the note = count in tempo marks.
-
tempoWholesPerMinute(moment) The tempo in whole notes per minute.
-
tieWaitForNote(boolean) If true, tied notes do not have to follow each other directly. This can be used for writing out arpeggios.
-
timeSignatureFraction(fraction, as pair) A pair of numbers, signifying the time signature. For example,
'(4 . 4)is a 4/4 time signature.-
timeSignatureSettings(list) A nested alist of settings for time signatures. Contains elements for various time signatures. The element for each time signature contains entries for
baseMoment,beatStructure, andbeamExceptions.-
timing(boolean) Keep administration of measure length, position, bar number, etc.? Switch off for cadenzas.
-
tonic(pitch) The tonic of the current scale.
-
topLevelAlignment(boolean) If true, the Vertical_align_engraver will create a VerticalAlignment; otherwise, it will create a StaffGrouper
-
tupletFullLength(boolean) If set, the tuplet is printed up to the start of the next note.
-
tupletFullLengthNote(boolean) If set, end at the next note, otherwise end on the matter (time signatures, etc.) before the note.
-
tupletSpannerDuration(moment) Normally, a tuplet bracket is as wide as the
\timesexpression that gave rise to it. By setting this property, you can make brackets last shorter.{ \set tupletSpannerDuration = #(ly:make-moment 1 4) \times 2/3 { c8 c c c c c } }-
useBassFigureExtenders(boolean) Whether to use extender lines for repeated bass figures.
-
vocalName(markup) Name of a vocal line.
-
voltaSpannerDuration(moment) This specifies the maximum duration to use for the brackets printed for
\alternative. This can be used to shrink the length of brackets in the situation where one alternative is very large.-
whichBar(string) This property is read to determine what type of bar line to create.
Example:
\set Staff.whichBar = ".|:"
This will create a start-repeat bar in this staff only. Valid values are described in ‘scm/bar-line.scm’.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < All context properties ] | [ Amunt : Notation manual tables ] | [ Available music functions > ] | ||
A.18 Layout properties
-
add-stem-support(boolean) If set, the
Stemobject is included in this script’s support.-
after-line-breaking(boolean) Dummy property, used to trigger callback for
after-line-breaking.-
align-dir(direction) Which side to align?
-1: left side,0: around center of width,1: right side.-
allow-loose-spacing(boolean) If set, column can be detached from main spacing.
-
allow-span-bar(boolean) If false, no inter-staff bar line will be created below this bar line.
-
alteration(number) Alteration numbers for accidental.
-
alteration-alist(list) List of
(pitch . accidental)pairs for key signature.-
annotation(string) Annotate a grob for debug purposes.
-
annotation-balloon(boolean) Print the balloon around an annotation.
-
annotation-line(boolean) Print the line from an annotation to the grob that it annotates.
-
arpeggio-direction(direction) If set, put an arrow on the arpeggio squiggly line.
-
arrow-length(number) Arrow length.
-
arrow-width(number) Arrow width.
-
auto-knee-gap(dimension, in staff space) If a gap is found between note heads where a horizontal beam fits that is larger than this number, make a kneed beam.
-
automatically-numbered(boolean) Should a footnote be automatically numbered?
-
average-spacing-wishes(boolean) If set, the spacing wishes are averaged over staves.
-
avoid-note-head(boolean) If set, the stem of a chord does not pass through all note heads, but starts at the last note head.
-
avoid-scripts(boolean) If set, a tuplet bracket avoids the scripts associated with the note heads it encompasses.
-
avoid-slur(symbol) Method of handling slur collisions. Choices are
inside,outside,around, andignore.insideadjusts the slur if needed to keep the grob inside the slur.outsidemoves the grob vertically to the outside of the slur.aroundmoves the grob vertically to the outside of the slur only if there is a collision.ignoredoes not move either. In grobs whose notational significance depends on vertical position (such as accidentals, clefs, etc.),outsideandaroundbehave likeignore.-
axes(list) List of axis numbers. In the case of alignment grobs, this should contain only one number.
-
bar-extent(pair of numbers) The Y-extent of the actual bar line. This may differ from
Y-extentbecause it does not include the dots in a repeat bar line.-
base-shortest-duration(moment) Spacing is based on the shortest notes in a piece. Normally, pieces are spaced as if notes at least as short as this are present.
-
baseline-skip(dimension, in staff space) Distance between base lines of multiple lines of text.
-
beam-thickness(dimension, in staff space) Beam thickness, measured in
staff-spaceunits.-
beam-width(dimension, in staff space) Width of the tremolo sign.
-
beamed-stem-shorten(list) How much to shorten beamed stems, when their direction is forced. It is a list, since the value is different depending on the number of flags and beams.
-
beaming(pair) Pair of number lists. Each number list specifies which beams to make.
0is the central beam,1is the next beam toward the note, etc. This information is used to determine how to connect the beaming patterns from stem to stem inside a beam.-
beamlet-default-length(pair) A pair of numbers. The first number specifies the default length of a beamlet that sticks out of the left hand side of this stem; the second number specifies the default length of the beamlet to the right. The actual length of a beamlet is determined by taking either the default length or the length specified by
beamlet-max-length-proportion, whichever is smaller.-
beamlet-max-length-proportion(pair) The maximum length of a beamlet, as a proportion of the distance between two adjacent stems.
-
before-line-breaking(boolean) Dummy property, used to trigger a callback function.
-
between-cols(pair) Where to attach a loose column to.
-
bound-details(list) An alist of properties for determining attachments of spanners to edges.
-
bound-padding(number) The amount of padding to insert around spanner bounds.
-
bracket-flare(pair of numbers) A pair of numbers specifying how much edges of brackets should slant outward. Value
0.0means straight edges.-
bracket-visibility(boolean or symbol) This controls the visibility of the tuplet bracket. Setting it to false prevents printing of the bracket. Setting the property to
if-no-beammakes it print only if there is no beam associated with this tuplet bracket.-
break-align-anchor(number) Grobs aligned to this breakable item will have their X-offsets shifted by this number. In bar lines, for example, this is used to position grobs relative to the (visual) center of the bar line.
-
break-align-anchor-alignment(number) Read by
ly:break-aligned-interface::calc-extent-aligned-anchorfor aligning an anchor to a grob’s extent.-
break-align-orders(vector) This is a vector of 3 lists:
#(end-of-line unbroken start-of-line). Each list contains break-align symbols that specify an order of breakable items (see break-alignment-interface).For example, this places time signatures before clefs:
\override Score.BreakAlignment.break-align-orders = #(make-vector 3 '(left-edge cue-end-clef ambitus breathing-sign time-signature clef cue-clef staff-bar key-cancellation key-signature custos))-
break-align-symbol(symbol) This key is used for aligning, ordering, and spacing breakable items. See break-alignment-interface.
-
break-align-symbols(list) A list of break-align symbols that determines which breakable items to align this to. If the grob selected by the first symbol in the list is invisible due to
break-visibility, we will align to the next grob (and so on). Choices are listed in break-alignment-interface.-
break-overshoot(pair of numbers) How much does a broken spanner stick out of its bounds?
-
break-visibility(vector) A vector of 3 booleans,
#(end-of-line unbroken begin-of-line).#tmeans visible,#fmeans killed.-
breakable(boolean) Allow breaks here.
-
broken-bound-padding(number) The amount of padding to insert when a spanner is broken at a line break.
-
chord-dots-limit(integer) Limits the column of dots on each chord to the height of the chord plus
chord-dots-limitstaff-positions.-
circled-tip(boolean) Put a circle at start/end of hairpins (al/del niente).
-
clef-alignments(list) An alist of parent-alignments that should be used for clef modifiers with various clefs
-
clip-edges(boolean) Allow outward pointing beamlets at the edges of beams?
-
collapse-height(dimension, in staff space) Minimum height of system start delimiter. If equal or smaller, the bracket/brace/line is removed.
-
collision-interfaces(list) A list of interfaces for which automatic beam-collision resolution is run.
-
collision-voice-only(boolean) Does automatic beam collsion apply only to the voice in which the beam was created?
-
color(color) The color of this grob.
-
common-shortest-duration(moment) The most common shortest note length. This is used in spacing. Enlarging this sets the score tighter.
-
concaveness(number) A beam is concave if its inner stems are closer to the beam than the two outside stems. This number is a measure of the closeness of the inner stems. It is used for damping the slope of the beam.
-
connect-to-neighbor(pair) Pair of booleans, indicating whether this grob looks as a continued break.
-
control-points(list of number pairs) List of offsets (number pairs) that form control points for the tie, slur, or bracket shape. For Béziers, this should list the control points of a third-order Bézier curve.
-
count-from(integer) The first measure in a measure count receives this number. The following measures are numbered in increments from this initial value.
-
damping(number) Amount of beam slope damping.
-
dash-definition(pair) List of
dash-elementsdefining the dash structure. Eachdash-elementhas a starting t value, an ending t-value, adash-fraction, and adash-period.-
dash-fraction(number) Size of the dashes, relative to
dash-period. Should be between0.1and1.0(continuous line). If set to0.0, a dotted line is produced-
dash-period(number) The length of one dash together with whitespace. If negative, no line is drawn at all.
-
default-direction(direction) Direction determined by note head positions.
-
default-staff-staff-spacing(list) The settings to use for
staff-staff-spacingwhen it is unset, for ungrouped staves and for grouped staves that do not have the relevantStaffGrouperproperty set (staff-staff-spacingorstaffgroup-staff-spacing).-
details(list) Alist of parameters for detailed grob behavior. More information on the allowed parameters for a grob can be found by looking at the top of the Internals Reference page for each interface having a
detailsproperty.-
digit-names(vector) Names for string finger digits.
-
direction(direction) If
side-axisis0(orX), then this property determines whether the object is placedLEFT,CENTERorRIGHTwith respect to the other object. Otherwise, it determines whether the object is placedUP,CENTERorDOWN. Numerical values may also be used:UP=1,DOWN=-1,LEFT=-1,RIGHT=1,CENTER=0.-
dot-count(integer) The number of dots.
-
dot-negative-kern(number) The space to remove between a dot and a slash in percent repeat glyphs. Larger values bring the two elements closer together.
-
dot-placement-list(list) List consisting of
(description string-number fret-number finger-number)entries used to define fret diagrams.-
double-stem-separation(number) The distance between the two stems of a half note in tablature when using
\tabFullNotation, not counting the width of the stems themselves, expressed as a multiple of the default height of a staff-space in the traditional five-line staff.-
duration-log(integer) The 2-log of the note head duration, i.e.,
0= whole note,1= half note, etc.-
eccentricity(number) How asymmetrical to make a slur. Positive means move the center to the right.
-
edge-height(pair) A pair of numbers specifying the heights of the vertical edges:
(left-height . right-height).-
edge-text(pair) A pair specifying the texts to be set at the edges:
(left-text . right-text).-
expand-limit(integer) Maximum number of measures expanded in church rests.
-
extra-dy(number) Slope glissandi this much extra.
-
extra-offset(pair of numbers) A pair representing an offset. This offset is added just before outputting the symbol, so the typesetting engine is completely oblivious to it. The values are measured in
staff-spaceunits of the staff’sStaffSymbol.-
extra-spacing-height(pair of numbers) In the horizontal spacing problem, we increase the height of each item by this amount (by adding the ‘car’ to the bottom of the item and adding the ‘cdr’ to the top of the item). In order to make a grob infinitely high (to prevent the horizontal spacing problem from placing any other grobs above or below this grob), set this to
(-inf.0 . +inf.0).-
extra-spacing-width(pair of numbers) In the horizontal spacing problem, we pad each item by this amount (by adding the ‘car’ on the left side of the item and adding the ‘cdr’ on the right side of the item). In order to make a grob take up no horizontal space at all, set this to
(+inf.0 . -inf.0).-
flag-count(number) The number of tremolo beams.
-
flag-style(symbol) The style of the flag to be used with
MetronomeMark. Available are'modern-straight-flag,'old-straight-flag,flat-flag,mensuraland'default-
flat-positions(list) Flats in key signatures are placed within the specified ranges of staff-positions. The general form is a list of pairs, with one pair for each type of clef, in order of the staff-position at which each clef places C:
(alto treble tenor soprano baritone mezzosoprano bass). If the list contains a single element it applies for all clefs. A single number in place of a pair sets accidentals within the octave ending at that staff-position.-
font-encoding(symbol) The font encoding is the broadest category for selecting a font. Currently, only lilypond’s system fonts (Emmentaler) are using this property. Available values are
fetaMusic(Emmentaler),fetaBraces,fetaText(Emmentaler).-
font-family(symbol) The font family is the broadest category for selecting text fonts. Options include:
sans,roman.-
font-features(list) Opentype features.
-
font-name(string) Specifies a file name (without extension) of the font to load. This setting overrides selection using
font-family,font-seriesandfont-shape.-
font-series(symbol) Select the series of a font. Choices include
medium,bold,bold-narrow, etc.-
font-shape(symbol) Select the shape of a font. Choices include
upright,italic,caps.-
font-size(number) The font size, compared to the ‘normal’ size.
0is style-sheet’s normal size,-1is smaller,+1is bigger. Each step of 1 is approximately 12% larger; 6 steps are exactly a factor 2 larger. If the context propertyfontSizeis set, its value is added to this before the glyph is printed. Fractional values are allowed.-
footnote(boolean) Should this be a footnote or in-note?
-
footnote-music(music) Music creating a footnote.
-
footnote-text(markup) A footnote for the grob.
-
force-hshift(number) This specifies a manual shift for notes in collisions. The unit is the note head width of the first voice note. This is used by note-collision-interface.
-
forced-spacing(number) Spacing forced between grobs, used in various ligature engravers.
-
fraction(fraction, as pair) Numerator and denominator of a time signature object.
-
french-beaming(boolean) Use French beaming style for this stem. The stem stops at the innermost beams.
-
fret-diagram-details(list) An alist of detailed grob properties for fret diagrams. Each alist entry consists of a
(property . value)pair. The properties which can be included infret-diagram-detailsinclude the following:-
barre-type– Type of barre indication used. Choices includecurved,straight, andnone. Defaultcurved. -
capo-thickness– Thickness of capo indicator, in multiples of fret-space. Default value 0.5. -
dot-color– Color of dots. Options includeblackandwhite. Defaultblack. -
dot-label-font-mag– Magnification for font used to label fret dots. Default value 1. -
dot-position– Location of dot in fret space. Default 0.6 for dots without labels, 0.95-dot-radiusfor dots with labels. -
dot-radius– Radius of dots, in terms of fret spaces. Default value 0.425 for labeled dots, 0.25 for unlabeled dots. -
finger-code– Code for the type of fingering indication used. Options includenone,in-dot, andbelow-string. Defaultnonefor markup fret diagrams,below-stringforFretBoardsfret diagrams. -
fret-count– The number of frets. Default 4. -
fret-distance– Multiplier to adjust the distance between frets. Default 1.0. -
fret-label-custom-format– The format string to be used label the lowest fret number, whennumber-typeequals tocustom. Default "~a". -
fret-label-font-mag– The magnification of the font used to label the lowest fret number. Default 0.5. -
fret-label-vertical-offset– The offset of the fret label from the center of the fret in direction parallel to strings. Default 0. -
fret-label-horizontal-offset– The offset of the fret label from the center of the fret in direction orthogonal to strings. Default 0. -
paren-padding– The padding for the parenthesis. Default 0.05. -
label-dir– Side to which the fret label is attached.-1,LEFT, orDOWNfor left or down;1,RIGHT, orUPfor right or up. DefaultRIGHT. -
mute-string– Character string to be used to indicate muted string. Default"x". -
number-type– Type of numbers to use in fret label. Choices includeroman-lower,roman-upper,arabicandcustom. In the later case, the format string is supplied by thefret-label-custom-formatproperty. Defaultroman-lower. -
open-string– Character string to be used to indicate open string. Default"o". -
orientation– Orientation of fret-diagram. Options includenormal,landscape, andopposing-landscape. Defaultnormal. -
string-count– The number of strings. Default 6. -
string-distance– Multiplier to adjust the distance between strings. Default 1.0. -
string-label-font-mag– The magnification of the font used to label fingerings at the string, rather than in the dot. Default value 0.6 fornormalorientation, 0.5 forlandscapeandopposing-landscape. -
string-thickness-factor– Factor for changing thickness of each string in the fret diagram. Thickness of string k is given bythickness* (1+string-thickness-factor) ^ (k-1). Default 0. -
top-fret-thickness– The thickness of the top fret line, as a multiple of the standard thickness. Default value 3. -
xo-font-magnification– Magnification used for mute and open string indicators. Default value 0.5. -
xo-padding– Padding for open and mute indicators from top fret. Default value 0.25.
-
-
full-length-padding(number) How much padding to use at the right side of a full-length tuplet bracket.
-
full-length-to-extent(boolean) Run to the extent of the column for a full-length tuplet bracket.
-
full-measure-extra-space(number) Extra space that is allocated at the beginning of a measure with only one note. This property is read from the NonMusicalPaperColumn that begins the measure.
-
full-size-change(boolean) Don’t make a change clef smaller.
-
gap(dimension, in staff space) Size of a gap in a variable symbol.
-
gap-count(integer) Number of gapped beams for tremolo.
-
glissando-skip(boolean) Should this
NoteHeadbe skipped by glissandi?-
glyph(string) A string determining what ‘style’ of glyph is typeset. Valid choices depend on the function that is reading this property.
In combination with (span) bar lines, it is a string resembling the bar line appearance in ASCII form.
-
glyph-name(string) The glyph name within the font.
In the context of (span) bar lines, glyph-name represents a processed form of
glyph, where decisions about line breaking etc. are already taken.-
glyph-name-alist(list) An alist of key-string pairs.
-
graphical(boolean) Display in graphical (vs. text) form.
-
grow-direction(direction) Crescendo or decrescendo?
-
hair-thickness(number) Thickness of the thin line in a bar line, expressed as a multiple of the default staff-line thickness (i.e. the visual output is not influenced by changes to
Staff.StaffSymbol.thickness).-
harp-pedal-details(list) An alist of detailed grob properties for harp pedal diagrams. Each alist entry consists of a
(property . value)pair. The properties which can be included in harp-pedal-details include the following:-
box-offset– Vertical shift of the center of flat/sharp pedal boxes above/below the horizontal line. Default value 0.8. -
box-width– Width of each pedal box. Default value 0.4. -
box-height– Height of each pedal box. Default value 1.0. -
space-before-divider– Space between boxes before the first divider (so that the diagram can be made symmetric). Default value 0.8. -
space-after-divider– Space between boxes after the first divider. Default value 0.8. -
circle-thickness– Thickness (in unit of the line-thickness) of the ellipse around circled pedals. Default value 0.5. -
circle-x-padding– Padding in X direction of the ellipse around circled pedals. Default value 0.15. -
circle-y-padding– Padding in Y direction of the ellipse around circled pedals. Default value 0.2.
-
-
head-direction(direction) Are the note heads left or right in a semitie?
-
height(dimension, in staff space) Height of an object in
staff-spaceunits.-
height-limit(dimension, in staff space) Maximum slur height: The longer the slur, the closer it is to this height.
-
hide-tied-accidental-after-break(boolean) If set, an accidental that appears on a tied note after a line break will not be displayed.
-
horizon-padding(number) The amount to pad the axis along which a
Skylineis built for theside-position-interface.-
horizontal-shift(integer) An integer that identifies ranking of
NoteColumns for horizontal shifting. This is used by note-collision-interface.-
horizontal-skylines(pair of skylines) Two skylines, one to the left and one to the right of this grob.
-
id(string) An id string for the grob.
-
ignore-ambitus(boolean) If set, don’t consider this notehead for ambitus calculation.
-
ignore-collision(boolean) If set, don’t do note collision resolution on this
NoteColumn.-
implicit(boolean) Is this an implicit bass figure?
-
inspect-index(integer) If debugging is set, set beam and slur configuration to this index, and print the respective scores.
-
inspect-quants(pair of numbers) If debugging is set, set beam and slur quants to this position, and print the respective scores.
-
keep-inside-line(boolean) If set, this column cannot have objects sticking into the margin.
-
kern(dimension, in staff space) The space between individual elements in any compound bar line, expressed as a multiple of the default staff-line thickness (i.e. the visual output is not influenced by changes to
Staff.StaffSymbol.thickness).-
knee(boolean) Is this beam kneed?
-
knee-spacing-correction(number) Factor for the optical correction amount for kneed beams. Set between
0for no correction and1for full correction.-
knee-to-beam(boolean) Determines whether a tuplet number will be positioned next to a kneed beam.
-
labels(list) List of labels (symbols) placed on a column.
-
layer(integer) An integer which determines the order of printing objects. Objects with the lowest value of layer are drawn first, then objects with progressively higher values are drawn, so objects with higher values overwrite objects with lower values. By default most objects are assigned a layer value of 1.
-
ledger-extra(dimension, in staff space) Extra distance from staff line to draw ledger lines for.
-
ledger-line-thickness(pair of numbers) The thickness of ledger lines. It is the sum of 2 numbers: The first is the factor for line thickness, and the second for staff space. Both contributions are added.
-
ledger-positions(list) Vertical positions of ledger lines. When set on a
StaffSymbolgrob it defines a repeating pattern of ledger lines and any parenthesized groups will always be shown together.-
ledger-positions-function(any type) A quoted Scheme procedure that takes a
StaffSymbolgrob and the vertical position of a note head as arguments and returns a list of ledger line positions.-
left-bound-info(list) An alist of properties for determining attachments of spanners to edges.
-
left-padding(dimension, in staff space) The amount of space that is put left to an object (e.g., a lyric extender).
-
length(dimension, in staff space) User override for the stem length of unbeamed stems.
-
length-fraction(number) Multiplier for lengths. Used for determining ledger lines and stem lengths.
-
line-break-penalty(number) Penalty for a line break at this column. This affects the choices of the line breaker; it avoids a line break at a column with a positive penalty and prefers a line break at a column with a negative penalty.
-
line-break-permission(symbol) Instructs the line breaker on whether to put a line break at this column. Can be
forceorallow.-
line-break-system-details(list) An alist of properties to use if this column is the start of a system.
-
line-count(integer) The number of staff lines.
-
line-positions(list) Vertical positions of staff lines.
-
line-thickness(number) For slurs and ties, this is the diameter of the virtual “pen” that draws the two arcs of the curve’s outline, which intersect at the endpoints. This property is expressed as a multiple of the current staff-line thickness (i.e. the visual output is influenced by changes to
Staff.StaffSymbol.thickness).-
long-text(markup) Text markup. See Formatting text.
-
max-beam-connect(integer) Maximum number of beams to connect to beams from this stem. Further beams are typeset as beamlets.
-
max-symbol-separation(number) The maximum distance between symbols making up a church rest.
-
maximum-gap(number) Maximum value allowed for
gapproperty.-
measure-count(integer) The number of measures for a multi-measure rest.
-
measure-length(moment) Length of a measure. Used in some spacing situations.
-
merge-differently-dotted(boolean) Merge note heads in collisions, even if they have a different number of dots. This is normal notation for some types of polyphonic music.
merge-differently-dottedonly applies to opposing stem directions (i.e., voice 1 & 2).-
merge-differently-headed(boolean) Merge note heads in collisions, even if they have different note heads. The smaller of the two heads is rendered invisible. This is used in polyphonic guitar notation. The value of this setting is used by note-collision-interface.
merge-differently-headedonly applies to opposing stem directions (i.e., voice 1 & 2).-
minimum-distance(dimension, in staff space) Minimum distance between rest and notes or beam.
-
minimum-length(dimension, in staff space) Try to make a spanner at least this long, normally in the horizontal direction. This requires an appropriate callback for the
springs-and-rodsproperty. If added to aTie, this sets the minimum distance between noteheads.-
minimum-length-after-break(dimension, in staff space) If set, try to make a broken spanner starting a line this long. This requires an appropriate callback for the
springs-and-rodsproperty. If added to aTie, this sets the minimum distance to the notehead.-
minimum-length-fraction(number) Minimum length of ledger line as fraction of note head size.
-
minimum-space(dimension, in staff space) Minimum distance that the victim should move (after padding).
-
minimum-X-extent(pair of numbers) Minimum size of an object in X dimension, measured in
staff-spaceunits.-
minimum-Y-extent(pair of numbers) Minimum size of an object in Y dimension, measured in
staff-spaceunits.-
neutral-direction(direction) Which direction to take in the center of the staff.
-
neutral-position(number) Position (in half staff spaces) where to flip the direction of custos stem.
-
next(graphical (layout) object) Object that is next relation (e.g., the lyric syllable following an extender).
-
no-alignment(boolean) If set, don’t place this grob in a
VerticalAlignment; rather, place it using its ownY-offsetcallback.-
no-ledgers(boolean) If set, don’t draw ledger lines on this object.
-
no-stem-extend(boolean) If set, notes with ledger lines do not get stems extending to the middle staff line.
-
non-break-align-symbols(list) A list of symbols that determine which NON-break-aligned interfaces to align this to.
-
non-default(boolean) Set for manually specified clefs and keys.
-
non-musical(boolean) True if the grob belongs to a
NonMusicalPaperColumn.-
nonstaff-nonstaff-spacing(list) The spacing alist controlling the distance between the current non-staff line and the next non-staff line in the direction of
staff-affinity, if both are on the same side of the related staff, andstaff-affinityis eitherUPorDOWN. Seestaff-staff-spacingfor a description of the alist structure.-
nonstaff-relatedstaff-spacing(list) The spacing alist controlling the distance between the current non-staff line and the nearest staff in the direction of
staff-affinity, if there are no non-staff lines between the two, andstaff-affinityis eitherUPorDOWN. Ifstaff-affinityisCENTER, thennonstaff-relatedstaff-spacingis used for the nearest staves on both sides, even if other non-staff lines appear between the current one and either of the staves. Seestaff-staff-spacingfor a description of the alist structure.-
nonstaff-unrelatedstaff-spacing(list) The spacing alist controlling the distance between the current non-staff line and the nearest staff in the opposite direction from
staff-affinity, if there are no other non-staff lines between the two, andstaff-affinityis eitherUPorDOWN. Seestaff-staff-spacingfor a description of the alist structure.-
normalized-endpoints(pair) Represents left and right placement over the total spanner, where the width of the spanner is normalized between 0 and 1.
-
note-collision-threshold(dimension, in staff space) Simultaneous notes that are this close or closer in units of
staff-spacewill be identified as vertically colliding. Used byStemgrobs for notes in the same voice, andNoteCollisiongrobs for notes in different voices. Default value 1.-
note-names(vector) Vector of strings containing names for easy-notation note heads.
-
number-type(symbol) Numbering style. Choices include
roman-lower,roman-upperandarabic.-
output-attributes(list) An alist of attributes for the grob, to be included in output files. When the SVG typesetting backend is used, the attributes are assigned to a group (<g>) containing all of the stencils that comprise a given grob. For example,
'((id . 123) (class . foo) (data-whatever . “bar”))will produce<g id=“123” class=“foo” data-whatever=“bar”> … </g>. In the Postscript backend, where there is no way to group items, the setting of the output-attributes property will have no effect.-
outside-staff-horizontal-padding(number) By default, an outside-staff-object can be placed so that is it very close to another grob horizontally. If this property is set, the outside-staff-object is raised so that it is not so close to its neighbor.
-
outside-staff-padding(number) The padding to place between grobs when spacing according to
outside-staff-priority. Two grobs with differentoutside-staff-paddingvalues have the larger value of padding between them.-
outside-staff-placement-directive(symbol) One of four directives telling how outside staff objects should be placed.
-
left-to-right-greedy– Place each successive grob from left to right. -
left-to-right-polite– Place a grob from left to right only if it does not potentially overlap with another grob that has been placed on a pass through a grob array. If there is overlap, do another pass to determine placement. -
right-to-left-greedy– Same asleft-to-right-greedy, but from right to left. -
right-to-left-polite– Same asleft-to-right-polite, but from right to left.
-
-
outside-staff-priority(number) If set, the grob is positioned outside the staff in such a way as to avoid all collisions. In case of a potential collision, the grob with the smaller
outside-staff-priorityis closer to the staff.-
packed-spacing(boolean) If set, the notes are spaced as tightly as possible.
-
padding(dimension, in staff space) Add this much extra space between objects that are next to each other.
-
padding-pairs(list) An alist mapping
(name . name)to distances.-
page-break-penalty(number) Penalty for page break at this column. This affects the choices of the page breaker; it avoids a page break at a column with a positive penalty and prefers a page break at a column with a negative penalty.
-
page-break-permission(symbol) Instructs the page breaker on whether to put a page break at this column. Can be
forceorallow.-
page-turn-penalty(number) Penalty for a page turn at this column. This affects the choices of the page breaker; it avoids a page turn at a column with a positive penalty and prefers a page turn at a column with a negative penalty.
-
page-turn-permission(symbol) Instructs the page breaker on whether to put a page turn at this column. Can be
forceorallow.-
parent-alignment-X(number) Specify on which point of the parent the object is aligned. The value
-1means aligned on parent’s left edge,0on center, and1right edge, in X direction. Other numerical values may also be specified - the unit is half the parent’s width. If unset, the value fromself-alignment-Xproperty will be used.-
parent-alignment-Y(number) Like
parent-alignment-Xbut for the Y axis.-
parenthesis-friends(list) A list of Grob types, as symbols. When parentheses enclose a Grob that has ’parenthesis-friends, the parentheses widen to include any child Grobs with type among ’parenthesis-friends.
-
parenthesized(boolean) Parenthesize this grob.
-
positions(pair of numbers) Pair of staff coordinates
(left . right), where both left and right are instaff-spaceunits of the current staff. For slurs, this value selects which slur candidate to use; if extreme positions are requested, the closest one is taken.-
prefer-dotted-right(boolean) For note collisions, prefer to shift dotted up-note to the right, rather than shifting just the dot.
-
protrusion(number) In an arpeggio bracket, the length of the horizontal edges.
-
ratio(number) Parameter for slur shape. The higher this number, the quicker the slur attains its
height-limit.-
remove-empty(boolean) If set, remove group if it contains no interesting items.
-
remove-first(boolean) Remove the first staff of an orchestral score?
-
remove-layer(index or symbol) When set as a positive integer, the
Keep_alive_together_engraverremoves allVerticalAxisGroupgrobs with aremove-layerlarger than the smallest retainedremove-layer. Set to#fto make a layer independent of theKeep_alive_together_engraver. Set to'(), the layer does not participate in the layering decisions. The property can also be set as a symbol for common behaviors:#'anyto keep the layer alive with any other layer in the group;#'aboveor#'belowto keep the layer alive with the context immediately before or after it, respectively.-
replacement-alist(list) Alist of strings. The key is a string of the pattern to be replaced. The value is a string of what should be displayed. Useful for ligatures.
-
restore-first(boolean) Print a natural before the accidental.
-
rhythmic-location(rhythmic location) Where (bar number, measure position) in the score.
-
right-bound-info(list) An alist of properties for determining attachments of spanners to edges.
-
right-padding(dimension, in staff space) Space to insert on the right side of an object (e.g., between note and its accidentals).
-
rotation(list) Number of degrees to rotate this object, and what point to rotate around. For example,
'(45 0 0)rotates by 45 degrees around the center of this object.-
round-up-exceptions(list) A list of pairs where car is the numerator and cdr the denominator of a moment. Each pair in this list means that the multi-measure rests of the corresponding length will be rounded up to the longer rest. See round-up-to-longer-rest.
-
round-up-to-longer-rest(boolean) Displays the longer multi-measure rest when the length of a measure is between two values of
usable-duration-logs. For example, displays a breve instead of a whole in a 3/2 measure.-
rounded(boolean) Decide whether lines should be drawn rounded or not.
-
same-direction-correction(number) Optical correction amount for stems that are placed in tight configurations. This amount is used for stems with the same direction to compensate for note head to stem distance.
-
script-priority(number) A key for determining the order of scripts in a stack, by being added to the position of the script in the user input, the sum being the overall priority. Smaller means closer to the head.
-
segno-kern(number) The space between the two thin lines of the segno bar line symbol, expressed as a multiple of the default staff-line thickness (i.e. the visual output is not influenced by changes to
Staff.StaffSymbol.thickness).-
self-alignment-X(number) Specify alignment of an object. The value
-1means left aligned,0centered, and1right-aligned in X direction. Other numerical values may also be specified - the unit is half the object width.-
self-alignment-Y(number) Like
self-alignment-Xbut for the Y axis.-
shape(symbol) This setting determines what shape a grob has. Valid choices depend on the
stencilcallback reading this property.-
sharp-positions(list) Sharps in key signatures are placed within the specified ranges of staff-positions. The general form is a list of pairs, with one pair for each type of clef, in order of the staff-position at which each clef places C:
(alto treble tenor soprano baritone mezzosoprano bass). If the list contains a single element it applies for all clefs. A single number in place of a pair sets accidentals within the octave ending at that staff-position.-
shorten-pair(pair of numbers) The lengths to shorten on both sides a hairpin or text-spanner such as a pedal bracket. Positive values shorten the hairpin or text-spanner, while negative values lengthen it.
-
shortest-duration-space(number) Start with this multiple of
spacing-incrementspace for the shortest duration. See also spacing-spanner-interface.-
shortest-playing-duration(moment) The duration of the shortest note playing here.
-
shortest-starter-duration(moment) The duration of the shortest note that starts here.
-
side-axis(number) If the value is
X(or equivalently0), the object is placed horizontally next to the other object. If the value isYor1, it is placed vertically.-
side-relative-direction(direction) Multiply direction of
direction-sourcewith this to get the direction of this object.-
simple-Y(boolean) Should the Y placement of a spanner disregard changes in system heights?
-
size(number) The ratio of the size of the object to its default size.
-
skip-quanting(boolean) Should beam quanting be skipped?
-
skyline-horizontal-padding(number) For determining the vertical distance between two staves, it is possible to have a configuration which would result in a tight interleaving of grobs from the top staff and the bottom staff. The larger this parameter is, the farther apart the staves are placed in such a configuration.
-
skyline-vertical-padding(number) The amount by which the left and right skylines of a column are padded vertically, beyond the
Y-extents andextra-spacing-heights of the constituent grobs in the column. Increase this to prevent interleaving of grobs from adjacent columns.-
slash-negative-kern(number) The space to remove between slashes in percent repeat glyphs. Larger values bring the two elements closer together.
-
slope(number) The slope of this object.
-
slur-padding(number) Extra distance between slur and script.
-
snap-radius(number) The maximum distance between two objects that will cause them to snap to alignment along an axis.
-
space-alist(list) An alist that specifies distances from this grob to other breakable items, using the format:
'((break-align-symbol . (spacing-style . space)) (break-align-symbol . (spacing-style . space)) ...)
Standard choices for
break-align-symbolare listed in break-alignment-interface. Additionally, three special break-align symbols available tospace-alistare:-
first-note used when the grob is just left of the first note on a line
-
next-note used when the grob is just left of any other note; if not set, the value of
first-notegets used-
right-edge used when the grob is the last item on the line (only compatible with the
extra-spacespacing style)
Choices for
spacing-styleare:-
extra-space Put this much space between the two grobs. The space is stretchable when paired with
first-noteornext-note; otherwise it is fixed.-
minimum-space Put at least this much space between the left sides of both grobs, without allowing them to collide. The space is stretchable when paired with
first-noteornext-note; otherwise it is fixed. Not compatible withright-edge.-
fixed-space Only compatible with
first-noteandnext-note. Put this much fixed space between the grob and the note.-
minimum-fixed-space Only compatible with
first-noteandnext-note. Put at least this much fixed space between the left side of the grob and the left side of the note, without allowing them to collide.-
semi-fixed-space Only compatible with
first-noteandnext-note. Put this much space between the grob and the note, such that half of the space is fixed and half is stretchable.
Rules for this spacing are much more complicated than this. See [Wanske] page 126–134, [Ross] page 143–147.
-
-
space-to-barline(boolean) If set, the distance between a note and the following non-musical column will be measured to the bar line instead of to the beginning of the non-musical column. If there is a clef change followed by a bar line, for example, this means that we will try to space the non-musical column as though the clef is not there.
-
spacing-increment(dimension, in staff space) The unit of length for note-spacing. Typically, the width of a note head. See also spacing-spanner-interface.
-
spacing-pair(pair) A pair of alignment symbols which set an object’s spacing relative to its left and right
BreakAlignments.For example, a
MultiMeasureRestwill ignore prefatory items at its bounds (i.e., clefs, key signatures and time signatures) using the following override:\override MultiMeasureRest #'spacing-pair = #'(staff-bar . staff-bar)
-
spanner-id(index or symbol) An identifier to distinguish concurrent spanners.
-
springs-and-rods(boolean) Dummy variable for triggering spacing routines.
-
stacking-dir(direction) Stack objects in which direction?
-
staff-affinity(direction) The direction of the staff to use for spacing the current non-staff line. Choices are
UP,DOWN, andCENTER. IfCENTER, the non-staff line will be placed equidistant between the two nearest staves on either side, unless collisions or other spacing constraints prevent this. Settingstaff-affinityfor a staff causes it to be treated as a non-staff line. Settingstaff-affinityto#fcauses a non-staff line to be treated as a staff.-
staff-padding(dimension, in staff space) Maintain this much space between reference points and the staff. Its effect is to align objects of differing sizes (like the dynamics p and f) on their baselines.
-
staff-position(number) Vertical position, measured in half staff spaces, counted from the middle line.
-
staff-space(dimension, in staff space) Amount of space between staff lines, expressed in global
staff-space.-
staff-staff-spacing(list) When applied to a staff-group’s
StaffGroupergrob, this spacing alist controls the distance between consecutive staves within the staff-group. When applied to a staff’sVerticalAxisGroupgrob, it controls the distance between the staff and the nearest staff below it in the same system, replacing any settings inherited from theStaffGroupergrob of the containing staff-group, if there is one. This property remains in effect even when non-staff lines appear between staves. The alist can contain the following keys:-
basic-distance– the vertical distance, measured in staff-spaces, between the reference points of the two items when no collisions would result, and no stretching or compressing is in effect. -
minimum-distance– the smallest allowable vertical distance, measured in staff-spaces, between the reference points of the two items, when compressing is in effect. -
padding– the minimum required amount of unobstructed vertical whitespace between the bounding boxes (or skylines) of the two items, measured in staff-spaces. -
stretchability– a unitless measure of the dimension’s relative propensity to stretch. If zero, the distance will not stretch (unless collisions would result).
-
-
staffgroup-staff-spacing(list) The spacing alist controlling the distance between the last staff of the current staff-group and the staff just below it in the same system, even if one or more non-staff lines exist between the two staves. If the
staff-staff-spacingproperty of the staff’sVerticalAxisGroupgrob is set, that is used instead. Seestaff-staff-spacingfor a description of the alist structure.-
stem-attachment(pair of numbers) An
(x . y)pair where the stem attaches to the notehead.-
stem-begin-position(number) User override for the begin position of a stem.
-
stem-spacing-correction(number) Optical correction amount for stems that are placed in tight configurations. For opposite directions, this amount is the correction for two normal sized stems that overlap completely.
-
stemlet-length(number) How long should be a stem over a rest?
-
stencil(stencil) The symbol to print.
-
stencils(list) Multiple stencils, used as intermediate value.
-
strict-grace-spacing(boolean) If set, main notes are spaced normally, then grace notes are put left of the musical columns for the main notes.
-
strict-note-spacing(boolean) If set, unbroken columns with non-musical material (clefs, bar lines, etc.) are not spaced separately, but put before musical columns.
-
stroke-style(string) Set to
"grace"to turn stroke through flag on.-
style(symbol) This setting determines in what style a grob is typeset. Valid choices depend on the
stencilcallback reading this property.-
text(markup) Text markup. See Formatting text.
-
text-direction(direction) This controls the ordering of the words. The default
RIGHTis for roman text. Arabic or Hebrew should useLEFT.-
thick-thickness(number) Thickness of the thick line in a bar line, expressed as a multiple of the default staff-line thickness (i.e. the visual output is not influenced by changes to
Staff.StaffSymbol.thickness).-
thickness(number) For grobs made up of lines, this is the thickness of the line. For slurs and ties, this is the distance between the two arcs of the curve’s outline at its thickest point, not counting the diameter of the virtual “pen” that draws the arcs. This property is expressed as a multiple of the current staff-line thickness (i.e. the visual output is influenced by changes to
Staff.StaffSymbol.thickness).-
tie-configuration(list) List of
(position . dir)pairs, indicating the desired tie configuration, where position is the offset from the center of the staff in staff space and dir indicates the direction of the tie (1=>up,-1=>down,0=>center). A non-pair entry in the list causes the corresponding tie to be formatted automatically.-
to-barline(boolean) If true, the spanner will stop at the bar line just before it would otherwise stop.
-
toward-stem-shift(number) Amount by which scripts are shifted toward the stem if their direction coincides with the stem direction.
0.0means centered on the note head (the default position of most scripts);1.0means centered on the stem. Interpolated values are possible.-
toward-stem-shift-in-column(number) Amount by which a script is shifted toward the stem if its direction coincides with the stem direction and it is associated with a
ScriptColumnobject.0.0means centered on the note head (the default position of most scripts);1.0means centered on the stem. Interpolated values are possible.-
transparent(boolean) This makes the grob invisible.
-
uniform-stretching(boolean) If set, items stretch proportionally to their natural separation based on durations. This looks better in complex polyphonic patterns.
-
usable-duration-logs(list) List of
duration-logs that can be used in typesetting the grob.-
use-skylines(boolean) Should skylines be used for side positioning?
-
used(boolean) If set, this spacing column is kept in the spacing problem.
-
vertical-skylines(pair of skylines) Two skylines, one above and one below this grob.
-
voiced-position(number) The staff-position of a voiced
Rest, negative if the rest hasdirectionDOWN.-
when(moment) Global time step associated with this column.
-
whiteout(boolean-or-number) If a number or true, the grob is printed over a white background to white-out underlying material, if the grob is visible. A number indicates how far the white background extends beyond the bounding box of the grob as a multiple of the staff-line thickness. The
LyricHyphengrob uses a special implementation of whiteout: A positive number indicates how far the white background extends beyond the bounding box in multiples ofline-thickness. The shape of the background is determined bywhiteout-style. Usually#fby default.-
whiteout-style(symbol) Determines the shape of the
whiteoutbackground. Available are'outline,'rounded-box, and the default'box. There is one exception: Use'specialforLyricHyphen.-
width(dimension, in staff space) The width of a grob measured in staff space.
-
word-space(dimension, in staff space) Space to insert between words in texts.
-
X-align-on-main-noteheads(boolean) If true, this grob will ignore suspended noteheads when aligning itself on NoteColumn.
-
X-extent(pair of numbers) Extent (size) in the X direction, measured in staff-space units, relative to object’s reference point.
-
X-offset(number) The horizontal amount that this object is moved relative to its X-parent.
-
X-positions(pair of numbers) Pair of X staff coordinates of a spanner in the form
(left . right), where both left and right are instaff-spaceunits of the current staff.-
Y-extent(pair of numbers) Extent (size) in the Y direction, measured in staff-space units, relative to object’s reference point.
-
Y-offset(number) The vertical amount that this object is moved relative to its Y-parent.
-
zigzag-length(dimension, in staff space) The length of the lines of a zigzag, relative to
zigzag-width. A value of1gives 60-degree zigzags.-
zigzag-width(dimension, in staff space) The width of one zigzag squiggle. This number is adjusted slightly so that the glissando line can be constructed from a whole number of squiggles.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Layout properties ] | [ Amunt : Notation manual tables ] | [ Context modification identifiers > ] | ||
A.19 Available music functions
-
absolute[music] - music (music) -
Make music absolute. This does not actually change the music itself but rather hides it from surrounding
\relativeand\fixedcommands. -
acciaccatura[music] - music (music) -
Create an acciaccatura from the following music expression
-
accidentalStyle[music] - style (symbol list) -
Set accidental style to symbol list style in the form ‘piano-cautionary’. If style has a form like ‘Staff.piano-cautionary’, the settings are applied to that context. Otherwise, the context defaults to ‘Staff’, except for piano styles, which use ‘GrandStaff’ as a context.
-
addChordShape[void] - key-symbol (symbol) tuning (pair) shape-definition (string or pair) -
Add chord shape shape-definition to the chord-shape-table hash with the key
(cons key-symbol tuning). -
addInstrumentDefinition[void] - name (string) lst (list) -
Create instrument name with properties list.
-
addQuote[void] - name (string) music (music) -
Define music as a quotable music expression named name
-
afterGrace[music] - fraction [fraction, as pair] main (music) grace (music) -
Create grace note(s) after a main music expression.
The musical position of the grace expression is after a given fraction of the main note’s duration has passed. If fraction is not specified as first argument, it is taken from
afterGraceFractionwhich has a default value of3/4. -
allowPageTurn[music] -
Allow a page turn. May be used at toplevel (ie between scores or markups), or inside a score.
-
allowVoltaHook[void] - bar (string) -
(undocumented; fixme)
-
alterBroken[music] - property (key list or symbol) arg (list) item (key list or music) -
Override property for pieces of broken spanner item with values arg. item may either be music in the form of a starting spanner event, or a symbol list in the form ‘Context.Grob’ or just ‘Grob’. Iff item is in the form of a spanner event, property may also have the form ‘Grob.property’ for specifying a directed tweak.
-
appendToTag[music] - tag (symbol) more (music) music (music) -
Append more to the
elementsof all music expressions in music that are tagged with tag. -
applyContext[music] - proc (procedure) -
Modify context properties with Scheme procedure proc.
-
applyMusic[music] - func (procedure) music (music) -
Apply procedure func to music.
-
applyOutput[music] - target (symbol list or symbol) proc (procedure) -
Apply function
procto every layout object matched by target which takes the formContextorContext.Grob. -
appoggiatura[music] - music (music) -
Create an appoggiatura from music
-
assertBeamQuant[music] - l (pair) r (pair) -
Testing function: check whether the beam quants l and r are correct
-
assertBeamSlope[music] - comp (procedure) -
Testing function: check whether the slope of the beam is the same as
comp -
autochange[music] - pitch [pitch] clef-1 [context modification] clef-2 [context modification] music (music) -
Make voices that switch between staves automatically. As an option the pitch where to switch staves may be specified. The clefs for the staves are optional as well. Setting clefs works only for implicitly instantiated staves.
-
balloonGrobText[music] - grob-name (symbol) offset (pair of numbers) text (markup) -
Attach text to grob-name at offset offset (use like
\once) -
balloonText[post event] - offset (pair of numbers) text (markup) -
Attach text at offset (use like
\tweak) -
bar[music] - type (string) -
Insert a bar line of type type
-
barNumberCheck[music] - n (integer) -
Print a warning if the current bar number is not n.
-
beamExceptions(any type) - music (music) -
Extract a value suitable for setting
Timing.beamExceptionsfrom the given pattern with explicit beams in music. A bar check|has to be used between bars of patterns in order to reset the timing. -
bendAfter[post event] - delta (real number) -
Create a fall or doit of pitch interval delta.
-
bookOutputName[void] - newfilename (string) -
Direct output for the current book block to newfilename.
-
bookOutputSuffix[void] - newsuffix (string) -
Set the output filename suffix for the current book block to newsuffix.
-
breathe[music] -
Insert a breath mark.
-
chordRepeats[music] - event-types [list] music (music) -
Walk through music putting the notes of the previous chord into repeat chords, as well as an optional list of event-types such as
#'(string-number-event). -
clef[music] - type (string) -
Set the current clef to type.
-
compoundMeter[music] - args (pair) -
Create compound time signatures. The argument is a Scheme list of lists. Each list describes one fraction, with the last entry being the denominator, while the first entries describe the summands in the enumerator. If the time signature consists of just one fraction, the list can be given directly, i.e. not as a list containing a single list. For example, a time signature of (3+1)/8 + 2/4 would be created as
\compoundMeter #'((3 1 8) (2 4)), and a time signature of (3+2)/8 as\compoundMeter #'((3 2 8))or shorter\compoundMeter #'(3 2 8). -
compressMMRests[music] - music (music) -
Remove the empty bars created by multi-measure rests, leaving just the first bar containing the MM rest itself.
-
crossStaff[music] - notes (music) -
Create cross-staff stems
-
cueClef[music] - type (string) -
Set the current cue clef to type.
-
cueClefUnset[music] -
Unset the current cue clef.
-
cueDuring[music] - what (string) dir (direction) main-music (music) -
Insert contents of quote what corresponding to main-music, in a CueVoice oriented by dir.
-
cueDuringWithClef[music] - what (string) dir (direction) clef (string) main-music (music) -
Insert contents of quote what corresponding to main-music, in a CueVoice oriented by dir.
-
deadNote[music] - note (music) -
Print note with a cross-shaped note head.
-
defineBarLine[void] - bar (string) glyph-list (list) -
Define bar line settings for bar line bar. The list glyph-list must have three entries which define the appearance at the end of line, at the beginning of the next line, and the span bar, respectively.
-
displayLilyMusic[music] - port [output port] music (music) -
Display the LilyPond input representation of music to port, defaulting to the console.
-
displayMusic[music] - port [output port] music (music) -
Display the internal representation of music to port, default to the console.
-
displayScheme(any type) - port [output port] expr (any type) -
Display the internal representation of expr to port, default to the console.
-
endSpanners[music] - music (music) -
Terminate the next spanner prematurely after exactly one note without the need of a specific end spanner.
-
eventChords[music] - music (music) -
Compatibility function wrapping
EventChordaround isolated rhythmic events occuring since version 2.15.28, after expanding repeat chords ‘q’. -
featherDurations[music] - factor (moment) argument (music) -
Adjust durations of music in argument by rational factor.
-
finger[post event] - finger (number or markup) -
Apply finger as a fingering indication.
-
fixed[music] - pitch (pitch) music (music) -
Use the octave of pitch as the default octave for music.
-
footnote[music] - mark [markup] offset (pair of numbers) footnote (markup) item (symbol list or music) -
Make the markup footnote a footnote on item. The footnote is marked with a markup mark moved by offset with respect to the marked music.
If mark is not given or specified as \default, it is replaced by an automatically generated sequence number. If item is a symbol list of form ‘Grob’ or ‘Context.Grob’, then grobs of that type will be marked at the current time step in the given context (default
Bottom).If item is music, the music will get a footnote attached to a grob immediately attached to the event, like \tweak does. For attaching a footnote to an indirectly caused grob, write
\single\footnote, use item to specify the grob, and follow it with the music to annotate.Like with
\tweak, if you use a footnote on a following post-event, the\footnotecommand itself needs to be attached to the preceding note or rest as a post-event with-. -
grace[music] - music (music) -
Insert music as grace notes.
-
grobdescriptions(any type) - descriptions (list) -
Create a context modification from descriptions, a list in the format of
all-grob-descriptions. -
harmonicByFret[music] - fret (number) music (music) -
Convert music into mixed harmonics; the resulting notes resemble harmonics played on a fretted instrument by touching the strings at fret.
-
harmonicByRatio[music] - ratio (number) music (music) -
Convert music into mixed harmonics; the resulting notes resemble harmonics played on a fretted instrument by touching the strings at the point given through ratio.
-
harmonicNote[music] - note (music) -
Print note with a diamond-shaped note head.
-
harmonicsOn[music] -
Set the default note head style to a diamond-shaped style.
-
hide[music] - item (symbol list or music) -
Set item’s ‘transparent’ property to
#t, making it invisible while still retaining its dimensions.If item is a symbol list of form
GrobNameorContext.GrobName, the result is an override for the grob name specified by it. If item is a music expression, the result is the same music expression with an appropriate tweak applied to it. -
incipit[music] - incipit-music (music) -
Output incipit-music before the main staff as an indication of its appearance in the original music.
-
inherit-acceptability[void] - to (symbol) from (symbol) -
When used in an output definition, will modify all context definitions such that context to is accepted as a child by all contexts that also accept from.
-
inStaffSegno[music] -
Put the segno variant ’varsegno’ at this position into the staff, compatible with the repeat command.
-
instrumentSwitch[music] - name (string) -
Switch instrument to name, which must be predefined with
\addInstrumentDefinition. -
inversion[music] - around (pitch) to (pitch) music (music) -
Invert music about around and transpose from around to to.
-
keepWithTag[music] - tags (symbol list or symbol) music (music) -
Include only elements of music that are tagged with one of the tags in tags. tags may be either a single symbol or a list of symbols.
Each tag may be declared as a member of at most one tag group (defined with
\tagGroup). If none of a music element’s tags share a tag group with one of the specified tags, the element is retained. -
key[music] - tonic [pitch] pitch-alist [list] -
Set key to tonic and scale pitch-alist. If both are null, just generate
KeyChangeEvent. -
killCues[music] - music (music) -
Remove cue notes from music.
-
label[music] - label (symbol) -
Create label as a bookmarking label.
-
language[void] - language (string) -
Set note names for language language.
-
languageRestore[void] -
Restore a previously-saved pitchnames alist.
-
languageSaveAndChange[void] - language (string) -
Store the previous pitchnames alist, and set a new one.
-
magnifyMusic[music] - mag (positive number) music (music) -
Magnify the notation of music without changing the staff-size, using mag as a size factor. Stems, beams, slurs, ties, and horizontal spacing are adjusted automatically.
-
magnifyStaff[music] - mag (positive number) -
Change the size of the staff, adjusting notation size and horizontal spacing automatically, using mag as a size factor.
-
makeClusters[music] - arg (music) -
Display chords in arg as clusters.
-
makeDefaultStringTuning[void] - symbol (symbol) pitches (list) -
This defines a string tuning symbol via a list of pitches. The symbol also gets registered in
defaultStringTuningsfor documentation purposes. -
mark[music] - label [number or markup] -
Make the music for the \mark command.
-
markupMap[music] - path (symbol list or symbol) markupfun (markup-function) music (music) -
This applies the given markup function markupfun to all markup music properties matching path in music.
For example,
\new Voice { g'2 c'' } \addlyrics { \markupMap LyricEvent.text \markup \with-color #red \etc { Oh yes! } } -
modalInversion[music] - around (pitch) to (pitch) scale (music) music (music) -
Invert music about around using scale and transpose from around to to.
-
modalTranspose[music] - from (pitch) to (pitch) scale (music) music (music) -
Transpose music from pitch from to pitch to using scale.
-
musicMap[music] - proc (procedure) mus (music) -
Apply proc to mus and all of the music it contains.
-
noPageBreak[music] -
Forbid a page break. May be used at toplevel (i.e., between scores or markups), or inside a score.
-
noPageTurn[music] -
Forbid a page turn. May be used at toplevel (i.e., between scores or markups), or inside a score.
-
octaveCheck[music] - pitch (pitch) -
Octave check.
-
offset[music] - property (symbol list or symbol) offsets (any type) item (key list or music) -
Offset the default value of property of item by offsets. If item is a string, the result is
\overridefor the specified grob type. If item is a music expression, the result is the same music expression with an appropriate tweak applied. -
omit[music] - item (symbol list or music) -
Set item’s ‘stencil’ property to
#f, effectively omitting it without taking up space.If item is a symbol list of form
GrobNameorContext.GrobName, the result is an override for the grob name specified by it. If item is a music expression, the result is the same music expression with an appropriate tweak applied to it. -
once[music] - music (music) -
Set
onceto#ton all layout instruction events in music. This will complain about music with an actual duration. As a special exception, if music contains ‘tweaks’ it will be silently ignored in order to allow for\once \propertyTweakto work as both one-time override and proper tweak. -
ottava[music] - octave (integer) -
Set the octavation.
-
overrideProperty[music] - grob-property-path (list of indexes or symbols) value (any type) -
Set the grob property specified by grob-property-path to value. grob-property-path is a symbol list of the form
Context.GrobName.propertyorGrobName.property, possibly with subproperties given as well.As opposed to
\overridewhich overrides the context-dependent defaults with which a grob is created, this command usesOutput_property_engraverat the grob acknowledge stage. This may be necessary for overriding values set after the initial grob creation. -
overrideTimeSignatureSettings[music] - time-signature (fraction, as pair) base-moment (fraction, as pair) beat-structure (list) beam-exceptions (list) -
Override
timeSignatureSettingsfor time signatures of time-signature to have settings of base-moment, beat-structure, and beam-exceptions. -
pageBreak[music] -
Force a page break. May be used at toplevel (i.e., between scores or markups), or inside a score.
-
pageTurn[music] -
Force a page turn between two scores or top-level markups.
-
palmMute[music] - note (music) -
Print note with a triangle-shaped note head.
-
palmMuteOn[music] -
Set the default note head style to a triangle-shaped style.
-
parallelMusic[void] - voice-ids (list) music (music) -
Define parallel music sequences, separated by ’|’ (bar check signs), and assign them to the identifiers provided in voice-ids.
voice-ids: a list of music identifiers (symbols containing only letters)
music: a music sequence, containing BarChecks as limiting expressions.
Example:
\parallelMusic A,B,C { c c | d d | e e | d d | e e | f f | } <==> A = { c c | d d } B = { d d | e e } C = { e e | f f }The last bar checks in a sequence are not copied to the result in order to facilitate ending the last entry at non-bar boundaries.
-
parenthesize[music] - arg (music) -
Tag arg to be parenthesized.
-
partcombine[music] - chord-range [pair of numbers] part1 (music) part2 (music) -
Take the music in part1 and part2 and return a music expression containing simultaneous voices, where part1 and part2 are combined into one voice where appropriate. Optional chord-range sets the distance in steps between notes that may be combined into a chord or unison.
-
partcombineDown[music] - chord-range [pair of numbers] part1 (music) part2 (music) -
Take the music in part1 and part2 and typeset so that they share a staff with stems directed downward.
-
partcombineForce[music] - type [symbol] -
Override the part-combiner.
-
partcombineUp[music] - chord-range [pair of numbers] part1 (music) part2 (music) -
Take the music in part1 and part2 and typeset so that they share a staff with stems directed upward.
-
partial[music] - dur (duration) -
Make a partial measure.
-
phrasingSlurDashPattern[music] - dash-fraction (number) dash-period (number) -
Set up a custom style of dash pattern for dash-fraction ratio of line to space repeated at dash-period interval for phrasing slurs.
-
pitchedTrill[music] - main-note (music) secondary-note (music) -
Print a trill with main-note as the main note of the trill and print secondary-note as a stemless note head in parentheses.
-
pointAndClickOff[void] -
Suppress generating extra code in final-format (e.g. pdf) files to point back to the lilypond source statement.
-
pointAndClickOn[void] -
Enable generation of code in final-format (e.g. pdf) files to reference the originating lilypond source statement; this is helpful when developing a score but generates bigger final-format files.
-
pointAndClickTypes[void] - types (symbol list or symbol) -
Set a type or list of types (such as
#'note-event) for which point-and-click info is generated. -
propertyOverride[music] - grob-property-path (list of indexes or symbols) value (any type) -
Set the grob property specified by grob-property-path to value. grob-property-path is a symbol list of the form
Context.GrobName.propertyorGrobName.property, possibly with subproperties given as well. This music function is mostly intended for use from Scheme as a substitute for the built-in\overridecommand. -
propertyRevert[music] - grob-property-path (list of indexes or symbols) -
Revert the grob property specified by grob-property-path to its previous value. grob-property-path is a symbol list of the form
Context.GrobName.propertyorGrobName.property, possibly with subproperties given as well. This music function is mostly intended for use from Scheme as a substitute for the built-in\revertcommand. -
propertySet[music] - property-path (symbol list or symbol) value (any type) -
Set the context property specified by property-path to value. This music function is mostly intended for use from Scheme as a substitute for the built-in
\setcommand. -
propertyTweak[music] - prop (key list or symbol) value (any type) item (key list or music) -
Add a tweak to the following item, usually music. This generally behaves like
\tweakbut will turn into an\overridewhen item is a symbol list.In that case, item specifies the grob path to override. This is mainly useful when using
\propertyTweakas as a component for building other functions like\omit. It is not the default behavior for\tweaksince many input strings in\lyricmodecan serve equally as music or as symbols which causes surprising behavior when tweaking lyrics using the less specific semantics of\propertyTweak.prop can contain additional elements in which case a nested property (inside of an alist) is tweaked.
-
propertyUnset[music] - property-path (symbol list or symbol) -
Unset the context property specified by property-path. This music function is mostly intended for use from Scheme as a substitute for the built-in
\unsetcommand. -
pushToTag[music] - tag (symbol) more (music) music (music) -
Add more to the front of
elementsof all music expressions in music that are tagged with tag. -
quoteDuring[music] - what (string) main-music (music) -
Indicate a section of music to be quoted. what indicates the name of the quoted voice, as specified in an
\addQuotecommand. main-music is used to indicate the length of music to be quoted; usually contains spacers or multi-measure rests. -
reduceChords[music] - music (music) -
Reduce chords contained in music to single notes, intended mainly for reusing music in RhythmicStaff. Does not reduce parallel music.
-
relative[music] - pitch [pitch] music (music) -
Make music relative to pitch. If pitch is omitted, the first note in music is given in absolute pitch.
-
removeWithTag[music] - tags (symbol list or symbol) music (music) -
Remove elements of music that are tagged with one of the tags in tags. tags may be either a single symbol or a list of symbols.
-
resetRelativeOctave[music] - pitch (pitch) -
Set the octave inside a \relative section.
-
retrograde[music] - music (music) -
Return music in reverse order.
-
revertTimeSignatureSettings[music] - time-signature (pair) -
Revert
timeSignatureSettingsfor time signatures of time-signature. -
rightHandFinger[post event] - finger (number or markup) -
Apply finger as a fingering indication.
-
scaleDurations[music] - fraction (fraction, as pair) music (music) -
Multiply the duration of events in music by fraction.
-
settingsFrom(any type) - ctx [symbol] music (music) -
Take the layout instruction events from music, optionally restricted to those applying to context type ctx, and return a context modification duplicating their effect.
-
shape[music] - offsets (list) item (key list or music) -
Offset control-points of item by offsets. The argument is a list of number pairs or list of such lists. Each element of a pair represents an offset to one of the coordinates of a control-point. If item is a string, the result is
\once\overridefor the specified grob type. If item is a music expression, the result is the same music expression with an appropriate tweak applied. -
shiftDurations[music] - dur (integer) dots (integer) arg (music) -
Change the duration of arg by adding dur to the
durlogof arg and dots to thedotsof arg. -
single[music] - overrides (music) music (music) -
Convert overrides to tweaks and apply them to music. This does not convert
\revert,\setor\unset. -
skip[music] - dur (duration) -
Skip forward by dur.
-
slashedGrace[music] - music (music) -
Create slashed graces (slashes through stems, but no slur) from the following music expression
-
slurDashPattern[music] - dash-fraction (number) dash-period (number) -
Set up a custom style of dash pattern for dash-fraction ratio of line to space repeated at dash-period interval for slurs.
-
spacingTweaks[music] - parameters (list) -
Set the system stretch, by reading the ’system-stretch property of the ‘parameters’ assoc list.
-
storePredefinedDiagram[void] - fretboard-table (hash table) chord (music) tuning (pair) diagram-definition (string or pair) -
Add predefined fret diagram defined by diagram-definition for the chord pitches chord and the stringTuning tuning.
-
stringTuning(any type) - chord (music) -
Convert chord to a string tuning. chord must be in absolute pitches and should have the highest string number (generally the lowest pitch) first.
-
styledNoteHeads[music] - style (symbol) heads (symbol list or symbol) music (music) -
Set heads in music to style.
-
tabChordRepeats[music] - event-types [list] music (music) -
Walk through music putting the notes, fingerings and string numbers of the previous chord into repeat chords, as well as an optional list of event-types such as
#'(articulation-event). -
tabChordRepetition[void] -
Include the string and fingering information in a chord repetition. This function is deprecated; try using
\tabChordRepeatsinstead. -
tag[music] - tags (symbol list or symbol) music (music) -
Tag the following music with tags and return the result, by adding the single symbol or symbol list tags to the
tagsproperty of music. -
tagGroup[void] - tags (symbol list) -
Define a tag group comprising the symbols in the symbol list tags. Tag groups must not overlap.
-
temporary[music] - music (music) -
Make any
\overridein music replace an existing grob property value only temporarily, restoring the old value when a corresponding\revertis executed. This is achieved by clearing the ‘pop-first’ property normally set on\overrides.An
\override/\revertsequence created by using\temporaryand\undoon the same music containing overrides will cancel out perfectly or cause a warning.Non-property-related music is ignored, warnings are generated for any property-changing music that isn’t an
\override. -
tieDashPattern[music] - dash-fraction (number) dash-period (number) -
Set up a custom style of dash pattern for dash-fraction ratio of line to space repeated at dash-period interval for ties.
-
time[music] - beat-structure [number list] fraction (fraction, as pair) -
Set fraction as time signature, with optional number list beat-structure before it.
-
times[music] - fraction (fraction, as pair) music (music) -
Scale music in time by fraction.
-
tocItem[music] - text (markup) -
Add a line to the table of content, using the
tocItemMarkuppaper variable markup -
transpose[music] - from (pitch) to (pitch) music (music) -
Transpose music from pitch from to pitch to.
-
transposedCueDuring[music] - what (string) dir (direction) pitch (pitch) main-music (music) -
Insert notes from the part what into a voice called
cue, using the transposition defined by pitch. This happens simultaneously with main-music, which is usually a rest. The argument dir determines whether the cue notes should be notated as a first or second voice. -
transposition[music] - pitch (pitch) -
Set instrument transposition
-
tuplet[music] - ratio (fraction, as pair) tuplet-span [duration] music (music) -
Scale the given music to tuplets. ratio is a fraction that specifies how many notes are played in place of the nominal value: it will be ‘3/2’ for triplets, namely three notes being played in place of two. If the optional duration tuplet-span is specified, it is used instead of
tupletSpannerDurationfor grouping the tuplets. For example,\tuplet 3/2 4 { c8 c c c c c }will result in two groups of three tuplets, each group lasting for a quarter note.
-
tupletSpan[music] - tuplet-span [duration] -
Set
tupletSpannerDuration, the length into which\tupletwithout an explicit ‘tuplet-span’ argument of its own will group its tuplets, to the duration tuplet-span. To revert to the default of not subdividing the contents of a\tupletcommand without explicit ‘tuplet-span’, use\tupletSpan \default
-
tweak[music] - prop (key list or symbol) value (any type) music (music) -
Add a tweak to the following music. Layout objects created by music get their property prop set to value. If prop has the form ‘Grob.property’, like with
\tweak Accidental.color #red cis'
an indirectly created grob (‘Accidental’ is caused by ‘NoteHead’) can be tweaked; otherwise only directly created grobs are affected.
prop can contain additional elements in which case a nested property (inside of an alist) is tweaked.
-
undo[music] - music (music) -
Convert
\overrideand\setin music to\revertand\unset, respectively. Any reverts and unsets already in music cause a warning. Non-property-related music is ignored. -
unfoldRepeats[music] - types [symbol list or symbol] music (music) -
Force
\repeat volta,\repeat tremoloor\repeat percentcommands in music to be interpreted as\repeat unfold, if specified in the optional symbol-list types. The default for types is an empty list, which will force any of those commands in music to be interpreted as\repeat unfold. Possible entries arevolta,tremoloorpercent. Multiple entries are possible. -
voices[music] - ids (list of indexes or symbols) music (music) -
Take the given key list of numbers (indicating the use of ‘\voiceOne’…) or symbols (indicating voice names, typically converted from strings by argument list processing) and assign the following
\\-separated music to contexts according to that list. Named rather than numbered contexts can be used for continuing one voice (for the sake of spanners and lyrics), usually requiring a\voiceOne-style override at the beginning of the passage and a\oneVoiceoverride at its end.The default
<< … \\ … \\ … >>
construct would correspond to
\voices 1,2,3 << … \\ … \\ … >>
-
void[void] - arg (any type) -
Accept a scheme argument, return a void expression. Use this if you want to have a scheme expression evaluated because of its side-effects, but its value ignored.
-
withMusicProperty[music] - sym (symbol) val (any type) music (music) -
Set sym to val in music.
-
xNote[music] - note (music) -
Print note with a cross-shaped note head.
-
\=[post event] - id (index or symbol) event (post event) -
This sets the
spanner-idproperty of the following event to the given id (non-negative integer or symbol). This can be used to tell LilyPond how to connect overlapping or parallel slurs or phrasing slurs within a singleVoice.\fixed c' { c\=1( d\=2( e\=1) f\=2) }
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Available music functions ] | [ Amunt : Notation manual tables ] | [ Predefined type predicates > ] | ||
A.20 Context modification identifiers
The following commands are defined for use as context modifications
within a \layout or \with block.
-
RemoveAllEmptyStaves -
Remove staves which are considered to be empty according to the list of interfaces set by
keepAliveInterfaces, including those in the first system.- Sets grob property
remove-emptyinVerticalAxisGroupto#t. - Sets grob property
remove-firstinVerticalAxisGroupto#t.
- Sets grob property
-
RemoveEmptyStaves -
Remove staves which are considered to be empty according to the list of interfaces set by
keepAliveInterfaces.- Sets grob property
remove-emptyinVerticalAxisGroupto#t.
- Sets grob property
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Context modification identifiers ] | [ Amunt : Notation manual tables ] | [ R5RS primary predicates > ] | ||
A.21 Predefined type predicates
| R5RS primary predicates | ||
| R5RS secondary predicates | ||
| Guile predicates | ||
| LilyPond scheme predicates | ||
| LilyPond exported predicates |
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Predefined type predicates ] | [ Amunt : Predefined type predicates ] | [ R5RS secondary predicates > ] | ||
R5RS primary predicates
| Type predicate | Description |
|---|---|
boolean? | boolean |
char? | character |
number? | number |
pair? | pair |
port? | port |
procedure? | procedure |
string? | string |
symbol? | symbol |
vector? | vector |
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < R5RS primary predicates ] | [ Amunt : Predefined type predicates ] | [ Guile predicates > ] | ||
R5RS secondary predicates
| Type predicate | Description |
|---|---|
char-alphabetic? | alphabetic character |
char-lower-case? | lower-case character |
char-numeric? | numeric character |
char-upper-case? | upper-case character |
char-whitespace? | whitespace character |
complex? | complex number |
eof-object? | end-of-file object |
even? | even number |
exact? | exact number |
inexact? | inexact number |
input-port? | input port |
integer? | integer |
list? | list (use cheap-list?
for faster processing) |
negative? | negative number |
null? | null |
odd? | odd number |
output-port? | output port |
positive? | positive number |
rational? | rational number |
real? | real number |
zero? | zero |
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < R5RS secondary predicates ] | [ Amunt : Predefined type predicates ] | [ LilyPond scheme predicates > ] | ||
Guile predicates
| Type predicate | Description |
|---|---|
hash-table? | hash table |
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < Guile predicates ] | [ Amunt : Predefined type predicates ] | [ LilyPond exported predicates > ] | ||
LilyPond scheme predicates
| Type predicate | Description |
|---|---|
boolean-or-symbol? | boolean or symbol |
cheap-list? | list (use this instead of
list? for faster processing) |
color? | color |
fraction? | fraction, as pair |
grob-list? | list of grobs |
index? | non-negative integer |
key? | index or symbol |
key-list? | list of indexes or symbols |
key-list-or-music? | key list or music |
key-list-or-symbol? | key list or symbol |
markup? | markup |
markup-command-list? | markup command list |
markup-list? | markup list |
moment-pair? | pair of moment objects |
number-list? | number list |
number-or-grob? | number or grob |
number-or-markup? | number or markup |
number-or-pair? | number or pair |
number-or-string? | number or string |
number-pair? | pair of numbers |
number-pair-list? | list of number pairs |
rational-or-procedure? | an exact rational or procedure |
rhythmic-location? | rhythmic location |
scheme? | any type |
string-or-music? | string or music |
string-or-pair? | string or pair |
string-or-symbol? | string or symbol |
symbol-list? | symbol list |
symbol-list-or-music? | symbol list or music |
symbol-list-or-symbol? | symbol list or symbol |
void? | void |
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < LilyPond scheme predicates ] | [ Amunt : Predefined type predicates ] | [ Scheme functions > ] | ||
LilyPond exported predicates
| Type predicate | Description |
|---|---|
ly:book? | book |
ly:box? | box |
ly:context? | context |
ly:context-def? | context definition |
ly:context-mod? | context modification |
ly:dimension? | dimension, in staff space |
ly:dir? | direction |
ly:dispatcher? | dispatcher |
ly:duration? | duration |
ly:event? | post event |
ly:font-metric? | font metric |
ly:grob? | graphical (layout) object |
ly:grob-array? | array of grobs |
ly:grob-properties? | grob properties |
ly:input-location? | input location |
ly:item? | item |
ly:iterator? | iterator |
ly:lily-lexer? | lily-lexer |
ly:lily-parser? | lily-parser |
ly:listener? | listener |
ly:moment? | moment |
ly:music? | music |
ly:music-function? | music function |
ly:music-list? | list of music objects |
ly:music-output? | music output |
ly:otf-font? | OpenType font |
ly:output-def? | output definition |
ly:page-marker? | page marker |
ly:pango-font? | pango font |
ly:paper-book? | paper book |
ly:paper-system? | paper-system Prob |
ly:pitch? | pitch |
ly:prob? | property object |
ly:score? | score |
ly:skyline? | skyline |
ly:skyline-pair? | pair of skylines |
ly:source-file? | source file |
ly:spanner? | spanner |
ly:spring? | spring |
ly:stencil? | stencil |
ly:stream-event? | stream event |
ly:translator? | translator |
ly:translator-group? | translator group |
ly:undead? | undead container |
ly:unpure-pure-container? | unpure/pure container |
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ Cheat sheet >> ] | ||
| [ < LilyPond exported predicates ] | [ Amunt : Notation manual tables ] | [ Cheat sheet > ] | ||
A.22 Scheme functions
- Function: ly:add-context-mod contextmods modification
Adds the given context modification to the list contextmods of context modifications.
- Function: ly:add-interface iface desc props
Add a new grob interface. iface is the interface name, desc is the interface description, and props is the list of user-settable properties for the interface.
- Function: ly:add-listener callback disp cl
Add the single-argument procedure callback as listener to the dispatcher disp. Whenever disp hears an event of class cl, it calls callback with it.
- Function: ly:add-option sym val description
Add a program option sym. val is the default value and description is a string description.
- Function: ly:angle x y
Calculates angle in degrees of given vector. With one argument, x is a number pair indicating the vector. With two arguments, x and y specify the respective coordinates.
- Function: ly:assoc-get key alist default-value strict-checking
Return value if key in alist, else default-value (or
#fif not specified). If strict-checking is set to#tand key is not in alist, a programming_error is output.
- Function: ly:axis-group-interface::add-element grob grob-element
Set grob the parent of grob-element on all axes of grob.
- Function: ly:basic-progress str rest
A Scheme callable function to issue a basic progress message str. The message is formatted with
formatand rest.
- Function: ly:book-process book-smob default-paper default-layout output
Print book. output is passed to the backend unchanged. For example, it may be a string (for file based outputs) or a socket (for network based output).
- Function: ly:book-process-to-systems book-smob default-paper default-layout output
Print book. output is passed to the backend unchanged. For example, it may be a string (for file based outputs) or a socket (for network based output).
- Function: ly:bracket a iv t p
Make a bracket in direction a. The extent of the bracket is given by iv. The wings protrude by an amount of p, which may be negative. The thickness is given by t.
- Function: ly:chain-assoc-get key achain default-value strict-checking
Return value for key from a list of alists achain. If no entry is found, return default-value or
#fif default-value is not specified. With strict-checking set to#t, a programming_error is output in such cases.
- Function: ly:check-expected-warnings
Check whether all expected warnings have really been triggered.
- Function: ly:context-def-lookup def sym val
Return the value of sym in context definition def (e.g.,
\Voice). If no value is found, return val or'()if val is undefined. sym can be any of ‘default-child’, ‘consists’, ‘description’, ‘aliases’, ‘accepts’, ‘property-ops’, ‘context-name’, ‘group-type’.
- Function: ly:context-def-modify def mod
Return the result of applying the context-mod mod to the context definition def. Does not change def.
- Function: ly:context-events-below context
Return a
stream-distributorthat distributes all events from context and all its subcontexts.
- Function: ly:context-find context name
Find a parent of context that has name or alias name. Return
#fif not found.
- Function: ly:context-grob-definition context name
Return the definition of name (a symbol) within context as an alist.
- Function: ly:context-id context
Return the ID string of context, i.e., for
\context Voice = "one" …return the stringone.
- Function: ly:context-matched-pop-property context grob cell
This undoes a particular
\override,\once \overrideor\once \revertwhen given the specific alist pair to undo.
- Function: ly:context-name context
Return the name of context, i.e., for
\context Voice = "one" …return the symbolVoice.
- Function: ly:context-property context sym def
Return the value for property sym in context. If def is given, and property value is
'(), return def.
- Function: ly:context-property-where-defined context name
Return the context above context where name is defined.
- Function: ly:context-pushpop-property context grob eltprop val
Do
\temporary \overrideor\revertoperation in context. The grob definition grob is extended with eltprop (if val is specified) or reverted (if unspecified).
- Function: ly:context-set-property! context name val
Set value of property name in context context to val.
- Function: ly:debug str rest
A Scheme callable function to issue a debug message str. The message is formatted with
formatand rest.
- Function: ly:dimension? d
Return d as a number. Used to distinguish length variables from normal numbers.
- Function: ly:dir? s
Is s a direction? Valid directions are
-1,0, or1, where-1represents left or down,1represents right or up, and0represents a neutral direction.
- Function: ly:directed direction magnitude
Calculates an
(x . y)pair with optional magnitude (defaulting to1.0) and direction specified either as an angle in degrees or a coordinate pair giving the direction. If magnitude is a pair, the respective coordinates are scaled independently, useful for ellipse drawings.
- Function: ly:encode-string-for-pdf str
Encode the given string to either Latin1 (which is a subset of the PDFDocEncoding) or if that’s not possible to full UTF-16BE with Byte-Order-Mark (BOM).
- Function: ly:engraver-announce-end-grob engraver grob cause
Announce the end of a grob (i.e., the end of a spanner) originating from given engraver instance, with grob being a grob. cause should either be another grob or a music event.
- Function: ly:engraver-make-grob engraver grob-name cause
Create a grob originating from given engraver instance, with given grob-name, a symbol. cause should either be another grob or a music event.
- Function: ly:error str rest
A Scheme callable function to issue the error str. The error is formatted with
formatand rest.
- Function: ly:event-property sev sym val
Get the property sym of stream event sev. If sym is undefined, return val or
'()if val is not specified.
- Function: ly:expect-warning str rest
A Scheme callable function to register a warning to be expected and subsequently suppressed. If the warning is not encountered, a warning about the missing warning will be shown. The message should be translated with
(_ ...)and changing parameters given after the format string.
- Function: ly:font-design-size font
Given the font metric font, return the design size, relative to the current output-scale.
- Function: ly:font-get-glyph font name
Return a stencil from font for the glyph named name. If the glyph is not available, return an empty stencil.
Note that this command can only be used to access glyphs from fonts loaded with
ly:system-font-load; currently, this means either the Emmentaler or Emmentaler-Brace fonts, corresponding to the font encodingsfetaMusicandfetaBraces, respectively.
- Function: ly:font-glyph-name-to-charcode font name
Return the character code for glyph name in font.
Note that this command can only be used to access glyphs from fonts loaded with
ly:system-font-load; currently, this means either the Emmentaler or Emmentaler-Brace fonts, corresponding to the font encodingsfetaMusicandfetaBraces, respectively.
- Function: ly:font-glyph-name-to-index font name
Return the index for name in font.
Note that this command can only be used to access glyphs from fonts loaded with
ly:system-font-load; currently, this means either the Emmentaler or Emmentaler-Brace fonts, corresponding to the font encodingsfetaMusicandfetaBraces, respectively.
- Function: ly:font-index-to-charcode font index
Return the character code for index in font.
Note that this command can only be used to access glyphs from fonts loaded with
ly:system-font-load; currently, this means either the Emmentaler or Emmentaler-Brace fonts, corresponding to the font encodingsfetaMusicandfetaBraces, respectively.
- Function: ly:font-magnification font
Given the font metric font, return the magnification, relative to the current output-scale.
- Function: ly:font-sub-fonts font
Given the font metric font of an OpenType font, return the names of the subfonts within font.
- Function: ly:format str rest
LilyPond specific format, supporting
~aand~[0-9]f. Basic support for~sis also provided.
- Function: ly:format-output context
Given a global context in its final state, process it and return the
Music_outputobject in its final state.
- Function: ly:generic-bound-extent grob common
Determine the extent of grob relative to common along the X axis, finding its extent as a bound when it a has
bound-alignment-interfacesproperty list set and otherwise the full extent.
- Function: ly:get-all-function-documentation
Get a hash table with all LilyPond Scheme extension functions.
- Function: ly:get-cff-offset font-file-name idx
Get the offset of ’CFF’ table for font_file_name, returning it as an integer. The optional idx argument is useful for OpenType/CFF collections (OTC) only; it specifies the font index within the OTC. The default value of idx is 0.
- Function: ly:get-context-mods contextmod
Returns the list of context modifications stored in contextmod.
- Function: ly:get-font-format font-file-name idx
Get the font format for font_file_name, returning it as a symbol. The optional idx argument is useful for TrueType Collections (TTC) and OpenType/CFF collections (OTC) only; it specifies the font index within the TTC/OTC. The default value of idx is 0.
- Function: ly:get-spacing-spec from-scm to-scm
Return the spacing spec going between the two given grobs, from_scm and to_scm.
- Function: ly:grob-alist-chain grob global
Get an alist chain for grob grob, with global as the global default. If unspecified,
font-defaultsfrom the layout block is taken.
- Function: ly:grob-chain-callback grob proc sym
Find the callback that is stored as property sym of grob grob and chain proc to the head of this, meaning that it is called using grob and the previous callback’s result.
- Function: ly:grob-common-refpoint grob other axis
Find the common refpoint of grob and other for axis.
- Function: ly:grob-common-refpoint-of-array grob others axis
Find the common refpoint of grob and others (a grob-array) for axis.
- Function: ly:grob-extent grob refp axis
Get the extent in axis direction of grob relative to the grob refp.
- Function: ly:grob-get-vertical-axis-group-index grob
Get the index of the vertical axis group the grob grob belongs to; return
-1if none is found.
- Function: ly:grob-object grob sym
Return the value of a pointer in grob grob of property sym. It returns
'()(end-of-list) if sym is undefined in grob.
- Function: ly:grob-parent grob axis
Get the parent of grob. axis is 0 for the X-axis, 1 for the Y-axis.
- Function: ly:grob-property grob sym val
Return the value for property sym of grob. If no value is found, return val or
'()if val is not specified.
- Function: ly:grob-property-data grob sym
Return the value for property sym of grob, but do not process callbacks.
- Function: ly:grob-pure-height grob refp beg end val
Return the pure height of grob given refpoint refp. If no value is found, return val or
'()if val is not specified.
- Function: ly:grob-pure-property grob sym beg end val
Return the pure value for property sym of grob. If no value is found, return val or
'()if val is not specified.
- Function: ly:grob-relative-coordinate grob refp axis
Get the coordinate in axis direction of grob relative to the grob refp.
- Function: ly:grob-robust-relative-extent grob refp axis
Get the extent in axis direction of grob relative to the grob refp, or
(0,0)if empty.
- Function: ly:grob-set-nested-property! grob symlist val
Set nested property symlist in grob grob to value val.
- Function: ly:grob-set-parent! grob axis parent-grob
Set parent-grob the parent of grob grob in axis axis.
- Function: ly:grob-spanned-rank-interval grob
Returns a pair with the
rankof the furthest left column and therankof the furthest right column spanned bygrob.
- Function: ly:gulp-file name size
Read size characters from the file name, and return its contents in a string. If size is undefined, the entire file is read. The file is looked up using the search path.
- Function: ly:has-glyph-names? font-file-name idx
Does the font for font_file_name have glyph names? The optional idx argument is useful for TrueType Collections (TTC) and OpenType/CFF collections (OTC) only; it specifies the font index within the TTC/OTC. The default value of idx is 0.
- Function: ly:input-both-locations sip
Return input location in sip as
(file-name first-line first-column last-line last-column).
- Function: ly:input-file-line-char-column sip
Return input location in sip as
(file-name line char column).
- Function: ly:input-message sip msg rest
Print msg as a GNU compliant error message, pointing to the location in sip. msg is interpreted similar to
format’s argument, using rest.
- Function: ly:input-warning sip msg rest
Print msg as a GNU compliant warning message, pointing to the location in sip. msg is interpreted similar to
format’s argument, using rest.
- Function: ly:interpret-music-expression mus ctx
Interpret the music expression mus in the global context ctx. The context is returned in its final state.
- Function: ly:interpret-stencil-expression expr func arg1 offset
Parse expr, feed bits to func with first arg arg1 having offset offset.
- Function: ly:item-break-dir it
The break status direction of item it.
-1means end of line,0unbroken, and1beginning of line.
- Function: ly:item-get-column it
Return the
PaperColumnorNonMusicalPaperColumnassociated with thisItem.
- Function: ly:length x y
Calculates magnitude of given vector. With one argument, x is a number pair indicating the vector. With two arguments, x and y specify the respective coordinates.
- Function: ly:lexer-keywords lexer
Return a list of
(KEY . CODE)pairs, signifying the LilyPond reserved words list.
- Function: ly:line-interface::line grob startx starty endx endy
Make a line using layout information from grob grob.
- Function: ly:make-book paper header scores
Make a
\bookof paper and header (which may be#fas well) containing\scores.
- Function: ly:make-context-mod mod-list
Creates a context modification, optionally initialized via the list of modifications mod-list.
- Function: ly:make-duration length dotcount num den
length is the negative logarithm (base 2) of the duration: 1 is a half note, 2 is a quarter note, 3 is an eighth note, etc. The number of dots after the note is given by the optional argument dotcount.
The duration factor is optionally given by integers num and den, alternatively by a single rational number.
A duration is a musical duration, i.e., a length of time described by a power of two (whole, half, quarter, etc.) and a number of augmentation dots.
- Function: ly:make-global-context output-def
Set up a global interpretation context, using the output block output-def. The context is returned.
- Function: ly:make-global-translator global
Create a translator group and connect it to the global context global. The translator group is returned.
- Function: ly:make-grob-properties alist
This packages the given property list alist in a grob property container stored in a context property with the name of a grob.
- Function: ly:make-moment m g gn gd
Create the moment with rational main timing m, and optional grace timing g.
A moment is a point in musical time. It consists of a pair of rationals (m, g), where m is the timing for the main notes, and g the timing for grace notes. In absence of grace notes, g is zero.
For compatibility reasons, it is possible to write two numbers specifying numerator and denominator instead of the rationals. These forms cannot be mixed, and the two-argument form is disambiguated by the sign of the second argument: if it is positive, it can only be a denominator and not a grace timing.
- Function: ly:make-music props
Make a C++
Musicobject and initialize it with props.This function is for internal use and is only called by
make-music, which is the preferred interface for creating music objects.
- Function: ly:make-music-function signature func
Make a function to process music, to be used for the parser. func is the function, and signature describes its arguments. signature’s cdr is a list containing either
ly:music?predicates or other type predicates. Its car is the syntax function to call.
- Function: ly:make-page-permission-marker symbol permission
Return page marker with page breaking and turning permissions.
- Function: ly:make-pango-description-string chain size
Make a
PangoFontDescriptionstring for the property alist chain at size size.
- Function: ly:make-paper-outputter port format
Create an outputter that evaluates within
output-format, writing to port.
- Function: ly:make-pitch octave note alter
octave is specified by an integer, zero for the octave containing middle C. note is a number indexing the global default scale, with 0 corresponding to pitch C and 6 usually corresponding to pitch B. Optional alter is a rational number of 200-cent whole tones for alteration.
- Function: ly:make-scale steps
Create a scale. The argument is a vector of rational numbers, each of which represents the number of 200 cent tones of a pitch above the tonic.
- Function: ly:make-spring ideal min-dist
Make a spring. ideal is the ideal distance of the spring, and min-dist is the minimum distance.
- Function: ly:make-stencil expr xext yext
Stencils are device independent output expressions. They carry two pieces of information:
- A specification of how to print this object. This specification is processed by the output backends, for example ‘scm/output-ps.scm’.
-
The vertical and horizontal extents of the object, given as pairs. If an extent is unspecified (or if you use
empty-intervalas its value), it is taken to be empty.
- Function: ly:make-stream-event cl proplist
Create a stream event of class cl with the given mutable property list.
- Function: ly:make-undead object
This packages object in a manner that keeps it from triggering "Parsed object should be dead" messages.
- Function: ly:make-unpure-pure-container unpure pure
Make an unpure-pure container. unpure should be an unpure expression, and pure should be a pure expression. If pure is omitted, the value of unpure will be used twice, except that a callback is given two extra arguments that are ignored for the sake of pure calculations.
- Function: ly:message str rest
A Scheme callable function to issue the message str. The message is formatted with
formatand rest.
- Function: ly:minimal-breaking pb
Break (pages and lines) the
Paper_bookobject pb without looking for optimal spacing: stack as many lines on a page before moving to the next one.
- Function: ly:modules-lookup modules sym def
Look up sym in the list modules, returning the first occurence. If not found, return def or
#fif def isn’t specified.
- Function: ly:music-deep-copy m origin
Copy m and all sub expressions of m. m may be an arbitrary type; cons cells and music are copied recursively. If origin is given, it is used as the origin for one level of music by calling
ly:set-origin!on the copy.
- Function: ly:music-length mus
Get the length of music expression mus and return it as a
Momentobject.
- Function: ly:music-mutable-properties mus
Return an alist containing the mutable properties of mus. The immutable properties are not available, since they are constant and initialized by the
make-musicfunction.
- Function: ly:music-property mus sym val
Return the value for property sym of music expression mus. If no value is found, return val or
'()if val is not specified.
- Function: ly:note-column-accidentals note-column
Return the
AccidentalPlacementgrob from note-column if any, orSCM_EOLotherwise.
- Function: ly:note-column-dot-column note-column
Return the
DotColumngrob from note-column if any, orSCM_EOLotherwise.
- Function: ly:note-head::stem-attachment font-metric glyph-name
Get attachment in font-metric for attaching a stem to notehead glyph-name.
- Function: ly:one-line-auto-height-breaking pb
Put each score on a single line, and put each line on its own page. Modify the paper-width setting so that every page is wider than the widest line. Modify the paper-height setting to fit the height of the tallest line.
- Function: ly:one-line-breaking pb
Put each score on a single line, and put each line on its own page. Modify the paper-width setting so that every page is wider than the widest line.
- Function: ly:one-page-breaking pb
Put each score on a single page. The paper-height settings are modified so each score fits on one page, and the height of the page matches the height of the full score.
- Function: ly:optimal-breaking pb
Optimally break (pages and lines) the
Paper_bookobject pb to minimize badness in bother vertical and horizontal spacing.
- Function: ly:option-usage port
Print
ly:set-optionusage. Optional port argumentfor the destination defaults to current output port.
- Function: ly:otf->cff otf-file-name idx
Convert the contents of an OTF file to a CFF file, returning it as a string. The optional idx argument is useful for OpenType/CFF collections (OTC) only; it specifies the font index within the OTC. The default value of idx is 0.
- Function: ly:otf-font-glyph-info font glyph
Given the font metric font of an OpenType font, return the information about named glyph glyph (a string).
- Function: ly:otf-font-table-data font tag
Extract a table tag from font. Return empty string for non-existent tag.
- Function: ly:output-def-lookup def sym val
Return the value of sym in output definition def (e.g.,
\paper). If no value is found, return val or'()if val is undefined.
- Function: ly:output-find-context-def output-def context-name
Return an alist of all context defs (matching context-name if given) in output-def.
- Function: ly:page-turn-breaking pb
Optimally break (pages and lines) the
Paper_bookobject pb such that page turns only happen in specified places, returning its pages.
- Function: ly:pango-font-physical-fonts f
Return alist of
(ps-name file-name font-index)lists for Pango font f.
- Function: ly:paper-book-paper pb
Return the paper output definition (
\paper) inPaper_bookobject pb.
- Function: ly:paper-column::break-align-width col align-syms
Determine the extent along the X-axis of a grob used for break-alignment organized by column col. The grob is specified by align-syms, which contains either a single
break-align-symbolor a list of such symbols.
- Function: ly:paper-column::print
Optional stencil for
PaperColumnorNonMusicalPaperColumn. Draws therank numberof each column, its moment in time, a blue arrow showing the ideal distance, and a red arrow showing the minimum distance between columns.
- Function: ly:paper-fonts def
Return a list containing the fonts from output definition def (e.g.,
\paper).
- Function: ly:paper-get-font def chain
Find a font metric in output definition def satisfying the font-qualifiers in alist chain chain, and return it. (An alist chain is a list of alists, containing grob properties.)
- Function: ly:paper-get-number def sym
Return the value of variable sym in output definition def as a double.
- Function: ly:paper-score-paper-systems paper-score
Return vector of
paper_systemobjects from paper-score.
- Function: ly:paper-system-minimum-distance sys1 sys2
Measure the minimum distance between these two paper-systems, using their stored skylines if possible and falling back to their extents otherwise.
- Function: ly:parse-string-expression parser-smob ly-code filename line
Parse the string ly-code with parser-smob. Return the contained music expression. filename and line are optional source indicators.
- Function: ly:parsed-undead-list!
Return the list of objects that have been found live that should have been dead, and clear that list.
- Function: ly:parser-clone closures location
Return a clone of current parser. An association list of port positions to closures can be specified in closures in order to have
$and#interpreted in their original lexical environment. If location is a valid location, it becomes the source of all music expressions inside.
- Function: ly:parser-error msg input
Display an error message and make current parser fail. Without a current parser, trigger an ordinary error.
- Function: ly:parser-has-error? parser
Does parser (defaulting to current parser) have an error flag?
- Function: ly:parser-include-string ly-code
Include the string ly-code into the input stream for current parser. Can only be used in immediate Scheme expressions (
$instead of#).
- Function: ly:parser-lookup symbol
Look up symbol in current parser’s module. Return
'()if not defined.
- Function: ly:parser-output-name parser
Return the base name of the output file. If
parseris left off, use currently active parser.
- Function: ly:parser-parse-string parser-smob ly-code
Parse the string ly-code with parser-smob. Upon failure, throw
ly-file-failedkey.
- Function: ly:parser-set-note-names names
Replace current note names in parser. names is an alist of symbols. This only has effect if the current mode is notes.
- Function: ly:performance-write performance filename name
Write performance to filename storing name as the name of the performance in the file metadata.
- Function: ly:pitch-diff pitch root
Return pitch delta such that root transposed by delta equals pitch.
- Function: ly:pitch-transpose p delta
Transpose p by the amount delta, where delta is relative to middle C.
- Function: ly:pointer-group-interface::add-grob grob sym grob-element
Add grob-element to grob’s sym grob array.
- Function: ly:position-on-line? sg spos
Return whether spos is on a line of the staff associated with the grob sg (even on an extender line).
- Function: ly:prob-property prob sym val
Return the value for property sym of Prob object prob. If no value is found, return val or
'()if val is not specified.
- Function: ly:programming-error str rest
A Scheme callable function to issue the internal warning str. The message is formatted with
formatand rest.
- Function: ly:progress str rest
A Scheme callable function to print progress str. The message is formatted with
formatand rest.
- Function: ly:property-lookup-stats sym
Return hash table with a property access corresponding to sym. Choices are
prob,grob, andcontext.
- Function: ly:pure-call data grob start end rest
Convert property data (unpure-pure container or procedure) to value in a pure context defined by grob, start, end, and possibly rest arguments.
- Function: ly:register-translator creator name description
Register a translator creator (usually a descriptive alist or a function/closure returning one when given a context argument) with the given symbol name and the given description alist.
- Function: ly:relative-group-extent elements common axis
Determine the extent of elements relative to common in the axis direction.
- Function: ly:round-filled-box xext yext blot
Make a
Stencilobject that prints a black box of dimensions xext, yext and roundness blot.
- Function: ly:round-filled-polygon points blot extroversion
Make a
Stencilobject that prints a black polygon with corners at the points defined by points (list of coordinate pairs) and roundness blot. Optionalextroversion shifts the outline outward, with thedefault of-1.0keeping the outer boundary ofthe outline just inside of the polygon.
- Function: ly:run-translator mus output-def
Process mus according to output-def. An interpretation context is set up, and mus is interpreted with it. The context is returned in its final state.
Optionally, this routine takes an object-key to to uniquely identify the score block containing it.
- Function: ly:score-embedded-format score layout
Run score through layout (an output definition) scaled to correct output-scale already, returning a list of layout-lines.
- Function: ly:separation-item::print
Optional stencil for
PaperColumnorNonMusicalPaperColumn. Draws thehorizontal-skylinesof eachPaperColumn, showing the shapes used to determine the minimum distances betweenPaperColumnsat the note-spacing step, before staves have been spaced (vertically) on the page.
- Function: ly:set-default-scale scale
Set the global default scale. This determines the tuning of pitches with no accidentals or key signatures. The first pitch is C. Alterations are calculated relative to this scale. The number of pitches in this scale determines the number of scale steps that make up an octave. Usually the 7-note major scale.
- Function: ly:set-grob-modification-callback cb
Specify a procedure that will be called every time LilyPond modifies a grob property. The callback will receive as arguments the grob that is being modified, the name of the C++ file in which the modification was requested, the line number in the C++ file in which the modification was requested, the name of the function in which the modification was requested, the property to be changed, and the new value for the property.
- Function: ly:set-middle-C! context
Set the
middleCPositionvariable in context based on the variablesmiddleCClefPositionandmiddleCOffset.
- Function: ly:set-origin! m origin
This sets the origin given in origin to m. m will typically be a music expression or a list of music. List structures are searched recursively, but recursion stops at the changed music expressions themselves. origin is generally of type
ly:input-location?, defaulting to(*location*). Other valid values fororiginare a music expression which is then used as the source of location information, or#for'()in which case no action is performed. The return value is m itself.
- Function: ly:set-property-cache-callback cb
Specify a procedure that will be called whenever lilypond calculates a callback function and caches the result. The callback will receive as arguments the grob whose property it is, the name of the property, the name of the callback that calculated the property, and the new (cached) value of the property.
- Function: ly:solve-spring-rod-problem springs rods length ragged
Solve a spring and rod problem for count objects, that are connected by count-1 springs, and an arbitrary number of rods. count is implicitly given by springs and rods. The springs argument has the format
(ideal, inverse_hook)and rods is of the form(idx1, idx2, distance).length is a number, ragged a boolean.
The function returns a list containing the force (positive for stretching, negative for compressing and
#ffor non-satisfied constraints) followed by spring-count+1 positions of the objects.
- Function: ly:source-files parser-smob
A list of LilyPond files being processed;a PARSER may optionally be specified.
- Function: ly:spanner-bound spanner dir
Get one of the bounds of spanner. dir is
-1for left, and1for right.
- Function: ly:spanner-set-bound! spanner dir item
Set grob item as bound in direction dir for spanner.
- Function: ly:spawn command rest
Simple interface to g_spawn_sync str. The error is formatted with
formatand rest.
- Function: ly:spring-set-inverse-compress-strength! spring strength
Set the inverse compress strength of spring.
- Function: ly:spring-set-inverse-stretch-strength! spring strength
Set the inverse stretch strength of spring.
- Function: ly:staff-symbol-line-thickness grob
Returns the current staff-line thickness in the staff associated with grob, expressed as a multiple of the current staff-space height.
- Function: ly:staff-symbol-staff-space grob
Returns the current staff-space height in the staff associated with grob, expressed as a multiple of the default height of a staff-space in the traditional five-line staff.
- Function: ly:start-environment
Return the environment (a list of strings) that was in effect at program start.
- Function: ly:stencil-aligned-to stil axis dir
Align stil using its own extents. dir is a number.
-1and1are left and right, respectively. Other values are interpolated (so0means the center).
- Function: ly:stencil-combine-at-edge first axis direction second padding
Construct a stencil by putting second next to first. axis can be 0 (x-axis) or 1 (y-axis). direction can be -1 (left or down) or 1 (right or up). The stencils are juxtaposed with padding as extra space. first and second may also be
'()or#f.
- Function: ly:stencil-empty? stil axis
Return whether stil is empty. If an optional axis is supplied, the emptiness check is restricted to that axis.
- Function: ly:stencil-extent stil axis
Return a pair of numbers signifying the extent of stil in axis direction (
0or1for x and y axis, respectively).
- Function: ly:stencil-outline stil outline
Return a stencil with the stencil expression (inking) of stencil stil but with outline and dimensions from stencil outline.
- Function: ly:stencil-rotate stil angle x y
Return a stencil stil rotated angle degrees around the relative offset (x, y). E.g., an offset of (-1, 1) will rotate the stencil around the left upper corner.
- Function: ly:stencil-rotate-absolute stil angle x y
Return a stencil stil rotated angle degrees around point (x, y), given in absolute coordinates.
- Function: ly:stencil-scale stil x y
Scale stencil stil using the horizontal and vertical scaling factors x and y. Negative values will flip or mirror stil without changing its origin; this may result in collisions unless it is repositioned.
- Function: ly:stencil-stack first axis direction second padding mindist
Construct a stencil by stacking second next to first. axis can be 0 (x-axis) or 1 (y-axis). direction can be -1 (left or down) or 1 (right or up). The stencils are juxtaposed with padding as extra space. first and second may also be
'()or#f. As opposed toly:stencil-combine-at-edge, metrics are suited for successively accumulating lines of stencils. Also, second stencil is drawn last.If mindist is specified, reference points are placed apart at least by this distance. If either of the stencils is spacing, padding and mindist do not apply.
- Function: ly:stencil-translate stil offset
Return a stil, but translated by offset (a pair of numbers).
- Function: ly:stencil-translate-axis stil amount axis
Return a copy of stil but translated by amount in axis direction.
- Function: ly:string-percent-encode str
Encode all characters in string str with hexadecimal percent escape sequences, with the following exceptions: characters
-,.,/, and_; and characters in ranges0-9,A-Z, anda-z.
- Function: ly:system-font-load name
Load the OpenType system font ‘name.otf’. Fonts loaded with this command must contain three additional SFNT font tables called
LILC,LILF, andLILY, needed for typesetting musical elements. Currently, only the Emmentaler and the Emmentaler-Brace fonts fulfill these requirements.Note that only
ly:font-get-glyphand derived code (like\lookup) can access glyphs from the system fonts; text strings are handled exclusively via the Pango interface.
- Function: ly:text-interface::interpret-markup
Convert a text markup into a stencil. Takes three arguments, layout, props, and markup.
layout is a
\layoutblock; it may be obtained from a grob withly:grob-layout. props is an alist chain, i.e. a list of alists. This is typically obtained with(ly:grob-alist-chain grob (ly:output-def-lookup layout 'text-font-defaults)). markup is the markup text to be processed.
- Function: ly:translate-cpp-warning-scheme str
Translates a string in C++ printf format and modifies it to use it for scheme formatting.
- Function: ly:translator-description creator
Return an alist of properties of translator definition creator.
- Function: ly:translator-name creator
Return the type name of the translator definition creator. The name is a symbol.
- Function: ly:ttf->pfa ttf-file-name idx
Convert the contents of a TrueType font file to PostScript Type 42 font, returning it as a string. The optional idx argument is useful for TrueType collections (TTC) only; it specifies the font index within the TTC. The default value of idx is 0.
- Function: ly:ttf-ps-name ttf-file-name idx
Extract the PostScript name from a TrueType font. The optional idx argument is useful for TrueType collections (TTC) only; it specifies the font index within the TTC. The default value of idx is 0.
- Function: ly:type1->pfa type1-file-name
Convert the contents of a Type 1 font in PFB format to PFA format. If the file is already in PFA format, pass through it.
- Function: ly:unpure-call data grob rest
Convert property data (unpure-pure container or procedure) to value in an unpure context defined by grob and possibly rest arguments.
- Function: ly:warning str rest
A Scheme callable function to issue the warning str. The message is formatted with
formatand rest.
- Function: ly:warning-located location str rest
A Scheme callable function to issue the warning str at the specified location in an input file. The message is formatted with
formatand rest.
| [ << Notation manual tables ] | [Part superior][Continguts][Índex][ ? ] | [ GNU Free Documentation License >> ] | ||
| [ < Scheme functions ] | [ Amunt : Top ] | [ GNU Free Documentation License > ] | ||
B. Cheat sheet
| Syntax | Description | Example |
1 2 8 16 | durations | |
c4. c4.. | augmentation dots | |
c d e f g a b | scale | |
fis bes | alteration | |
\clef treble \clef bass | clefs | |
\time 3/4 \time 4/4 | time signature | |
r4 r8 | rest | |
d ~ d | tie | |
\key es \major | key signature | |
note' | raise octave | |
note, | lower octave | |
c( d e) | slur | |
c\( c( d) e\) | phrasing slur | |
a8[ b] | beam | |
<< \new Staff … >> | more staves | |
c-> c-. | articulations | |
c2\mf c\sfz | dynamics | |
a\< a a\! | crescendo | |
a\> a a\! | decrescendo | |
< > | chord | |
\partial 8 | pickup / upbeat | |
\tuplet 3/2 {f g a} | triplets | |
\grace | grace notes | |
\lyricmode { twinkle } | entering lyrics | twinkle |
\new Lyrics | printing lyrics | |
twin -- kle | lyric hyphen | |
\chordmode { c:dim f:maj7 } | chords | |
\new ChordNames | printing chord names | |
<<{e f} \\ {c d}>> | polyphony | |
s4 s8 s16 | spacer rests |
| [ << Cheat sheet ] | [Part superior][Continguts][Índex][ ? ] | [ Índex d'ordres del LilyPond >> ] | ||
| [ < Cheat sheet ] | [ Amunt : Top ] | [ Índex d'ordres del LilyPond > ] | ||
C. GNU Free Documentation License
Version 1.3, 3 November 2008
Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. http://fsf.org/ Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. |
-
PREAMBLE
The purpose of this License is to make a manual, textbook, or other functional and useful document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
This License is a kind of “copyleft”, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
-
APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The “Document”, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as “you”. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law.
A “Modified Version” of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.
A “Secondary Section” is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document’s overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.
The “Invariant Sections” are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.
The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.
A “Transparent” copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not “Transparent” is called “Opaque”.
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.
The “Title Page” means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, “Title Page” means the text near the most prominent appearance of the work’s title, preceding the beginning of the body of the text.
The “publisher” means any person or entity that distributes copies of the Document to the public.
A section “Entitled XYZ” means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as “Acknowledgements”, “Dedications”, “Endorsements”, or “History”.) To “Preserve the Title” of such a section when you modify the Document means that it remains a section “Entitled XYZ” according to this definition.
The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.
-
VERBATIM COPYING
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
-
COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document’s license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
-
MODIFICATIONS
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
- Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
- List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.
- State on the Title page the name of the publisher of the Modified Version, as the publisher.
- Preserve all the copyright notices of the Document.
- Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
- Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.
- Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document’s license notice.
- Include an unaltered copy of this License.
- Preserve the section Entitled “History”, Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled “History” in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
- Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the “History” section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
- For any section Entitled “Acknowledgements” or “Dedications”, Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
- Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
- Delete any section Entitled “Endorsements”. Such a section may not be included in the Modified Version.
- Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title with any Invariant Section.
- Preserve any Warranty Disclaimers.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version’s license notice. These titles must be distinct from any other section titles.
You may add a section Entitled “Endorsements”, provided it contains nothing but endorsements of your Modified Version by various parties—for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.
-
COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections Entitled “History” in the various original documents, forming one section Entitled “History”; likewise combine any sections Entitled “Acknowledgements”, and any sections Entitled “Dedications”. You must delete all sections Entitled “Endorsements.”
-
COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
-
AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an “aggregate” if the copyright resulting from the compilation is not used to limit the legal rights of the compilation’s users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document’s Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.
-
TRANSLATION
Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail.
If a section in the Document is Entitled “Acknowledgements”, “Dedications”, or “History”, the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.
-
TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License.
However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it.
-
FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License “or any later version” applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy’s public statement of acceptance of a version permanently authorizes you to choose that version for the Document.
-
RELICENSING
“Massive Multiauthor Collaboration Site” (or “MMC Site”) means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A “Massive Multiauthor Collaboration” (or “MMC”) contained in the site means any set of copyrightable works thus published on the MMC site.
“CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization.
“Incorporate” means to publish or republish a Document, in whole or in part, as part of another Document.
An MMC is “eligible for relicensing” if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008.
The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing.
ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:
Copyright (C) year your name. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. |
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with…Texts.” line with this:
with the Invariant Sections being list their titles, with
the Front-Cover Texts being list, and with the Back-Cover Texts
being list.
|
If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.
If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.
| [ << GNU Free Documentation License ] | [Part superior][Continguts][Índex][ ? ] | [ Índex del LilyPond >> ] | ||
| [ < GNU Free Documentation License ] | [ Amunt : Top ] | [ Índex del LilyPond > ] | ||
D. Índex d’ordres del LilyPond
Aquest índex fa una relació de totes les ordres i paraules clau del LilyPond, amb enllaços a aquelles seccions del manual que descriuen o s’ocupen del seu ús. Cadascú d’aquests enllaços consta de dues parts. La primera part apunta a la situació exacta del manual en el qual apareix l’ordre o paraula clau; la segona part apunta al començament de la secció corresponent del manual en la qual apareix l’ordre o paraula clau.
| Salta a: | !
"
'
,
-
.
/
:
<
=
>
?
[
\
]
^
_
|
~
A B C D E F G H I K L M N O P Q R S T U V W X |
|---|
| Salta a: | !
"
'
,
-
.
/
:
<
=
>
?
[
\
]
^
_
|
~
A B C D E F G H I K L M N O P Q R S T U V W X |
|---|
| [ << Índex d'ordres del LilyPond ] | [Part superior][Continguts][Índex][ ? ] | [ >> ] | ||
| [ < Índex d'ordres del LilyPond ] | [ Amunt : Top ] | [ > ] | ||
E. Índex del LilyPond
A més de totes les ordres i paraules clau del LilyPond, aquest índex és una llista de termes musicals i les paraules que tenen relació amb cada u d’ells, amb enllaços a aquelles seccions del manual que descriuen o s’ocupen d’aquest terme. Cada un dels enllaços consta de dues parts. La primera part apunta a la situació exacta del manual en el qual apareix el terme; la segona part apunta al començament de la secció corresponent del manual en la qual es discuteix aquest terme.
| Salta a: | !
"
'
,
-
.
/
1
8
:
<
=
>
?
[
\
]
^
_
|
~
À
A B C D E F G H I J K L M N O P Q R S T U V W X |
|---|
| Salta a: | !
"
'
,
-
.
/
1
8
:
<
=
>
?
[
\
]
^
_
|
~
À
A B C D E F G H I J K L M N O P Q R S T U V W X |
|---|
| [Part superior][Continguts][Índex][ ? ] |
Notes a peu de pàgina
[1] Scheme tutorial, contains a short tutorial on entering numbers, lists, strings, and symbols in Scheme.
| [Part superior][Continguts][Índex][ ? ] |
Taula de contingus
- 1. Notació musical
- 1.1 Altures
- 1.2 Duracions
- 1.3 Expressions
- 1.4 Repeticions
- 1.5 Notes simultànies
- 1.6 Notació dels pentagrames
- 1.7 Anotacions editorials
- 1.8 Text
- 2. Notació especialitzada
- 2.1 Música vocal
- 2.2 Teclats i altres instruments de pentagrames múltiples
- 2.3 Instruments de corda sense trasts
- 2.4 Instruments de corda amb trasts
- 2.5 Percussió
- 2.6 Instruments de vent
- 2.7 Notació d’acords
- 2.8 Música contemporània
- 2.9 Notació antiga
- 2.9.1 Panoràmica dels estils amb suport
- 2.9.2 Notació antiga - funcionalitats comunes
- 2.9.3 Gravat de música mensural
- Contextos de la música mensural
- Claus de la música mensural
- Indicacions de compàs de la música mensural
- Caps de nota de la música mensural
- Corxets de la música mensural
- Silencis de la música mensural
- Alteracions i armadures de la música mensural
- Alteracions d’anotació (musica ficta)
- Lligadures mensurals blanques
- 2.9.4 Gravat del cant gregorià
- 2.9.5 Gravat del cant kievà en notació quadrada
- 2.9.6 Treball amb música antiga - escenaris i solucions
- 2.10 Músiques del món
- 3. Entrada i sortida generals
- 3.1 Estructura del codi d’entrada
- 3.2 Títols i encapçalaments
- 3.3 Treball sobre els fitxers d’entrada
- 3.4 Control de la sortida
- 3.5 Creació de sortida MIDI
- 3.5.1 Notació amb suport del MIDI
- 3.5.2 Notació sense suport del MIDI
- 3.5.3 El bloc MIDI
- 3.5.4 Control de les dinàmiques del MIDI
- 3.5.5 Ús dels instruments MIDI
- 3.5.6 Ús de les repeticions amb el MIDI
- 3.5.7 Assignació de canals MIDI
- 3.5.8 Propietats de context per a efectes MIDI
- 3.5.9 Enriquiment de la sortida MIDI
- 3.5.10 L’script Articulate
- 3.6 Extracció de la informació musical
- 4. Spacing issues
- 4.1 Page layout
- 4.2 Score layout
- 4.3 Breaks
- 4.4 Vertical spacing
- 4.5 Horizontal spacing
- 4.6 Fitting music onto fewer pages
- 5. Changing defaults
- 5.1 Interpretation contexts
- 5.2 Explaining the Internals Reference
- 5.3 Modifying properties
- 5.4 Useful concepts and properties
- 5.5 Advanced tweaks
- 5.6 Using music functions
- A. Notation manual tables
- A.1 Chord name chart
- A.2 Common chord modifiers
- A.3 Predefined string tunings
- A.4 Predefined fretboard diagrams
- A.5 Predefined paper sizes
- A.6 MIDI instruments
- A.7 List of colors
- A.8 The Emmentaler font
- Clef glyphs
- Time Signature glyphs
- Number glyphs
- Accidental glyphs
- Default Notehead glyphs
- Special Notehead glyphs
- Shape-note Notehead glyphs
- Rest glyphs
- Flag glyphs
- Dot glyphs
- Dynamic glyphs
- Script glyphs
- Arrowhead glyphs
- Bracket-tip glyphs
- Pedal glyphs
- Accordion glyphs
- Tie glyphs
- Vaticana glyphs
- Medicaea glyphs
- Hufnagel glyphs
- Mensural glyphs
- Neomensural glyphs
- Petrucci glyphs
- Solesmes glyphs
- Kievan Notation glyphs
- A.9 Note head styles
- A.10 Clef styles
- A.11 Text markup commands
- A.12 Text markup list commands
- A.13 List of special characters
- A.14 List of articulations
- A.15 Percussion notes
- A.16 Technical glossary
- A.17 All context properties
- A.18 Layout properties
- A.19 Available music functions
- A.20 Context modification identifiers
- A.21 Predefined type predicates
- A.22 Scheme functions
- B. Cheat sheet
- C. GNU Free Documentation License
- D. Índex d’ordres del LilyPond
- E. Índex del LilyPond
| [Part superior][Continguts][Índex][ ? ] |
Quant a aquest document
This document was generated by GUB on Juny 24, 2018 using texi2html 1.82.
Els botons dels plafons de navegació tenen els significat següent:
| Botó | Nom | Ves a | De 1.2.3 ves a |
|---|---|---|---|
| [] | |||
| [ << ] | Endarrere ràpid | Inici d’aquest capítol o capítol previ | 1 |
| [] | |||
| [Part superior] | Part superior | Portada (inici) del document | |
| [Continguts] | Continguts | Taula de continguts | |
| [Índex] | Índex | Índex | |
| [ ? ] | Quant a | Quant a (ajuda) | |
| [] | |||
| [ >> ] | Endavant ràpid | Capítol següent | 2 |
| [] | |||
| [] | |||
| [ < ] | Endarrere | Secció prèvia en ordre de lectura | 1.2.2 |
| [] | |||
| [ Amunt ] | Amunt | Amunt secció | 1.2 |
| [] | |||
| [ > ] | Endavant | Secció següent en ordre de lectura | 1.2.4 |
on l’ Exemple suposa que la posició actual està a Subsubsecció U-Dos-tres d’un document a l’estructura següent:
- 1. Secció u
- 1.1 Subsecció U-U
- ...
- 1.2 Subsecció U-Dos
- 1.2.1 Subsubsecció U-Dos-U
- 1.2.2 Subsubsecció U-Dos-Dos
- 1.2.3 Subsubsecció U-Dos-Tres <== Posició actual
- 1.2.4 Subsubsecció U-Dos-Quatre
- 1.3 Subsecció U-Tres
- ...
- 1.4 Subsecció U-Quatre
- 1.1 Subsecció U-U
Altres idiomes: English, deutsch, español, français, italiano, 日本語.
Quant a la selecció automàtica de la llengua.