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

4.3 Aparença dels objectes

@translationof Appearance of objects

Ara posarem en practica el que hem après amb uns quants exemples que mostren com es poden usar els ajustament per canviar l’aspecte de la música impresa.


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

4.3.1 Visibilitat i color dels objectes

@translationof Visibility and color of objects

Dins d’una ús educatiu de la música, podríem desitjar imprimir una partitura amb certs elements omesos com a exercici per a l’alumne, a qui es demana que els completi. Com a exemple senzill, suposem que l’exercici és escriure les línies divisòries que falten en un fragment musical. Però les línies divisòries que normalment s’insereixen automàticament, com fem perquè no s’imprimeixin?

Abans d’embolicar-nos amb això, recordem que les propietats dels objectes s’agrupen en el que hem anomenat interfaces (vegeu Propietats de les interfícies). Això implica simplement agrupar les propietats que es poden usar juntes per ajustar un objecte gràfic: si una d’elles es necessita per a un objecte, també les altres. Així, certs objectes usen les propietats d’alguns interfícies, altres usen les d’altres interfícies. Les interfícies que contenen les propietats que un determinat grob necessita es troben relacionades al manual RFI al final de la pàgina que descriu aquest grob, i aquestes propietats es poden veure mirant aquestes interfícies.

Hem explicat com trobar informació sobre els grobs a Propietats dels objectes de presentació. Usant el mateix enfocament, anem al RFI per buscar l’objecte de presentació que imprimeix les línies divisòries. Mitjançant l’enllaç Backend i All layout objects trobem que hi ha un objecte de presentació anomenat Barline. Entre les seves propietats es troben dues que controlen la visibilitat: break-visibility i stencil. Les línies divisòries també contemplen una sèrie d’interfícies, entre ells el grob-interface, on podem trobar les propietats transparent i color. Totes poden afectar la visibilitat de les barres de compàs (i, per suposat, per extensió, també la de molts altres objectes de presentació). Considerarem cada un d’ells per ordre.


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

La propietat stencil (segell)

@translationof The stencil property

Aquesta propietat controla l’aparença de les barres de compàs mitjançant l’especificació del símbol (o «glif») que s’ha d’imprimir. Igual que com altres moltes propietats, es pot establir de forma que no imprimeixi res ajustant el seu valor a #f. El provarem, com abans, ometent el Context implícit, pVoice:

 
\relative {
  \time 12/16
  \override BarLine.stencil = ##f
  c''4 b8 c d16 c d8 |
  g,8 a16 b8 c d4 e16 |
  e8
}

[image of music]

Les barres de compàs encara s’imprimeixen. Què és el que està malament? Torneu al RFI i mireu un altre cop la pàgina que ofereix les propietats de l’objecte Barline. Al principi de la pàgina diu “Barline objects are created by: Bar_engraver” (els objectes Barline es creen pel gravador Bar_engraver). Aneu a la pàgina del gravador Bar_engraver seguint l’enllaç. Al final dóna una llista de contextos en els quals el gravador de línies divisòries opera. Tots ells són del tipus Staff, i així la raó que l’ordre \override no funcionés com esperàvem, és perquè Barline no es troba en el context predeterminat Voice. Si el context no s’especifica correctament, l’ordre simplement no funciona. No es produeix cap missatge d’error, i no es registra res al fitxer log de registre. Intentarem corregir-lo escrivint el context correcte:

 
\relative {
  \time 12/16
  \override Staff.BarLine.stencil = ##f
  c''4 b8 c d16 c d8 |
  g,8 a16 b8 c d4 e16 |
  e8
}

[image of music]

Ara les barres de compàs han desaparegut. L’operació d’establir la propietat stencil al valor #f és tan freqüent que hi ha una abreviatura per a ella, anomenada \omit (ometre):

 
\relative {
  \time 12/16
  \omit Staff.BarLine
  c''4 b8 c d16 c d8 |
  g,8 a16 b8 c d4 e16 |
  e8
}

[image of music]

Malgrat això, observeu que l’establiment de la propietat stencil al valor #f produeix error quan es requereixen les dimensions de l’objecte per un processament correcte. Per exemple, es generen errors si la propietat stencil de l’objecte NoteHead s’estableix al valor #f. Si és el cas, podem en comptes d’això utilitzar la funció point-stencil, que estableix el segell a un objecte amb mida nul·la:

 
\relative {
  c''4 c
  \once \override NoteHead.stencil = #point-stencil
  c4 c
}

