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

5.1 Contextos d’interpretació

@translationof Interpretation contexts

Aquesta secció explica que són els contextos i com modificar-los.

Vegeu també

Manual d’aprenentatge: (learning)Contextos i gravadors section ‘Contextos i gravadors’ in Manual d’aprenentatge.

Fitxers d’inici: ‘ly/engraver-init.ly’, ‘ly/performer-init.ly’.

Fragments de codi (snippets)Contexts and engravers section ‘Contexts and engravers’ in Fragments de codi.

Referència de funcionament intern: (internals)Contexts section ‘Contexts’ in Referència de funcionament intern, (internals)Engravers and Performers section ‘Engravers and Performers’ in Referència de funcionament intern.


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

5.1.1 Explicació dels contextos

@translationof Contexts explained

Els contextos es disposen de forma jeràrquica:


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

Definicions de sortida - estructura dels contextos

@translationof Output definitions - blueprints for contexts

Aquesta secció explica la rellevància de les definicions de sortida quan es treball amb els contextos. Més endavant oferim exemples de definicions de sortida reals (vegeu Canvi de tots els contextos del mateix tipus).

Tot i que la música escrita a un fitxer faci referència a tipus i noms de context, els contextos es creen sols quan la música s’està realment interpretant. El LilyPond interpreta la música sota el controla d’una ‘definició de sortida’ i pot fer-lo així per diverses definicions de sortida diferents, donant com a resultat també diferents sortides. La definició de sortida que correspon a la impressió de la música s’especifica mitjançant \layout.

Una definició de sortida molt més senzilla que s’usa per a la producció de MIDI s’especifica mitjanant \midi. Internament, el LilyPond utilitza diverses altres definicions de sortida, com quan s’usa el combinador de particel·les (Combinació automàtica de les parts) o es creen fragments de notes guia citades (Cites a altres veus).

Les definicions de sortida estableixen la relació entre els contextos així com els seus respectius valors predeterminats. Tot i que la major part dels canvis se solen fer dins d’un bloc \layout, els ajustaments de valors relacionats amb el MIDI sols tenen efecte quan es fan dins d’un bloc \midi block.

Alguns ajustaments afecten a diverses sortides: per exemple, si es desactiva el barrat automàtic, autoBeaming, dins d’algun context, les barres compten com melismes pel que respecta a la correspondència entre la música i la lletra, com es descriu a Duració automàtica de les síl·labes. Aquesta correspondència es fa tant per a la sortida impresa com per al MIDI. Si els canvis fets sobre l’autoBeaming dins de la definició de context d’un bloc \layout no es repeteixen dins del corresponent bloc \midi, la lletra i la música deixaran d’estar sincronitzades dins del MIDI.

Vegeu també

Fitxers instal·lats: ‘ly/engraver-init.ly’. ‘ly/performer-init.ly’.


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

Score - el context mestre

@translationof Score - the master of all contexts

Aquest és el context de notació més alt. Cap altre context pot contenir un context Score. De forma predeterminada, el context Score gestiona l’administració de les indicacions de compàs i s’assegura que certs elements com claus, compassos i armadures estan sempre alineats entre els diferents pentagrames.

Es crea implícitament una instància del context Score quan es processa un bloc \score {…}.


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

Contextos del nivell superior - contenidors de pentagrames

@translationof Top-level contexts - staff containers

StaffGroup

Agrupa pentagrames i afegeix una clau a la part esquerra, formant un grup. Les línies divisòries dels pentagrames continguts es connecten verticalment. StaffGroup sols consisteix en una col·lecció de pentagrames, amb una clau endavant i línies divisòries de dalt a baix.

ChoirStaff

Idèntic a StaffGroup excepte que les barres de compàs dels pentagrames continguts no es connecten verticalmente.

GrandStaff

Un grup de pentagrames, amb una clau en la part esquerra que abasta el grup. Les barres de compàs dels pentagrames continguts es connecten verticalment.

PianoStaff

Igual que GrandStaff, però dóna suport a la possibilitat deposar el nom de l’instrument a l’esquerra del sistema.


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

Contextos de nivell intermedi - pentagrames

@translationof Intermediate-level contexts - staves

Staff

Gestiona claus, barres de compàs, tonalitats i alteracions accidentals. Pot contenir contextos de Voice.

RhythmicStaff

Com Staff, però per imprimir ritmes. En imprimir s’ignoren les altures de les notes; les notes s’imprimeixen sobre una línia. La sortida de MIDI conserva les altures sense modificació.

