| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Interpretation contexts
Aquesta secció explica que són els contextos i com modificar-los.
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] | [ ? ] |
@translationof Contexts explained
Els contextos es disposen de forma jeràrquica:
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@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.
Fitxers instal·lats: ‘ly/engraver-init.ly’. ‘ly/performer-init.ly’.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@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] | [ ? ] |
@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] | [ ? ] |
@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] | [ ? ] |
@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] | [ ? ] |
@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 } >>
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 } >>
\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:
\new amb un nom o sense nom, sempre crea un context nou i
diferent, fins i tot si ja existeix un context amb el mateix nom:
\new Staff << \new Voice = "A" \relative { \voiceOne c''8 c c4 c c } \new Voice = "A" \relative { \voiceTwo g'4 g g g } >>
\context amb un nom especificat, crea un context nou sols
si no existeix ja un context del mateix tipus i amb el mateix nom,
dins de la mateixa jerarquia de contextos. En cas contrari,
s’agafa com a referència a aquest context creat prèviament, i la
seva expressió musical es passa a aquest context per a la seva
interpretació.
Una aplicació dels contextos amb nom és la separació entre la disposició de la partitura i el contingut musical. Són valides qualssevol de les dues formes següents:
\score { << % score layout \new Staff << \new Voice = "one" { \voiceOne } \new Voice = "two" { \voiceTwo } >> % musical content \context Voice = "one" { \relative { c''4 c c c } } \context Voice = "two" { \relative { g'8 g g4 g g } } >> }
\score { << % score layout \new Staff << \context Voice = "one" { \voiceOne } \context Voice = "two" { \voiceTwo } >> % musical content \context Voice = "one" { \relative { c''4 c c c } } \context Voice = "two" { \relative { g'8 g g4 g g } } >> }
De manera alternativa, es poden utilitzar variables amb un efecte semblant. Vegeu (learning)Organitzar les peces mitjançant variables section ‘Organitzar les peces mitjançant variables’ in Manual d’aprenentatge.
\context sense cap nom correspondrà amb el primer context
que es trobi entre els creats prèviament que siguin del mateix
tipus dins de la mateixa jerarquia de contextos, fins i tot si té
nom, i la seva expressió musical es passarà a aquest context per a
la seva interpretació. Aquesta forma molt rarament és útil.
Malgrat això, \context sense nom i sense expressió musical
s’usa per establir el context en qual s’executa un procediment de
l’Scheme especificat amb \applyContext:
\new Staff \relative {
c'1
\context Timing
\applyContext #(lambda (ctx)
(newline)
(display (ly:context-current-moment ctx)))
c1
}
|
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.
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] | [ ? ] |
@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 >> }
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 } >> }
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 } >> }
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@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 } >>
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" } } }
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:
Bar_engraver ha d’anar normalment
en primer lloc,
New_fingering_engraver ha d’anar
abans del gravador Script_column_engraver de columnes d’inscripcions.
Timing_translator ha d’anar abans del gravador de
números de compàs Bar_number_engraver.
Fitxers instal·lats: ‘ly/engraver-init.ly’.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@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.
| Canvi de tots els contextos del mateix tipus | ||
| Canvi de sols un context determinat | ||
| Ordre de precedència |
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@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:
\override, però ometent el nom del context
\score { \relative { a'4^"Plica més gruixuda" a a a a4 a a\ff a } \layout { \context { \Staff \override Stem.thickness = #4.0 } } }
\score { \relative { a'4^"Tipus de lletra més petita" a a a a4 a a\ff a } \layout { \context { \Staff fontSize = #-4 } } }
\dynamicUp o una expressió
musical com \accidentalStyle dodecaphonic
\score { \relative { a'4^"La dinàmica a dalt" a a a a4 a a\ff a } \layout { \context { \Voice \dynamicUp } \context { \Staff \accidentalStyle dodecaphonic } } }
\with; per veure detalls sobre el bloc \with,
consulteu Canvi de sols un context determinat.
StaffDefaults = \with { fontSize = #-4 } \score { \new Staff { \relative { a'4^"Tipus de lletra més petita" a a a a4 a a a } } \layout { \context { \Staff \StaffDefaults } } }
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 } }
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@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:
\override, però ometent el nom del context
\score { \new Staff { \new Voice \with { \override Stem.thickness = #4.0 } { \relative { a'4^"Pliques gruixudes" a a a a4 a a a } } } }
\score { << \new Staff { \relative { a'4^"Tipus de lletra predeterminat" a a a a4 a a a } } \new Staff \with { fontSize = #-4 } { \relative { a'4^"Tipus de lletra més petit" a a a a4 a a a } } >> }
\dynamicUp
\score { << \new Staff { \new Voice { \relative { a'4^"Dynamics below" a a a a4 a a\ff a } } } \new Staff \with { \accidentalStyle dodecaphonic } { \new Voice \with { \dynamicUp } { \relative { a'4^"Dinàmica a dalt" a a a a4 a a\ff a } } } >> }
Referència de la notació: Modes d’entrada
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@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:
\override o \set
dins del flux musical, s’usa aquest valor.
\with a les ordres d’inici del context.
\context
més recent que correspongui dins dels blocs \layout o
\midi,
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] | [ ? ] |
@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.
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.
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] | [ ? ] |
@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 } >> }
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" } } }
\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.
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.