[image of music]


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

La propietat break-visibility (visibilitat del salt)

@translationof The break-visibility property

Veiem a les propietats de BarLine que apareixen al RFI que la propietat break-visibility requereix un vector de tres valors booleans. Controlen respectivament si les barres de compàs s’imprimeixen al final d’una línia, a meitat d’una línia, i al principi de les línies. Per al nostre exemple, volem que totes les barres de compàs es suprimeixin, per la qual cosa el valor que ens cal és #(#f #f #f) (disponible també sota el nom all-invisible, totes invisibles). Anem a provar-lo, recordant incloure el context de Staff. Observeu també en escriure aquest valor tenim ## abans de la clau d’obertura. Cal un # com a part de la sintaxi de les constants vectorials, i el primer símbol d’encoixinat # cal, com sempre, per precedir el valor mateix dins de l’ordre \override.

 
\relative {
  \time 12/16
  \override Staff.BarLine.break-visibility = ##(#f #f #f)
  c''4 b8 c d16 c d8 |
  g,8 a16 b8 c d4 e16 |
  e8
}

[image of music]

I podem veure que això també treu totes les línies divisòries.


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

La propietat transparent (transparent)

@translationof The transparent property

En la relació de propietats que s’especifiquen a la pàgina del grob-interface del RFI podem veure que la propietat transparent és un valor booleà. Això s’ha d’establir a #t per fer que el grob sigui transparent. A l’exemple següent farem que la indicació de compàs, i no les línies divisòries, siguin transparents. Per fer-lo hem de buscar el nom del grob de la indicació de compàs. Tornat a la pàgina ‘All layout objects’ del RFI, busquem les propietats de l’objecte de presentació TimeSignature. El produeix el gravador Time_signature_engraver que com podeu comprovar viu dins del context Staff i també contempla la interfície grob-interface. Així doncs, l’ordre que fa transparent a la indicació de compàs és:

 
\relative {
  \time 12/16
  \override Staff.TimeSignature.transparent = ##t
  c''4 b8 c d16 c d8 |
  g,8 a16 b8 c d4 e16 |
  e8
}

[image of music]

Un cop més, l’establiment de la propietat transparent és una operació força freqüent, de manera que tenim una abreviatura anomenada \hide (ocultar):

 
\relative {
  \time 12/16
  \hide Staff.TimeSignature
  c''4 b8 c d16 c d8 |
  g,8 a16 b8 c d4 e16 |
  e8
}

[image of music]

En cap dels dos casos apareix ja la indicació de compàs, però aquesta ordre deixa una separació en el lloc on abans hi havia la indicació de compàs. Potser això és el que volem per a un exercici on l’alumne hagi d’escriure’l, però en altres circumstàncies aquesta separació podria no ser desitjable. En comptes d’això, per treure-la, el stencil o «segell» de la indicació de compàs s’ha d’establir al valor #f:

 
\relative {
  \time 12/16
  \omit Staff.TimeSignature
  c''4 b8 c d16 c d8 |
  g,8 a16 b8 c d4 e16 |
  e8
}

[image of music]

i la diferència és òbvia: en establir el segell al valor #f (possiblement per mitjà de \omit traiem l’objecte per complet; en fer l’objecte transparent (cosa que es pot fer utilitzant \hide) el deixen on és, però el fem invisible.


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

La propietat color

@translationof The color property

Per finalitzar, intentem fer invisibles les barres de compàs pintant-les de color blanc (hi ha un problema relacionat, que consisteix en què la línia divisòria blanca pot tapar o no tapar les línies del pentagrama amb les quals es creua. Podreu observar en alguns dels exemples que apareixen a continuació, que això succeeix de forma impredictible. Els detalls sobre perquè això passa així, i com controlar-lo, s’estudien a (notation)Pintar els objectes de blanc section ‘Pintar els objectes de blanc’ in Referència de la notació; de moment estem estudiant el color, per la qual cosa us preguem que accepteu aquesta limitació per ara).