TabStaff

Context per generar tabulatures. De forma predeterminada disposa l’expressió musical com una tabulatura de guitarra, impresa sobre sis línies.

DrumStaff

Gestiona el gravat per a instruments de percussió. Pot contenir contextos DrumVoice.

VaticanaStaff

Igual que Staff, excepte que està pensat per gravar peces en estil gregorià.

MensuralStaff

Igual que Staff, excepte que est+a dissenyat per gravar peces en estil mensural.


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

Contextos del nivell més baix - veus

@translationof Bottom-level contexts - voices

Els contextos del mateix nivell que Voice donen un valor inicial a certes propietats i inicien els gravadors corresponents. Un context del nivell més baix és aquell que no té un context descendent predeterminat defaultchild. Tot i que és possible fer que pugui acceptar o contenir subcontextos, sols es poden crear i introduir de forma explícita.

Voice

Correspon a una veu sobre un pentagrama, aquest context gestiona la conversió de les indicacions dinàmiques, pliques, barres, subíndexs i superíndexs, lligadures d’expressió i d’unió, i silencis. Hem de crear instàncies explícites d’aquest context si ens cal diverses vegades al mateix pentagrama.

VaticanaVoice

El mateix que Voice, excepte que està dissenyat per a gravar peces en estil gregorià.

MensuralVoice

El mateix que Voice, amb modificacions per al gravat de peces en estil mensural.

Lyrics

Correspon a una veu amb lletra. Gestiona la impressió d’una sola línia de lletra.

DrumVoice

El context de veu utilitzat a una pauta de percussió.

FiguredBass

El context en el qual els objectes BassFigure es creen a partir de l’entrada escrita en el mode \figuremode.

TabVoice

El context de veu utilitzat dins d’un context TabStaff. Se sol deixar que es creï implícitament.

CueVoice

El context de veu que s’utilitza per dibuixar notes de mida reduïda, amb l’objectiu principal d’afegir notes guia d’un pentagrama a un altre, vegeu Format de les notes guia. Normalment es deixa que creï implícitament.

ChordNames

Gravat de noms d’acords.


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

5.1.2 Creació i referenciació dels contextos

@translationof Creating and referencing contexts

El LilyPond crea automàticament contextos de nivell inferior si es troba una expressió musical abans que existeixi un context adequat, però normalment això sols funciona bé per a partitures senzilles o fragments musicals com els que apareixen a la documentació. Per a partitures més complexes, es recomana especificar explícitament tots els contextos amb les ordres \new o \context. La sintaxi d’aquestes dues ordres es molt semblant:

 
[\new | \context] Context [ = nom] [expressió_musical]

on es pot especificar \new o \context. Context és el tipus de context que es desitja crear, nom és un nom opcional que es dóna al context concret que s’està creant, i expressió_musical és una sola expressió musical que serà interpretada pels complements gravadors i reproductors dins d’aquest context.

El prefix \new sense cap nom s’usa freqüentment per crear partitures de molts pentagrames:

 
<<
  \new Staff \relative {
    % deixeu que el context Voice es creï implícitament
    c''4 c
  }
  \new Staff \relative {
    d''4 d
  }
>>

[image of music]

i per introduir diverses veus dins d’un sol pentagrama:

 
\new Staff <<
  \new Voice \relative {
    \voiceOne
    c''8 c c4 c c
  }
  \new Voice \relative {
    \voiceTwo
    g'4 g g g
  }
>>

[image of music]

\new s’hauria d’usar sempre per especificar contextos sense nom.

La diferència entre \new i \context es troba a l’acció que es realitza:

Un context ha de tenir un nom si es farà referència a ell més tard, per exemple quan s’associa la lletra amb la música:

 
\new Voice = "tenor" música
…
\new Lyrics \lyricsto "tenor" letra

Per veure més detalls sobre l’associació de lletra i música, consulteu Duració automàtica de les síl·labes.

Les propietats de tots els contextos d’un tipus particular es poden modificar dins d’un bloc \layout (amb una sintaxi diferent), vegeu Canvi de tots els contextos del mateix tipus.

Aquesta construcció també ofereix una forma de mantenir les ordres de disposició separades del contingut musical. Si es modificarà un sols context, s’ha d’usar un bloc \with, vefeu Canvi de sols un context determinat.

Vegeu també

