[Top][Contents] |
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 | 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 | 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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Top ] | [ Up : Top ] | [ Afegir un àmbit per veu > ] |
Pitches
[ << Pitches ] | [Top][Contents] | [ Rhythms >> ] |
[ < Pitches ] | [ Up : Pitches ] | [ Afegir una indicació d’octava alta a una sola veu > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Afegir un àmbit per veu ] | [ Up : Pitches ] | [ Aiken head thin variant noteheads > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Afegir una indicació d’octava alta a una sola veu ] | [ Up : Pitches ] | [ Alterar la longitud de les pliques unides per una barra > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Aiken head thin variant noteheads ] | [ Up : Pitches ] | [ Indicacions de tessitura > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Alterar la longitud de les pliques unides per una barra ] | [ Up : Pitches ] | [ Ambitus after key signature > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Indicacions de tessitura ] | [ Up : Pitches ] | [ Àmbits amb diverses veus > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Ambitus after key signature ] | [ Up : Pitches ] | [ Aplicar estils de cap segons la nota de l’escala > ] |
À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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Àmbits amb diverses veus ] | [ Up : Pitches ] | [ Canviar la direcció de la plica de les notes de tercera línia automàticament, basat en la melodia > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Aplicar estils de cap segons la nota de l’escala ] | [ Up : Pitches ] | [ Changing ottava text > ] |
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 } }
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Changing ottava text ] | [ Up : Pitches ] | [ Canviar l’interval de les línies de la pauta > ] |
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'' } \paper { tagline = ##f }
[ << Pitches ] | [Top][Contents] | [ Rhythms >> ] |
[ < Modificació de la separació en les indicacions de tessitura ] | [ Up : Pitches ] | [ Les claus es poden transposar en intervals arbitraris > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Canviar l’interval de les línies de la pauta ] | [ Up : Pitches ] | [ Acolorir les notes segons la seva alçada > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Les claus es poden transposar en intervals arbitraris ] | [ Up : Pitches ] | [ Crear una seqüència de notes a diferents alçades > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Acolorir les notes segons la seva alçada ] | [ Up : Pitches ] | [ Creació d’armadures personalitzades > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Crear una seqüència de notes a diferents alçades ] | [ Up : Pitches ] | [ Direction of merged ’fa’ shape note heads > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Creació d’armadures personalitzades ] | [ Up : Pitches ] | [ Force a cancellation natural before accidentals > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Direction of merged ’fa’ shape note heads ] | [ Up : Pitches ] | [ Forçar la impressió de la clau > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Force a cancellation natural before accidentals ] | [ Up : Pitches ] | [ Generació de notes aleatòries > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Forçar la impressió de la clau ] | [ Up : Pitches ] | [ Ocultar les alteracions sobre notes lligades al principi d’un sistema nou > ] |
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.
randomNotes = #(define-music-function (n from to dur) (integer? ly:pitch? ly:pitch? ly:duration?) (let ((from-step (ly:pitch-steps from)) (to-step (ly:pitch-steps to))) (make-sequential-music (map (lambda (_) (let* ((step (+ from-step (random (- to-step from-step)))) (pitch (ly:make-pitch 0 step 0))) #{ $pitch $dur #})) (iota n))))) \randomNotes 24 c' g'' 8
[ << Pitches ] | [Top][Contents] | [ Rhythms >> ] |
[ < Generació de notes aleatòries ] | [ Up : Pitches ] | [ Mantenir la mida del símbol en els canvis de clau > ] |
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 } \paper { tagline = ##f }
[ << Pitches ] | [Top][Contents] | [ Rhythms >> ] |
[ < Ocultar les alteracions sobre notes lligades al principi d’un sistema nou ] | [ Up : Pitches ] | [ Exemple de «Makam» > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Mantenir la mida del símbol en els canvis de clau ] | [ Up : Pitches ] | [ Modifying the Ottava spanner slope > ] |
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.25.20, 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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Exemple de «Makam» ] | [ Up : Pitches ] | [ Armadures de tonalitat no tradicional > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Modifying the Ottava spanner slope ] | [ Up : Pitches ] | [ Nombres com notes de notació fàcil > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Armadures de tonalitat no tradicional ] | [ Up : Pitches ] | [ Plantilla d’orquestra amb cor i piano > ] |
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) \paper { tagline = ##f } \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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Nombres com notes de notació fàcil ] | [ Up : Pitches ] | [ Evitar que s’afegeixen becaires addicionals automàticament > ] |
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 } \header { tagline = ##f } 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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Plantilla d’orquestra amb cor i piano ] | [ Up : Pitches ] | [ Evitar que se impriman becuadros cuando cambia la armadura > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Evitar que s’afegeixen becaires addicionals automàticament ] | [ Up : Pitches ] | [ Citació d’una altra veu amb transposició > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Evitar que se impriman becuadros cuando cambia la armadura ] | [ Up : Pitches ] | [ Separar les cancel·lacions de tonalitat dels canvis d’armadura > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Citació d’una altra veu amb transposició ] | [ Up : Pitches ] | [ Transposició de la música amb el menor nombre d’alteracions > ] |
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.
#(define (insert-before where what lst) (cond ((null? lst) ; If the list is empty, (list what)) ; return a single-element list. ((eq? where (car lst)) ; If we find symbol `where`, (cons what lst)) ; insert `what` before curr. position. (else ; Otherwise keep building the list by (cons (car lst) ; adding the current element and ; recursing with the next element. (insert-before where what (cdr lst)))))) cancellationFirst = \override Score.BreakAlignment.break-align-orders = #(grob-transformer 'break-align-orders (lambda (grob orig) (let* ((middle (vector-ref orig 1)) (middle (delq 'key-cancellation middle)) (middle (insert-before 'staff-bar 'key-cancellation middle))) (vector ;; end of line (vector-ref orig 0) ;; middle of line middle ;; beginning of line (vector-ref orig 2))))) music = { \key es \major d'1 \bar "||" \key a \major d'1 } { <>^\markup "default" \music } { <>^\markup "cancellation first" \cancellationFirst \music } \paper { tagline = ##f }
[ << Pitches ] | [Top][Contents] | [ Rhythms >> ] |
[ < Separar les cancel·lacions de tonalitat dels canvis d’armadura ] | [ Up : Pitches ] | [ Turkish Makam example > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Transposició de la música amb el menor nombre d’alteracions ] | [ Up : Pitches ] | [ Ajustament de les propietats de clau > ] |
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 ] | [Top][Contents] | [ Rhythms >> ] |
[ < Turkish Makam example ] | [ Up : Pitches ] | [ Usar canvi automàtic de pentagrama amb més d’una veu > ] |
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 } \paper { tagline = ##f }
[ << Pitches ] | [Top][Contents] | [ Rhythms >> ] |
[ < Ajustament de les propietats de clau ] | [ Up : 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 } >> }
Rhythms
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Rhythms ] | [ Up : Rhythms ] | [ Escriptura de parts de percussió > ] |
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.\) }
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Escriptura de parts de percussió ] | [ Up : Rhythms ] | [ Alineació dels números de compàs > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Ajustament d’espaiat de les notes d’adorn ] | [ Up : Rhythms ] | [ Formes alternatives de la figura breu > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Alineació dels números de compàs ] | [ Up : Rhythms ] | [ Appoggiatura or grace note before a bar line > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Formes alternatives de la figura breu ] | [ Up : Rhythms ] | [ Subdivisions de barra automàtiques > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Appoggiatura or grace note before a bar line ] | [ Up : Rhythms ] | [ Modificar duracions automàticament > ] |
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 \once \set minimumBeamSubdivisionInterval = \musicLength 8 b32^"minimumBeamSubdivisionInterval 1 8"[ a g f c' b a g] \once \set maximumBeamSubdivisionInterval = \musicLength 16 b32^"maximumBeamSubdivisionInterval 1 16"[ a g f c' b a g] } }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Subdivisions de barra automàtiques ] | [ Up : Rhythms ] | [ Finals de barra en el context Score > ] |
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 tagline = ##f } music = \relative c'' { a1 b2 c4 d8 r } { \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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Modificar duracions automàticament ] | [ Up : Rhythms ] | [ Barres que travessen salts de línia > ] |
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 = \musicLength 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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Finals de barra en el context Score ] | [ Up : Rhythms ] | [ Canviar el salt de les barres en angle > ] |
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 } \paper { tagline = ##f }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Barres que travessen salts de línia ] | [ Up : Rhythms ] | [ Canviar la forma dels silencis multicompàs > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Canviar el salt de les barres en angle ] | [ Up : Rhythms ] | [ Modificar el nombre de puntets d’una nota > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Canviar la forma dels silencis multicompàs ] | [ Up : Rhythms ] | [ Canviar el tempo sense indicació metronòmica > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Modificar el nombre de puntets d’una nota ] | [ Up : Rhythms ] | [ Canviar el número del grup especial > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Canviar el tempo sense indicació metronòmica ] | [ Up : Rhythms ] | [ Modificar el compàs d’una secció polimètrica utilitzant \scaleDurations > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Canviar el número del grup especial ] | [ Up : Rhythms ] | [ Notació de responsos o salms > ] |
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 = \musicLength 1*6/5 b8 b b b b b \time 2/4 \set Timing.measureLength = \musicLength 1*4/5 b4 b } } \new Staff { \clef bass \time 2/4 c2 d e f } >>
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Modificar el compàs d’una secció polimètrica utilitzant \scaleDurations ] | [ Up : Rhythms ] | [ Indicacions de compassos compostos > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Notació de responsos o salms ] | [ Up : Rhythms ] | [ Símbols de direcció y símbols d’agrupació de compàs > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Indicacions de compassos compostos ] | [ Up : Rhythms ] | [ Números de compàs alineats a l’esquerra de forma consistent > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Símbols de direcció y símbols d’agrupació de compàs ] | [ Up : Rhythms ] | [ Control de la visibilitat dels corxets de grup especial > ] |
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 } \paper { tagline = ##f }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Números de compàs alineats a l’esquerra de forma consistent ] | [ Up : Rhythms ] | [ Cow and ride bell example > ] |
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 } } \paper { tagline = ##f }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Control de la visibilitat dels corxets de grup especial ] | [ Up : Rhythms ] | [ Crear indicacions metronòmiques en mode de marcatge > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Cow and ride bell example ] | [ Up : Rhythms ] | [ Gravat manual de les lligadures > ] |
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. } #UP " = " \smaller \general-align #Y #DOWN \note { 8 } #UP ) } } c1 c4 c' c,2 }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Crear indicacions metronòmiques en mode de marcatge ] | [ Up : Rhythms ] | [ Trèmols amb barres flotants > ] |
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' { <>^"default" g'1 ^~ g <>^"0" \once \override Tie.staff-position = 0 g1 ^~ g <>^"0.0" \once \override Tie.staff-position = 0.0 g1 ^~ g <>^"reset" \revert Tie.staff-position g1 ^~ g } \relative c' { \override TextScript.outside-staff-priority = ##f \override TextScript.padding = 0 <>^"default" <c e g>1~ <c e g> <>^"0, -2, -4" \override TieColumn.tie-configuration = #'((0 . 1) (-2 . 1) (-4 . 1)) <c e g>1~ <c e g> <>^"0.0, -2.0, -4.0" \override TieColumn.tie-configuration = #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1)) <c e g>1~ <c e g> <>^"reset" \override TieColumn.tie-configuration = ##f <c e g>1~ <c e g> } \paper { tagline = ##f }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Gravat manual de les lligadures ] | [ Up : Rhythms ] | [ Entering several tuplets using only one \tuplet command > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Trèmols amb barres flotants ] | [ Up : Rhythms ] | [ Claudàtors rectes i extrems de barra separats > ] |
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 } }
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Claudàtors rectes i extrems de barra separats ] | [ Up : Rhythms ] | [ Generar claudàtors personalitzats > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Forçar que les marques d’assaig comencin en una lletra o nombre donats ] | [ Up : Rhythms ] | [ Ritmes rasguejats de guitarra > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Generar claudàtors personalitzats ] | [ Up : Rhythms ] | [ Indicacions polimètricques de compàs totalment personalitzades > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Ritmes rasguejats de guitarra ] | [ Up : Rhythms ] | [ High and Low woodblock example > ] |
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 } \paper { tagline = ##f }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Indicacions polimètricques de compàs totalment personalitzades ] | [ Up : Rhythms ] | [ Fer invisible un objecte amb la propietat ’transparent > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < High and Low woodblock example ] | [ Up : Rhythms ] | [ Fer lligadures d’expressió amb estructura complexa de discontinuïtat > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Fer invisible un objecte amb la propietat ’transparent ] | [ Up : Rhythms ] | [ Control manual de les posicions de les barres > ] |
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) }
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Control manual de les posicions de les barres ] | [ Up : Rhythms ] | [ Modificació de la longitud del corxet de grup especial > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Combinació dels silencis multicompàs a una part polifònica ] | [ Up : Rhythms ] | [ Desplaçament de les notes amb puntet en polifonia > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Modificació de la longitud del corxet de grup especial ] | [ Up : Rhythms ] | [ Multi-measure rest length control > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Desplaçament de les notes amb puntet en polifonia ] | [ Up : Rhythms ] | [ Marcatge de silencis multicompàs > ] |
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 } \paper { tagline = ##f }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Multi-measure rest length control ] | [ Up : Rhythms ] | [ Nombres d’agrupació especial diferents o els predeterminats > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Marcatge de silencis multicompàs ] | [ Up : Rhythms ] | [ Numbering single measure rests > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Nombres d’agrupació especial diferents o els predeterminats ] | [ Up : Rhythms ] | [ Partcombine and \autoBeamOff > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Numbering single measure rests ] | [ Up : Rhythms ] | [ Percussion example > ] |
Partcombine and \autoBeamOff
The function of \autoBeamOff
when used with
\partCombine
can be difficult to understand. It may be
preferable to use
\set Staff.autoBeaming = ##f
instead to ensure that auto-beaming is turned off for the entire staff. Use this at a spot in your score where no beam generated by the auto-beamer is still active.
Internally, \partCombine
works with four voices – stem up
single, stem down single, combined, and solo. In order to use
\autoBeamOff
to stop all auto-beaming when used with
\partCombine
, it is necessary to use four calls to
\autoBeamOff
.
{ % \set Staff.autoBeaming = ##f % turns off all auto-beaming \partCombine { \autoBeamOff % applies to split up-stems \repeat unfold 4 a'16 % \autoBeamOff % applies to combined stems \repeat unfold 4 a'8 \repeat unfold 4 a'16 % \autoBeamOff % applies to solo \repeat unfold 4 a'16 r4 } { % \autoBeamOff % applies to split down-stems \repeat unfold 4 f'8 \repeat unfold 8 f'16 | r4 \repeat unfold 4 a'16 } }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Partcombine and \autoBeamOff ] | [ Up : Rhythms ] | [ Permetre salts de línia dins de grups especials amb barra > ] |
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))) \paper { tagline = ##f } 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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Percussion example ] | [ Up : Rhythms ] | [ Col·locar les barres de les notes d’adorn a la mateixa alçada que les barres de notes normals > ] |
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.
\paper { tagline = ##f } \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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Permetre salts de línia dins de grups especials amb barra ] | [ Up : Rhythms ] | [ Posicionament de les notes d’adorn amb espai flotant > ] |
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] }
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Posicionament de les notes d’adorn amb espai flotant ] | [ Up : Rhythms ] | [ Positioning opposing fermatas on a bar line > ] |
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 } >> }
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Positioning opposing fermatas on a bar line ] | [ Up : Rhythms ] | [ Imprimir números de compàs a intervals regulars > ] |
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. \paper { tagline = ##f } \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" }
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 } \paper { tagline = ##f }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Imprimir números de compàs a intervals regulars ] | [ Up : Rhythms ] | [ Impressió de nombre de compàs dins de rectangles o circumferències > ] |
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 } \paper { tagline = ##f }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Printing bar numbers for broken measures ] | [ Up : Rhythms ] | [ Printing bar numbers using modulo-bar-number-visible > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Impressió de nombre de compàs dins de rectangles o circumferències ] | [ Up : Rhythms ] | [ Printing bar numbers with changing regular intervals > ] |
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 } \paper { tagline = ##f }
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 } \paper { tagline = ##f }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Printing bar numbers with changing regular intervals ] | [ Up : Rhythms ] | [ Impressió de música que tingui compassos en cada pentagrama > ] |
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 }
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 tagline = ##f } 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 = \musicLength 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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Impressió de música que tingui compassos en cada pentagrama ] | [ Up : Rhythms ] | [ Printing tuplet brackets on the note head side > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Impressió del nombre de compàs al primer compàs ] | [ Up : Rhythms ] | [ Redefinició dels valors globals predeterminats per a notes d’adorn > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Printing tuplet brackets on the note head side ] | [ Up : Rhythms ] | [ Supressió dels nombres de compàs de tota la partitura > ] |
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 }
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 } \paper { tagline = ##f }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Supressió dels nombres de compàs de tota la partitura ] | [ Up : Rhythms ] | [ Estils de silencis > ] |
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 } >> }
Estils de silencis
Els silencis es poden imprimir en diferents estils.
restsA = { r\maxima r\longa r\breve r1 r2 r4 r8 r16 s32 s64 s128 s256 s512 s1024 s1024 } restsB = { r\maxima r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r256 r512 r1024 s1024 } \new Staff \relative c { \omit Score.TimeSignature \cadenzaOn \override Staff.Rest.style = #'mensural <>^\markup \typewriter { mensural } \restsA \bar "" \break \override Staff.Rest.style = #'neomensural <>^\markup \typewriter { neomensural } \restsA \bar "" \break \override Staff.Rest.style = #'classical <>^\markup \typewriter { classical } \restsB \bar "" \break \override Staff.Rest.style = #'z <>^\markup \typewriter { z-style } \restsB \bar "" \break \override Staff.Rest.style = #'default <>^\markup \typewriter { default } \restsB \bar "" \break } \paper { indent = 0 tagline = ##f }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Estils de silencis ] | [ Up : Rhythms ] | [ Barres rítmiques > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Alteració dels finals de barra predeterminats ] | [ Up : Rhythms ] | [ Silencis de separació en mode de lletra > ] |
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).
startPat = { \improvisationOn \omit Stem } stopPat = { \improvisationOff \undo \omit Stem } \new Voice \with { \consists Pitch_squash_engraver } { c'4 d' e' f' | \startPat 4 4 4 4 | \stopPat f'4 e' d' c' }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Barres rítmiques ] | [ Up : Rhythms ] | [ Silencis de separació en mode de lletra (2) > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Silencis de separació en mode de lletra ] | [ Up : Rhythms ] | [ Stemlets (pliques de mida reduïda) > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Silencis de separació en mode de lletra (2) ] | [ Up : Rhythms ] | [ Barres que respecten el pols estrictament > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Stemlets (pliques de mida reduïda) ] | [ Up : Rhythms ] | [ Subdivisió de barres > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Barres que respecten el pols estrictament ] | [ Up : Rhythms ] | [ Tam-tam example > ] |
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 minimum beam subdivision interval to 1/8 just for this beam \once \set minimumBeamSubdivisionInterval = \musicLength 8 c32[ c c c c c c c] % Set maximum beam subdivision interval to 1/16 just for this beam \once \set maximumBeamSubdivisionInterval = \musicLength 16 c32[ c c c c c c c] % Set maximum beam subdivision interval to 3/8 just for this beam \once \set maximumBeamSubdivisionInterval = \musicLength 8*3 [ \repeat unfold 16 c64 ] r2. % Set maximum beam subdivision interval to 1/64 to limit subdivision depth, % despite not being metrically correct \once \set minimumBeamSubdivisionInterval = \musicLength 32 \once \set maximumBeamSubdivisionInterval = \musicLength 64 [ \repeat unfold 32 c128 ] r2. % Shorten beam by 1/32 c32[ c c c c c c] r32 % Shorten beam by 3/32 c32[ c c c c] r16. % Respect the incomplete beams of the previous two examples \set respectIncompleteBeams = ##t c32[ c c c c c c] r32 % no visual change here as last two stems are exempt from this % special rule c32[ c c c c] r16. }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Subdivisió de barres ] | [ Up : Rhythms ] | [ Tambourine example > ] |
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 } \paper { tagline = ##f }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Tam-tam example ] | [ Up : Rhythms ] | [ Rectangle de tres segments visibles > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Tambourine example ] | [ Up : Rhythms ] | [ Time signature in brackets > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Rectangle de tres segments visibles ] | [ Up : Rhythms ] | [ Compàs entre parèntesis > ] |
Time signature in brackets
The time signature can be enclosed within brackets.
\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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Time signature in brackets ] | [ Up : Rhythms ] | [ Indicació de compàs imprimint sols el numerador (en lloc de la fracció) > ] |
Compàs entre parèntesis
La indicació de compàs pot envoltar-se entre parèntesi.
\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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Compàs entre parèntesis ] | [ Up : Rhythms ] | [ Ajustament de la disposició de les notes d’adorn dins de la música > ] |
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-number
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-number \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-number style only for the next time signature \once \override Staff.TimeSignature.style = #'single-number \time 5/4 c4 c c c c \time 2/4 c4 c }
[ << Rhythms ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Indicació de compàs imprimint sols el numerador (en lloc de la fracció) ] | [ Up : Rhythms ] | [ User defined time signatures > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Ajustament de la disposició de les notes d’adorn dins de la música ] | [ Up : Rhythms ] | [ Ús d’estils alternatius per als corxets > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < User defined time signatures ] | [ Up : Rhythms ] | [ Utilitzar la barra que tatxa les notes amb notes normals > ] |
Ú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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Ús d’estils alternatius per als corxets ] | [ Up : Rhythms ] | [ Ús de les lligadures als arpegis > ] |
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 ] | [Top][Contents] | [ Expressive marks >> ] |
[ < Utilitzar la barra que tatxa les notes amb notes normals ] | [ Up : 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 }
Expressive marks
[ << Expressive marks ] | [Top][Contents] | [ Repeats >> ] |
[ < Expressive marks ] | [ Up : Expressive marks ] | [ Envoltar entre parèntesis una marca expressiva o una nota d’un acord > ] |
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.\) }
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Envoltar entre parèntesis una marca expressiva o una nota d’un acord ] | [ Up : Expressive marks ] | [ Adjusting slur positions vertically > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Afegir marques de temps a glissandos llargs ] | [ Up : Expressive marks ] | [ Ajustar la forma de les caigudes i pujades de to > ] |
Adjusting slur positions vertically
Using \override Slur.positions
it is possible to set the
vertical position of the start and end points of a slur to absolute
values (or rather, forcing LilyPond’s slur algorithm to consider these
values as desired). In many cases, this means a lot of trial and error
until good values are found. You probably have tried the
\offset
command next just to find out that it doesn’t work for
slurs, emitting a warning instead.
The code in this snippet allows you to tweak the vertical start and end
positions by specifying relative changes, similar to
\offset
.
Syntax: \offsetPositions #'(dy1 . dy2)
offsetPositions = #(define-music-function (offsets) (number-pair?) #{ \once \override Slur.control-points = #(lambda (grob) (match-let ((((_ . y1) _ _ (_ . y2)) (ly:slur::calc-control-points grob)) ((off1 . off2) offsets)) (set! (ly:grob-property grob 'positions) (cons (+ y1 off1) (+ y2 off2))) (ly:slur::calc-control-points grob))) #}) \relative c'' { c4(^"default" c, d2) \offsetPositions #'(0 . 1) c'4(^"(0 . 1)" c, d2) \offsetPositions #'(0 . 2) c'4(^"(0 . 2)" c, d2) \bar "||" g4(^"default" a d'2) \offsetPositions #'(1 . 0) g,,4(^"(1 . 0)" a d'2) \offsetPositions #'(2 . 0) g,,4(^"(2 . 0)" a d'2) }
[ << Expressive marks ] | [Top][Contents] | [ Repeats >> ] |
[ < Adjusting slur positions vertically ] | [ Up : Expressive marks ] | [ Aligning the ends of hairpins to NoteColumn directions > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Ajustar la forma de les caigudes i pujades de to ] | [ Up : Expressive marks ] | [ Formes alternatives de la figura breu > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Aligning the ends of hairpins to NoteColumn directions ] | [ Up : Expressive marks ] | [ Lligadures asimètriques > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Formes alternatives de la figura breu ] | [ Up : Expressive marks ] | [ Marques de respiració > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Lligadures asimètriques ] | [ Up : Expressive marks ] | [ Regulador interromput > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Marques de respiració ] | [ Up : Expressive marks ] | [ Cesura tipus "vies del tren" amb calderó > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Regulador interromput ] | [ Up : Expressive marks ] | [ Centrar text a sota d’un regulador > ] |
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 breath mark back to normal \revert BreathingSign.text c2. \breathe c4 \bar "|." }
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 }
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 }
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) }
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Canviar el símbol de la marca de respiració ] | [ Up : Expressive marks ] | [ Combinar indicacions dinàmiques amb marcatges textuals > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Modificar el nombre de puntets d’una nota ] | [ Up : Expressive marks ] | [ Glissando contemporani > ] |
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 }
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Glissando contemporani ] | [ Up : Expressive marks ] | [ Controlar l’ordenació vertical de les inscripcions > ] |
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 tagline = ##f } \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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Controlar la visibilitat dels objectes d’extensió després d’un salt de línia ] | [ Up : Expressive marks ] | [ Crear un grupet d’anticipació > ] |
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 } \set fingeringOrientations = #'(up) <c-2 a-1>2 <a-1 c\tweak script-priority -100 -2>2 }
[ << Expressive marks ] | [Top][Contents] | [ Repeats >> ] |
[ < Controlar l’ordenació vertical de les inscripcions ] | [ Up : Expressive marks ] | [ Crear arpegis entre notes de veus diferents > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Crear un grupet d’anticipació ] | [ Up : Expressive marks ] | [ Crear arpegis que es creuen entre pentagrames dins d’un sistema de piano > ] |
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 } >> }
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Crear arpegis que es creuen entre pentagrames dins d’un sistema de piano ] | [ Up : Expressive marks ] | [ Crear digitacions de dues xifres > ] |
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" } } }
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Crear digitacions de dues xifres ] | [ Up : Expressive marks ] | [ Fer lligadures entre veus diferents > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Crear indicacions dinàmiques "vertaderes" entre parèntesis ] | [ Up : Expressive marks ] | [ Crear elements de extensió textuals > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Fer lligadures entre veus diferents ] | [ Up : Expressive marks ] | [ Objecte personalitzat d’extensió de text de matisos dinàmics, postfix > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Crear elements de extensió textuals ] | [ Up : Expressive marks ] | [ Objectes extensors de text postfix per a dinàmica > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Objecte personalitzat d’extensió de text de matisos dinàmics, postfix ] | [ Up : Expressive marks ] | [ Glissando per sota d’una objecte gràfic > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Objectes extensors de text postfix per a dinàmica ] | [ Up : Expressive marks ] | [ Reguladors amb diferents estils de línia > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Glissando per sota d’una objecte gràfic ] | [ Up : Expressive marks ] | [ Ocultar la línia d’extensió de les expressions textuals de dinàmica > ] |
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\! }
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Ocultar la línia d’extensió de les expressions textuals de dinàmica ] | [ Up : Expressive marks ] | [ Inserir una cesura > ] |
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 tagline = ##f } % 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 }
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Inserir una cesura ] | [ Up : Expressive marks ] | [ Puntes de fletxa per a les línies > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Lligaduras “Laissez vibrer” ] | [ Up : Expressive marks ] | [ Fer lligadures d’expressió amb estructura complexa de discontinuïtat > ] |
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 }
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) }
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
:
\paper { tagline = ##f } \relative c'' { c1-+ } dashPlus = \trill \relative c'' { c1-+ }
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Desplaçament de les lligadures d’expressió verticalment ] | [ Up : Expressive marks ] | [ Posicionar símbols d’arpegi > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Moving the ends of hairpins ] | [ Up : Expressive marks ] | [ Situar els elements de marcatge de text por dins de les lligadures > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Posicionar símbols d’arpegi ] | [ Up : Expressive marks ] | [ Impressió de reguladors en diversos estils > ] |
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 }
Impressió de reguladors en diversos estils
Els reguladors es poden crear en una àmplia varietat d’estils.
\paper { tagline = ##f } \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\! }
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\! }
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 }
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\! }
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Ajustament de la longitud mínima dels reguladors ] | [ Up : Expressive marks ] | [ Pizzicato “snap” o pizzicato de Bartók > ] |
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 }
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Pizzicato “snap” o pizzicato de Bartók ] | [ Up : Expressive marks ] | [ Ús de arpeggioBracket per fer més visible un divisi > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Usar una ratlla curta com a símbol de respiració ] | [ Up : Expressive marks ] | [ Utilitzar lligadures dobles per acords legato > ] |
Ú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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Ús de arpeggioBracket per fer més visible un divisi ] | [ Up : Expressive marks ] | [ Ús de la propietat whiteout > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Utilitzar lligadures dobles per acords legato ] | [ Up : Expressive marks ] | [ Línia vertical com una articulació barroca > ] |
Ú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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Ús de la propietat whiteout ] | [ Up : Expressive marks ] | [ Alinear verticalment expressions dinàmiques que abasten diverses notes > ] |
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 ] | [Top][Contents] | [ Repeats >> ] |
[ < Línia vertical com una articulació barroca ] | [ Up : 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\! }
Repeats
[ << Repeats ] | [Top][Contents] | [ Simultaneous notes >> ] |
[ < Repeats ] | [ Up : Repeats ] | [ Nombres de compàs centrats > ] |
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 ] | [Top][Contents] | [ Simultaneous notes >> ] |
[ < Afegir claus de repetició i segona vegada a més pentagrames ] | [ Up : Repeats ] | [ Changing the default bar lines > ] |
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 ] | [Top][Contents] | [ Simultaneous notes >> ] |
[ < Nombres de compàs centrats ] | [ Up : Repeats ] | [ Controlling the appearance of tremolo slashes > ] |
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 ] | [Top][Contents] | [ Simultaneous notes >> ] |
[ < Changing the default bar lines ] | [ Up : Repeats ] | [ Trèmolos de pentagrama creuat > ] |
Controlling the appearance of tremolo slashes
Using various properties of the StemTremolo
grob it is possible
to control the appearance of tremolo slashes.
- Property
slope
sets the slope for tremolo slashes. - Property
shape
determines whether tremolo slashes look like rectangles (valuerectangle
) or like very small beams (valuebeam-like
). - Property
style
sets both the slope and the shape depending on whether the note has flags, beams, or only a plain stem. This is in contrast to the previous two properties, which change the slope and shape unconditionally. There are two styles defined.-
default
: slashes for down-stem flags are longer and more sloped than slashes for up-stem flags; slashes on beamed notes have a rectangular shape and are parallel to the beam. -
constant
: all slashes are beam-like and have the same slope except for down-stem flags.
-
music = { a''4:32 a': e''8: \noBeam e': a'':[ a':] f':[ g':] d':[ d':] } \new Staff { <>^\markup "default" \music } \new Staff { <>^\markup \typewriter "style = #'constant" \override StemTremolo.style = #'constant \music } \new Staff { <>^\markup \typewriter "shape = #'rectangle" \override StemTremolo.shape = #'rectangle \music } \new Staff { <>^\markup \typewriter "shape = #'beam-like" \override StemTremolo.shape = #'beam-like \music } \new Staff { <>^\markup \typewriter "slope = -0.2" \override StemTremolo.slope = -0.2 \music } \paper { indent = 0 tagline = ##f }
[ << Repeats ] | [Top][Contents] | [ Simultaneous notes >> ] |
[ < Controlling the appearance of tremolo slashes ] | [ Up : Repeats ] | [ Trèmols amb barres flotants > ] |
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 ] | [Top][Contents] | [ Simultaneous notes >> ] |
[ < Trèmolos de pentagrama creuat ] | [ Up : Repeats ] | [ Símbols de percentatge aïllats > ] |
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 ] | [Top][Contents] | [ Simultaneous notes >> ] |
[ < Trèmols amb barres flotants ] | [ Up : Repeats ] | [ Comptador de compassos > ] |
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 ] | [Top][Contents] | [ Simultaneous notes >> ] |
[ < Símbols de percentatge aïllats ] | [ Up : Repeats ] | [ Numerar grups de compassos > ] |
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 } } >>