[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

5.5 Ajustaments avançats

@translationof Advanced tweaks

Aquesta secció tracta sobre diferents enfocaments per a la realització d’ajustaments fins a l’aparença de la partitura impresa.

Vegeu també

Manual d’aprenentatge: (learning)Ajustament de la sortida section ‘Ajustament de la sortida’ in Manual d’aprenentatge, (learning)Altres fonts d’informació section ‘Altres fonts d'informació’ in Manual d’aprenentatge.

Referència de la notació: Explicació del Manual de referència de funcionament intern, Modificació de les propietats.

Manual de extensió: (extending)Interfaces for programmers section ‘Interfícies per a programadors’ in Extensions.

Fitxers d’inici: ‘scm/define-grobs.scm’.

Fragments de codi: (snippets)Tweaks and overrides section ‘Tweaks and overrides’ in Fragments de codi.

Referència de funcionament intern: (internals)All layout objects section ‘All layout objects’ in Referència de funcionament intern.


[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

5.5.1 Alineació d’objectes

@translationof Aligning objects

Els objectes gràfics que donen suport a la interfície self-alignment-interface i/o la interfície side-position-interface es poden alinear contra un objecte col·locat prèviament, de diverses maneres. Per veure una llista d’aquests objectes, consulteu (internals)self-alignment-interface section ‘self-alignment-interface’ in Referència de funcionament intern i (internals)side-position-interface section ‘side-position-interface’ in Referència de funcionament intern.

Tots els objectes gràfics tenen un punt de referència, una extensió horitzontal i una extensió vertical. L’extensió horitzontal és una parella de nombres que són els desplaçament a partir del punt de referència de les vores esquerra i dreta, sent negatius els desplaçament cap a l’esquerra. L’extensió vertical és una parella de nombre que donen el desplaçament a partir del punt de refereǹcia fins les vores inferior i superior, sent negatius els desplaçaments cap avall.

La posició d’un objecte sobre el pentagrama ve donada pels valors de les propietats X-offset i Y-offset. El valor de X-offset dóna el desplaçament des de la coordenada X del punt de referència de l’objecte pare, i el valor de Y-offset dóna el desplaçament a partir de la línia central del pentagrama. Els valors de X-offset i Y-offset es poden establir directament o es pot deixar que es calculin per part de procediments per aconseguir una alineació amb l’objecte pare.

Nota: Molts objectes tenen consideracions de posicionament especials que fan que s’ignori o es modifiqui qualsevol ajustament realitzat a X-offset o a Y-offset, malgrat que l’objecte contempli la interfície self-alignment-interface. La sobreescriptura de les propietats X-offset ó Y-offset a un valor fix fa que es descarti la respectiva propietat self-alignment.

Per exemple, una alteració accidental es pot tornar a posicionar verticalment establint Y-offset però els canvis a X-offset no tenen cap efecte.

Les lletres d’assaig es poden alinear amb objectes divisibles com línies divisòries, claus, armadures i indicacions de compàs. Hi ha propietats especials, que es troben a break-aligned-interface per al posicionament de les lletres d’assaig sobre aquests objectes.

Vegeu també

Referència de la notació: Ús de la break-alignable-interface.

Manual d’extensió: (extending)Callback functions section ‘Funcions de callback’ in Extensions.


[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

Establiment directede X-offset i Y-offset

@translationof Setting X-offset and Y-offset directly

Es poden donar valors numèrics a les propietats X-offset i Y-offset de molts objectes. L’exemple següent mostra tres notes amb una digitació en la seva posició predeterminada i amb els valors X-offset i Y-offset modificats.

 
a'-3
a'
-\tweak X-offset #0
-\tweak Y-offset #0
-3
a'
-\tweak X-offset #-1
-\tweak Y-offset #1
-3

[image of music]


[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

Ús de la side-position-interface

@translationof Using the side-position-interface

Un objecte que doni suport a la side-position-interface es pot col·locar junt a un objecte pare de forma que els bords especificats dels dos objects es toquin. L’objecte es pot situar a sobre, a sota, a la dreta o a l’esquerra de l’objecte pare. EL pare no es pot especificar; ve determinat per l’ordre dels elements al flux d’entrada. Gairebé tots els objectes tenen el cap de la nota associada com a pare.

Els valors de les propietats side-axis i direction determinen on col·locar l’objecte, com segueix:

side-axisdirection
propiedadpropiedadcol·locació
0-1esquerra
01dreta
1-1a sota
11a sobre

Si side-axis és 0, X-offset s’ha d’establir al procediment ly:side-position-interface::x-aligned-side. Aquest procediment retorna el calor correcte de X-offset per situar l’objecte al costat esquerre o dret del pare d’acord amb el valor de direction.

Si side-axis és 1, Y-offset s’ha d’establir al procediment ly:side-position-interface::y-aligned-side. Aquest procediment retorna el valor correcte de Y-offset per situar l’objecte a sobre o a sota del pare d’acord amb el valor de direction.


[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

Ús de la self-alignment-interface

@translationof Using the self-alignment-interface

Auto-alineació horitzontal dels objectes

L’alineació horitzontal d’un objecte que dona suport a la interfície self-alignment-interface està controlada pel valor de la propietat self-alignment-X, sempre i quan la propietat X-offset d’aquest objecte està establerta a ly:self-alignment-interface::x-aligned-on-self. Se li pot donar a self-alignment-X qualsevol valor real, en unitats de la meitat de l’extensió X tal de l’objecte. Els valors negatius mouen l’objecte a la dreta, els positius cap a l’esquerra. Un valor de 0 centra l’objecte sobre el punt de referència del seu pare, un valor de -1 alinear la vora esquerra de l’objecte sobre el punt de referència del seu pare, i un valor de 1 alinea la vora dreta de l’objecte sobre el punt de referència del seu pare. Es poden usar els símbols LEFT, CENTER i RIGHT en substitució dels valors -1, 0 i 1, respectivament.

Normalment s’usaria l’ordre \override per modificar el valor de self-alignment-X, però es pot usar l’ordre \tweak per alinear diverses anotacions per separat sobre una sola nota:

 
a'
-\tweak self-alignment-X #-1
^"left-aligned"
-\tweak self-alignment-X #0
^"center-aligned"
-\tweak self-alignment-X #RIGHT
^"right-aligned"
-\tweak self-alignment-X #-2.5
^"aligned further to the right"

[image of music]

Auto-alineació vertical dels objectes

Els objectes es poden alinear verticalment en una forma anàloga a la alineació horitzontal si la propietat Y-offset està establerta a ly:self-alignment-interface::y-aligned-on-self. Malgra això, sovint es troben implicats altres mecanismes en l’alineació vertical: el valor de Y-offset és tan sols una variable que es té compte. Això pot fer que ajustar el valor de certes objectes sigui un tasca dificultosa. Les unitats son sols la meitat de les dimensions verticals de l’objecte, que sols ser força petit, per la qual cosa poden requerir-se nombres força grans. Un valor de -1 alinea la vora inferior de l’objecte amb el punt de referència de l’objecte pare, un valor de 0 alinea el centre de l’objecte amb el punt de referència del pare, i un valor de 1 alinear la vora superior de l’objecte amb el punt de referència del pare. Es poden usar els símbols DOWN, CENTER, UP en substitució de -1, 0 i 1, respectivament.

Auto-alineació d’objectes en las dues direccions

Establint tant X-offset com Y-offset, es pot alinear un objecte en les dues direccions simultàniament.

L’exemple següent mostra com ajustar una digitació de forme que s’apropi al cap de la nota:

 
a'
-\tweak self-alignment-X #0.5  % mou horitzontalment cap a l'esquerra
-\tweak Y-offset #ly:self-alignment-interface::y-aligned-on-self
-\tweak self-alignment-Y #-1  % mou amunt verticalment
-3  % tercer dit

[image of music]


[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

Ús de la break-alignable-interface

@translationof Using the break-alignable-interface

Les lletres d’assaig es poden alinear amb objectes de notació diferents a les barres de compàs. Aquests objectes són ambitus, breathing-sign, clef, custos, staff-bar, left-edge, key-cancellation, key-signature i time-signature.

Cada tipus d’objecte té el seu propi punt de referència predeterminat, amb el que s’alineen les marques d’assaig:

 
% La marca d'assaig s'alinearà amb la vora dreta de la clau
\override Score.RehearsalMark.break-align-symbols = #'(clef)
\key a \major
\clef treble
\mark "↓"
e'1
% La marca d'assaig s'alinearà amb la vora esquerra de la indicació de temps
\override Score.RehearsalMark.break-align-symbols = #'(time-signature)
\key a \major
\clef treble
\time 3/4
\mark "↓"
e'2.
% La marca d'assaig se centrarà sobre la marca de respiració
\override Score.RehearsalMark.break-align-symbols = #'(breathing-sign)
\key a \major
\clef treble
\time 4/4
e'1
\breathe
\mark "↓"

[image of music]

Es pot identificar una llista de possibles objectes per a l’alineació. Si alguns dels objectes són invisibles en aquest punt a causa del valor de break-visibility o de valors de visibilitat explícits per a les armadures i les claus, la lletra d’assaig o número de compàs s’alineen amb el primer objecte de la llista que sigui visible. Si cap objecte de la llista és visible, l’objecte s’alinea amb la línia divisòria. Si la línia divisòria és invisible, l’objecte s’alinea amb el punt en el qual es trobaria la línia divisòria.

 
% La marca d'assaig s'alinearà amb la vora dreta de l'armadura
\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
\key a \major
\clef treble
\mark "↓"
e'1
% La marca d'assaig s'alinearà amb la vora dreta de la clau
\set Staff.explicitKeySignatureVisibility = #all-invisible
\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
\key a \major
\clef bass
\mark "↓"
gis,1
% La marca d'assaig se centrarà sobre la línia de compàs
\set Staff.explicitKeySignatureVisibility = #all-invisible
\set Staff.explicitClefVisibility = #all-invisible
\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
\key a \major
\clef treble
\mark "↓"
e'1

[image of music]

L’alineació de la lletra d’assaig amb relació a l’objecte de notació es pot canviar, som es veu a l’exemple següent. En aquesta partitura amb diversos pentagrames, aquest ajustament s’ha de fer per a tots els pentagrames.

 
% La marca d'assaig s'alinearà amb la vora dreta de l'armadura
\override Score.RehearsalMark.break-align-symbols = #'(key-signature)
\key a \major
\clef treble
\time 4/4
\mark "↓"
e'1
% La marca d'assaig se centrarà sobre l'armadura
\once \override Score.KeySignature.break-align-anchor-alignment = #CENTER
\mark "↓"
\key a \major
e'1
% La marca d'assaig s'alinearà amb la vora esquerra de l'armadura
\once \override Score.KeySignature.break-align-anchor-alignment = #LEFT
\key a \major
\mark "↓"
e'1

[image of music]

La lletra d’assaig també es pot desplaçar a la vora dreta o esquerra en una mesura arbitrària. Les unitats són espais de pentagrama:

 
% La marca d'assaig s'alinearà amb la vora esquerra de l'armadura
% i després es desplaçarà 3.5 espais de pentagrama a la dreta
% and then shifted right by 3.5 staff-spaces
\override Score.RehearsalMark.break-align-symbols = #'(key-signature)
\once \override Score.KeySignature.break-align-anchor = #3.5
\key a \major
\mark "↓"
e'1
% La marca d'assaig s'alinearà amb la vora esquerra de l'armadura
% i després es desplaçarà 2 espais de pentagrama a l'esquerra
\once \override Score.KeySignature.break-align-anchor = #-2
\key a \major
\mark "↓"
e'1

[image of music]


[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

5.5.2 Agrupació vertical d’objectes gràfics

@translationof Vertical grouping of grobs

Els grobs (objectes gràfics) VerticalAlignment i VerticalAxisGroup treballen de manera coordinada. VerticalAxisGroup agrupa diversos grobs com Staff, Lyrics, etc. Després, VerticalAlignment alinea els diferents grobs agrupats prèviament per VerticalAxisGroup. Normalment sols existeix un VerticalAlignment per cada partitura, però cada Staff, Lyrics, etc. té el seu propi VerticalAxisGroup.


[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

5.5.3 Modificació dels segells

@translationof Modifying stencils

Tots els objectes de presentació tenen una propietat stencil que és part del grob-interface. De forma predeterminada, aquesta propietat sol estar establerta a una funció específica de l’objecte que està feta a mida per disposar del símbol que el representa a la sortida. Per exemple, l’ajustament estàndard per a la propietat stencil de l’objecte MultiMeasureRest és ly:multi-measure-rest::print.

El símbol estàndard de qualsevol objecte es pot substituir modificant la propietat stencil perquè faci referència a un procediment diferent escrit especialment. Això requereix un alt nivell de coneixement del funcionament intern del LilyPond, però hi ha una forma més fàcil que sovint pot donar resultats adequats.

El procediment consisteix a establir la propietat stencil al procediment que imprimeix text (ly:text-interface::print) i afegir una propietat text a l’objecte ajustada perquè contingui el text de marcatge que produeix el símbol requerit. A causa de la flexibilitat del marcatge, es poden aconseguir moltes coses: en particular, consulteu Notació gràfica dins d’elements de marcatge.

L’exemple següent mostra això canviant el símbol del cap de la nota a unes aspes dins d’una circumferència:

 
XinO = {
  \once \override NoteHead.stencil = #ly:text-interface::print
  \once \override NoteHead.text = \markup {
    \combine
      \halign #-0.7 \draw-circle #0.85 #0.2 ##f
      \musicglyph "noteheads.s2cross"
  }
}
\relative {
  a' a \XinO a a
}

[image of music]

Qualssevol dels glifs de Feta usats al tipus de lletra El tipus de lletra Emmentaler.

Es poden inserir en línia tant imatges en forma ‘EPS’ com ordres de Postscrip usant les ordres de marcatge \epsfile i \postscript respectivament; vegeu (notation)Graphic section ‘Grafisme’ in Referència de la notació.

Vegeu també

Referencia de la notación: Notació gràfica dins d’elements de marcatge, Donar format al text, Ordres de marcatge de text, El tipus de lletra Emmentaler, (notation)Graphic section ‘Grafisme’ in Referència de la notació.


[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

5.5.4 Modificació de les formes

@translationof Modifying shapes


[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

Modificació de lligadures d’unió i d’expressió

@translationof Modifying ties and slurs

Les lligadures d’unió (Ties), d’expressió (Slurs), de fraseig (PhrasingSlurs), de deixar vibrar (LaissezVibrerTies) i de repetició (RepeatTies) es tracen com corbes de Bézier de tercer ordre. Si la forma de la ligadur calculada automàticament no resulta òptima, es pot modificar la seva forma manualment de dues formes:

  1. mitjançant l’especificació dels desplaçament que es volen realitzar sobre els punts de control de la corba de Bézier calculada automàticament, o bé
  2. mitjançant l’especificació explícita de les posiciones dels quatre punts de control que calen per definir la corba desitjada.

A continuació s’expliquen ambdós mètodes. El primer mètode és més adequat quan sols calen lleugers ajustaments de la corba; el segon pot ser millor per crear corbes que tenen relació amb una única nota.

Corbes de Bézier cúbiques

Les corbes Bézier de tercer ordre o cúbiques estan definides per quatre punts de control. El primer i quart punts de control són exactament els punts extrems de començament i de final de la corba. Els dos punts de control intermedis defineixen la forma. Es poden trobar a la web animacions que mostren com es traça la corba, però la descripció següent pot ser d’ajuda. La corba comença a partir del primer punt de control dirigint-se directament cap al segon, corbant-se progressivament per dirigir-se cap al tercer i continuant la corba cap al quart, arribant a aquest punt en viatge directe des del tercer punt de control. La corba està continguda enterament dins del quadrilàter definit pels quatre punts de control. Totes les translacions, rotacions i escalats dels punts de control produeixen exactament les mateixes operacions sobre la corba.

Especificació de desplaçament a partir dels punts de control actuals

En aquest exemple, la col·locació automàtica de la lligadura no resulta òptima, i \tieDown no és la solució.

 
<<
  { e'1~ 1 }
\\
  \relative { r4 <g' c,> <g c,> <g c,> }
>>

[image of music]

Els ajustaments dels punts de control de la lligadura mitjançant l’ordre \shape permet evitar les col·lisions.

La sintaxi de \shape és:

 
[-]\shape desplaçament element

Aquesta ordre recol·loca els punts de control d’element en les quantitats donades per desplaçaments. L’argument desplazamientos és una llista de parelles de nombres o una llista d’aquestes llistes. Cada element d’una parella representa el desplaçament d’una de les coordenades d’un punt de control. Si l’element és una cadena de caràcter. el resultat és \once\override per al tipus de grob especificat. Si elemento és una expressió musical, el resultat és la mateixa expressió musical amb la consegüent modificació aplicada.

En altres paraules, la funció \shape pot actuar com una ordre \once\override o com una ordre \tweak depenent de si l’argument element és el nom d’un grob, com “Slur”, o una expressió musical, com “(”. L’argument desplaçaments especifica els desplaçaments dels quatre punts de control com una llista de quatre parelles de valors (dx . dy) en unitats d’espais de pentagrama (o una llista d’aquestes llistes si la corba té més d’un segment).

El guió precedent s’exigeix si, i sols si, s’usa la forma \tweak.

Així, usant el mateix exemple anterior i la forma \once\override de l’ordre \shape, el següent té l’efecte d’elevar la lligadura d’unió en la meitat d’un espai de pentagrama:

 
<<
  {
    \shape #'((0 . 0.5) (0 . 0.5) (0 . 0.5) (0 . 0.5)) Tie
    e'1~ 1
  }
\\
  \relative { r4 <g' c,> <g c,> <g c,> }
>>

[image of music]

Aquest posicionament de la lligadura d’unió és millor, però potser hauria d’elevar-se més a la part central. L’exemple següent fa això, aquest cop usant la forma alternativa \tweak:

 
<<
  {
    e'1-\shape #'((0 . 0.5) (0 . 1) (0 . 1) (0 . 0.5)) ~ e'
  }
\\
  \relative { r4 <g' c,> <g c,> <g c,> }
>>

[image of music]

Els canvis en les posicions horitzontals dels punts de control es poden fer de la mateixa forma, i dues corbes diferents que comencen al mateix moment musical també es poden conformar:

 
\relative {
  c''8(\( a) a'4 e c\)
  \shape #'((0.7 . -0.4) (0.5 . -0.4) (0.3 . -0.3) (0 . -0.2)) Slur
  \shape #'((0 . 0) (0 . 0.5) (0 . 0.5) (0 . 0)) PhrasingSlur
  c8(\( a) a'4 e c\)
}

[image of music]

La funció \shape també pot desplaçar els punts de control de les corbes que s’estenen travessant salts de línia. Cada peça de la corba dividida pot rebre la seva pròpia llista de desplaçaments. Si no cal fer canvis a un dels segments en particular, es pot usar una llista buida contenidor. En aquest exemple, el salt de línia fa que l’única lligadura d’expressió aparegui com si fossin dos:

 
\relative {
  c'4( f g c
  \break
  d,4 c' f, c)
}

[image of music]

Els canvis en la forma de les dues meitats de la lligadura d’expressió deixa més clar que la lligadura continua més enllà del salt de línia:

 
% () es pot usar com a abreviatura per a ((0 . 0) (0 . 0) (0 . 0) (0 . 0))
% si no cal canviar algun dels segments
\relative c' {
  \shape #'(
             (( 0 . 0) (0 . 0) (0 . 0) (0 . 1))
             ((0.5 . 1.5) (1 . 0) (0 . 0) (0 . -1.5))
           ) Slur
  c4( f g c
  \break
  d,4 c' f, c)
}

[image of music]

En una corba en forma d’«S» sempre cal ajustar manualment els punts de control: el Lilypond mai no escull aquestes formes automàticament.

 
\relative c'' {
  c8( e b-> f d' a e-> g)
  \shape #'((0 . -1) (5.5 . -0.5) (-5.5 . -10.5) (0 . -5.5)) PhrasingSlur
  c8\( e b-> f d' a e-> g\)
}

[image of music]

Especificació específica dels punts de control

Les coordenades dels punts de control de Bézier s’especifiquen en unitats d’espais de pentagrama. La coordenada X és relativa al punt de referència al qual s’adjunta la lligadura, i la coordenada Y és relativa a la línia central del pentagrama. Les coordenades s’especifiquen com una llista de quatre parelles de nombres decimals (reals). Un enfocament consisteix a estimar les coordenades dels dos extrems, i després endevinar els dos punts intermedis. Els valores òptims es troben després per prova i error. Tingueu en compte que aquests valors podrien requerir un ajustament manual si es fa posteriorment qualsevol canvi manual a la música o a la disposició.

Una situació en la qual és preferible especificar els punts de control explícitament a especificar els desplaçaments és quan cal especificar-los de forma relativa a una nota única. A continuació presentem un exemple d’això. Mostra una forma d’indicar una lligadura que s’estén cap a l’interior de les caselles de primera i segona veu d’una repetició.

 
\relative {
  c''1
  \repeat volta 3 { c4 d( e f }
  \alternative {
    { g2) d }
    {
      g2
      % crea una lligadura d'expressió i mou-la a una nova posició
      % <> és simplement un acord buit per portar el final de la lligadura d'unió
      -\tweak control-points #'((-2 . 3.8) (-1 . 3.9) (0 . 4) (1 . 3.4)) ( <> )
      f,
    }
    {
      e'2
      % create a slur and move it to a new position
      -\tweak control-points #'((-2 . 3) (-1 . 3.1) (0 . 3.2) (1 . 2.4)) ( <> )
      f,
    }
  }
}

[image of music]

Advertiments i problemes coneguts

No és possible modificar la forma de les lligadures d’unió o d’expressió canviant la propietat control-points si hi ha més d’una en el mateix moment musical, ni tan sols usant l’ordre \tweak. Malgrat això, es pot sobreescriure la propietat tie-configuration de TieColumn per fixar la línia d’inici i la direcció segons es requereixi.

Vegeu també

Referència de funcionament intern: (internals)TieColumn section ‘TieColumn’ in Referència de funcionament intern.


[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

5.5.5 Modificació d’objectes d’extensió dividits

@translationof Modifying broken spanners


[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

Ús d’\alterBroken

@translationof Using alterBroken

Quan un “spanner” o objecte extens travessa un o diversos salts de línia, cada fragment hereva els atributs de l’objecte d’extensió original. Així, l’ajustament ordinari d’un objecte dividit aplica les mateixes modificacions a tots i cada un dels seus segments. A l’exemple que apareix a continuació, la sobreescriptura de thickness (gruix) afecta a la lligadura a ambdós costats del salt de línia.

 
\relative c'' {
  r2
  \once\override Slur.thickness = 10
  c8( d e f
  \break
  g8 f e d) r2
}

[image of music]

És possible modificar de forma independent l’aspecte dels fragments individuals d’un objecte d’extensió dividit, amb l’ordre \alterBroken. Aquesta ordre pot produir un \override o bé un \tweak d’una propietat de l’objecte d’extensió.

La sintaxi d’\alterBroken és

 
[-]\alterBroken propietat valors element

L’argument valors és una llista de valors, un per a cada fragment. Si element és el nom d’un grob com ara Slur o Staff.PianoPedalBracket, el resultat és una ordre de sobreescriptura \override del tipus de grob especificat. Si element és una expressio musical com “(” o “[” el resultat és la mateixa expressió musical amb el corresponent ajustament aplicat.

El guió inicial s’ha d’utilitzar amb la forma d’ajustament, \tweak. No ho escriviu quan utilitzeu \alterBroken com una operació de sobreescriptura, \override.

En el seu ús com \override, \alterBroken pot anar precedit de \once o \temporary i ser revertit amb \revert amb l’argument propietat.

El codi següent aplica un \override independent a cada un dels fragments de la lligadura de l’exemple anterior:

 
\relative c'' {
  r2
  \alterBroken thickness #'(10 1) Slur
  c8( d e f
  \break
  g8 f e d) r2
}

[image of music]

L’ordre \alterBroken es pot usar amb qualsevol objecte d’extensió, inclosos Tie, PhrasingSlur, Beam i TextSpanner. Per exemple, un editor que està preparant una edició acadèmica podria desitjar indicar l’absència de part d’una lligadura de fraseig a un codi font fent discontinu sols el segment que s’ha afegit. El següent exemple il·lustra de quina manera es pot fer això, en aquest cas usant la forma \tweak de l’ordre:

 
% La llista buida s'usa convenientment a sota, atès que és la
% configuració predeterminada de línia, una línia sòlida
\relative {
  c''2-\alterBroken dash-definition #'(() ((0 1.0 0.4 0.75))) \(e
  \break
  g2 e\)
}

[image of music]

És important comprendre que \alterBroken estableix cada peça de l’objecte fragmentat al valor corresponent dins de l’argument valors. Quan hi ha menys valors que peces, qualsevol fragment addicional rep l’assignació de la llista buida. Això pot portar a resultats no desitjats si la propietat de disposició no està establerta a la llista buida de forma predeterminada. En aquests casos, s’ha d’assignar a cada segment un valor adequat.

Advertiments i problemes coneguts

Els salts de línia poden ocórrer en diferents llocs segons canvia la disposició de la música. Els ajustaments escollits per a \alterBroken podrien no ser adequats per a un objecte d’extensió que no està dividit o que es fragmenta en més peces que abans. L’ús explícit (manual) de salts de línia mitjançant \break pot prevenir aquest tipus de situacions.

L’ordre \alterBroken no és efectiva per a propietats dels objectes extensos accedides abans del salt de línia, com direction.

Vegeu també

Extender LilyPond: (extending)Difficult tweaks section ‘Ajustaments difícils’ in Extensions.


[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

5.5.6 Contenidors unpure-pure

@translationof Unpure-pure containers

Els contenidors ‘unpure-pure’ (purs i no purs) són útils per a la sobreescriptura dels càlculs de l’espaiat a l’eix Y (concretament Y-offset i Y-extent) amb una funció de l’Scheme en comptes d’un literal, és a dir, un nombre o una parella de nombres.

Per certs objectes gràfics, les dimensions Y-extent estan basades en la propietat stencil, la sobreescriptura de la propietat de segell d’aquests objectes gràfics requereix una sobreescriptura addicional de Y-extent amb un contenidor unpure-pure. Quan una funció sobreescriu una dimensió Y-offset i/o Y-extent se suposa que això dispara els càlculs dels salts de línia prematurament durant la compilació. Així doncs, la funció no s’avalua en absolut (retornant en general un valor de ‘0’ o ‘'(0 . 0)’) cosa que pot ocasionar col·lisions. Una funció ‘pura’ no afecta a les propietats, objectes o suicidis de grobs, i per això els seus valors relacionats amb l’eix Y sempre s’avaluen correctament.

Actualment hi ha unes treinta funcions que ja es consideren ‘puras’ i els contenidors Unpure-pure són una manera d’establir funcions que no estan a la llista com ‘pures’. La funció ‘pura’ s’avalua abans de qualsevol salt de línia i així l’espaiat horitzontal es pot ajustar ‘a temps’. La funció ‘impura’ s’avalua aleshores després del salt de línia.

Nota: Donat que és difícil saber sempre quines funcions estan en aquesta llista, recomanem que qualsevol funció ‘pura’ que estem creant no utilitzeu els grobs Beam o VerticalAlignment.

Un contenidor ‘unpure-pure’ es construeix de la manera següent:

(ly:make-unpure-pure-container f0 f1)

on f0 és una funció que agafa n arguments (n >= 1) i el primer argument sempre ha de ser el grob. Aquesta és la funció que dóna el resultat real. f1 és la funció que s’etiqueta com a ‘pura’ que agafa n + 2 arguments. Un altre cop, el primer argument ha de ser sempre el grob però els arguments segon i tercer són arguments d’‘inici’ i de ‘final’.

inici i final són, a tots els efectes, valors muts que sols tenen importància per als objectes d'extensió (o sigui: Hairpin, regulador, o Beam, barra), que poden retornar diferents estimacions d’altura basades en una columna d’inici i una de final.

La resta són els altres arguments per a la primera funció (que pot no ser cap si n = 1).

El resultat de la segona funció s’usa com una aproximació del valor necessari, que s’usa aleshores per la primera funció per obtenir el valor real que s’usa a continuació per a l’ajustament de precisió molt més tardà durant el procés d’espaiat.

 
#(define (square-line-circle-space grob)
(let* ((pitch (ly:event-property (ly:grob-property grob 'cause) 'pitch))
      (notename (ly:pitch-notename pitch)))
 (if (= 0 (modulo notename 2))
     (make-circle-stencil 0.5 0.0 #t)
     (make-filled-box-stencil '(0 . 1.0)
                              '(-0.5 . 0.5)))))

squareLineCircleSpace = {
  \override NoteHead.stencil = #square-line-circle-space
}

smartSquareLineCircleSpace = {
  \squareLineCircleSpace
  \override NoteHead.Y-extent =
   #(ly:make-unpure-pure-container
      ly:grob::stencil-height
      (lambda (grob start end) (ly:grob::stencil-height grob)))
}

\new Voice \with { \remove "Stem_engraver" }
\relative c'' {
  \squareLineCircleSpace
  cis4 ces disis d
  \smartSquareLineCircleSpace
  cis4 ces disis d
}

[image of music]

En el primer compàs, sense el contenidor unpure-pure, el motor d’espaiat no coneix l’amplada del cap de la nota i permet que col·lisioni amb les alteracions accidentals. En el segon compàs, el motor d’espaiat coneix l’amplada dels caps de les notes i evita la col·lisió mitjançant l’allargament de la línia en la mesura adequada.

Normalment, per als càlculs simples es poden usar funcions gairebé idèntiques tant per a les parts ‘no pura’ i ‘pura’, simplement canviant el nombre d’arguments que es passen a, i l’àmbit de la funció. Aquest cas d’utilització és prou suficient com perquè ly:make-unpure-pure-container construeixi aquesta segona funció de forma predeterminada quan es crida amb sols un argument de funció.

Nota: Si una funció està caracteritzada com a ‘pura’ i resulta que no ho és, el resultat pot ser inesperat.


[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]

This document was generated by gub on Juliol 13, 2020 using texi2html 1.82.

Altres idiomes: English, deutsch, español, français, italiano, 日本語.
Quant a la selecció automàtica de la llengua.