Manual d’aprenentatge (learning)Organitzar les peces mitjançant variables section ‘Organitzar les peces mitjançant variables’ in Manual d’aprenentatge.

Referència de la notació: Canvi de sols un context determinat, Duració automàtica de les síl·labes.


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

5.1.3 Manteniment amb vida dels contextos

@translationof Keeping contexts alive

Normalment els contextos finalitzen en el primer moment musical en el qual no tenen res a fer. Així, els contextos de Voice moren tan aviat com ja no contenen cap esdeveniment, els contextos Staff moren tan aviat com tots els contextos de Voice que contenien ja no continguin cap esdeveniment, etc. Això pot ocasionar dificultats si s’ha de fer referència a contextos anteriors que ja han mort, per exemple, en canviar de pentagrames amb ordres \change, associar lletra amb una veu mitjançant ordres \lyricsto, o quan s’afegeixen esdeveniments musicals addicionals a un context anterior.

Hi ha una excepció a aquesta regla general: dins d’una construcció {…} (música seqüencial), la noció que la construcció té del “contexto actual” descendirà un nivell cada cop que un element de la seqüència finalitza en un subcontext del context anterior. Això evita la creació espúria de contextos implícits en certes situacions, però significa que el primer context dins del que es descendeix, es mantindrà viu fins al final de l’expressió.

Com a contrast, els contextos d’una expressió feta amb la construcció <<…>> (música simultània) no es perllonguen, per la qual cosa si una ordre que crea un context s’envolta en una altre parell de <<…>>, s’impedirà que el context persisteixi durant tota la duració de la seqüència {…} que el conté.

Qualsevol context es pot mantenir viu si ens assegurem que té quelcom a fer en qualsevol moment musical donat. Els contextos de Staff es mantenen amb vida si en assegurem que una de les seves veus es manté viva. Una manera de fer-lo és afegir silencis de separació a una veu en paral·lel amb la música real. Aquests silencis s’han d’afegir a tots i cada un dels contextos de Voice que usaran esporàdicament diverses veus, és més segur mantenir-les totes vies enlloc d’intentar confiar en les excepcions que hem mencionat a dalt.