La interfície grob-interface especifica que la propietat del color és una llista, però no hi ha cap explicació sobre el que ha d’anar a aquesta llista. La llista que requereix és realment una llista de valors en unitats internes, però per evitar haver de saber quines són, s’ofereixen diverses vies per a l’especificació dels colors. La primera forma és utilitzar un dels colors ‘normals’ dels quals es fa una relació a la primera taula de la (notation)Llista de colors section ‘Llista de colors’ in Referència de la notació. Per posar les línies divisòries de color blanc, escrivim:

 
\relative {
  \time 12/16
  \override Staff.BarLine.color = #white
  c''4 b8 c d16 c d8 |
  g,8 a16 b8 c d4 e16 |
  e8
}

[image of music]

i un altre cop podem comprovar que les barres de compàs no són visibles. Observeu que white no ve precedit d’un apòstrof: no és un símbol, sinó una variable. Quan s’avalua, proporciona la llista de valors interns que es requereixen per establir el color a blanc. Els altres colores de la llista normal també són variables. Per convèncer-vos que això funciona, potser voleu canviar el color a una de les altres variables de la llista.

La segona forma de canviar el color és utilitzar la llista de noms de colores d’X11 que apareix a la segona llista de (notation)Llista de colors section ‘Llista de colors’ in Referència de la notació. De totes maneres, es fan correspondre als valors real per mitjà de la funció x11-color que converteix els símbols de color d’X11 a la llista de valors interns d’aquests colors:

 
\relative {
  \time 12/16
  \override Staff.BarLine.color = #(x11-color 'white)
  c''4 b8 c d16 c d8 |
  g,8 a16 b8 c d4 e16 |
  e8
}

[image of music]

Observeu que en aquest cas la funció x11-color agafa un símbol com a argument, de manera que el símbol ha d’anar precedit d’un apòstrof per evitar que resulti avaluat com si fos una variable, i tota la crida a la funció s’ha de envoltar entre parèntesis.

Encara hi ha una altra funció, que converteix valors RGB en colors interns: la funció rgb-color. Agafa tres arguments que donen les intensitats de vermell, verd i blau. Cadascú d’ells pot agafar valors entre 0 i 1. Per tant, per establir el color a vermell, el valor ha de ser (rgb-color 1 0 0) i per a blanc ha de ser (rgb-color 1 1 1):

 
\relative {
  \time 12/16
  \override Staff.BarLine.color = #(rgb-color 1 1 1)
  c''4 b8 c d16 c d8 |
  g,8 a16 b8 c d4 e16 |
  e8
}

[image of music]

Finalment, hi ha també una escala de grisos com a part del conjunt de colors d’X11. Varien des del negre, 'grey0, fins al blanc, 'grey100, en passos de 1. Il·lustrarem això establint tots els objectes de presentació del nostre exemple a diverses gradacions de gris:

 
\relative {
  \time 12/16
  \override Staff.StaffSymbol.color = #(x11-color 'grey30)
  \override Staff.TimeSignature.color = #(x11-color 'grey60)
  \override Staff.Clef.color = #(x11-color 'grey60)
  \override Voice.NoteHead.color = #(x11-color 'grey85)
  \override Voice.Stem.color = #(x11-color 'grey85)
  \override Staff.BarLine.color = #(x11-color 'grey10)
  c''4 b8 c d16 c d8 |
  g,8 a16 b8 c d4 e16 |
  e8
}

[image of music]

Observeu els contextos associats amb cadascú dels objectes de presentació. És important que estiguin correctament escrits, o les ordres no funcionaran. Recordeu que el context és aquell en el qual es troba el gravador corresponent. El context predeterminat per als gravadors pot trobar-se començant per l’objecte de presentació, d’aquí al gravador que el produeix, i a la pàgina del gravador del RFI apareix en quin context es pot trobar normalment el gravador.


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

4.3.2 Mida dels objectes

@translationof Size of objects

Començarem examinant un altre cop un exemple anterior (vegeu Niuat d’expressions musicals) que ens mostrava com introduir un pentagrama temporal, com a un (music-glossary)ossia section ‘ossia’ in Glossari musical.

 
\new Staff ="main" {
  \relative {
    r4 g'8 g c4 c8 d |
    e4 r8
    <<
      { f8 c c }
      \new Staff \with {
        alignAboveContext = "main" }
      { f8 f c }
    >>
    r4 |
  }
}

[image of music]

