[Part superior][Continguts] |
LilyPond — Fragments
Aquest document mostra un conjunt seleccionat de fragments del Lilypond del LilyPond Snippet Repository (LSR). Està en el domini públic. Voldríem donar moltes gràcies a Sebastiano Vigna per mantenir la pàgina web i la base de dades LSR, i a la Universitat de Milà per allotjar LSR. Si us plau noteu que aquest document no és un subconjunt exacte
del LSR: alguns fragments provenen del directory de codi Lilypond
‘input/new’, i els fragments del LSR es converteixen mitjançant
Els fragments estan agrupats per etiquetes; les etiquetes llistades a la taula de continguts concorden amb una secció del manual de notació del LilyPond. Els fragments poden tenir moltes etiquetes, i no totes les etiquetes del LSR poden aparèixer en aquest document. A la versió HTML d’aquest document podeu clicar sobre el nom del fitxer o figura per a cada exemple per veure el fitxer d’entrada corresponent. |
Notació musical | ||
---|---|---|
Pitches | Altures | |
Rhythms | Ritmes | |
Expressive marks | Marques expressives | |
Repeats | Repeticions | |
Simultaneous notes | Notes simultànies | |
Staff notation | Notació de pentagrama | |
Editorial annotations | Notació editorial | |
Text | ||
Notació especialitzada | ||
Vocal music | Música vocal | |
Chords | Acords | |
Keyboards | Teclats | |
Percussion | Percussió | |
Fretted strings | Cordes amb trastos | |
Unfretted strings | Cordes sense trastos | |
Winds | Vent | |
Ancient notation | Notació antiga | |
World music | Música del món | |
Altres col·leccions | ||
Contexts and engravers | Contextos i gravadors | |
Tweaks and overrides | Ajustos i sobreescriptures | |
Paper and layout | Paper i disposició | |
Titles | Títols | |
Spacing | Espaiat | |
MIDI | ||
Templates | Plantilles |
Para mayor información sobre la forma en que este manual se relaciona con el resto de la documentación, o para leer este manual en otros formatos, consulte Manuales. Si le falta algún manual, encontrará toda la documentación en https://lilypond.org/. |
[ << Top ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < Top ] | [ Amunt : Top ] | [ > ] |
Pitches
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < Pitches ] | [ Amunt : Pitches ] | [ > ] |
Afegir un àmbit per veu
Es pot afegir un àmbit per cada veu. En aquest cas, l’àmbit s’ha de desplaçar manualment per evitar col·lisions.
\new Staff << \new Voice \with { \consists "Ambitus_engraver" } \relative c'' { \override Ambitus.X-offset = #2.0 \voiceOne c4 a d e f1 } \new Voice \with { \consists "Ambitus_engraver" } \relative c' { \voiceTwo es4 f g as b1 } >>
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Afegir una indicació d’octava alta a una sola veu
Si teniu més d’una veu al mateix pentagrama, el canvi d’octavació d’una veu transportarà la posició de les notes en totes les veus mentre duri la clau de l’octava. Si l’octavació es vol aplicar sols a una veu, s’han d’ajustar explícitament la middleCPosition i la clau d’octava. En aquest fragment de codi el valor de middleCPosition per a la clau de Fa és normalment 6, sis posicions per sobre de la línia del Do central, de manera que en la porció de 8va el valor de middleCPosition és encara 7 posicions (una octava) més alta.
\layout { \context { \Staff \remove Ottava_spanner_engraver } \context { \Voice \consists Ottava_spanner_engraver } } { \clef bass << { <g d'>1~ q2 <c' e'> } \\ { r2. \ottava -1 <b,,, b,,>4 ~ | q2 \ottava 0 <c e>2 } >> }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Aiken head thin variant noteheads
Aiken head white notes get harder to read at smaller staff sizes, especially with ledger lines. Losing interior white space makes them appear as quarter notes.
\score { { \aikenHeads c''2 a' c' a % Switch to thin-variant noteheads \set shapeNoteStyles = ##(doThin reThin miThin faThin sol laThin tiThin) c'' a' c' a } }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Alterar la longitud de les pliques unides per una barra
Es pot variar la longitud de les pliques de les figures unides per
una barra mitjançant la sobreescriptura de la propietat
beamed-lengths
dels detalls (details
) de l’objecte
Stem
. Si s’utilitza un sol valor com argument, la longitud
s’aplica a totes les pliques. Si s’usen diversos arguments, el
primer s’aplica a les corxeres, el segon a les semicorxeres, i
així successivament. L’últim argument també s’aplica a totes les
figures que són més curtes que la longitud de la figura de l’últim
argument. També es poden usar arguments no enters.
\relative c'' { \override Stem.details.beamed-lengths = #'(2) a8[ a] a16[ a] a32[ a] \override Stem.details.beamed-lengths = #'(8 10 12) a8[ a] a16[ a] a32[ a] r8 \override Stem.details.beamed-lengths = #'(8) a8[ a] \override Stem.details.beamed-lengths = #'(8.5) a8[ a] \revert Stem.details.beamed-lengths a8[ a] a16[ a] a32[ a] r16 }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Indicacions de tessitura
Les indicacions d’àmbit o tessitura indiquen rangs d’altures per a les veus.
Les alteracions accidentals sols es mostren si no formen part de
l’armadura de tonalitat. Els objectes gràfics AmbitusNoteHead
també tenen línies addicionals.
\layout { \context { \Voice \consists "Ambitus_engraver" } } << \new Staff { \relative c' { \time 2/4 c4 f' } } \new Staff { \relative c' { \time 2/4 \key d \major cis4 as' } } >>
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Ambitus after key signature
By default, ambitus are positioned at the left of the clef. The
\ambitusAfter
function allows for changing this
placement. Syntax is \ambitusAfter grob-interface
(see
Graphical Object Interfaces for a list of possible values for
grob-interface
.)
A common use case is printing the ambitus between key signature and time signature.
\new Staff \with { \consists Ambitus_engraver } \relative { \ambitusAfter key-signature \key d \major es'8 g bes cis d2 }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Àmbits amb diverses veus
L’addició del gravador Ambitus_engraver
al context de
Staff
crea un sol àmbit per pentagrama, fins i tot en
el cas de pentagrames amb diverses veus.
\new Staff \with { \consists "Ambitus_engraver" } << \new Voice \relative c'' { \voiceOne c4 a d e f1 } \new Voice \relative c' { \voiceTwo es4 f g as b1 } >>
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Aplicar estils de cap segons la nota de l’escala
La propietat shapeNoteStyles
es pot usar per definir diversos
estils de caps de nota per a cada grau de l’escala (segons estigui
establert per l’armadura o per la propietat tonic
). Aquesta
propietat requereix un conjunt de símbols, que poden ser purament
arbitraris (es permeten expressions geomètriques com triangle
,
triangle, cross
, aspes, i xcircle
, cercle amb aspes) o
basats en una antiga tradició americana de gravat (també es permeten
certs noms de nota llatins).
Dit això, per imitar antics cançoners americans, hi ha diversos
estils predefinits de caps de nota disponibles mitjançant ordres
d’abreviatura com \aikenHeads
o \sacredHarpHeads
.
Aquest exemple mostra diferents formes d’obtenir caps de nota amb forma i mostra la capacitat de transportar una melodia sense perdre la correspondència entre les funcions harmòniques i els estils de caps de nota.
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 } }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Canviar la direcció de la plica de les notes de tercera línia automàticament, basat en la melodia
El LilyPond pot alterar la direcció de la plica de les notes que
van en la tercera línia d’un pentagrama de forma que segueixi la
melodia, mitjançant l’addició del gravador Melody_engraver
al context Voice i sobreescrivint el valor de
neutral-direction
per a l’objecte Stem (plica).
\relative c'' { \time 3/4 a8 b g f b g | \set suspendMelodyDecisions = ##t a b g f b g | \unset suspendMelodyDecisions c b d c b c | } \layout { \context { \Voice \consists "Melody_engraver" \autoBeamOff } }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Changing 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
.
Short text is especially useful when a brief ottava is used.
{ c'2 \ottava #1 \set Staff.ottavation = #"8" c''2 \ottava #0 c'1 \ottava #1 \set Staff.ottavation = #"Text" c''1 }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Modificació de la separació en les indicacions de tessitura
És possible ajustar la separació predeterminada entre les notes de la indicació de tessitura i la línia que les uneix.
\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'' }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Canviar l’interval de les línies de la pauta
S’usa staffLineLayoutFunction
per canviar la posició de les
notes. Aquest fragment de codi mostra com ajustar el seu valor al de
ly:pitch-semitones
per produir una escala cromàtica amb la
distància entre cada espai i línia del pentagrama igual a un semitò.
scale = \relative c' { a4 ais b c cis4 d dis e f4 fis g gis a1 } \new Staff \with { \remove "Accidental_engraver" staffLineLayoutFunction = #ly:pitch-semitones } { << \scale \context NoteNames { \set printOctaveNames = ##f \scale } >> }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Les claus es poden transposar en intervals arbitraris
Es poden transposar les claus en intervals arbitraris, no sols octaves.
\relative c' { \clef treble c4 c c c \clef "treble_8" c4 c c c \clef "treble_5" c4 c c c \clef "treble^3" c4 c c c }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Acolorir les notes segons la seva alçada
És possible acolorir el cap de les notes depenent de la seva alçada i/o del seu nom: la funció que s’usa en aquest exemple fa possible fins i tot distingir els harmònics.
%Association list of pitches to colors. #(define color-mapping (list (cons (ly:make-pitch 0 0 NATURAL) (x11-color 'red)) (cons (ly:make-pitch 0 0 SHARP) (x11-color 'green)) (cons (ly:make-pitch 0 1 FLAT) (x11-color 'green)) (cons (ly:make-pitch 0 2 NATURAL) (x11-color 'red)) (cons (ly:make-pitch 0 2 SHARP) (x11-color 'green)) (cons (ly:make-pitch 0 3 FLAT) (x11-color 'red)) (cons (ly:make-pitch 0 3 NATURAL) (x11-color 'green)) (cons (ly:make-pitch 0 4 SHARP) (x11-color 'red)) (cons (ly:make-pitch 0 5 NATURAL) (x11-color 'green)) (cons (ly:make-pitch 0 5 FLAT) (x11-color 'red)) (cons (ly:make-pitch 0 6 SHARP) (x11-color 'red)) (cons (ly:make-pitch 0 1 NATURAL) (x11-color 'blue)) (cons (ly:make-pitch 0 3 SHARP) (x11-color 'blue)) (cons (ly:make-pitch 0 4 FLAT) (x11-color 'blue)) (cons (ly:make-pitch 0 5 SHARP) (x11-color 'blue)) (cons (ly:make-pitch 0 6 FLAT) (x11-color 'blue)))) %Compare pitch and alteration (not octave). #(define (pitch-equals? p1 p2) (and (= (ly:pitch-alteration p1) (ly:pitch-alteration p2)) (= (ly:pitch-notename p1) (ly:pitch-notename p2)))) #(define (pitch-to-color pitch) (let ((color (assoc pitch color-mapping pitch-equals?))) (if color (cdr color)))) #(define (color-notehead grob) (pitch-to-color (ly:event-property (event-cause grob) 'pitch))) \score { \new Staff \relative c' { \override NoteHead.color = #color-notehead c8 b d dis ees f g aes } }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Crear una seqüència de notes a diferents alçades
En una música que tingui moltes aparicions de la mateixa seqüència de notes a diferents altures, podria ser d’utilitat la següent funció musical. Admet una nota, de la qual sols s’utilitza la seva alçada. Les funcions de suport a l’Scheme s’han agafat prestades del document de "Consells i ajustament" de la versió 2.10 del manual. Aquest exemple crea les duracions rítmiques que s’usen a tot el llarg de «Mart», de «Els Planetes» de Gustav Holst.
rhythm = #(define-music-function (p) (ly:pitch?) "Make the rhythm in Mars (the Planets) at the given pitch" #{ \tuplet 3/2 { $p 8 8 8 } 4 4 8 8 4 #}) \new Staff { \time 5/4 \rhythm c' \rhythm c'' \rhythm g }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Creació d’armadures personalitzades
El LilyPond accepta armadures personalitzades. En aquest exemple, es mostra l’armadura de re menor amb una rang estès de bemolls.
\new Staff \with { \override StaffSymbol.line-count = #8 \override KeySignature.flat-positions = #'((-7 . 6)) \override KeyCancellation.flat-positions = #'((-7 . 6)) % presumably sharps are also printed in both octaves \override KeySignature.sharp-positions = #'((-6 . 7)) \override KeyCancellation.sharp-positions = #'((-6 . 7)) \override Clef.stencil = # (lambda (grob)(grob-interpret-markup grob #{ \markup\combine \musicglyph "clefs.C" \translate #'(-3 . -2) \musicglyph "clefs.F" #})) clefPosition = #3 middleCPosition = #3 middleCClefPosition = #3 } { \key d\minor f bes, f bes, }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Direction of merged ’fa’ shape note heads
Using property NoteCollision.fa-merge-direction
, the
direction of ‘fa’ shape note heads (‘fa’, ‘faThin’, etc.)
can be controlled independently of the stem direction if two
voices with the same pitch and different stem directions are
merged. If this property is not set, the ‘down’ glyph variant
is used.
{ \clef bass << { \aikenHeads f2 \override Staff.NoteCollision.fa-merge-direction = #UP f2 } \\ { \aikenHeads f2 f2 } >> }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Force a cancellation natural before accidentals
The following example shows how to force a natural sign before an accidental.
\relative c' { \key es \major bes c des \tweak Accidental.restore-first ##t eis }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Forçar la impressió de la clau
Quan ja s’ha imprimit la clau i encara no s’ha canviat a una
diferent, el LilyPond ignorarà la repetició de l’ordre
\clef
, ja que no constitueix un canvi de clau. És
possible forçar la reimpressió de la clau usant l’ordre \set
Staff.forceClef = ##t
.
\relative c' { \clef treble c1 \clef treble c1 \set Staff.forceClef = ##t c1 \clef treble c1 }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Generació de notes aleatòries
Aquest fragment de codi basat en l’Scheme genera 24 notes aleatòries (o tantes com calguin), basant-se en l’hora actual (o en qualsevol nombre pseudo-aleatori que s’especifiqui en el seu lloc, per obtenir les mateixes notes aleatòries cada cop): és a dir, per obtenir diferents patrons de notes, sols ha de modificar aquest número.
\score { { $(let ((random-state (seed->random-state (current-time)))) (make-sequential-music (map (lambda (x) (let ((idx (random 12 random-state))) (make-event-chord (list (make-music 'NoteEvent 'duration (ly:make-duration 2 0 1/1) 'pitch (ly:make-pitch (quotient idx 7) (remainder idx 7) 0)))))) (make-list 24)))) } }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Ocultar les alteracions sobre notes lligades al principi d’un sistema nou
Aquí es mostra la manera d’ocultar les alteracions de les notes lligades al començament d’uns sistema nou.
\relative c'' { \override Accidental.hide-tied-accidental-after-break = ##t cis1~ cis~ \break cis }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Mantenir la mida del símbol en els canvis de clau
Quan es produeix un canvi de clau, el símbol de clau s’imprimeix a
una mida més petita que la clau inicial. Això es pot ajustar amb
full-size-change
.
\relative c' { \clef "treble" c1 \clef "bass" c1 \clef "treble" c1 \override Staff.Clef.full-size-change = ##t \clef "bass" c1 \clef "treble" c1 \revert Staff.Clef.full-size-change \clef "bass" c1 \clef "treble" c1 }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Exemple de «Makam»
El «Makam» és un tipus de melodia de Turquia que utilitza alteracions microtonals de 1/9 de to. Consulteu el fitxer d’inici ‘makam.ly’ (vegeu el «Manual d’aprenentatge 2.24.4, 4.6.3 Altres forms d’informació» per esbrinar la situació d’aquest fitxer) per veure detalls dels noms de les notes i les alteracions.
% 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 }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
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) (attach-dir . ,LEFT) (padding . 0) (stencil-align-dir-y . ,CENTER))) (right . ((Y . 5.0) ; Change the number here (padding . 0) (attach-dir . ,RIGHT) (text . ,(make-draw-dashed-line-markup (cons 0 -1.2)))))) \override Staff.OttavaBracket.left-bound-info = #ly:horizontal-line-spanner::calc-left-bound-info-and-text \override Staff.OttavaBracket.right-bound-info = #ly:horizontal-line-spanner::calc-right-bound-info \ottava #1 c1 c'''1 }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Armadures de tonalitat no tradicional
La molt utilitzada ordre \key
estableix la propietat
keyAlterations
, dins del context Staff
.
Per crear armadures de tonalitat no estàndard, ajusteu aquesta propietat directament. El format d’aquesta ordre és una llista:
\set Staff.keyAlterations = #`(((octava . pas) . alteració)
on, per cada element dins de la llista octava
especifica
l’octava (sent zero l’octava des del Do central fins al
Si per sobre), pas
especifica la nota dins de l’octava
(zero significa Do i 6 significa Si), i
alteració
és ,SHARP ,FLAT ,DOUBLE-SHARP
etc. (observeu la coma precedent).
De forma alternativa, per a cada element de la llista l’ús del
format més concís (pas. alteració)
especifica que la
mateixa alteració ha d’estar en totes les octaves.
Vet aquí un exemple d’una possible armadura per generar una escala exàtona:
\include "arabic.ly" \relative do' { \set Staff.keyAlterations = #`((0 . ,SEMI-FLAT) (1 . ,SEMI-FLAT) (2 . ,FLAT) (5 . ,FLAT) (6 . ,SEMI-FLAT)) %\set Staff.extraNatural = ##f re reb \dwn reb resd dod dob dosd \dwn dob | dobsb dodsd do do | }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Nombres com notes de notació fàcil
Els caps de nota de notació fàcil utilitzen la propietat
note-names
de l’objecte NoteHead
per determinar el
que apareix dins del cap. Mitjançant la sobreescriptura d’aquesta
propietat, és possible imprimir nombres que representen el grau de
l’escala.
Es pot crear un gravador simple que faci això per al cap de cada nota que ve.
#(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 }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Plantilla d’orquestra amb cor i piano
Aquesta plantilla mostra l’ús de contextos StaffGroup
i
GrandStaff
niuats per sub-agrupar instruments del mateix
tipus, i una forma d’usar \transpose
de manera que unes
variables continguin la música per a instruments transpositors en
afinació de concert.
#(set-global-staff-size 17) \paper { indent = 3.0\cm % add space for instrumentName short-indent = 1.5\cm % add less space for shortInstrumentName } fluteMusic = \relative c' { \key g \major g'1 b } % Pitches as written on a manuscript for Clarinet in A % are transposed to concert pitch. clarinetMusic = \transpose c' a \relative c'' { \key bes \major bes1 d } trumpetMusic = \relative c { \key g \major g''1 b } % Key signature is often omitted for horns hornMusic = \transpose c' f \relative c { d'1 fis } percussionMusic = \relative c { \key g \major g1 b } sopranoMusic = \relative c'' { \key g \major g'1 b } sopranoLyrics = \lyricmode { Lyr -- ics } altoIMusic = \relative c' { \key g \major g'1 b } altoIIMusic = \relative c' { \key g \major g'1 b } altoILyrics = \sopranoLyrics altoIILyrics = \lyricmode { Ah -- ah } tenorMusic = \relative c' { \clef "treble_8" \key g \major g1 b } tenorLyrics = \sopranoLyrics pianoRHMusic = \relative c { \key g \major g''1 b } pianoLHMusic = \relative c { \clef bass \key g \major g1 b } violinIMusic = \relative c' { \key g \major g'1 b } violinIIMusic = \relative c' { \key g \major g'1 b } violaMusic = \relative c { \clef alto \key g \major g'1 b } celloMusic = \relative c { \clef bass \key g \major g1 b } bassMusic = \relative c { \clef "bass_8" \key g \major g,1 b } \score { << \new StaffGroup = "StaffGroup_woodwinds" << \new Staff = "Staff_flute" \with { instrumentName = "Flute" } \fluteMusic \new Staff = "Staff_clarinet" \with { instrumentName = \markup { \concat { "Clarinet in B" \flat } } } % Declare that written Middle C in the music % to follow sounds a concert B flat, for % output using sounded pitches such as MIDI. %\transposition bes % Print music for a B-flat clarinet \transpose bes c' \clarinetMusic >> \new StaffGroup = "StaffGroup_brass" << \new Staff = "Staff_hornI" \with { instrumentName = "Horn in F" } % \transposition f \transpose f c' \hornMusic \new Staff = "Staff_trumpet" \with { instrumentName = "Trumpet in C" } \trumpetMusic >> \new RhythmicStaff = "RhythmicStaff_percussion" \with { instrumentName = "Percussion" } << \percussionMusic >> \new PianoStaff \with { instrumentName = "Piano" } << \new Staff { \pianoRHMusic } \new Staff { \pianoLHMusic } >> \new ChoirStaff = "ChoirStaff_choir" << \new Staff = "Staff_soprano" \with { instrumentName = "Soprano" } \new Voice = "soprano" \sopranoMusic \new Lyrics \lyricsto "soprano" { \sopranoLyrics } \new GrandStaff = "GrandStaff_altos" \with { \accepts Lyrics } << \new Staff = "Staff_altoI" \with { instrumentName = "Alto I" } \new Voice = "altoI" \altoIMusic \new Lyrics \lyricsto "altoI" { \altoILyrics } \new Staff = "Staff_altoII" \with { instrumentName = "Alto II" } \new Voice = "altoII" \altoIIMusic \new Lyrics \lyricsto "altoII" { \altoIILyrics } >> \new Staff = "Staff_tenor" \with { instrumentName = "Tenor" } \new Voice = "tenor" \tenorMusic \new Lyrics \lyricsto "tenor" { \tenorLyrics } >> \new StaffGroup = "StaffGroup_strings" << \new GrandStaff = "GrandStaff_violins" << \new Staff = "Staff_violinI" \with { instrumentName = "Violin I" } \violinIMusic \new Staff = "Staff_violinII" \with { instrumentName = "Violin II" } \violinIIMusic >> \new Staff = "Staff_viola" \with { instrumentName = "Viola" } \violaMusic \new Staff = "Staff_cello" \with { instrumentName = "Cello" } \celloMusic \new Staff = "Staff_bass" \with { instrumentName = "Double Bass" } \bassMusic >> >> \layout { } }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Evitar que s’afegeixen becaires addicionals automàticament
Segons les regles tradicionals de composició tipogràfica, s’imprimeix
un becaire abans d’un sostingut o un bemoll quan s’ha de cancel·lar
un doble sostingut o un doble bemoll anterior en la mateixa nota. Per
modificar aquest comportament a la pràctica actual establiu el valor
de la propietat extraNatural
a ##f
(fals) dins del
context de Staff
.
\relative c'' { aeses4 aes ais a \set Staff.extraNatural = ##f aeses4 aes ais a }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Evitar que se impriman becuadros cuando cambia la armadura
Quan es canvia l’armadura de la tonalitat, s’imprimeixen becaires
automàticament per cancel·lar les alteracions de les armadures
anteriors. Això es pot evitar establint al valor “falso” la
propietat printKeyCancellation
del context Staff
.
\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 }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Citació d’una altra veu amb transposició
Els passatges citats tenen en compte la trasnposició de la font tant
com la del destí. En aquest exemple, tots els instruments interpreten
una nota amb el so de Do central; el destí d’un instrument
transpositor en Fa. La part de destí es pot transportar utilitzant
\transpose
. En aquest cas les notes citades romanen sense
canvis.
\addQuote clarinet { \transposition bes \repeat unfold 8 { d'16 d' d'8 } } \addQuote sax { \transposition es' \repeat unfold 16 { a8 } } quoteTest = { % french horn \transposition f g'4 << \quoteDuring "clarinet" { \skip 4 } s4^"clar." >> << \quoteDuring "sax" { \skip 4 } s4^"sax." >> g'4 } { \new Staff \with { instrumentName = \markup { \column { Horn "in F" } } } \quoteTest \transpose c' d' << \quoteTest s4_"up a tone" >> }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Separar les cancel·lacions de tonalitat dels canvis d’armadura
De forma predeterminada, les alteracions accidentals que s’usen
per a les cancel·lacions a les armadures es col·loquen adjacents
a les que s’usen per als canvis de tonalitat. Aquest comportament
es pot canviar sobreescrivint la propietat 'break-align-orders
de l’objecte gràfic BreakAlignment
.
El valor de 'break-align-orders
és un vector de longitud 3, amb
llistes entre cometes els elements de les quals són objectes que
es poden dividir en un salt. Aquest exemple sols modifica la
segona llista, movent key-cancellation
abans de staff-bar
;
modificant la segona llista, el comportament d’alineació dels
salts canvia en la meitat d’un sistema, no al principi ni al final.
\new Staff { \override Score.BreakAlignment.break-align-orders = ##((left-edge ambitus breathing-sign clef staff-bar key-cancellation key-signature time-signature custos) (left-edge ambitus breathing-sign clef key-cancellation staff-bar key-signature time-signature custos) (left-edge ambitus breathing-sign clef key-cancellation key-signature staff-bar time-signature custos)) \key des \major c'1 \bar "||" \key bes \major c'1 }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Transposició de la música amb el menor nombre d’alteracions
Aquest exemple utilitza codi de l’Scheme per forçar les modificacions enharmòniques de les notes, i així tenir el menor nombre d’alteracions accidentals. En aquest cas s’apliquen les regles següents:
- Es treuen les alteracions dobles
- Si sostingut -> Do
- Mi sostingut -> Fa
- Do bemoll -> Si
- Fa bemoll -> Mi
D’aquesta forma se selecciona el major nombre de notes enharmòniques naturals.
#(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 { } }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Turkish Makam example
This template uses the start of a well-known Turkish Saz Semai that is familiar in the repertoire in order to illustrate some of the elements of Turkish music notation.
\paper { tagline = ##f } % Initialize makam settings \include "turkish-makam.ly" \header { title = "Hüseyni Saz Semaisi" composer = "Lavtacı Andon" } \relative { \set Staff.extraNatural = ##f \set Staff.autoBeaming = ##f \key a \huseyni \time 10/8 a'4 g'16 [fb] e8. [d16] d [c d e] c [d c8] bfc | a16 [bfc a8] bfc c16 [d c8] d16 [e d8] e4 fb8 | d4 a'8 a16 [g fb e] fb8 [g] a8. [b16] a16 [g] | g4 g16 [fb] fb8. [e16] e [g fb e] e4 r8 | }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ > ] |
Ajustament de les propietats de clau
La modificació del glif de la clau, la seva posició o octava, no
canvien ’per se’ la posició de les notes següents del
pentagrama. Per aconseguir armadures adequades de tonalitat sobre
les línies del pentagrama, s’ha d’especificar també
middleCClefPosition
, amb valor positius o negatius que
moguin Do central
cap amunt o cap avall, respectivament, en
relació amb la línia central del pentagrama (usualment la
tercera).
Per exemple, l’ordre \clef "treble_8"
equival a un
ajustament de clefGlyph
, clefPosition
(que controla
la posició vertical de la clau sobre el pentagrama),
middleCPosition
i clefTransposition
. Se imprimeix
la clau cada cop que es modifica qualsevol de les propietats
excepte middleCPosition
.
Els exemple següents mostren les possibilitats quan s’ajusten aquestes propietats manualment. En la primera línia, els canvis manuals preserven la posició relativa estàndard de les clau i les notes, però no ho fan a la segona línia.
{ % 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 }
[ << Pitches ] | [Part superior][Continguts] | [ Rhythms >> ] |
[ < ] | [ Amunt : Pitches ] | [ Rhythms > ] |
Usar canvi automàtic de pentagrama amb més d’una veu
Utilització de autochange
amb més d’una veu.
\score { \new PianoStaff << \new Staff = "up" { << \set Timing.beamExceptions = #'() \set Timing.beatStructure = #'(4) \new Voice { \voiceOne \autoChange \relative c' { g8 a b c d e f g g,8 a b c d e f g } } \new Voice { \voiceTwo \autoChange \relative c' { g8 a b c d e f g g,,8 a b c d e f g } } >> } \new Staff = "down" { \clef bass } >> }
[ << Pitches ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Top ] | [ > ] |
Rhythms
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < Rhythms ] | [ Amunt : Rhythms ] | [ > ] |
Afegir barres, lligadures d’expressió i d’unió, etc., quan s’usen ritmes amb i sense grups de valoració especial.
La sintaxi del LilyPond pot implicar moltes col·locacions poc comunes per als parèntesis, claus, etc., que a vegades s’han d’intercalar. Per exemple, en introduir una barra manual, la clau esquerra d’apertura s’ha d’escriure després de la nota inicial i de la seva duració, no abans. De forma semblant, la clau dreta de tancament ha de seguir immediatament a la nota que es vol ubicar al final del barrat, fins i tot si aquesta nota resulta estar dins d’un grup de valoració especial. Aquest fragment de codi mostra com combinar el barrat manual, les lligadures d’expressió i d’unió i les lligadures de fraseig, amb seccions de valoració especial (tancades entre claus).
{ r16[ g16 \tuplet 3/2 { r16 e'8] } g16( a \tuplet 3/2 { b d e') } g8[( a \tuplet 3/2 { b d') e'] ~ } \time 2/4 \tuplet 5/4 { e'32\( a b d' e' } a'4.\) }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Escriptura de parts de percussió
Mitjançant la utilització de les potents eines preconfigurades com
la funció \drummode
i el context DrumStaff
, la
introducció de parts per a percussió és molt fàcil: les percussions
se situen en les seves pròpies posicions de pentagrama (amb una
clau especial) i tenen els caps corresponents a l’instrument. És
possible afegir un símbol addicional a la percussió o reduir el
nombre de línies.
drh = \drummode { cymc4.^"crash" hhc16^"h.h." hh hhc8 hho hhc8 hh16 hh hhc4 r4 r2 } drl = \drummode { bd4 sn8 bd bd4 << bd ss >> bd8 tommh tommh bd toml toml bd tomfh16 tomfh } timb = \drummode { timh4 ssh timl8 ssh r timh r4 ssh8 timl r4 cb8 cb } \score { << \new DrumStaff \with { instrumentName = "timbales" drumStyleTable = #timbales-style \override StaffSymbol.line-count = #2 \override BarLine.bar-extent = #'(-1 . 1) } << \timb >> \new DrumStaff \with { instrumentName = "drums" } << \new DrumVoice { \stemUp \drh } \new DrumVoice { \stemDown \drl } >> >> \layout { } \midi { \tempo 4 = 120 } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Ajustament d’espaiat de les notes d’adorn
Es poden ajustar la separació entre les notes d’adorn utilitzant
la propietat spacing-increment
de Score.GraceSpacing
.
graceNotes = { \grace { c4 c8 c16 c32 } c8 } \relative c'' { c8 \graceNotes \override Score.GraceSpacing.spacing-increment = #2.0 \graceNotes \revert Score.GraceSpacing.spacing-increment \graceNotes }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Alineació dels números de compàs
Els números de compàs s’alineen de forma predeterminada per la dreta amb el seu objecte pare. Aquest objecte és pel general la vora esquerra, d’una línia o, si els números s’imprimeixen dins de la línia, la vora esquerra d’una línia divisòria. Els números també es poden situar directament sobre la barra de compàs o alineats per l’esquerra amb ella.
\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 }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Formes alternatives de la figura breu
Les figures de breu també estan disponibles amb dues línies verticals a les vores del cap en lloc d’una sola línia i la forma en estil barroc.
\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 }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Appoggiatura or grace note before a bar line
By default, appoggiaturas and grace notes that occur on the first beat of a measure are printed after the bar line. They can however be printed before, simply by adding an invisible BarLine and then the visible one, as demonstrated here.
{ R1 %% default \appoggiatura d''8 c''4 r2. %% cheated \appoggiatura { \bar "" d''8 \bar "|" } c''4 r2. }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Subdivisions de barra automàtiques
Es poden subdividir les barres automàticament. Establint la
propietat subdivideBeams
, les barres se subdivideixen en
posiciones de pols (tal i com s’especifica a beatLength
).
\new Staff { \relative c'' { << { \voiceOne \set subdivideBeams = ##t b32[ a g f c' b a g b32^"subdivide beams" a g f c' b a g] } \new Voice { \voiceTwo b32_"default"[ a g f c' b a g b32 a g f c' b a g] } >> \oneVoice \set baseMoment = #(ly:make-moment 1/8) \set beatStructure = 2,2,2,2 b32^"baseMoment 1 8"[ a g f c' b a g] \set baseMoment = #(ly:make-moment 1/16) \set beatStructure = 4,4,4,4 b32^"baseMoment 1 16"[ a g f c' b a g] } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Modificar duracions automàticament
Es pot usar shiftDurations
per canviar la longitud de les
notes d’una peça musical. Agafa dos arguments: El factor
d’escalat com una potència de dos, i el nombre de puntets a afegir
com un enter positiu.
\paper { indent = 0 } music = \relative c'' { a1 b2 c4 d8 r } \score { \new Voice { \time 4/2 \music \time 4/4 \shiftDurations #1 #0 { \music } \time 2/4 \shiftDurations #2 #0 { \music } \time 4/1 \shiftDurations #-1 #0 { \music } \time 8/1 \shiftDurations #-2 #0 { \music } \time 6/2 \shiftDurations #0 #1 { \music } \time 7/2 \shiftDurations #0 #2 { \music } } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Finals de barra en el context Score
Les regles de final de barra especificades en el context
Score
s’apliquen a tots els pentagrames, però es poden
modificar tant en els nivells de Staff
como de
Voice
:
\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 } >> } >> }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Barres que travessen salts de línia
Normalment estan prohibits els salts de línia si les barres travessen les línies divisòries. Es pot canviar aquest comportament com es mostra aquí:
\relative c'' { \override Beam.breakable = ##t c8 c[ c] c[ c] c[ c] c[ \break c8] c[ c] c[ c] c[ c] c }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Canviar el salt de les barres en angle
S’insereixen automàticament barres en angle quan es detecta un
interval molt gran entre les notes. Es pot fer un ajustament fi
d’aquest comportament mitjançant de la propietat auto-knee-gap
.
Es traça una barra doblada si el salt és més gran que el valor de
auto-knee-gap
més l’amplada de l’objecte barra (que depèn de la
duració de les notes i de la inclinació de la barra). De forma
predeterminada auto-knee-gap
està establerta a 5.5 espais de
pentagrama.
{ f8 f''8 f8 f''8 \override Beam.auto-knee-gap = #6 f8 f''8 f8 f''8 }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Canviar la forma dels silencis multicompàs
Si hi ha deu compassos de silenci o menys, s’imprimeix en el
pentagrama una sèrie de silencis de breu i longa (coneguts en alemany
com “Kirchenpausen”, «silencis eclesiàstics»); en cas contrari es
mostra una barra normal. Aquest nombre predeterminat de deu es pot
canviar sobreescrivint la propietat expand-limit
:
\relative c'' { \compressMMRests { R1*2 | R1*5 | R1*9 \override MultiMeasureRest.expand-limit = #3 R1*2 | R1*5 | R1*9 } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Modificar el nombre de puntets d’una nota
La quantitat de puntets d’una nota es pot modificar independentment dels puntets que s’escriuen després d’una nota.
\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 | }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Canviar el tempo sense indicació metronòmica
Per canviar el tempo a la sortida MIDI sense imprimir res, fem invisible la indicació metronòmica:
\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 { } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Canviar el número del grup especial
De forma predeterminada sols s’imprimeix sobre la clau de grup el
numerador del grup especial, és a dir, el numerador de l’argument de l’odre
\tuplet
.
De forma alternativa, es pot imprimir una fracció en la forma numerador:denominador del número de del grup, o eliminar el número.
\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 } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Modificar el compàs d’una secció polimètrica utilitzant \scaleDurations
La propietat measureLength
, junt amb
measurePosition
, determina quan cal dibuixar una línia
divisòria. No obstant, en utilitzar \scaleDurations
,
l’escalat proporcional de les duracions fa difícil introduir
canvis de compàs. En aquest cas s’ha d’establir manualment el
valor de measureLength
utilitzant la funció
ly:make-moment
. El segon argument ha de ser el mateix que
el segon artgument de \scaleDurations
.
\layout { \context { \Score \remove "Timing_translator" } \context { \Staff \consists "Timing_translator" } } << \new Staff { \scaleDurations 8/5 { \time 6/8 \set Timing.measureLength = #(ly:make-moment 6/5) b8 b b b b b \time 2/4 \set Timing.measureLength = #(ly:make-moment 4/5) b4 b } } \new Staff { \clef bass \time 2/4 c2 d e f } >>
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Notació de responsos o salms
Aquest tipus de notació s’utilitza per als cants salmòdics, en les quals les estrofes no sempre tenen la mateixa longitud.
stemOff = \hide Staff.Stem stemOn = \undo \stemOff \score { \new Staff \with { \remove "Time_signature_engraver" } { \key g \minor \cadenzaOn \stemOff a'\breve bes'4 g'4 \stemOn a'2 \section \stemOff a'\breve g'4 a'4 \stemOn f'2 \section \stemOff a'\breve^\markup { \italic flexe } \stemOn g'2 \fine } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Indicacions de compassos compostos
Les indicacions de compàs poc freqüents com "5/8" es poden executar com a compassos compostos (per exemple "3/8 + 2/8"), que combinen dos o més metres diferents. El LilyPond pot fer la música d’aquest tipus fàcil de llegir e interpretar, imprimint explícitament les indicacions de compàs compost i adaptant el comportament automàtic de les barres (també es poden afegir indicacions gràfiques de l’agrupació de compassos; vegeu el fragment de codi apropiat en la base de dades).
\relative c' { \compoundMeter #'((2 8) (3 8)) c8 d e fis gis c8 fis, gis e d c8 d e4 gis8 }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Símbols de direcció y símbols d’agrupació de compàs
L’agrupació de pulsacions dins d’un compàs està controlada per la
propietat de context beatStructure
. Hi ha establerts valors de
beatStructure
per a molts tipus de compassos a
scm/time-signature-settings.scm
. Els valors de
beatStructure
es poden canviar o establir amb \set
. Com
alternativa, es pot usar \time
per establir tant el compàs com
l’estructura de pulsacions. Per això, especifiquem l’agrupació
interna de les pulsacions del compàs com una llista de nombres (en la
sintaxi de l’Scheme) abans de la indicació del compàs.
\time
s’aplica al context Timing
, per la qual cosa no
restableix els valors de beatStructure
ni de baseMoment
que s’estableixen en altres contextos de nivell inferior, com
Voice
.
Si el gravador Measure_grouping_engraver
està inclòs en un dels
contextos de presentació, s’imprimiran signes d’agrupació de
pulsacions. Aquests símbols faciliten la lectura de música moderna
rítmicament complexa. En aquest exemple, el compàs de 9/8 s’agrupa
segons dos patrons diferents utilitzant els dos mètodes, mentre que el
compàs de 5/8 s’agrup d’acord amb l’ajustament predeterminat que està
a 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" } } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Números de compàs alineats a l’esquerra de forma consistent
Quan s’alinien els números de compàs, poden aparèixer problemes de superposició amb les claus de sistema. Aquest fragment de codi ho resoleu deixant alineats a la dreta els números de compàs després d’un salt de línia.
consistentlyLeftAlignedBarNumbers = { \override Score.BarNumber.break-visibility = #end-of-line-invisible \override Score.BarNumber.self-alignment-X = #(lambda (grob) (let ((break-dir (ly:item-break-dir grob))) (if (= break-dir RIGHT) RIGHT LEFT))) } \new ChoirStaff << \new Staff { \relative c' { \set Score.barNumberVisibility = #(every-nth-bar-number-visible 3) \bar "" \consistentlyLeftAlignedBarNumbers \set Score.currentBarNumber = #112 \repeat unfold 8 { R1 } \break \repeat unfold 9 { R1 } \break \repeat unfold 7 { R1 } } } \new Staff { \relative c' { \repeat unfold 24 { R1 } } } >> \layout { indent = #0 ragged-right = ##t ragged-last = ##t }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Control de la visibilitat dels corxets de grup especial
El comportament predeterminat de la visibilitat dels corxets de
grup de valoració especial és imprimir el corxet a no ser que hi
hagi una barra de la mateixa longitud que el grup especial. Per
controlas la visibilitat dels corxets de grup, establiu la propietat
'bracket-visibility
a #t
(sempre imprimir el corxet).
#f
(no imprimir-lo mai) o #'if-no-beam
(imprimir el
corxet sols si no hi ha barra).
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' { \override Score.TextMark.non-musical = ##f \textMark "default" \music \override TupletBracket.bracket-visibility = #'if-no-beam \textMark \markup \typewriter "'if-no-beam" \music \override TupletBracket.bracket-visibility = ##t \textMark \markup \typewriter "#t" \music \override TupletBracket.bracket-visibility = ##f \textMark \markup \typewriter "#f" \music \omit TupletBracket \textMark \markup \typewriter "omit" \music } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Cow and ride bell example
Two different bells, entered with ’cb’ (cowbell) and ’rb’ (ridebell).
\paper { tagline = ##f } #(define mydrums '((ridebell default #f 3) (cowbell default #f -2))) \new DrumStaff \with { instrumentName = #"Different Bells" } \drummode { \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums) \set DrumStaff.clefPosition = 0.5 \override DrumStaff.StaffSymbol.line-positions = #'(-2 3) \override Staff.BarLine.bar-extent = #'(-1.0 . 1.5) \time 2/4 rb8 8 cb8 16 rb16-> ~ | 16 8 16 cb8 8 | }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Crear indicacions metronòmiques en mode de marcatge
Es poden crear indicacions metronòmiques noves en mode de marcatge, però no canvien el tempo en la sortida MIDI.
\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 }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Gravat manual de les lligadures
Es poden gravar a mà les lligadures modificant la propietat
tie-configuration
de l’objecte TieColumn
. El primer
nombre indica la distància a partir de la tercera línia del pentagrama
en espais de pentagrama, i el segon nombre indica la direcció (1 =
cap amunt, -1 = cap avall).
\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> \override TieColumn.tie-configuration = #'((0 . 1) (-2 . 1) (-4 . 1)) <c e g>2~ <c e g> }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Trèmols amb barres flotants
Si la duració total d’un trèmol és menor d’una negra, o exactament
d’una blanca, normalment es grava amb totes les barres de corxera
tocant les pliques. Certs estils de notació de partitures composen
algunes d’aquestes barres com a barres flotants centrades que no
toquen les pliques de les figures. El nombre de barres flotants en
aquest tipus de trèmol està controlat per la propietat
'gap-count
del l’objecte Beam
i la separació
entre les barres i les pliques es fixa amb la propietat 'gap
.
\relative c'' { \repeat tremolo 8 { a32 f } \override Beam.gap-count = #1 \repeat tremolo 8 { a32 f } \override Beam.gap-count = #2 \repeat tremolo 8 { a32 f } \override Beam.gap-count = #3 \repeat tremolo 8 { a32 f } \override Beam.gap-count = #3 \override Beam.gap = #1.33 \repeat tremolo 8 { a32 f } \override Beam.gap = #1 \repeat tremolo 8 { a32 f } \override Beam.gap = #0.67 \repeat tremolo 8 { a32 f } \override Beam.gap = #0.33 \repeat tremolo 8 { a32 f } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
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 } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Claudàtors rectes i extrems de barra separats
Són possibles tant els claudàtors rectes sobre notes soltes com
extrems de barra separats en figures unides, amb una combinació de
stemLeftBeamCount
, stemRightBeamCount
i indicadors de
barra []
emparellats.
Per a claudàtors rectes que apunten a la dreta sobre notes soltes,
useu indicadors de barra emparellats []
y establiu
stemLeftBeamCount
a zero (vegeu l’exemple 1).
Per a claudàtors rectes que apunten a l’esquerra, establiu en
canvi stemRightBeamCount
(exemple 2).
Per a extrems separats que apunten a la dreta al final d’un
conjunt de notes unides, establiu stemRightBeamCount
a un
valor positiu. I per a extrems separats que apunten a l’esquerra
al principi d’un conjunt de notes unides, establiu
stemLeftBeamCount
en canvi (exemple 3).
A vegades per a una nota separada rodejada de silencis té sentit
que porti els dos extrems separats del claudàtor pla, apuntant a
la dreta i a l’esquerra. Feu-lo sols amb indicadors de barra
emparellats [ ]
(exemple 4).
Observeu que \set stemLeftBeamCount
sempre equival a
\once \set
. En altres paraules, els ajustaments de la
quantitat de barres no es recorden, i per això el parell de
claudàtors plans aplicats a la nota Do semicorxera c'16[]
de l’últim exemple no té res a veure amb el \set
de dues
notes per darrera.
\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 } >> }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Forçar que les marques d’assaig comencin en una lletra o nombre donats
Aquest fragment de codi mostra com obtenir marques d’assaig ordenades automàticament, però partint de la lletra o nombre desitjat.
\relative c'' { c1 \mark \default c1 \mark \default c1 \mark \default c1 \mark #14 c1 \mark \default c1 \mark \default c1 \mark \default c1 }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Generar claudàtors personalitzats
La propietat stencil
del grob Flag
(l’objecte gràfic
claudàtor) es pot fixar a un funció de l’Scheme personalitzat que
genera el glif del claudàtor.
#(define-public (weight-flag grob) (let* ((stem-grob (ly:grob-parent grob X)) (log (- (ly:grob-property stem-grob 'duration-log) 2)) (is-up? (eqv? (ly:grob-property stem-grob 'direction) UP)) (yext (if is-up? (cons (* log -0.8) 0) (cons 0 (* log 0.8)))) (flag-stencil (make-filled-box-stencil '(-0.4 . 0.4) yext)) (stroke-style (ly:grob-property grob 'stroke-style)) (stroke-stencil (if (equal? stroke-style "grace") (make-line-stencil 0.2 -0.9 -0.4 0.9 -0.4) empty-stencil))) (ly:stencil-add flag-stencil stroke-stencil))) % Create a flag stencil by looking up the glyph from the font #(define (inverted-flag grob) (let* ((stem-grob (ly:grob-parent grob X)) (dir (if (eqv? (ly:grob-property stem-grob 'direction) UP) "d" "u")) (flag (retrieve-glyph-flag "" dir "" grob)) (line-thickness (ly:staff-symbol-line-thickness grob)) (stem-thickness (ly:grob-property stem-grob 'thickness)) (stem-width (* line-thickness stem-thickness)) (stroke-style (ly:grob-property grob 'stroke-style)) (stencil (if (null? stroke-style) flag (add-stroke-glyph flag stem-grob dir stroke-style ""))) (rotated-flag (ly:stencil-rotate-absolute stencil 180 0 0))) (ly:stencil-translate rotated-flag (cons (- (/ stem-width 2)) 0)))) snippetexamplenotes = { \autoBeamOff c'8 d'16 c'32 d'64 \acciaccatura {c'8} d'64 } { \time 1/4 \textMark "Normal flags" \snippetexamplenotes \textMark "Custom flag: inverted" \override Flag.stencil = #inverted-flag \snippetexamplenotes \textMark "Custom flag: weight" \override Flag.stencil = #weight-flag \snippetexamplenotes \textMark "Revert to normal" \revert Flag.stencil \snippetexamplenotes }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Ritmes rasguejats de guitarra
Per a la música de guitarra, és possible mostrar els ritmes de rasgueig, a més de les notes de la melodia, acords i diagrames de posicions.
\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. } } >>
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Indicacions polimètricques de compàs totalment personalitzades
Tot i que l’element més essencial no és la indicació polimètrica de compàs que es mostra, s’ha inclòs per mostrar la pulsació de la peça, que és la plantilla d’una cançó real dels Balcans.
melody = \relative c'' { \key g \major \compoundMeter #'((3 8) (2 8) (2 8) (3 8) (2 8) (2 8) (2 8) (2 8) (3 8) (2 8) (2 8)) c8 c c d4 c8 c b c b a4 g fis8 e d c b' c d e4-^ fis8 g \break c,4. d4 c4 d4. c4 d c2 d4. e4-^ d4 c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 \break c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 \break } drum = \new DrumStaff \drummode { \repeat volta 2 { bd4.^\markup { Drums } sn4 bd \bar ";" sn4. bd4 sn \bar ";" bd sn bd4. sn4 bd } } \new Staff \with { instrumentName = \markup { \concat { "B" \flat " Sop." } } } { \melody \drum }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
High and Low woodblock example
Two Woodblocks, entered with ’wbh’ (high woodblock) and ’wbl’ (low woodblock). The length of the barline has been altered with an \override command otherwise it would be too short. The positions of the two stafflines also have to be explicitly defined.
\paper { tagline = ##f } % These lines define the position of the woodblocks in the stave; % if you like, you can change it or you can use special note heads % for the woodblocks. #(define mydrums '((hiwoodblock default #f 3) (lowoodblock default #f -2))) woodstaff = { % This defines a staff with only two lines. % It also defines the positions of the two lines. \override Staff.StaffSymbol.line-positions = #'(-2 3) % This is necessary; if not entered, % the barline would be too short! \override Staff.BarLine.bar-extent = #'(-1.0 . 1.5) % small correction for the clef: \set DrumStaff.clefPosition = 0.5 } \new DrumStaff { % with this you load your new drum style table \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums) \woodstaff \drummode { \time 2/4 wbl8 16 16 8-> 8 | wbl8 16 16-> ~ 16 16 r8 | } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Fer invisible un objecte amb la propietat ’transparent
Si s’ajusta la propietat transparent
d’un objecte,
s’imprimeix en “tinta invisible”: l’objecte no s’imprimeix però
es retenen tots els seus altres comportaments. L’objecte encara
ocupa espai, participa en les col·lisions i se li poden afegir
lligadures d’expressió, lligadures d’unió i barres de corxera.
Aquest fragment de codi mostra com connectar diferents veus usant lligadures d’únió. Normalment les lligadures d’unió sols connecten dues notes que estiguin a la mateixa veu. Mitjançant la introducció d’una lligadura en una veu diferent i pintant de color blanc la primera plica cap a amunt dins d’aquesta veu, la lligadura sembla creuar d’una veu a l’altra.
\relative { \time 2/4 << { \once \hide Stem \once \override Stem.length = #8 b'8 ~ 8\noBeam \once \hide Stem \once \override Stem.length = #8 g8 ~ 8\noBeam } \\ { b8 g g e } >> }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Fer lligadures d’expressió amb estructura complexa de discontinuïtat
Les lligadures d’expressió es poden construir amb patrons de
discontinuïtat complexos mitjançant la definició de la propietat
dash-definition
. dash-definition
és una llista de
paràmetres que defineixen el comportament de discontinuïtat d’un
segment de la lligadura d’expressió.
La lligadura es defineix en termes del paràmetre de bezier t el
rang del qual va de 0 a l’esquerra de la lligadura fins a 1 a
l’extrem dret de la lligadura. cada element de
discontinuïtat
és una llista (t-inici t-final
fracció-discontinuïtat període-discontinuitat)
. La regió de la
lligadura des de t-inici
fins a t-final
tindrà una
fracció fracció-discontinuitat
de cada
període-discontinuïtat
de color negre.
període-discontinuïtat
es defineix en termes d’espais de
pentagrama. fracció-discontinuïtat
s’estableix al valor
d’1 per a una lligadura contïnua.
\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) }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Control manual de les posicions de les barres
Es poden controlar manualment les posicions de les barres de
corxera sobreescrivint el valor del paràmetre positions
de
l’objecte gràfic Beam
.
\relative c' { \time 2/4 % from upper staff-line (position 2) to center (position 0) \override Beam.positions = #'(2 . 0) c8 c % from center to one above center (position 1) \override Beam.positions = #'(0 . 1) c8 c }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Combinació dels silencis multicompàs a una part polifònica
Quan s’usen silencis multicompàs en un pentagrama polifònic, els silencis s’ubiquen de forma diferent depenent de a quina veu pertanyin. Malgrat això, es poden imprimir sobre la mateixa línia del pentagrama, usant l’ajustament que apareix a continuació.
normalPos = \revert MultiMeasureRest.direction { << { c''1 R1 c''1 \normalPos R1 } \\ { c'1 R1 c'1 \normalPos R1 } >> }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Modificació de la longitud del corxet de grup especial
Tuplet brackets can be made to run to prefatory matter or the next note. Default tuplet brackets end at the right edge of the final note of the tuplet; full-length tuplet brackets extend farther to the right, either to cover all the non-rhythmic notation up to the following note, or to cover only the whitespace before the next item of notation, be that a clef, time signature, key signature, or another note. The example shows how to switch tuplets to full length mode and how to modify what material they cover.
\new RhythmicStaff { % Set tuplets to be extendable... \set tupletFullLength = ##t % ...to cover all items up to the next note \set tupletFullLengthNote = ##t \time 2/4 \tuplet 3/2 { c4 4 4 } % ...or to cover just whitespace \set tupletFullLengthNote = ##f \time 4/4 \tuplet 5/4 { 4 1 } \time 3/4 2. }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Desplaçament de les notes amb puntet en polifonia
Quan una nota amb puntet a la veu superior es mou per evitar la
col·lisió amb una nota de una altra veu, el comportament
predeterminat és desplaçar la nota superior a la dreta. Es pot
canviar usant la propietat prefer-dotted-right
de
NoteCollision
.
\new Staff \relative c' << { f2. f4 \override Staff.NoteCollision.prefer-dotted-right = ##f f2. f4 \override Staff.NoteCollision.prefer-dotted-right = ##t f2. f4 } \\ { e4 e e e e e e e e e e e } >>
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Multi-measure rest length control
Multi-measure rests have length according to their total duration which
is under the control of MultiMeasureRest.space-increment
. Note
that the default value is 2.0
.
\relative c' { \compressEmptyMeasures R1*2 R1*4 R1*64 R1*16 \override Staff.MultiMeasureRest.space-increment = 2.5 R1*2 R1*4 R1*64 R1*16 }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Marcatge de silencis multicompàs
Els elements de marcatge aplicats a un silenci multicompàs se centren a sobre o a sota del silenci. Els elements de marcatge extensos que s’adjunten a silencis multicompàs no produeixen l’expansió del comàs. Per expandir un silenci multicompàs de forma que càpiga tot el marcatge, utilitzeu un acord buit amb un marcatge aplicat abans del silenci multicompàs.
El text aplicat a un silenci separador d’aquesta forma s’alinea per l’esquerra a la posició en la qual la nota estaria situada dins del compàs, però si la longitud del compàs està determinada per la longitud del text, el text apareixerà centrat.
\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 } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Nombres d’agrupació especial diferents o els predeterminats
El LilyPond també proporciona funcions de format per imprimir números de grup especial diferents a la pròpia fracció, així com per afegir una figura al número o a la fracció de l’agrupació.
\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) (ly:make-duration 3 0)) \tuplet 3/2 { c4. c4. c4. c4. } \once \override TupletNumber.text = #(tuplet-number::append-note-wrapper tuplet-number::calc-denominator-text (ly:make-duration 2 0)) \tuplet 3/2 { c8 c8 c8 c8 c8 c8 } \once \override TupletNumber.text = #(tuplet-number::append-note-wrapper tuplet-number::calc-fraction-text (ly:make-duration 2 0)) \tuplet 3/2 { c8 c8 c8 c8 c8 c8 } \once \override TupletNumber.text = #(tuplet-number::fraction-with-notes (ly:make-duration 2 1) (ly:make-duration 3 0)) \tuplet 3/2 { c4. c4. c4. c4. } \once \override TupletNumber.text = #(tuplet-number::non-default-fraction-with-notes 12 (ly:make-duration 3 0) 4 (ly:make-duration 2 0)) \tuplet 3/2 { c4. c4. c4. c4. } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Numbering single measure rests
Multi measure rests show their length by a number except for single
measures. This can be changed by setting restNumberThreshold
.
{ \compressEmptyMeasures R1 R1*10 R1*11 \bar "||" \set restNumberThreshold = 0 R1 R1*10 R1*11 \bar "||" \set restNumberThreshold = 10 R1 R1*10 R1*11 }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Partcombine i autoBeamOff
Pot ser difícil entendre la funció de \autoBeamOff
quan s’usa
amb \partcombine
.
Pot ser preferible usar
\set Staff.autoBeaming = ##f
en el seu lloc, per assegurar-se que el barrat automàtic es desactiva per a tot el pentagrama.
\partcombine
funciona aparentement amb tres veus: plica amunt
quan hi ha una sola veu, plica avall amb l’altra, i plica amunt quan
està combinada.
Una crida a \autoBeamOff
en el primer argument de partcombine
s’aplica a la veu que està activa en el moment en el qual es processa
la crida, ja sigui veu única amb la plica cap amunt, cap avall o
combinades. Una crida a \autoBeamOff
en el segon argument
s’aplica a la veu que estigui sola amb la aplica avall.
Per poder usar \autoBeamOff
amb l’objectiu de detenir tot el
barrat automàtic quan s’usa amb \partcombine
, cal fer tres
crides a \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 | } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Percussion example
A short example taken from Stravinsky’s L’Histoire du soldat.
#(define mydrums '((bassdrum default #f 4) (snare default #f -4) (tambourine default #f 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 \context { \DrumStaff drumStyleTable = #(alist->hash-table mydrums) } } \score { \new StaffGroup << \new DrumStaff \with { instrumentName = \markup \center-column { "Tambourine" "et" "caisse claire s. timbre" } } \drumsA \new DrumStaff \with { instrumentName = "Grosse Caisse" } \drumsB >> }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Permetre salts de línia dins de grups especials amb barra
Aquest exemple artificial mostra com es poden permetre tant els salts de línia manuals com els automàtics dins d’un grup de valoració especial unit per una barra. Observeu que aquests grups sincopats s’han de barrar manualment.
\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 }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Col·locar les barres de les notes d’adorn a la mateixa alçada que les barres de notes normals
Quan es col·loquen figures sobre línies addicionals, les seves barres se situen generalment en mig del pentagrama. La barra de les notes d’adorn és més curta i les notes d’adorn sobre les línies addicionals podrien tenir la barra fora del pentagrama. Podem corregir aquest barrat per a les notes d’adorn.
\relative c { f8[ e] \grace { f8[ e] \override Stem.no-stem-extend = ##f f8[ e] \revert Stem.no-stem-extend } f8[ e] }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Posicionament de les notes d’adorn amb espai flotant
En establir la propietat 'strict-grace-spacing
fem que les
columnes musicals per a les notes d’adorn siguin ‘flotants’, és a
dir, desacoblades de les notes que no són d’adorn: primer s’aplica
l’espaiat de les notes normals, i després es posen les columnes
musicals de les notes d’adorn a l’esquerra de les columnes musicals de
les notes principals.
\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 } >> }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Posicionar els silencis multicompàs
A diferència dels silencis normals, no existeix una ordre predefinida per modificar la posició predeterminada d’un símbol de silenci multicompàs sobre el pentagrama, adjuntant-lo a una nota, independentment de quin sigui la seva forma. No obstant, en la música polifònica els silencis multicompàs de les veus de numeració parell i imparell estan separats verticalment. La col·locació dels silencis multicompàs es pot controlar com es ve a continuació:
\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 } >> }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Positioning opposing fermatas on a bar line
This snippet demonstrates a command that prints fermatas both above and below a bar line. If there would not otherwise be a bar line, it adds a double bar line. Semantically, the command codes a longer-than-normal caesura, which might be considered misuse depending on the situation.
twoWayFermata = { \once \set Staff.caesuraType = #'((underlying-bar-line . "||")) \once \set Staff.caesuraTypeTransform = ##f \caesura ^\fermata _\fermata } music = { f'1 \twoWayFermata R1 f'2 \twoWayFermata f'2 R1 b'1 \twoWayFermata \fine } \new GrandStaff << \new Staff \music \new Staff \music >>
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Evitar que una marca de assaig final suprimeixi el corxet d’un grup de valoració especial
En afegir una marca d’assaig mark
al final pot succeir que es
perdi una indicació de grup especial col·locat al final. Es pot
solucionar establint TupletBracket #'full-length-to-extent
al valor false
.
% due to issue 2362 a long mark such as % \textEndMark "Composed Feb 2007 - Feb 2008" % cannot be used here. \new Staff { \set tupletFullLength = ##t \time 1/8 \tuplet 3/2 8 { c'16 c' c' c' c' c' c' c' c' } \tweak direction #DOWN \textEndMark "1234" } \new Staff { \set tupletFullLength = ##t \override TupletBracket.full-length-to-extent = ##f \time 1/8 \tuplet 3/2 8 { c'16 c' c' c' c' c' c' c' c' } \tweak direction #DOWN \textEndMark "1234" }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Imprimir números de compàs a intervals regulars
Es poden imprimir els nombre de compàs a intervals regulars mitjançant
l’establiment de la propietat barNumberVisibility
. Aquí els
números de compàs s’imprimeixen cada dos compassos excepte al final de
la línia.
\relative c' { \override Score.BarNumber.break-visibility = #end-of-line-invisible \set Score.currentBarNumber = #11 % 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 }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Printing bar numbers for broken measures
By default a BarNumber
of a broken measure is not repeated at
the beginning of the new line. Use
first-bar-number-invisible-save-broken-bars
for
barNumberVisibility
to get a parenthesized BarNumber
there.
\layout { \context { \Score barNumberVisibility = #first-bar-number-invisible-save-broken-bars \override BarNumber.break-visibility = ##(#f #t #t) } } \relative c' { c1 | d | e | f2 \bar "" \break fis | g1 | e2 \bar "" \break <>^"reenabled default" % back to default - % \unset Score.barNumberVisibility would do so as well \set Score.barNumberVisibility = #first-bar-number-invisible-and-no-parenthesized-bar-numbers es | d1 | c }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Impressió de nombre de compàs dins de rectangles o circumferències
Els nombres de compàs també es poden imprimir dins de rectangles o de circumferències.
\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 "|." }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Printing bar numbers using modulo-bar-number-visible
If the remainder of the division of the current BarNumber
by the
first argument of modulo-bar-number-visible
equals its second
argument print the BarNumber
.
Useful to print the BarNumber
at certain distances, p.e:
-
(modulo-bar-number-visible 3 2)
-> prints 2,5,8 -
(modulo-bar-number-visible 4 2)
-> prints 2,6,10 -
(modulo-bar-number-visible 3 1)
-> prints 3,5,7 -
(modulo-bar-number-visible 5 2)
-> prints 2,7,12
\layout { \context { \Score \override BarNumber.break-visibility = ##(#f #t #t) barNumberVisibility = #(modulo-bar-number-visible 3 2) } } \relative c' { c1 | d | e | f \break g1 | e | d | c }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Printing bar numbers with changing regular intervals
Using the set-bar-number-visibility
context function, bar number
intervals can be changed.
\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 }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Impressió d’indicacions de metrònom i lletres d’assaig a sota del pentagrama
De forma predeterminada, les indicacions de metrònom i les lletres
d’assaig s’imprimeixen a sobre del pentagrama. Per col·locar-les a
sota del pentagrama, simplement ajustem adequadament la propietat
direction
de MetronomeMark
o de RehearsalMark
.
\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 }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Impressió de música que tingui compassos en cada pentagrama
En el següent fragment de codi, dues parts diferents tenen un compàs
completament diferent i malgrat això es mantenen sincronitzades. Les
barres de compàs ja no es poden imprimir en el nivell de Score
;
per permetre barres de compàs independents en cada part es tralladen
els gravadores Default_barline_engraver
i
Timing_translator
des del context de partitura Score
fins el context de pentagrama Staff
.
Si calen nombres de compàs, el gravador de nombres de compàs
Bar_number_engraver
també s’ha de traslladar, ja que descansa
en propietat fixades pel Timing_translator
; es pot usar un bloc
\with
per afegir nombres de compàs al pentagrama apropiat.
\paper { indent = #0 ragged-right = ##t } global = { \time 3/4 { s2.*3 } \bar "" \break { s2.*3 } } \layout { \context { \Score \remove "Timing_translator" \remove "Bar_number_engraver" \override SpacingSpanner.uniform-stretching = ##t \override SpacingSpanner.strict-note-spacing = ##t proportionalNotationDuration = #(ly:make-moment 1/64) } \context { \Staff \consists "Timing_translator" } \context { \Voice \remove "Forbid_line_break_engraver" tupletFullLength = ##t } } Bassklarinette = \new Staff \with { \consists "Bar_number_engraver" barNumberVisibility = #(every-nth-bar-number-visible 2) \override BarNumber.break-visibility = #end-of-line-invisible } << \global { \bar "|" \clef treble \time 3/8 d''4. \bar "|" \time 3/4 r8 des''2( c''8) \bar "|" \time 7/8 r4. ees''2 ~ \bar "|" \time 2/4 \tupletUp \tuplet 3/2 { ees''4 r4 d''4 ~ } \bar "|" \time 3/8 \tupletUp \tuplet 4/3 { d''4 r4 } \bar "|" \time 2/4 e''2 \bar "|" \time 3/8 es''4. \bar "|" \time 3/4 r8 d''2 r8 \bar "|" } >> Perkussion = \new StaffGroup << \new Staff << \global { \bar "|" \clef percussion \time 3/4 r4 c'2 ~ \bar "|" c'2. \bar "|" R2. \bar "|" r2 g'4 ~ \bar "|" g'2. ~ \bar "|" g'2. } >> \new Staff << \global { \bar "|" \clef percussion \time 3/4 R2. \bar "|" g'2. ~ \bar "|" g'2. \bar "|" r4 g'2 ~ \bar "|" g'2 r4 \bar "|" g'2. } >> >> \score { << \Bassklarinette \Perkussion >> }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Impressió del nombre de compàs al primer compàs
De forma predeterminada se suprimeix el nombre de compàs del primer
compàs d’una partitura si és més petit o igual a ‘1’. En establir
el valor de barNumberVisibility
a
all-bar-numbers-visible
, es pot imprimir qualsevol nombre de
compàs per al primer compàs i tots els següents. Observeu que, perquè
això funcioni, s’ha d’inserir una línia divisòria buida abans de la
primera nota.
\layout { indent = 0 ragged-right = ##t } \relative c' { \set Score.barNumberVisibility = #all-bar-numbers-visible c1 | d | e | f \break g1 | e | d | c }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Printing tuplet brackets on the note head side
Whichever option you choose for controlling the tuplet bracket
visibility, it will show or hide the tuplet bracket irrespectively
of tuplet bracket placement (stem side or note head side).
However, when placing the tuplet bracket on the note head side some
authors recommend always printing the tuplet bracket. The option
visible-over-note-heads
can be used to achieve this.
music = \relative c'' { \tupletNeutral \tuplet 3/2 { c16[ d e } f8] \tupletUp \tuplet 3/2 { c8 d e } } \new Voice { \relative c' { \time 2/4 \override TupletBracket.visible-over-note-heads = ##t \override Score.TextMark.non-musical = ##f { \textMark \markup "default" \music } \override TupletBracket.bracket-visibility = #'if-no-beam { \textMark \markup \typewriter "'if-no-beam" \music } } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Redefinició dels valors globals predeterminats per a notes d’adorn
Els valors predeterminats per a les notes d’adorn estan emmagatzemats
en els identificadors startGraceMusic
, stopGraceMusic
,
startAcciaccaturaMusic
, stopAcciaccaturaMusic
,
startAppoggiaturaMusic
i stopAppoggiaturaMusic
, que
estan definits al fitxer ‘ly/grace-init.ly’. Redefinint-los es
poden obtenir altres efectes.
startAcciaccaturaMusic = { <>( \override Flag.stroke-style = #"grace" \slurDashed } stopAcciaccaturaMusic = { \revert Flag.stroke-style \slurSolid <>) } \relative c'' { \acciaccatura d8 c1 }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Supressió dels nombres de compàs de tota la partitura
Es poden eliminar completament els nombres de compàs traient el
gravador Bar_number_engraver
del context de Score
.
\layout { \context { \Score \omit BarNumber % or: %\remove "Bar_number_engraver" } } \relative c'' { c4 c c c \break c4 c c c }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Treure les barres de compàs entre els pentagrames d’un StaffGroup PianoStaff o GrandStaff
De forma predeterminada, les línies divisòries als grups StaffGroup, PianoStaff o GrandStaff es connecten entre els pentagrames. Es pot alterar aquest comportament pentagrama a pentagrama.
\relative c' { \new StaffGroup << \new Staff { e1 | e \once \override Staff.BarLine.allow-span-bar = ##f e1 | e | e } \new Staff { c1 | c | c \once \override Staff.BarLine.allow-span-bar = ##f c1 | c } \new Staff { a1 | a | a | a | a } >> }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Estils de silencis
Els silencis es poden imprimir en diferents estils.
\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 }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Alteració dels finals de barra predeterminats
Per gravar les barres agrupades en la forma 3-4-3-2
sóls cal
modificar l’estructura de polsos.
\relative c'' { \time 12/8 % Default beaming a8 a a a a a a a a a a a % Set new values for beam endings \set Score.beatStructure = 3,4,3,2 a8 a a a a a a a a a a a }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Barres rítmiques
Als fulls guia d’acords o fulls guia “senzilles”, a vegades no
s’imprimeix realment cap nota, i en el seu lloc es fa una notació
que té sols “patrons rítmics” i acords a sobre dels compassos,
donant l’estructura de la cançó. Aquesta funcionalitat és útil, per
exemple, en crear o transcriure l’estructura d’una cançó i també
si es volen compartir els fulls guia amb guitarristes o músics de
jazz. La forma estàndard en la qual hi ha suport per a aquesta
modalitat usant \repeat percent
no és adequada aquí perquè
el primer compàs hauria de ser una nota o silenci normals. Aquest
exemple mostra dues solucions al problema, redefinint els silencis
normals perquè s’imprimeixin com a barres inclinades (si la duració
de cada pols no és una negra, substituirem el r4
que apareix
a les definicions amb un silenci de la duració adequada).
% Macro to print single slash rs = { \once \override Rest.stencil = #ly:percent-repeat-interface::beat-slash \once \override Rest.thickness = #0.48 \once \override Rest.slope = #1.7 r4 } % Function to print a specified number of slashes comp = #(define-music-function (count) (integer?) #{ \override Rest.stencil = #ly:percent-repeat-interface::beat-slash \override Rest.thickness = #0.48 \override Rest.slope = #1.7 \repeat unfold $count { r4 } \revert Rest.stencil #} ) \score { \relative c' { c4 d e f | \rs \rs \rs \rs | \comp #4 | } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Silencis de separació en mode de lletra
La sintaxi s
per als silencis de desplaçament sols està
disponible als modes de nota i d’acord. En altres situacions,
per exemple en escriure la lletra de les cançons, es recomana
usar l’ordre \skip
.
<< \relative c'' { a1 | a } \new Lyrics \lyricmode { \skip 1 bla1 } >>
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Silencis de separació en mode de lletra (2)
Tot i que no es poden usar els silencis de separació s
dins
de \lyricmode
(s’agafen com una “s”, literal, no com un
espai), sí hi ha disponibles les comtes dobles (""
) i la
barra baixa (_
). Així com per exemple:
<< \relative c'' { a4 b c d } \new Lyrics \lyricmode { a4 "" _ gap } >>
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Stemlets (pliques de mida reduïda)
En certes convencions de notació es permet que les barres s’estenguin per sobre dels silencis. Depenent de les nostre preferències, aquestes barres poden presentar petites pliques perquè l’ull apreciï més fàcilment el ritme, i en alguns casos de música moderna el propi silenci s’omet i romanen sols les petites pliques sense cap.
Aquest fragment de codi mostra un progressió a partir de la notació
tradicional, passant per barres sobre silencis i pliques sobre els
silencis, fins les pliques sols. Les petites pliques o Stemlets
es generen sobreescrivint la propietat 'stemlet-length
de l’objecte Stem
, mentre que els silencis queden ocults
establint 'transparent = ##t
.
Alguns elements de \markup
s’inclouen en la font per
imprimir títols sobre cada estil de notació.
\paper { ragged-right = ##f } { c'16^\markup { traditional } d' r f' g'16[^\markup { beams over rests } f' r d'] % N.B. use Score.Stem to set for the whole score. \override Staff.Stem.stemlet-length = #0.75 c'16[^\markup { stemlets over rests } d' r f'] g'16[^\markup { stemlets and no rests } f' \once \hide Rest r16 d'] }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Barres que respecten el pols estrictament
Es poden fer que les barres secundàries apuntin en la direcció del pols o fracció a que pertanyen. La primera barra evita els corxets aïllats (que és el comportament predeterminat); la segona barra segueix el pols o fracció estrictament.
\relative c'' { \time 6/8 a8. a16 a a \set strictBeatBeaming = ##t a8. a16 a a }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Subdivisió de barres
Les barres de semicorxera, o de figures més breus, no es subdivideixen
de forma predeterminada. És a dir, les tres (o més) barres s’amplien
sense trencar-se sobre grups complets de notes. Aquest comportament
es pot modificar per subdividir les barres en subgrups mitjançant
l’establiment de la propietat subdivideBeams
. Quan està
activada, les barres es subdivideixen a intervals definits pel
valor actual de baseMoment
mitjançant la reducció de les
barres repetides a una sola entre els subgrups. Observeu que el
valor predeterminat de baseMoment
és un més que el
denominador del tipus de compàs actual, si no es fixa explícitament.
S’ha d’ajustar a una fracció que dóna la duració del subgrup de
barres utilitzant la funció ly:make-moment
, como es veu en
aquest fragment de codi. Així mateix, quan es modifica
baseMoment
, s’hauria de canviar també beatStructure
perquè correspongui al baseMoment
nou:
\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 }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Tam-tam example
A tam-tam example, entered with ’tt’
#(define mydrums '((tamtam default #f 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 }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Tambourine example
A tambourine example, entered ’tamb’
\paper { tagline = ##f } #(define mydrums '((tambourine default #f 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 | % the trick with the scaled duration and the shorter rest % is neccessary for the correct ending of the trill-span! tamb2.*5/6 \startTrillSpan s8 \stopTrillSpan | }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Rectangle de tres segments visibles
Aquest exemple mostra com afegir una ordre de marcatge per obtenir un rectangle de tres segments visibles rodejant un element de text (o un altre element de marcatge).
% New command to add a three sided box, with sides north, west and south % Based on the box-stencil command defined in scm/stencil.scm % Note that ";;" is used to comment a line in Scheme #(define-public (NWS-box-stencil stencil thickness padding) "Add a box around STENCIL, producing a new stencil." (let* ((x-ext (interval-widen (ly:stencil-extent stencil X) padding)) (y-ext (interval-widen (ly:stencil-extent stencil Y) padding)) (y-rule (make-filled-box-stencil (cons 0 thickness) y-ext)) (x-rule (make-filled-box-stencil (interval-widen x-ext thickness) (cons 0 thickness)))) ;; (set! stencil (ly:stencil-combine-at-edge stencil X 1 y-rule padding)) (set! stencil (ly:stencil-combine-at-edge stencil X LEFT y-rule padding)) (set! stencil (ly:stencil-combine-at-edge stencil Y UP x-rule 0.0)) (set! stencil (ly:stencil-combine-at-edge stencil Y DOWN x-rule 0.0)) stencil)) % The corresponding markup command, based on the \box command defined % in scm/define-markup-commands.scm #(define-markup-command (NWS-box layout props arg) (markup?) #:properties ((thickness 0.1) (font-size 0) (box-padding 0.2)) "Draw a box round @var{arg}. Looks at @code{thickness}, @code{box-padding} and @code{font-size} properties to determine line thickness and padding around the markup." (let ((pad (* (magstep font-size) box-padding)) (m (interpret-markup layout props arg))) (NWS-box-stencil m thickness pad))) % Test it: \relative c' { c1^\markup { \NWS-box ABCD } c1^\markup { \NWS-box \note {4} #1.0 } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Compàs entre parèntesis
La indicació de compàs pot envoltar-se entre parèntesi.
\relative c'' { \override Staff.TimeSignature.stencil = #(lambda (grob) (bracketify-stencil (ly:time-signature::print grob) Y 0.1 0.2 0.1)) \time 2/4 a4 b8 c }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Indicació de compàs entre parèntesis: mètode número 3
Una altra forma de posar la indicació de comàs entre parèntesis.
\relative c'' { \override Staff.TimeSignature.stencil = #(lambda (grob) (parenthesize-stencil (ly:time-signature::print grob) 0.1 0.4 0.4 0.1 )) \time 2/4 a4 b8 c }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Indicació de compàs imprimint sols el numerador (en lloc de la fracció)
A vegades, la indicació de compàs no ha d’imprimir la fracció
completa (per exemple 7/4), sinó sols el numerador (7 en aquest
cas). Això es pot fer fàcilment utilitzant \override
Staff.TimeSignature.style = #'single-digit
per canviar l’estil
permanentment. Usant \revert Staff.TimeSignature.style
,
es pot revertir el canvi. Per aplicar l’estil d’un dígit únic a
una sola indicació de compàs, utilitzeu l’ordre \override
i anteposeu l’ordre \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 }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Ajustament de la disposició de les notes d’adorn dins de la música
La disposició de les expressions d’adorn es pot canviar al llarg
de tota la música usant les funcions add-grace-property
i
remove-grace-property
. L’exemple següent esborra la
definició de la direcció de la plica per a aquest nota d’adorn, de
manera que les pliques no sempre apunten cap a dalt, i canvia la
forma predeterminada dels caps a aspes.
\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 } } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
User defined time signatures
New time signature styles can be defined. The time signature in the second measure should be upside down in both staves.
#(add-simple-time-signature-style 'topsy-turvy (lambda (fraction) (make-rotate-markup 180 (make-compound-meter-markup fraction)))) << \new Staff { \time 3/4 f'2. \override Score.TimeSignature.style = #'topsy-turvy \time 3/4 R2. \bar "|." } \new Staff { R2. e'' } >>
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Ús d’estils alternatius per als corxets
Es poden imprimir estils alternatius del corxet o ganxo de les
corxeres i figures menors, mitjançant la sobreescriptura de la
propietat stencil
de l’objecte Flag
. Són valors
vàlids modern-straight-flag
, old-straight-flag
i
flat-flag
.
testnotes = { \autoBeamOff c8 d16 c32 d64 \acciaccatura { c8 } d64 r4 } \score { \relative c' { \time 2/4 \testnotes \override Flag.stencil = #modern-straight-flag \testnotes \override Flag.stencil = #old-straight-flag \testnotes \override Flag.stencil = #flat-flag \testnotes \revert Flag.stencil \testnotes } \layout { indent = 0 \context { \Score \override NonMusicalPaperColumn.line-break-permission = ##f } } }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ > ] |
Utilitzar la barra que tatxa les notes amb notes normals
És possible aplicar la barreta que creua la barra de les acciacatures, en altres situacions.
\relative c'' { \override Flag.stroke-style = #"grace" c8( d2) e8( f4) }
[ << Rhythms ] | [Part superior][Continguts] | [ Expressive marks >> ] |
[ < ] | [ Amunt : Rhythms ] | [ Expressive marks > ] |
Ús de les lligadures als arpegis
Algunes vegades s’usen lligadures d’unió per escriure els
arpegis. En aquest cas, les dues notes lligades no han de ser
consecutives. Això es pot aconseguir establint la propietat
tieWaitForNote
al valor #t
. La mateixa
funcionalitat és d’utilitat, per exemple, per lligar un tremol a
un acord, però en principi també es pot usar per a notes normals
consecutives.
l
\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 }
[ << Rhythms ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Top ] | [ > ] |
Expressive marks
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < Expressive marks ] | [ Amunt : Expressive marks ] | [ > ] |
Afegir barres, lligadures d’expressió i d’unió, etc., quan s’usen ritmes amb i sense grups de valoració especial.
La sintaxi del LilyPond pot implicar moltes col·locacions poc comunes per als parèntesis, claus, etc., que a vegades s’han d’intercalar. Per exemple, en introduir una barra manual, la clau esquerra d’apertura s’ha d’escriure després de la nota inicial i de la seva duració, no abans. De forma semblant, la clau dreta de tancament ha de seguir immediatament a la nota que es vol ubicar al final del barrat, fins i tot si aquesta nota resulta estar dins d’un grup de valoració especial. Aquest fragment de codi mostra com combinar el barrat manual, les lligadures d’expressió i d’unió i les lligadures de fraseig, amb seccions de valoració especial (tancades entre claus).
{ r16[ g16 \tuplet 3/2 { r16 e'8] } g16( a \tuplet 3/2 { b d e') } g8[( a \tuplet 3/2 { b d') e'] ~ } \time 2/4 \tuplet 5/4 { e'32\( a b d' e' } a'4.\) }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Envoltar entre parèntesis una marca expressiva o una nota d’un acord
La funció \parenthesize
és un ajustament especial que envolta
objectes entre parèntesis. EL grob associat és ParenthesesItem
.
\relative c' { c2-\parenthesize -> \override Parentheses.padding = #0.1 \override Parentheses.font-size = #-4 <d \parenthesize f a>2 }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Afegir marques de temps a glissandos llargs
Els temps que se salten a glissandos molt llargs s’indiquen a vegades mitjançant marques de temps, que sovint consisteixen en figures sense cap. Aquestes pliques es poden usar també per allotjar indicacions expressives intermèdies.
Si les pliques no queden ben alineades amb el glissando, podria caldre recol·locar-les lleugerament.
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 | }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Ajustar la forma de les caigudes i pujades de to
Pot caldre ajustar la propietat shortest-duration-space
per poder ajustar la mida de les caigudes i pujades de to («falls»
i «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 }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Aligning the ends of hairpins to NoteColumn directions
The ends of hairpins may be aligned to the LEFT
, CENTER
or RIGHT
of NoteColumn
grobs by overriding the property
endpoint-alignments
, which is a pair of numbers representing
the left and right ends of the hairpin. endpoint-alignments
are expected to be directions (either -1, 0 or 1). Other values
will be transformed with a warning. The right end of a hairpin
terminating at a rest is not affected, always ending at the left edge
of the rest.
{ c'2\< <c' d'>\! | \override Hairpin.endpoint-alignments = #'(1 . -1) c'2\< <c' d'>\! | \override Hairpin.endpoint-alignments = #`(,LEFT . ,CENTER) c'2\< <c' d'>\! | }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Formes alternatives de la figura breu
Les figures de breu també estan disponibles amb dues línies verticals a les vores del cap en lloc d’una sola línia i la forma en estil barroc.
\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 }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Lligadures asimètriques
Es pot fer que una lligradura d’expressió sigui asimètrica per adaptar-se millor un patró asimètric de notes.
slurNotes = { d,8( a' d f a f' d, a) } \relative c' { \stemDown \slurUp \slurNotes \once \override Slur.eccentricity = #3.0 \slurNotes }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Marques de respiració
Les marques de respiració estan disponibles per diversos gustos: coma (la predeterminada), ratlla curta, v baixa i “vies del tren” (cesura).
\new Staff \relative c'' { \key es \major \time 3/4 % this bar contains no \breathe << { g4 as g } \\ { es4 bes es } >> | % Modern notation: % by default, \breathe uses the rcomma, just as if saying: % \override BreathingSign.text = % #(make-musicglyph-markup "scripts.rcomma") << { g4 as g } \\ { es4 \breathe bes es } >> | % rvarcomma and lvarcomma are variations of the default rcomma % and lcomma % N.B.: must use Staff context here, since we start a Voice below \override Staff.BreathingSign.text = \markup { \musicglyph "scripts.rvarcomma" } << { g4 as g } \\ { es4 \breathe bes es } >> | % raltcomma and laltcomma are alternative variations of the % default rcomma and lcomma \override Staff.BreathingSign.text = \markup { \musicglyph "scripts.raltcomma" } << { g4 as g } \\ { es4 \breathe bes es } >> | % vee \override BreathingSign.text = \markup { \musicglyph "scripts.upbow" } es8[ d es f g] \breathe f | % caesura \override BreathingSign.text = \markup { \musicglyph "scripts.caesura.curved" } es8[ d] \breathe es[ f g f] | es2 r4 \bar "||" }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Regulador interromput
Per fer invisibles parts d’un regulador de crescendo, s’usa el mètode de dibuixar un rectangle blanc a sobre de la respectiva del regulador, tapant-la. El rectangle es defineix com codi de postscript dins d’un element de marcatge de text.
L’ordre de marcatge with-dimensions
indica al LilyPond que
consideri sols l’extrem inferior del rectangle quan realitzi
l’espaiat d’aquest rectangle frente al regulador. La propietat
staff-padding
evita que el rectangle càpiga entre el regulador
i el pentagrama.
Assegureu-vos que el regulador està a una capa més baixa que l’element de marcatge de text per traçar el rectangle a sobre del regulador.
\relative c' { << { \dynamicUp r2 r16 c'8.\pp r4 } \\ { \override DynamicLineSpanner.layer = #0 des,2\mf\< ~ \override TextScript.layer = #2 \once\override TextScript.staff-padding = #6 \once\override TextScript.vertical-skylines = #'() des16_\markup \with-dimensions #'(2 . 7) #'(0 . 0) \with-color #white \filled-box #'(2 . 7) #'(0 . 2) #0 r8. des4 ~ des16->\sff r8. } >> }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Cesura tipus "vies del tren" amb calderó
En ocasions es denota una «cesura» mitjançant una doble marca de respiració semblant a les vies d’un tren, amb un calderó a sobre. Aquest fragment de codi presenta una combinació visualment satisfactòria d’aquestes dues marques.
\relative c'' { c2. % construct the symbol \override BreathingSign.text = \markup { \override #'(direction . 1) \override #'(baseline-skip . 1.8) \dir-column { \translate #'(0.155 . 0) \center-align \musicglyph "scripts.caesura.curved" \center-align \musicglyph "scripts.ufermata" } } \breathe c4 % set the breathe mark back to normal \revert BreathingSign.text c2. \breathe c4 \bar "|." }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Centrar text a sota d’un regulador
Aquest exemple proporciona una funció per escriure un regulador amb text a sota, com “molto” o “poco”. El text afegit canvia la direcció d’acord amb la del regulador. L’objecte hairpin està alineat amb DynamicText.
L’exemple il·lustra també com modificar la manera en la qual s’imprimeix normalment un object, utilitzat codi de l’Scheme.
\paper { tagline = ##f } hairpinWithCenteredText = #(define-music-function (text) (markup?) #{ \once \override Voice.Hairpin.after-line-breaking = #(lambda (grob) (let* ((stencil (ly:hairpin::print grob)) (par-y (ly:grob-parent grob Y)) (dir (ly:grob-property par-y 'direction)) (staff-line-thickness (ly:output-def-lookup (ly:grob-layout grob) 'line-thickness)) (new-stencil (ly:stencil-aligned-to (ly:stencil-combine-at-edge (ly:stencil-aligned-to stencil X CENTER) Y dir (ly:stencil-aligned-to (grob-interpret-markup grob (make-fontsize-markup (magnification->font-size (+ (ly:staff-symbol-staff-space grob) (/ staff-line-thickness 2))) text)) X CENTER)) X LEFT)) (staff-space (ly:output-def-lookup (ly:grob-layout grob) 'staff-space)) (par-x (ly:grob-parent grob X)) (dyn-text (grob::has-interface par-x 'dynamic-text-interface)) (dyn-text-stencil-x-length (if dyn-text (interval-length (ly:stencil-extent (ly:grob-property par-x 'stencil) X)) 0)) (x-shift (if dyn-text (- (+ staff-space dyn-text-stencil-x-length) (* 0.5 staff-line-thickness)) 0))) (ly:grob-set-property! grob 'Y-offset 0) (ly:grob-set-property! grob 'stencil (ly:stencil-translate-axis new-stencil x-shift X)))) #}) hairpinMolto = \hairpinWithCenteredText \markup { \italic molto } hairpinMore = \hairpinWithCenteredText \markup { \larger moltissimo } \layout { ragged-right = ##f } \relative c' { \hairpinMolto c2\< c\f \hairpinMore c2\ppppp\< c\f \break \hairpinMolto c2^\< c\f \hairpinMore c2\ppppp\< c\f }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Canviar el text i els estils d’objecte d’extensió per a les indicacions dinàmiques textuals
Es pot modificar el text empleat per als crescendos i decrescendos
modificant les propietats de context crescendoText
i
decrescendoText
.
L’estil de la línia d’extensió es pot canviar modificant la propietat
'style
de DynamicTextSpanner
. El valor predeterminat és
'dashed-line
(línia discontínua), i entre d’altres valors
possibles es troben 'line
(línia), 'dotted-line
(línia
de punts) i 'none
(res):
\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 }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Modificar l’aspecte continu d’una lligadura d’expressió a puntejat o intermitent
Es pot canviar l’aspecte de les lligadures d’expressió de contínues a puntejades o intermitents.
\relative c' { c4( d e c) \slurDotted c4( d e c) \slurSolid c4( d e c) \slurDashed c4( d e c) \slurSolid c4( d e c) }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Canviar el símbol de la marca de respiració
El glif de la marca de respiració es pot ajustar sobreescrivint la
propietat de text de l’objecte de presentació BreathingSign
,
amb qualsevol altre text de marcatge.
\relative c'' { c2 \override BreathingSign.text = \markup { \musicglyph "scripts.rvarcomma" } \breathe d2 }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Modificar el nombre de puntets d’una nota
La quantitat de puntets d’una nota es pot modificar independentment dels puntets que s’escriuen després d’una nota.
\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 | }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Combinar indicacions dinàmiques amb marcatges textuals
Certes indicacions dinàmiques poden portar textos (com “più
forte” o “piano subito”). Es poden produir usant un bloc
\markup
.
piuF = \markup { \italic più \dynamic f } \layout { ragged-right = ##f } \relative c'' { c2\f c-\piuF }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Glissando contemporani
Es pot gravar un glissando contemporani sense nota final utilitzant una nota oculta i temporització de cadenza.
\relative c'' { \time 3/4 \override Glissando.style = #'zigzag c4 c \cadenzaOn c4\glissando \hideNotes c,,4 \unHideNotes \cadenzaOff \bar "|" }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Controlar la visibilitat dels objectes d’extensió després d’un salt de línia
La visibilitat dels objectes d’extensió que acaben a la primera
nota després d’un salt de línia està controlada per la funció de
crida de after-line-breaking
ly:spanner::kill-zero-spanned-time
.
Per als objectes com els glissandos i els reguladors, el comportament predeterminat és ocultar l’objecte d’extensió després del salt; la inhabilitació de la funció de callblack fa que l’object d’extensió trencat per l’esquerra pot mostrar-se.
De forma inversa, els objectes d’extensió que són visibles normalment, com els objectes d’extensió de text, es poden ocultar habilitant la funció de callback.
\paper { ragged-right = ##t } \relative c'' { \override Hairpin.to-barline = ##f \override Glissando.breakable = ##t % show hairpin \override Hairpin.after-line-breaking = ##t % hide text span \override TextSpanner.after-line-breaking = #ly:spanner::kill-zero-spanned-time e2\<\startTextSpan % show glissando \override Glissando.after-line-breaking = ##t f2\glissando \break f,1\!\stopTextSpan }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Controlar l’ordenació vertical de les inscripcions
L’orden vertical que ocupen les inscripcions gràfiques està
controlat amb la propietat 'script-priority
. Quant més baix
és aquest número, més a prop de la nota es col·locarà. En aquest
exemple, el TextScript
(el sostingut) té primer la
prioritat més baixa, per la qual cosa se situa en la posició més
baixa al primer exemple. En el segon, el semitrí (el
Script
) és el que la té més baixa, per la qual cosa se
situa en la part interior. Quan dos objectes tenen la mateixa
prioritat, l’ordre en el qual s’introdueixen determina quin serà
el que apareix en primer lloc.
\relative c''' { \once \override TextScript.script-priority = #-100 a2^\prall^\markup { \sharp } \once \override Script.script-priority = #-100 a2^\prall^\markup { \sharp } }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Crear un grupet d’anticipació
La creació d’un grupet circular d’anticipació entre dues notes, on
la nota inferior del grupet utilitza una alteració, requereix
diverses sobreescriptures de propietats. La propietat
outside-staff-priority
es pot establir al valor #f
,
atès que en aquest cas tindria prioritat sobre la propietat
avoid-slur property
. Canviant les fraccions 2/3
i
1/3
pot ajustar-se la posició horitzontal.
\relative c'' { \after 2*2/3 \turn c2( d4) r | \after 4 \turn c4.( d8) \after 4 { \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 \once \hideNotes cis8\turn \noBeam } d4.( e8) }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Crear arpegis entre notes de veus diferents
Es pot dibuixar un símbol d’arpegi entre notes de diferents veus
que estan sobre el mateix pentagrama si el gravador
Span_arpeggio_engraver
es trasllada al context de
Staff
:
\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 } >> }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Crear arpegis que es creuen entre pentagrames dins d’un sistema de piano
Dins d’un PianoStaff
, és possible fer que un arpegi creuï
entre els pentagrames ajustant la propietat
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 } } >>
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Creació d’arpegis que es creuen entre pentagrames dins d’altres contextos
Es poden crear arpegis que es creuen entre pentagrames dins de
contextos diferents a GrandStaff
, PianoStaff
i
Span_arpeggio_engraver
en el context de Score
.
\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" } } }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Crear digitacions de dues xifres
És possible crear digitacions amb el nombre més gran de 5.
\relative c' { c1-10 c1-50 c1-36 c1-29 }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Crear indicacions dinàmiques "vertaderes" entre parèntesis
Tot i que la manera més fàcil d’afegir parèntesis a una indicació
de dinàmica és utilitzar un bloc \markup
, aquest mètode té
un inconvenient: els objectes que es creen es comportaran com
elements de marcatge de text i no com indicacions dinàmiques.
No obstant, és possible crear un objecte utilitzant el codi de
l’Scheme equivalent (com s’explica a la Referència de la notació),
en combinació amb la funció make-dynamic-script
. D’aquesta
forma l’element de marcatge es tractarà com una indicació
dinàmica, i per tant seguirà sent compatible amb ordre com ara
\dynamicUp
o \dynamicDown
.
paren = #(define-event-function (dyn) (ly:event?) (make-dynamic-script #{ \markup \concat { \normal-text \italic \fontsize #2 ( \pad-x #0.2 #(ly:music-property dyn 'text) \normal-text \italic \fontsize #2 ) } #})) \relative c'' { c4\paren\f c c \dynamicUp c\paren\p }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Fer lligadures entre veus diferents
En determinades situacions cal crear lligadures d’expressió entre notes que estan a veus diferents.
La solució és afegir notes invisible a una de les veus utilitzant
\hideNotes
.
Aquest exemple és el compàs 235 de la Chacona de la segona Partita per a violí sol, BMW 1004, de Bach.
\relative c' { << { d16( a') s a s a[ s a] s a[ s a] } \\ { \slurUp bes,16[ s e]( \hideNotes a) \unHideNotes f[( \hideNotes a) \unHideNotes fis]( \hideNotes a) \unHideNotes g[( \hideNotes a) \unHideNotes gis]( \hideNotes a) } >> }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Crear elements de extensió textuals
Les ordres \startTextSpan
i \stopTextSpan
permeten la creació d’elements d’extensió textuals tan
fàcilment com indicacions de pedal o octavacions. Sobreescrivim
certes propietats de l’object TextSpanner
per modificar
la seva sortida.
\paper { ragged-right = ##f } \relative c'' { \override TextSpanner.bound-details.left.text = #"bla" \override TextSpanner.bound-details.right.text = #"blu" a4 \startTextSpan b4 c a4 \stopTextSpan \override TextSpanner.style = #'line \once \override TextSpanner.bound-details.left.stencil-align-dir-y = #CENTER a4 \startTextSpan b4 c a4 \stopTextSpan \override TextSpanner.style = #'dashed-line \override TextSpanner.bound-details.left.text = \markup { \draw-line #'(0 . 1) } \override TextSpanner.bound-details.right.text = \markup { \draw-line #'(0 . -2) } \once \override TextSpanner.bound-details.right.padding = #-2 a4 \startTextSpan b4 c a4 \stopTextSpan \set Staff.middleCPosition = #-13 \override TextSpanner.dash-period = #10 \override TextSpanner.dash-fraction = #0.5 \override TextSpanner.thickness = #10 a4 \startTextSpan b4 c a4 \stopTextSpan }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Objecte personalitzat d’extensió de text de matisos dinàmics, postfix
Funcions postfix per a la creació d’objectes d’extensió de text personalitzats. Els objectes d’extensió han de començar en la primera nota del compàs. Cal utilitzar -\mycresc, en cas contrari el començament de l’objecte d’extensió s’assignarà a la nota següent.
% 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 }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Objectes extensors de text postfix per a dinàmica
Els objectes d’extensió \cresc, \dim i \decresc ara es poden redefinir com a operadors postfix i produir un sols objecte d’extensió de text. La definició d’extensores personalitzats també és fàcil. Es poden barrejar amb facilitat els crescendi textuals i en forma de reguladors. \< i \> produeixen reguladors gràfics de forma predeterminada, \cresc etc. produeixen elements extensors de text de forma predeterminada.
% 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\! }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Glissando per sota d’una objecte gràfic
Els objectes gràfics de columna de nota (els grobs NoteColumn
)
poder ser sobrepassats pels glissandos.
\relative c' { a2 \glissando \once \override NoteColumn.glissando-skip = ##t f''4 d, }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Reguladors amb diferents estils de línia
Els reguladors poden imprimir-se en qualsevol dels estils de
line-interface
: discontinu, puntejat, línia, tri o zig-zag.
\relative c' { c2\< c\! \override Hairpin.style = #'dashed-line c2\< c\! \override Hairpin.style = #'dotted-line c2\< c\! \override Hairpin.style = #'line c2\< c\! \override Hairpin.style = #'trill c2\< c\! \override Hairpin.style = #'zigzag c2\< c\! \revert Hairpin.style c2\< c\! }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Ocultar la línia d’extensió de les expressions textuals de dinàmica
Els canvis de dinàmica amb estil de text (com cresc. i dim.) es graven amb una línia intermitent que mostra el seu abast. Aquesta línia es pot suprimir de la manera següent:
\relative c'' { \override DynamicTextSpanner.style = #'none \crescTextCresc c1\< | d | b | c\! }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Alinear horitzontalment indicacions dinàmiques personalitzades (per exemple "sempre pp""piu f""subito p")
Algunes expressions de matís dinàmic porten text addicional, com "sempre pp". Considerant que els matisos solen anar centrats sota la nota, el \p s’imprimiria molt després de la nota a la qual s’aplica el matís.
Per alinear correctament el "sempre pp" en sentit horitzontal, de manera que s’alineï com si estigués solament el \pp, hi h a diversos enfocaments:
* Senzillament usar \once\override DynamicText.X-offset =
#-9.2
abans de la nota que porta el matís, per desplaçar-lo
manualment a la posició correcta. Inconvenient: cal fer-ho
manualment cada cop que usem aquesta indicació dinàmica.
* Afegir una mica de farciment (#:hspace 7.1
) dins de la
definició de la nostra indicació dinàmica personalitzada, de forma
que després que el LilyPond l’hagi centrat, ja estigui alineada
correctament. Inconvenient: el farciment realment ocupa aquest
espai i no permet que es gravi cap altre element de marcatge o
matís dinàmic en aquesta posició.
* Desplaçar la inscripció dinàmica \once\override ... .X-offset = ..
.
Inconvenient: ¡cal \once\override
per a cada una de les invocacions!
* Fixar les dimensions del text addicional a zero (usant
#:with-dimensions '(0 . 0) '(0 . 0)
). Inconvenient: per al
LilyPond "sempre" no té dimensions, per la qual cosa podria
gravar altres elements en el seu mateix lloc i produir col·lisions
(que no serien advertides pel mecanisme de detecció de
col·lisions). Així mateix, aparentment hi ha algun espai, i per
tant no és exactament la mateixa alineació que sense el text addicional.
* Afegir un desplaçament explicit directament dins de la funció de l’Scheme que produeix l’element dynamic-script.
* Fixar una alineació explícita dins del dynamic-script. De forma
predeterminada, això no tindria cap efecte, a no ser que fixéssim
un valor per a X-offset. Inconvenient: hem de donar un valor a
DynamicText.X-offset
que s’aplicaria a tots els textos de
dinàmica. A més a més, s’alinea amb l’extrem dret del text
addicional, no amb el centre del pp.
\paper { ragged-right = ##f indent = 2.5\cm } % Solution 1: Using a simple markup with a particular halign value % Drawback: It's a markup, not a dynamic command, so \dynamicDown % etc. will have no effect semppMarkup = \markup { \halign #1.4 \italic "sempre" \dynamic "pp" } % Solution 2: Using a dynamic script & shifting with % \once \override ...X-offset = .. % Drawback: \once \override needed for every invocation semppK = #(make-dynamic-script (markup #:line (#:normal-text #:italic "sempre" #:dynamic "pp"))) % Solution 3: Padding the dynamic script so the center-alignment % puts it at the correct position % Drawback: the padding really reserves the space, nothing else can be there semppT = #(make-dynamic-script (markup #:line (#:normal-text #:italic "sempre" #:dynamic "pp" #:hspace 7.1))) % Solution 4: Dynamic, setting the dimensions of the additional text to 0 % Drawback: To lilypond "sempre" has no extent, so it might put % other stuff there => collisions % Drawback: Also, there seems to be some spacing, so it's not exactly the % same alignment as without the additional text semppM = #(make-dynamic-script (markup #:line (#:with-dimensions '(0 . 0) '(0 . 0) #:right-align #:normal-text #:italic "sempre" #:dynamic "pp"))) % Solution 5: Dynamic with explicit shifting inside the scheme function semppG = #(make-dynamic-script (markup #:hspace 0 #:translate '(-18.85 . 0) #:line (#:normal-text #:italic "sempre" #:dynamic "pp"))) % Solution 6: Dynamic with explicit alignment. This has only effect % if one sets X-offset! % Drawback: One needs to set DynamicText.X-offset! % Drawback: Aligned at the right edge of the additional text, % not at the center of pp semppMII = #(make-dynamic-script (markup #:line (#:right-align #:normal-text #:italic "sempre" #:dynamic "pp"))) \new StaffGroup << \new Staff = "s" \with { instrumentName = \markup \column { Normal } } << \relative c'' { \key es \major c4\pp c\p c c | c\ff c c\pp c } >> \new Staff = "sMarkup" \with { instrumentName = \markup \column { Normal markup } } << \relative c'' { \key es \major c4-\semppMarkup c\p c c | c\ff c c-\semppMarkup c } >> \new Staff = "sK" \with { instrumentName = \markup \column { Explicit shifting } } << \relative c'' { \key es \major \once \override DynamicText.X-offset = #-9.2 c4\semppK c\p c c c4\ff c \once \override DynamicText.X-offset = #-9.2 c4\semppK c } >> \new Staff = "sT" \with { instrumentName = \markup \column { Right padding } } << \relative c'' { \key es \major c4\semppT c\p c c | c\ff c c\semppT c } >> \new Staff = "sM" \with { instrumentName = \markup \column { Set dimension "to zero" } } << \relative c'' { \key es \major c4\semppM c\p c c | c\ff c c\semppM c } >> \new Staff = "sG" \with { instrumentName = \markup \column { Shift inside dynamics} } << \relative c'' { \key es \major c4\semppG c\p c c | c\ff c c\semppG c } >> \new Staff = "sMII" \with { instrumentName = \markup \column { Alignment inside dynamics } } << \relative c'' { \key es \major % Setting to ##f (false) gives the same result \override DynamicText.X-offset = #0 c4\semppMII c\p c c | c\ff c c\semppMII c } >> >> \layout { \override Staff.InstrumentName.self-alignment-X = #LEFT }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Inserir una cesura
Les marques de cesura es poden crear sobreescrivint la propietat
'text
de l’objecte BreathingSign
. També està
disponible una marca de cesura corba.
\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 }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Lligaduras “Laissez vibrer”
Les lligadures “Laissez vibrer” (deixar vibrar) tenen una mida
fixa. Es pot ajustar el seu format usant 'tie-configuration
.
\relative c' { <c e g>4\laissezVibrer r <c f g>\laissezVibrer r <c d f g>4\laissezVibrer r <c d f g>4.\laissezVibrer r8 <c d e f>4\laissezVibrer r \override LaissezVibrerTieColumn.tie-configuration = #`((-7 . ,DOWN) (-5 . ,DOWN) (-3 . ,UP) (-1 . ,UP)) <c d e f>4\laissezVibrer r }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Puntes de fletxa per a les línies
Es poden aplicar puntes de fletxa als elements d’extensió de text i de línia (com el Glissando).
\relative c'' { \override TextSpanner.bound-padding = #1.0 \override TextSpanner.style = #'line \override TextSpanner.bound-details.right.arrow = ##t \override TextSpanner.bound-details.left.text = #"fof" \override TextSpanner.bound-details.right.text = #"gag" \override TextSpanner.bound-details.right.padding = #0.6 \override TextSpanner.bound-details.right.stencil-align-dir-y = #CENTER \override TextSpanner.bound-details.left.stencil-align-dir-y = #CENTER \override Glissando.bound-details.right.arrow = ##t \override Glissando.arrow-length = #0.5 \override Glissando.arrow-width = #0.25 a8\startTextSpan gis a4 b\glissando b, g'4 c\stopTextSpan c2 }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Fer lligadures d’expressió amb estructura complexa de discontinuïtat
Les lligadures d’expressió es poden construir amb patrons de
discontinuïtat complexos mitjançant la definició de la propietat
dash-definition
. dash-definition
és una llista de
paràmetres que defineixen el comportament de discontinuïtat d’un
segment de la lligadura d’expressió.
La lligadura es defineix en termes del paràmetre de bezier t el
rang del qual va de 0 a l’esquerra de la lligadura fins a 1 a
l’extrem dret de la lligadura. cada element de
discontinuïtat
és una llista (t-inici t-final
fracció-discontinuïtat període-discontinuitat)
. La regió de la
lligadura des de t-inici
fins a t-final
tindrà una
fracció fracció-discontinuitat
de cada
període-discontinuïtat
de color negre.
període-discontinuïtat
es defineix en termes d’espais de
pentagrama. fracció-discontinuïtat
s’estableix al valor
d’1 per a una lligadura contïnua.
\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) }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Modificació dels valors predeterminats per a la notació abreviada de les articulacions
Les abreviatures es troben definides dins del fitxer
‘ly/script-init.ly’, on les variablesdashHat
,
dashPlus
, dashDash
, dashBar
, dashLarger
,
dashDot
i dashUnderscore
reben valors
predeterminats. Es poden modificar aquests valors predeterminats
per a les abreviatures. Per exemple, per associar l’abraviatura
-+
(dashPlus
) amb el símbol de semitrí en cmptes del
símbol predeterminat +, assigneu el valor trill
a la variable
dashPlus
:
\relative c'' { c1-+ } dashPlus = \trill \relative c'' { c1-+ }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Desplaçament de les lligadures d’expressió verticalment
Es pot ajustar la posició vertical d’una lligadura d’expressió
utilitzant la propietat positions
de l’objecte
Slur
. La propietat de dos paràmetres, on el primer es
refereix a l’extrem esquerre de la lligadura i el segon al dret.
Els valors dels paràmetres no s’utilitzen per part del LilyPond
per produir un desplaçament exacte de la lligadura: més bé
selecciona la col·locació que té un aspecte millor, tenint en
compte els valors dels paràmetres. Els valors positius desplacen
la lligadura cap amunt, i són adequats a notes que tenen les
pliques cap avall. Els valors negatius desplacen les lligadures
baixes encara més cap avall.
\relative c' { \stemDown e4( a) \override Slur.positions = #'(1 . 1) e4( a) \override Slur.positions = #'(2 . 2) e4( a) \override Slur.positions = #'(3 . 3) e4( a) \override Slur.positions = #'(4 . 4) e4( a) \override Slur.positions = #'(5 . 5) e4( a) \override Slur.positions = #'(0 . 5) e4( a) \override Slur.positions = #'(5 . 0) e4( a) \stemUp \override Slur.positions = #'(-5 . -5) e4( a) \stemDown \revert Slur.positions e4( a) }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Moving the ends of hairpins
The ends of hairpins may be offset by setting the shorten-pair
property of the Hairpin
object. Positive values move endpoints
to the right, negative to the left. Unlike the minimum-length
property, this property only affects the appearance of the hairpin; it
does not adjust horizontal spacing (including the position of bounding
dynamics). This method is thus suitable for fine-tuning a hairpin
within its allotted space.
{ c'1~\< c'2~ c'\! \once \override Hairpin.shorten-pair = #'(2 . 2) c'1~\< c'2~ c'\! \once \override Hairpin.shorten-pair = #'(-2 . -2) c'1~\< c'2~ c'\! c'1~\p-\tweak shorten-pair #'(2 . 0)\< c'2~ c'\ffff }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Posicionar símbols d’arpegi
Si cal fer més llargs o més curts un símbol d’arpegi, es pot modificar independentment els extrems superior i inferior.
\relative c' { <c e g b>1\arpeggio \once \override Arpeggio.positions = #'(-5 . 0) <c e g b>1\arpeggio \once \override Arpeggio.positions = #'(0 . 5) <c e g b>1\arpeggio \once \override Arpeggio.positions = #'(-5 . 5) <c e g b>1\arpeggio }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Situar els elements de marcatge de text por dins de les lligadures
Els elements de marcatge de text han de tenir la propietat
outside-staff-priority
establerta al valor fals perquè
s’imprimeixin per dins de les lligadures d’expressió.
\relative c'' { \override TextScript.avoid-slur = #'inside \override TextScript.outside-staff-priority = ##f c2(^\markup { \halign #-10 \natural } d4.) c8 }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Impressió de reguladors en diversos estils
Els reguladors es poden crear en una àmplia varietat d’estils.
\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\! }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Impressió de reguladors utilitzant la notació «al niente»
Es poden imprimir reguladores amb un cercle en la punta (notació
«al niente») establint la propietat circled-tip
de l’objecte
Hairpin
al valor #t
.
\relative c'' { \override Hairpin.circled-tip = ##t c2\< c\! c4\> c\< c2\! }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Impressió d’indicacions de metrònom i lletres d’assaig a sota del pentagrama
De forma predeterminada, les indicacions de metrònom i les lletres
d’assaig s’imprimeixen a sobre del pentagrama. Per col·locar-les a
sota del pentagrama, simplement ajustem adequadament la propietat
direction
de MetronomeMark
o de RehearsalMark
.
\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 }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Establir el comportament dels reguladors a les barres de compàs
Si la nota que acaba un regulador cau sobre la primera part d’un
compàs, el regulador s’atura en la línia divisòria immediatament
precedent. Es pot controlar aquest comportament sobreescrivint la
propietat 'to-barline
.
\relative c'' { e4\< e2. e1\! \override Hairpin.to-barline = ##f e4\< e2. e1\! }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Ajustament de la longitud mínima dels reguladors
Si els reguladors són massa curts, es poden allargar modificant
la propietat minimum-length
de l’objecte Hairpin
.
<< { \after 4 \< \after 2 \> \after 2. \! f'1 \override Hairpin.minimum-length = #8 \after 4 \< \after 2 \> \after 2. \! f'1 } { \repeat unfold 8 c'4 } >>
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Impressió de la mateixa articulació a sobre i a sota de la mateixa nota o acord
De forma predeterminada, el LilyPond no permet posar la mateixa
articulació (per exemple un accent, un calderó, un cercle d’harmònic,
etc.) a sobre i a sota de la nota. Per exemple, c4_\fermata^\fermata
imprimeix sols el calderó inferior. El calderó superior senzillament
s’ignora. No obstant, es poden adjuntar inscripcions (de igual forma
que les digitacions) dins d’un acord, soca que significa que és
possible tenir tantes articulacions com es vulgui. Aquest enfocament
té l’avantatge que ignora la plica i posiciona l’articulació de
forma relativa al cap de la nota. Pot veure’s això en el cas dels
flageolets (indicacions d’harmònic)) que apareixen en el fragment
de codi. Per recrear el comportament de les inscripcions fora de
l’acord, es requereix ’add-stem-support. D’aquesta manera la
solució consisteix en escriure la nota com un acord i afegir les
articulacions dins dels parèntesis en angle <...>. La direcció
sempre serà cap a dalt, però podem retocar això per mitjà d’una
ordre \tweak: <c-\tweak direcció #DOWN-\fermata^\fermata>
\relative c' { <>^"Wrong" c2_\fermata^\fermata % The second fermata is ignored! <e d'>2^\flageolet_\flageolet \stopStaff s1 \startStaff <>^"Works if written inside a chord" <e_\flageolet d'^\flageolet>2 <e_\flageolet d'^\flageolet>2 <e_\flageolet^\flageolet>2 <e_\fermata^\fermata>2 }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Pizzicato “snap” o pizzicato de Bartók
El “snap-pizzicato” (pizzicato de pessigada, conegut també com “pizzicato de Bartók”) és un “pizzicato fort en el qual la corda es polsa verticalment pessigant-la i fent que reboti contra el diapasó de l’instrument” (Wikipedia). Es doneta mitjançant un cercle com una línia vertical que surt del centre del cercla cap amunt.
\relative c' { c4\snappizzicato <c' e g>4\snappizzicato <c' e g>4^\snappizzicato <c, e g>4_\snappizzicato }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Usar una ratlla curta com a símbol de respiració
La música vocal i de vent usa amb freqüència una ratlla curta com a signe de respiració. Això indica una respiració que treu una mica de temps a la nota anterior enlloc de produir una pausa curta, cosa que s’indica amb la marca de respiració en forma de coma. La marca es pot moure lleugerament cap a dalt per allunyar-la del pentagrama.
\relative c'' { c2 \breathe d2 \override BreathingSign.Y-offset = #2.6 \override BreathingSign.text = \markup { \musicglyph "scripts.tickmark" } c2 \breathe d2 }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Ús de arpeggioBracket per fer més visible un divisi
El corxet d’arpegis arpeggioBracket
es pot usar per indicar
la divisió de veus quan no hi ha pliques que puguin oferir aquesta
informació. Se sol trobar a la múśica coral.
\include "english.ly" \score { \relative c'' { \key a \major \time 2/2 << \new Voice = "upper" << { \voiceOne \arpeggioBracket a2( b2 <b d>1\arpeggio) <cs e>\arpeggio ~ <cs e>4 } \addlyrics { \lyricmode { A -- men. } } >> \new Voice = "lower" { \voiceTwo a1 ~ a a ~ a4 \bar "|." } >> } \layout { ragged-right = ##t } }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Utilitzar lligadures dobles per acords legato
Alguns compositors escriuen dues lligadures quan volen acords
legato. Això es pot aconseguir establint doubleSlurs
.
\relative c' { \set doubleSlurs = ##t <c e>4( <d f> <c e> <d f>) }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Ús de la propietat whiteout
Es pot imprimir qualsevol objecte gràfic sobre un fons blanc per
ocultar part dels objectes que estan a sota. Això pot ser útil
per millorar l’aspecte de les col·lisions en situaciones complexes
quan no es pràctic tornar a col·locar els objectes. Cal establir
explícitament la propietat de capa (layer
) per controlar
quins objectes resulten ocultats pel fons blanc.
En aquest exemple, la col·lisió de la lligadura d’unió amb la
indicació de compàs resulta millorada ocultant la part de la
lligadura que creua la indicació de compàs mitjançant
l’establiment de la propietat whiteout
de
TimeSignature
. per fer això, es mou TimeSignature
a
una capa per sobre de Tie
, que es deixa a la capa
predeterminada d’1, i StaffSymbol
es mou a una capa per
sobre de TimeSignature
de manera que no resulti ocultada.
{ \override Score.StaffSymbol.layer = #4 \override Staff.TimeSignature.layer = #3 b'2 b'~ \once \override Staff.TimeSignature.whiteout = ##t \time 3/4 b' r4 }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ > ] |
Línia vertical com una articulació barroca
Aquesta línia curta vertical a sobre de la nota és d’ús comú en la música barroca. El seu significat varia, però en general indica notes que s’han de tocar amb més “pes”. L’exemple següent mostra com aconseguir aquesta notació.
upline = \tweak stencil #(lambda (grob) (grob-interpret-markup grob #{ \markup \draw-line #'(0 . 1) #})) \stopped \relative c' { a'4^\upline a( c d')_\upline }
[ << Expressive marks ] | [Part superior][Continguts] | [ Repeats >> ] |
[ < ] | [ Amunt : Expressive marks ] | [ Repeats > ] |
Alinear verticalment expressions dinàmiques que abasten diverses notes
Les expressions dinàmiques que es comencen, acaben o es produeixen
a la mateixa nota, s’alineen verticalment. Per assegurar que les
expressions dinàmiques s’alineen quan no es produeixen sobre la
mateixa nota, incrementeu la propietat staff-padding
de
l’objecte DynamicLineSpanner
.
\relative c' { \override DynamicLineSpanner.staff-padding = #4 c2\p f\mf g2\< b4\> c\! }
[ << Expressive marks ] | [Part superior][Continguts] | [ Simultaneous notes >> ] |
[ < ] | [ Amunt : Top ] | [ > ] |
Repeats
[ << Repeats ] | [Part superior][Continguts] | [ Simultaneous notes >> ] |
[ < Repeats ] | [ Amunt : Repeats ] | [ > ] |
Afegir claus de repetició i segona vegada a més pentagrames
El gravador Volta_engraver
resideix de forma predeterminada
dins del context de Score
, i les claus de repetició‘s’imprimeixen
així normalment sols a sobre el pentagrama superior. Aixo es pot
ajustar afegint el gravador Volta_engraver
al context de
Staff
el el qual han d’aparèixer les claus; vegeu també
el fragment de codi “Volta multi staff”.
<< \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' } } >>
[ << Repeats ] | [Part superior][Continguts] | [ Simultaneous notes >> ] |
[ < ] | [ Amunt : Repeats ] | [ > ] |
Nombres de compàs centrats
Sovint, les partitures d’obres per a conjunts grnas tenen els
nombres de compàs a sota del sistems i centrats horitzontalment
sobre l’amplada del compàs. Aquest fragment de codi mostra com
pot usar-se el gravador Measure_counter_engraver
per simular
aquesta pràctica de notació. Aquí hem afegit el gravador a un
context Dynamics
.
\layout { \context { \Dynamics \consists #Measure_counter_engraver \override MeasureCounter.direction = #DOWN \override MeasureCounter.font-encoding = #'latin1 \override MeasureCounter.font-shape = #'italic % to control the distance of the Dynamics context from the staff: \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = #2 } \context { \Score \remove "Bar_number_engraver" } } pattern = \repeat unfold 7 { c'4 d' e' f' } \new StaffGroup << \new Staff { \pattern } \new Staff { \pattern } \new Dynamics { \startMeasureCount s1*7 \stopMeasureCount } >>
[ << Repeats ] | [Part superior][Continguts] | [ Simultaneous notes >> ] |
[ < ] | [ Amunt : Repeats ] | [ > ] |
Changing the default bar lines
Default bar lines can be changed when re-defined in a score context.
% http://lsr.di.unimi.it/LSR/Item?id=964 %%=> http://lists.gnu.org/archive/html/lilypond-user/2014-03/msg00126.html %%=> http://lilypond.1069038.n5.nabble.com/Changing-the-default-end-repeat-bracket-tc169357.html \layout { \context { \Score %% Changing the defaults from engraver-init.ly measureBarType = #"!" startRepeatBarType = #"[|:" endRepeatBarType = #":|]" doubleRepeatBarType = #":|][|:" } } %% example: { c'1 \repeat volta 2 { \repeat unfold 2 c' } \repeat volta 2 { \repeat unfold 2 c' } \alternative { { c' } { %% v2.18 workaround \once\override Score.VoltaBracket.shorten-pair = #'(1 . -1) c' } } \bar "|." }
[ << Repeats ] | [Part superior][Continguts] | [ Simultaneous notes >> ] |
[ < ] | [ Amunt : Repeats ] | [ > ] |
Trèmolos de pentagrama creuat
Atès que \repeat tremolo
espera exactament dos arguments
musicals per als trèmolos d’acord, la nota o acord que canvia de
pentagrama a un trèmolo que creua el pentagrama s’ha de col·locar
dins de claus corbes junt a la seva ordre \change Staff
.
\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 } } } >>
[ << Repeats ] | [Part superior][Continguts] | [ Simultaneous notes >> ] |
[ < ] | [ Amunt : Repeats ] | [ > ] |
Trèmols amb barres flotants
Si la duració total d’un trèmol és menor d’una negra, o exactament
d’una blanca, normalment es grava amb totes les barres de corxera
tocant les pliques. Certs estils de notació de partitures composen
algunes d’aquestes barres com a barres flotants centrades que no
toquen les pliques de les figures. El nombre de barres flotants en
aquest tipus de trèmol està controlat per la propietat
'gap-count
del l’objecte Beam
i la separació
entre les barres i les pliques es fixa amb la propietat 'gap
.
\relative c'' { \repeat tremolo 8 { a32 f } \override Beam.gap-count = #1 \repeat tremolo 8 { a32 f } \override Beam.gap-count = #2 \repeat tremolo 8 { a32 f } \override Beam.gap-count = #3 \repeat tremolo 8 { a32 f } \override Beam.gap-count = #3 \override Beam.gap = #1.33 \repeat tremolo 8 { a32 f } \override Beam.gap = #1 \repeat tremolo 8 { a32 f } \override Beam.gap = #0.67 \repeat tremolo 8 { a32 f } \override Beam.gap = #0.33 \repeat tremolo 8 { a32 f } }
[ << Repeats ] | [Part superior][Continguts] | [ Simultaneous notes >> ] |
[ < ] | [ Amunt : Repeats ] | [ > ] |
Símbols de percentatge aïllats
També es poden imprimir símbols de percentatge aïllats.
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 }
[ << Repeats ] | [Part superior][Continguts] | [ Simultaneous notes >> ] |
[ < ] | [ Amunt : Repeats ] | [ > ] |
Comptador de compassos
Aquest fragment de codi proporciona una solució alternativa a la producció de comptadors de compàs utilitzant repeticions transparents de tipus percentatge.
<< \context Voice = "foo" { \clef bass c4 r g r c4 r g r c4 r g r c4 r g r } \context Voice = "foo" { \set countPercentRepeats = ##t \hide PercentRepeat \override PercentRepeatCounter.staff-padding = #1 \repeat percent 4 { s1 } } >>
[ << Repeats ] | [Part superior][Continguts] | [ Simultaneous notes >> ] |
[ < ] | [ Amunt : Repeats ] | [ > ] |
Numerar grups de compassos
Aquest fragment de codi mostra l’ús del gravador
Measure_counter_engraver
per numerar grups de compassos
successius. Es pot numerar qualsevol període de compassos tant
si té repeticions com si no.
S’ha d’afegir el gravador al context adequat. Aquí s’usa un
context Staff
; una altra possibilitat seria un context
Dynamics
.
El comptador s’inicia amb \startMeasureCount
i finalitza amb
\stopMeasureCount
. La numeració comença amb 1
, de
forma predeterminada, però es pot modificar aquest comportament
sobreescrivint la propietat count-from
.
Quan un compàs s’estén més enllà d’un salt de línia, el número apareix dues vegades, la segona vegada entre parèntesi.
\layout { \context { \Staff \consists #Measure_counter_engraver } } \new Staff { \startMeasureCount \repeat unfold 7 { c'4 d' e' f' } \stopMeasureCount \bar "||" g'4 f' e' d' \override Staff.MeasureCounter.count-from = #2 \startMeasureCount \repeat unfold 5 { g'4 f' e' d' } g'4 f' \bar "" \break e'4 d' \repeat unfold 7 { g'4 f' e' d' } \stopMeasureCount }
[ << Repeats ] | [Part superior][Continguts] | [ Simultaneous notes >> ] |
[ < ] | [ Amunt : Repeats ] | [ > ] |
Visibilitat del comptador de repeticions de tipus percentatge
Es poden mostrar els comptadors de les repeticions del tipus
percentatge a intervals regulars mitjançant l’establiment de la
propietat de context 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 } }
[ << Repeats ] | [Part superior][Continguts] | [ Simultaneous notes >> ] |
[ < ] | [ Amunt : Repeats ] | [ > ] |
Comptador de repeticions de tipus percentatge
Les repeticions de compassos complets de més en dues repeticions poden portar un comptador si s’activa la propietat adequada, com es veu en aquest exemple:
\relative c'' { \set countPercentRepeats = ##t \repeat percent 4 { c1 } }
[ << Repeats ] | [Part superior][Continguts] | [ Simultaneous notes >> ] |
[ < ] | [ Amunt : Repeats ] | [ > ] |
Posicionar els símbols de repetició segno i coda (amb salts de línia)
Si volem col·locar un símbol de segno de sortida i afegir text com “D.S. al Coda” al costat on normalment estan les línies del pentagrama, podem usar aquest codi. La coda continua en una línia nova. Hi ha una variant documentada en el fragment de codi, on la coda es manté en la mateixa línia.
{ \relative c'' { c4 c c c c c c c c c c c \repeat segno 2 { c4 c c c c c c c \alternative { \volta 1 { c4 c c c c c c c c c c c % If you don't use \break at Coda, use \noBreak here % and after \bar "" below. \noBreak