A l’exemple següent, tant la veu A com la veu B es mantenen vives d’aquesta manera durant la duració de la peça:

 
musicA = \relative { d''4 d d d }
musicB = \relative { g'4 g g g }
keepVoicesAlive = {
  <<
    \new Voice = "A" { s1*5 }  % Manté la veu «A» viva per 5 compassos
    \new Voice = "B" { s1*5 }  % Manté la veu «B» viva per 5 compassos
  >>
}

music = {
  \context Voice = "A" {
    \voiceOneStyle
    \musicA
  }
  \context Voice = "B" {
    \voiceTwoStyle
    \musicB
  }
  \context Voice = "A" { \musicA }
  \context Voice = "B" { \musicB }
  \context Voice = "A" { \musicA }
}

\score {
  \new Staff <<
    \keepVoicesAlive
    \music
  >>
}

[image of music]

L’exemple següent mostra com es pot escriure una línia melòdica esporàdica amb lletra utilitzant aquest enfocament. Per suposat, en una situació real la melodia i l’acompanyament consistirien en diverses seccions diferents.

 
melody = \relative { a'4 a a a }
accompaniment = \relative { d'4 d d d }
words = \lyricmode { These words fol -- low the mel -- o -- dy }
\score {
  <<
    \new Staff = "music" {
      <<
        \new Voice = "melody" {
          \voiceOne
          s1*4  % Manté la veu «melody» viva per 4 compassos
        }
        {
          \new Voice = "accompaniment" {
            \voiceTwo
            \accompaniment
          }
          <<
            \context Voice = "melody" { \melody }
            \context Voice = "accompaniment" { \accompaniment }
          >>
          \context Voice = "accompaniment" { \accompaniment }
          <<
            \context Voice = "melody" { \melody }
            \context Voice = "accompaniment" { \accompaniment }
          >>
        }
      >>
    }
    \new Lyrics \with { alignAboveContext = "music" }
    \lyricsto "melody" { \words }
  >>
}

[image of music]

Una forma alternativa, que podria resultar millor en moltes situacions, es mantenir amb vida la línia melòdica simplement incloent notes espaiadores per alinear-la correctament amb l’acompanyament:

 
melody = \relative {
  s1  % skip a bar
  a'4 a a a
  s1  % skip a bar
  a4 a a a
}
accompaniment = \relative {
  d'4 d d d
  d4 d d d
  d4 d d d
  d4 d d d
}
words = \lyricmode { These words fol -- low the mel -- o -- dy }

\score {
  <<
    \new Staff = "music" {
      <<
        \new Voice = "melody" {
          \voiceOne
          \melody
        }
        \new Voice = "accompaniment" {
          \voiceTwo
          \accompaniment
        }
      >>
    }
    \new Lyrics \with { alignAboveContext = "music" }
    \lyricsto "melody" { \words }
  >>
}

[image of music]


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

5.1.4 Modificació dels connectors (plug-ins) de context

@translationof Modifying context plug-ins

Els contextos de notació (como Score i Staff) no sols emmagatzemen propietats, també contenen «plug-ins» o connectors anomenats ‘gravadors’ que creen elements de notació. Per exemple, el context Voice conté un gravador Note_heads_engraver que crea els caps de nota i el context Staff conté un gravador Key_engraver que crea la armadura.

Per veure una descripció completa de tots i cadascú dels connectors, consulteu (internals)Engravers and Performers section ‘Engravers and Performers’ in Referència de funcionament intern. Cada context que es descriu a (internals)Contexts section ‘Contexts’ in Referència de funcionament intern fa una relació dels gravadors que s’usen per a aquest context.

Pot ser d’utilitat jugar una mica amb aquests connectors. Es fa iniciant un context nou amb \new o \context i modificant-lo:

 
\new contexto \with {
  \consists …
  \consists …
  \remove …
  \remove …
  etc.
}
{
  …música…
}

on els … han de ser el nom d’un gravador. Aquí tenim un exemple senzill que suprimeix els gravadors Time_signature_engraver i Clef_engraver d’un context Staff:

 
<<
  \new Staff \relative {
    f'2 g
  }
  \new Staff \with {
     \remove "Time_signature_engraver"
     \remove "Clef_engraver"
  } \relative {
    f'2 g2
  }
>>

[image of music]

En el segon pentagrama no hi ha indicació de compàs ni clau. Aquest és un mètode força rudimentari de fer que desapareguin els objectes perquè afecta a tot el pentagrama. Aquest mètode també afecta l’espaiat, cosa que pot ser desitjable o no ser-ho. Es mostren mètodes més sofisticats per treure objectes a (learning)Visibilitat i color dels objectes section ‘Visibilitat i color dels objectes’ in Manual d’aprenentatge.

L’exemple següent mostra una aplicació pràctica. Normalment les línies divisòries i les indicacions de compàs estan sincronitzades al llarg de tota la partitura. Ho fan els gravadors Timing_translator i Default_bar_line_engraver. Aquests complements mantenen al dia l’administració de les indicacions de compàs, posició dins del compàs, etc. Movent aquests gravadors des del context de Score al de Staff, podem aconseguir una partitura en la qual cada pentagrama té el seu propi compàs independent.

 
\score {
  <<
    \new Staff \with {
      \consists "Timing_translator"
      \consists "Default_bar_line_engraver"
    }
    \relative {
        \time 3/4
        c''4 c c c c c
    }
  \new Staff \with {
    \consists "Timing_translator"
    \consists "Default_bar_line_engraver"
  }
  \relative {
      \time 2/4
      c''4 c c c c c
  }
>>
\layout {
  \context {
    \Score
    \remove "Timing_translator"
    \remove "Default_bar_line_engraver"
    }
  }
}

[image of music]

Advertiments i problemes coneguts

L’ordre en el qual els gravadors s’especifiquen és l’ordre en el qual es criden per realitzar la seva tasca de processament. Normalment, l’ordre en el qual s’especifiquen els gravadors no té importància, però en alguns casos especials sí la té, per exemple on un gravador escriu una propietat i un altre la llegeix, o on un gravador crea un grob i un altre l’ha de processar.

Les ordenacions següents són importants:

Vegeu també

Fitxers instal·lats: ‘ly/engraver-init.ly’.


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

5.1.5 Canvi dels paràmetres predeterminats dels contextos

@translationof Changing context default settings

Es poden canviar les propietats de context i de grob amb les ordres \set i \override, tal i com es descriu a Modificació de les propietats. Aquestes ordres creen esdeveniments musicals, fent que els canvis tinguin efecte en el punt temporal en el qual la música s’està processant.

Per contra, aquesta secció explica la forma canviar els valors predeterminats de les propietats de context i de grob en el moment en el qual es crea el context. Hi ha dues formes de fer-ho. Una modifica els valors predeterminats a tos els contextos d’un tipus donat, i l’altre modifica els valors predeterminats sols a una instància concreta d’un context.


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

Canvi de tots els contextos del mateix tipus

@translationof Changing all contexts of the same type

Els ajustaments de context predeterminat que s’han d’usar per al gravat dins de Score, Staff, Voice i d’altres contextos, es poden especificar en un bloc \context dins de qualsevol bloc \layout.

Els ajustaments per a la sortida MIDI, al contrari que per al gravat, es tindran que especificar a part a blocs \midi (vegeu Definicions de sortida - estructura dels contextos).

El bloc \layout s’ha de col·locar dins del bloc \score al que s’aplica, després de la música.

 
\layout {
  \context {
    \Voice
    [ajustaments de context per a tots els contextos Voice]
  }
  \context {
    \Staff
    [ajustaments de context per a tots els contextos Staff]
  }
}

Es poden especificar els següents tipus d’ajustaments:

Les ordres d’ajustament de propietats es poden disposar dins d’un bloc \layout sin que estiguin envoltats en un bloc \context. Aquests ajustament són equivalents a incloure les mateixes instruccions d’ajustament de propietats al començament de cadascú dels contextos del tipus especificat. Si no s’especifica cap context, tots i cadascú dels contextos del nivell inferior queden afectats, vegeu Contextos del nivell més baix - veus. La sintaxi d’una ordre d’ajustament de propietats dins d’un bloc \layout és la mateixa que si la mateixa ordre estigués escrita al propi flux musical.

 
\score {
  \new Staff {
    \relative {
      a'4^"Tipus de lletra més petita" a a a
      a4 a a a
    }
  }
  \layout {
    \accidentalStyle dodecaphonic
    \set fontSize = #-4
    \override Voice.Stem.thickness = #4.0
  }
}

[image of music]


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

Canvi de sols un context determinat

@translationof Changing just one specific context

Les propietats de context d’una única instància de context poden canviar-se dins d’un bloc \with. Totes les altres instàncies de context del mateix tipus retenen els ajustaments predeterminats que el LilyPond té programats i que es modifiquen per part de qualsevol bloc \layout que es troben dins de l’àmbit. El bloc \with s’ha de situar immediatament després de les ordres \new context-type:

 
\new Staff \with { [ajustaments de context per a sols aquesta instància de context] }
{
  …
}

De forma alternativa, si la música s’escriu usant la forma curta de les ordres d’especificació de mode, com per exemple \chords en lloc de \chordmode, l’ordre \with s’ha de col·locar immediatament després de l’ordre que especifica el mode:

 
\chords \with { [ajustaments de context per a aquesta instància de context (implícita) sols] }
{
  …
}

atès que és el context implícit creat per aquestes formes breus el que es vol modificar. S’aplica la mateixa consideració a les altres formes curtes d’especificar el mode d’entrada (\drums, \figures), vegeu Modes d’entrada.

Considerant que les modificacions de context especificades en blocs \with estan dins de la música, afectaran a totes les sortides (gravat i també el MIDI), a diferència dels canvis que es fan dins d’una definició de sortida.

Es poden especificar els següents tipus d’ajustaments:

Vegeu també

Referència de la notació: Modes d’entrada


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

Ordre de precedència

@translationof Order of precedence

El valor d’una propietat que s’aplica en un moment determinat d’una propietat que s’aplica en un moment determinat es determina de la forma següent:

Vegeu també

Manual d’aprenentatge: (learning)Modificar les propietats dels contextos section ‘Modificar les propietats dels contextos’ in Manual d’aprenentatge.

Referència de la notació: Explicació dels contextos, Contextos del nivell més baix - veus, L’ordre \set, L’ordre \override, El bloc \layout.


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

5.1.6 Definició de contextos nous

@translationof Defining new contexts

Els contextos específics, com Staff i Voice, estan construïts a partir de blocs senzills. És possible crear nous tipus de contextos amb combinacions diferents de gravadors afegits.

El següent exemple mostra com construir un tipus diferent de context de Voice partint de zero. Serà semblant a Voice, però imprimeix sols caps centrats en forma de barra inclinada. Es pot usar per indicar improvisació en peces de jazz.

[image of music]

Aquests ajustament es defineixen dins d’un bloc \context que al seu cop està dins d’un bloc \layout,

 
\layout {
  \context {
    …
  }
}

A l’anàlisi següent, l’entrada d’exemple que es mostra ha d’anar en el lloc dels punts suspensius … del fragment anterior.

En primer lloc cal definir un nom per al nou context:

 
\name ImproVoice

Atès que és semblant al context Voice, volem ordres que funcionin dins dels contextos Voice (existents) perquè segueixi funcionant. Això s’aconsegueix donant al nou context un àlies de Voice,

 
\alias Voice

El context imprimirà notes i textos explicatius, per això hem d’afegir els gravadors que aporten aquesta funcionalitat, i a més el gravador que agrupa les notes, pliques i silencis que estan en el mateix moment musical en forma de columnes.

 
\consists "Note_heads_engraver"
\consists "Text_engraver"
\consists "Rhythmic_column_engraver"

Els caps de totes les notes s’han de situar sobre la línia central.

 
\consists "Pitch_squash_engraver"
squashedPosition = #0

El gravador Pitch_squash_engraver modifica els caps de nota (creats pel gravador Note_heads_engraver) i estableix les seves posicions verticals al valor squashedPosition, en aquest cas 0, la línia central.

Las notes semblen inclinades i no tenen plica:

 
\override NoteHead.style = #'slash
\hide Stem

Tots aquests complements o plug-ins s’han de comunicar sota el control del context. Els mecanismes amb els quals es comuniquen els contextos s’estableixen mitjançant la declaració del \type (tipus) del context. Dins d’un bloc \layout, gairebé tots els contextos seran del tipus Engraver_group. Alguns contextos especials i els contextos dels blocs \midi usen altres tipus. La còpia i la modificació d’una definició de context existent també complimenten el tipus. Com que aquest exemple crea una definició partint de zero, ha de ser especificada explícitament.

 
\type "Engraver_group"

En ajuntar-ho tot, obtenim

 
\context {
  \name ImproVoice
  \type "Engraver_group"
  \consists "Note_heads_engraver"
  \consists "Text_engraver"
  \consists "Rhythmic_column_engraver"
  \consists "Pitch_squash_engraver"
  squashedPosition = #0
  \override NoteHead.style = #'slash
  \hide Stem
  \alias Voice
}

Els contextos donen lloc a jerarquies. Volem posar el context ImproVoice dins del context Staff, igual que els contextos de veu normals. Per tant, modifiquem la definició de Staff amb l’ordre \accepts (accepta),

 
\context {
  \Staff
  \accepts ImproVoice
}

Amb freqüència, en reutilitzar una definició de context exitent, el context resultant es pot usar en qualsevol lloc on el context original hagués pogut fer-ho.

 
\layout {
  …
  \inherit-acceptability to from
}

aconsegueix que tinguem contextos del tipus to acceptats per tots els contextos que també accepten from. Por exemple, si usem

 
\layout {
  …
  \inherit-acceptability "ImproVoice" "Voice"
}

afegeix un \accepts per a ImproVoice tant a la definició de Staff com a la de RhythmicStaff.

L’oposat a \accepts (acepta) és \denies (denega), el que a vegades cal quan s’esta reutilitzant definicions de context existents.

Si organitzem les peces requerides dins d’un bloc \layout ens deixa amb

 
\layout {
  \context {
    \name ImproVoice
    …
  }
  \inherit-acceptability "ImproVoice" "Voice"
}

Així doncs, la sortida que apareix al començament d’aquesta subsecció es pot escriure com

 
\relative {
  a'4 d8 bes8
  \new ImproVoice {
    c4^"ad lib" c
    c4 c^"despulleu-vos"
    c c_"mentre toqueu :)"
  }
  a1
}

Per completar l’exemple, els canvis que afecten a la jerarquia de contextos s’han de repetir dins d’un bloc \midi de manera que la sortida MIDI depengui de les mateixes relacions de context.

Vegeu també

Referència de funcionament intern: (internals)Note_heads_engraver section ‘Note_heads_engraver’ in Referència de funcionament intern, (internals)Text_engraver section ‘Text_engraver’ in Referència de funcionament intern, (internals)Rhythmic_column_engraver section ‘Rhythmic_column_engraver’ in Referència de funcionament intern, (internals)Pitch_squash_engraver section ‘Pitch_squash_engraver’ in Referència de funcionament intern.


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

5.1.7 Ordre de disposició dels contextos

@translationof Context layout order

Els contextos es disposen en un sistema normalment des de dalt cap a baix a l’ordre en el qual es troben al fitxer d’entrada. Quan els contextos es nien uns a dins dels altres, el context exterior inclou els contextos niuats tal i com s’especifica al fitxer d’entrada, sempre i quan els contextos interiors estiguin inclosos a la llista “accepts” del context extern. Els contextos niuats que no estiguin inclosos a la llista “accepts” del context extern es recol·loquen a sota del context extern en lloc de niuar-se dins d’ell.

La llista “accepts” d’un context es pot canviar amb les ordres \accepts (accepta) o \denies (denega). \accepts afegeix un context a la llista “accepts” i \denies elimina un context de la llista.

Per exemple, un grup de pentagrames amb un claudàtor no es troba normalment a l’interior d’un pentagrama amb clau que tingui connectats les línies divisòries, i un GrandStaff per a piano no accepta un StaffGroup dins d’ell, de forma predeterminada.

 
\score {
  \new GrandStaff <<
    \new StaffGroup <<
      \new Staff { c'1 }
      \new Staff { d'1 }
    >>
    \new Staff { \set Staff.instrumentName = bottom f'1 }
  >>
}

[image of music]

Malgrat això, usant l’ordre \accepts, es pot afegir un StaffGroup al context GrandStaff:

 
\score {
  \new GrandStaff <<
    \new StaffGroup <<
      \new Staff { c'1 }
      \new Staff { d'1 }
    >>
    \new Staff { \set Staff.instrumentName = bottom f'1 }
  >>
  \layout {
    \context {
      \GrandStaff
      \accepts "StaffGroup"
    }
  }
}

[image of music]

\denies s’usa principalment quan un context nou s’està basant en un altre, però els niuats requerits difereixen. Per exemple, el context VaticanaStaff està basat en el context Staff, però amb el context VaticanaVoice substituït pel context Voice a la llista “accepts”.

Observeu que discretament es crea un context de forma implícita si es troba una ordre on no hi ha un context apropiat per contenir-lo.

Dins d’una definició de context, el tipus d’un subcontext que es va crear implícitament s’especifica usant \defaultchild (fill predeterminat). Alguns esdeveniments musicals requereixen un context ‘Bottom’ (inferior): qua es troba aquest esdeveniment, es creen subcontextos de forma recursiva fins que s’assoleix un context que no té establert el ‘defaultchild’.

La creació implícita de contextos pot donar lloc a inesperats pentagrames nous o inesperades partitures noves. La utilització de \new per crear contextos explícitament evita aquests problemes.

En ocasions cal que un context existeixi dins un breu interval de temps, sent un bon exemple el context de pentagrama d’un ossia. Això s’aconsegueix normalment mitjançant la introducció de la definició del context en el lloc apropiat en paral·lel amb la secció corresponent de la música principal. De forma predeterminada, el context temporal es col·loca a sota de tots els contextos existents. Per tornar-lo a posicionar per sobre del context que tingui el nom “principal”, s’hauria de definir d’aquesta forma:

 
\new Staff \with { alignAboveContext = "principal" }

Es presenta una situació semblant quan es posiciona un context temporal de lletra d’una cançó dins d’una disposició de diversos pentagrames tal com ChoirStaff, per exemple, quan s’afegeix una segona estrofa a una secció que es repeteix. De forma predeterminada, el context temporal de lletra es col·loca a sota dels pentagrames inferiors. Mitjançant la definició del context temporal de lletra amb alignBelowContext es pot posicionar correctament a sota del context de lletra amb nom que conté el text de la primera estrofa.

En diversos llocs poden veure’s exemples que mostren aquesta recol·locació de contextos temporals: vegeu (learning)Niuat d’expressions musicals section ‘Niuat d'expressions musicals’ in Manual d’aprenentatge, Modificació de pentagrames separats i Tècniques específiques per a les lletres.

Vegeu també

Manual d’aprenentatge: (learning)Niuat d’expressions musicals section ‘Niuat d'expressions musicals’ in Manual d’aprenentatge.

Referència de la notació: Modificació de pentagrames separats, Tècniques específiques per a les lletres.

Manual d’utilització del programa: (usage)Apareix un pentagrama de més section ‘Apareix un pentagrama de més’ in Utilització del programa.

Fitxers instal·lats: ‘ly/engraver-init.ly’.


[ < ] [ > ]   [ << ] [ 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.