Els fragments d’Ossia s’escriuen normalment sense clau ni compàs, i en general s’imprimeixen més petits que el pentagrama principal. Ja sabem com treure la clau i el compàs: simplement establim el segell de cadascú d’ells a #f, como segueix:

 
\new Staff ="main" {
  \relative {
    r4 g'8 g c4 c8 d |
    e4 r8
    <<
      { f8 c c }
      \new Staff \with {
        alignAboveContext = "main"
      }
      {
        \omit Staff.Clef
        \omit Staff.TimeSignature
        { f8 f c }
      }
    >>
    r4 |
  }
}

[image of music]

on el parell de claus addicionals després de l’ordre \with són necessàries per assegurar que la sobreescriptura envoltada i la música s’apliquen al pentagrama d’ossia.

Però, quina és la diferència entre modificar el context de pentagrama usant \with i modificar els segells de clau i de compàs amb \override, o en aquest cas \omit? La diferència principal és que els canvis que es realitzen a una ordre \with es fan en el moment que es crea el context, i romanen actiu com a valors predeterminats durant tota la duració d’aquest context, mentre que les ordres \set o \override incloses dins de la música són dinàmiques: fan canvis sincronitzats amb un punt concret de la música. Si els canvis es desfan o es reverteixen mitjançant \unset o \revert tornaran al seu valor predeterminat que serà l’establert a l’ordre \with, o si no s’ha establert cap valor en aquest lloc, els valors predeterminats normals.

Certes propietats de context es poden modificar sols dins de les ordres \with. Són aquelles propietats que no es poden canviar després que el context s’hagi creat. alignAboveContext i el seu company, alignBelowContext, són dos d’aquestes propietats: un cop que el pentagrama s’ha creat, la seva alineació està decidida i no tindria sentit intentar canviar-la més tard.

Els valors predeterminats de les propietats dels objectes de presentació també es poden establir dins d’ordres \with. Simplement utilitzeu l’ordre \override normal deixant a part el nom del context, ja que està definit sense ambigüitat com el context que l’ordre \with està modificant. De fet, es produirà un error si s’especifica un context en aquest lloc.

Així doncs, podem reemplaçar l’exemple anterior amb

 
\new Staff ="main" {
  \relative {
    r4 g'8 g c4 c8 d |
    e4 r8
    <<
      { f8 c c }
      \new Staff \with {
        alignAboveContext = "main"
        % Don't print clefs in this staff
        \override Clef.stencil = ##f
        % Don't print time signatures in this staff
        \override TimeSignature.stencil = ##f
      }
      { f8 f c }
    >>
    r4 |
  }
}

[image of music]

Resulta que també podem usar aquí les abreviatures \hide i \omit per fixar la propietat transparent i esborrar el stencil, el que condueix al resultat següent:

 
\new Staff ="principal" {
  \relative {
    r4 g'8 g c4 c8 d |
    e4 r8
    <<
      { f8 c c }
      \new Staff \with {
        alignAboveContext = "principal"
        % No imprimeixis claus en aquest pentagrama
        \omit Clef
        % No imprimeixis indicacions de compàs en aquest pentagrama
        \omit TimeSignature
      }
      { f8 f c }
    >>
    r4 |
  }
}

[image of music]

Finalment arribem a la forma de canviar la mida dels objectes de presentació.

Certs objectes de presentació es creen com glifs trets d’un tipus de lletra. Entre ells es troben els caps, alteracions, elements de marcatge, claus, indicacions de compàs, indicacions dinàmiques i la lletra de les cançons. La seva mida es canvia mitjançant la modificació de la propietat font-size, com veurem en breu. Altres objectes de presentació, com ara lligadures d’unió i d’expressió (en general, objectes d’extensió) es dibuixen individualment, per la qual cosa no hi ha una mida de tipus de lletra font-size associat amb ells. Aquests objectes generalment deriven la seva mida dels objectes als quals estan adjuntats, i per això normalment no hi ha necessitat de canviar-los la mida manualment. A més a més, altres propietats com la longitud de les pliques i les barres de compàs, el gruix de les barres de corxera i altres línies, i la separació de les línies del pentagrama, s’han de modificar d’altres maneres especials.

Tornant a l’exemple de l’ossia, canviarem en primer lloc la mida del tipus de lletra. Podem fer-lo de dues formes. Podem canviar la mida dels tipus de lletra de cadascú dels tipus d’objecte com els caps (NoteHeads) amb instruccions com ara:

 
\override NoteHead.font-size = #-2

o podem canviar la mida de tots els tipus de lletra establint una propietat especial, fontSize, utilitzant \set, o mitjançant la seva inclusió dins d’una ordre \with (però sense el \set).

 
\set fontSize = #-2

Els dos enunciats produirien una reducció de la mida del tipus de lletra en dos passos a partir del seu valor previ, on cada pas redueix o augmenta la mida aproximadament en un 12%.

Ho provarem al nostre exemple de l’ossia:

 
\new Staff ="main" {
  \relative {
    r4 g'8 g c4 c8 d |
    e4 r8
    <<
      { f8 c c }
      \new Staff \with {
        alignAboveContext = "main"
        \omit Clef
        \omit TimeSignature
        % Redueix totes les mides de tipus de lletra per ~24%
        fontSize = #-2
      }
      { f8 f c }
    >>
    r4 |
  }
}

[image of music]

Encara no està massa bé. Els caps i les pliques de les notes són més petits, però les pliques són massa llargues en proporció, i les línies del pentagrama estan massa separades entre sí. S’ha de reduir la seva escala en proporció a la reducció del tipus de lletra. El següents apartat tracta sobre com es fa això.


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

4.3.3 Longitud i gruix dels objectes

@translationof Length and thickness of objects

Les distàncies i longituds al LilyPond es mesuren generalment en espais de pentagrama, la distància entre línies adjacents de la pauta (o de manera ocasional mig espais), mentre que la major part de les propietats de thickness (gruix) es mesuren en unitats d’una propietat interna anomenada line-thickness. Per exemple, de forma predeterminada, a les línies dels reguladors se’ls dóna un gruix d’una unitat de line-thickness, mentre que el thickness d’una plica és 1.3. Observeu tanmateix que certes propietats de gruix són diferents; per exemple, el gruix de les barres de corxera es controla per mitjà del valor de beam-thickness, que es mesura en espais de pentagrama.

Aleshores, com s’han d’escalar les longituds en proporció a la mida del tipus de lletra? Es pot fer amb l’ajuda d’una funció espacial que s’anomena magstep, pensada especialment per a aquest propòsit. Agafa un argument, el canvi de mida de la tipografia (#-2 al nostre exemple) i retorna un factor d’escalat adequat per reduir altres objectes en la mateixa proporció. S’una de la forma següent:

 
\new Staff ="main" {
  \relative {
    r4 g'8 g c4 c8 d |
    e4 r8
    <<
      { f8 c c }
      \new Staff \with {
        alignAboveContext = "main"
        \omit Clef
        \omit TimeSignature
        fontSize = #-2
        % Redueix la longitud de la plica i l'espaiat entre línies per concordar
        \override StaffSymbol.staff-space = #(magstep -2)
      }
      { f8 f c }
    >>
    r4 |
  }
}

[image of music]

Atès que la longitud de les pliques i moltes altres propietats relacionades amb les longituds es calculen sempre en relació al valor de la propietat staff-space, la seva longitud també veu reduïda la seva escala automàticament. Observeu que això afecta sols a l’escala vertical de l’ossia: l’escala horitzontal es determina per mitjà de la disposició de la música principal amb l’objectiu de mantenir-se en sincronia amb ella, de forma que no resulti afectada per cap d’aquests canvis de mida. Per suposat, si l’escala de tota la música principal es canviés d’aquesta forma, aleshores l’espaiat horitzontal es veuria afectat. Tractarem d’això més tard, en la secció sobre la disposició.

Això, finalment, completa la creació d’un ossia. Les mides i longituds de la resta dels objectes es poden modificar de manera semblant.

Per a canvis d’escala petits, com a l’exemple de dalt, el gruix de les diverses línies dibuixades com ara divisòries, barres de corxera, reguladors, lligadures, etc., no requereixen normalment cap ajust global. Si cal ajustar el gruix de qualsevol objecte de presentació en particular, es pot fer millor mitjançant la sobreescriptura de la seva propietat thickness. Anteriorment vam mostrar un exemple de canvi de gruix en les lligadures, a Propietats dels objectes de presentació. El gruix de tots els objectes dibuixats (és a dir, aquells que no es produeixen a partir d’un tipus de lletra) es poden canviar de la mateixa forma.


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

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

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