| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Further tweaking
| 4.7.1 Altres aplicacions dels ajustaments | ||
| 4.7.2 Ús de variables per als ajustaments de disposició | ||
| 4.7.3 Fulls d’estil | ||
| 4.7.4 Altres fonts d’informació | ||
| 4.7.5 Ajustaments avançats amb l’Scheme |
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Other uses for tweaks
| Unió de notes entre veus diferents | ||
| Simulació de un calderó al MIDI |
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Tying notes across voices
El següent exemple mostra com connectar notes que estan a diferents veus utilitzant lligadures d’unió. Normalment sols es poden connectar mitjançant lligadures d’unió notes que estiguin a la mateixa veu. Usant dues veus, amb les notes lligades a una d’elles:
i esborrant la primera barra (amb la seva plica) cap amunt a aquesta veu, dóna la impressió que la lligadura es creua entres les veus:
<< { \once \omit Stem \once \omit Flag b'8~ 8\noBeam } \\ { b'8[ g'] } >>
Manual de aprenentatge:
El prefix \once,
La propietat stencil (segell).
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Simulating a fermata in MIDI
Per als objectes fora-del-pentagrama, normalment és millor
sobreescriure la propietat stencil («segell») de l’objecte
que la seva propietat transparent quan vulgueu treure’ls de
la sortida impresa. Mitjançant l’establiment de la propietat
stencil d’un objecte al valor #f podem treure
l’objecte per complet de la sortida impresa. Això significa que
no té efecte sobre la col·locació d’altres objectes que poguessin
col·locar-se en relació a ell.
Per exemple, si volguéssim canviar la indicació metronòmica amb el
propòsit de simular un calderó a la sortida MIDI, segurament no
voldríem que la indicació metronòmica aparegués a la sortida
impresa, i no voldríem influir sobre la separació entre els dos
sistemes ni sobre la col·locació de les anotacions adjacents sobre
el pentagrama. Per tant, establir la seva propietat
stencil al valor #f seria la millor manera. Mostrem
aquí l’efecte dels dos mètodes:
\score { \relative { % Visible tempo marking \tempo 4=120 a'4 a a \once \hide Score.MetronomeMark % Tempo invisible que marca que s'allargui el fermata al MIDI \tempo 4=80 a4\fermata | % Tempo nou per a la propera secció \tempo 4=100 a4 a a a | } \layout { } \midi { } }
\score { \relative { % Marcatge Visible del tempo \tempo 4=120 a'4 a a \once \omit Score.MetronomeMark % Marcatge invisible del tempo per allargar el fermata al MIDI \tempo 4=80 a4\fermata | % Tempo nou per a la propera secció \tempo 4=100 a4 a a a | } \layout { } \midi { } }
Els dos mètodes treuen de la sortida impresa la indicació metronòmica que allarga el calderó, i els dos afecten al temps del MIDI tal i com volíem, però la indicació metronòmica transparent de la primera línia força una col·locació molt alta de la indicació de tempo que segueix, mentre que la segona (amb el segell suprimit) no ho fa.
Glossari musical: (music-glossary)system section ‘system’ in Glossari musical.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Using variables for layout adjustments
Les ordres de sobreescriptura són sovint llargues i tedioses d’escriure, i s’han d’escriure de forma absolutament correcta. Si les mateixes sobreescriptures s’han d’utilitzar molts cops, podria valdre la pena definir variables per desar-les.
Suposem que volem realçar certes paraules de la lletra d’una cançó
imprimint-les en cursiva i negreta. Les ordres \italic i
\bold sols funcionen dins de la lletra de la cançó si estan
incloses, junt amb la paraula o paraules que es pretenen
modificar, dins d’un \markup, cosa que les fa tedioses
d’escriure. La necessitat d’incloure les pròpies paraules
impedeix que es puguin usar a variables simples. Podríem, com a
alternativa, utilitzar les ordres \override y
\revert?
\override Lyrics.LyricText.font-shape = #'italic \override Lyrics.LyricText.font-series = #'bold \revert Lyrics.LyricText.font-shape \revert Lyrics.LyricText.font-series |
Aquestes ordres també serien extremadament tedioses d’escriure si
hi haguessin moltes paraules que volguéssim subratllar. Peró sí
podem definir-les com dues variables i usar-les per
delimitar les paraules a destacar. Un altre avantatge de la
utilització de variables per a aquestes sobreescriptures és que ja
no són necessaris els espais que rodegen el punt, atès que no
s’interpreten directament al mode \lyricmode. Vet aquí un
exemple d’això, tot i que a la pràctica potser escolliríem uns
noms de variables més curts perquè fossin més ràpids de teclejar:
emphasize = { \override Lyrics.LyricText.font-shape = #'italic \override Lyrics.LyricText.font-series = #'bold } normal = { \revert Lyrics.LyricText.font-shape \revert Lyrics.LyricText.font-series } global = { \key c \major \time 4/4 \partial 4 } SopranoMusic = \relative { c'4 | e4. e8 g4 g | a4 a g } AltoMusic = \relative { c'4 | c4. c8 e4 e | f4 f e } TenorMusic = \relative { e4 | g4. g8 c4. b8 | a8 b c d e4 } BassMusic = \relative { c4 | c4. c8 c4 c | f8 g a b c4 } VerseOne = \lyricmode { E -- | ter -- nal \emphasize Fa -- ther, | \normal strong to save, } VerseTwo = \lyricmode { O | \once \emphasize Christ, whose voice the | wa -- ters heard, } VerseThree = \lyricmode { O | \emphasize Ho -- ly Spi -- rit, | \normal who didst brood } VerseFour = \lyricmode { O | \emphasize Tri -- ni -- ty \normal of | love and pow'r } \score { \new ChoirStaff << \new Staff << \clef "treble" \new Voice = "Soprano" { \voiceOne \global \SopranoMusic } \new Voice = "Alto" { \voiceTwo \AltoMusic } \new Lyrics \lyricsto "Soprano" { \VerseOne } \new Lyrics \lyricsto "Soprano" { \VerseTwo } \new Lyrics \lyricsto "Soprano" { \VerseThree } \new Lyrics \lyricsto "Soprano" { \VerseFour } >> \new Staff << \clef "bass" \new Voice = "Tenor" { \voiceOne \TenorMusic } \new Voice = "Baix" { \voiceTwo \BassMusic } >> >> }
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Style sheets
La sortida que produeix el LilyPond es pot modificar profundament; consulteu Ajustament de la sortida per llegir detalls sobre aquest tema. Però, que passa si teniu molts fitxers als quals voleu aplicar els vostres propis ajustaments? O què passa si, senzillament, voleu separar els ajustaments de la pròpia música? Tot això és força fàcil d’aconseguir.
Vejam un exemple. No us preocupeu si no enteneu les parts que
tenen tots els #(). Això s’explicarà a
Ajustaments avançats amb l’Scheme.
mpdolce = \tweak self-alignment-X #-0.6 #(make-dynamic-script #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #}) inst = #(define-music-function (string) (string?) #{ <>^\markup \bold \box #string #}) \relative { \tempo 4=50 a'4.\mpdolce d8 cis4--\glissando a | b4 bes a2 | \inst "Clarinet" cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2 | }
Fem alguna cosa respecte a les definicions mpdolce i
inst. Aquestes definicions produeixen la sortida que
volem, però potser les voldríem utilitzar a una altra peça.
Podríem simplement copiar-les i enganxar-les al principi de cada
fitxer, però seria força molest. També fa que es quedin les
definicions a la vista dins dels nostres fitxers de música, i jo
personalment trobo tots els #() molt pocs estètics. Els
amagarem dins d’un altre fitxer:
%%% desar això a un fitxer amb el nom «definicions.ily»
mpdolce =
\tweak self-alignment-X #-0.6
#(make-dynamic-script
#{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
(string)
(string?)
#{ <>^\markup \bold \box #string #})
|
Farem referència a aquest fitxer utilitzant l’ordre
\include al principi del fitxer de música (l’extensió
.ily s’utilitza per distingir aquest fitxer d’inclusió
–que se suposa que no ha de ser processat de forma independent–
del fitxer principal). Ara modificarem la música (desem aquest
fitxer com ‘musica.ly’).
\include "definicions.ily"
\relative {
\tempo 4=50
a'4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinete"
cis4.\< d8 e4 fis |
g8(\! fis)-. e( d)-. cis2 |
}
|
Això té millor aspecte, però farem alguns canvis més. El glissando és difícil de veure, així que el farem més gruixut i l’aproparem als caps de les notes. Posarem la indicació metronòmica a sobre de la clau, en lloc d’anar a sobre de la primera nota. I per últim, el meu professor de composició odia les indicacions de compàs ‘C’, així que la convertirem en ‘4/4’.
Malgrat això, no hem de canviar el fitxer ‘musica.ly’. Anem a substituir el nostre fitxer ‘definicions.ily’ amb el següent:
%%% definicions.ily
mpdolce =
\tweak self-alignment-X #-0.6
#(make-dynamic-script
#{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
(string)
(string?)
#{ <>^\markup \bold \box #string #})
\layout{
\context {
\Score
\override MetronomeMark.extra-offset = #'(-5 . 0)
\override MetronomeMark.padding = #'3
}
\context {
\Staff
\override TimeSignature.style = #'numbered
}
\context {
\Voice
\override Glissando.thickness = #3
\override Glissando.gap = #0.1
}
}
|
Això té un aspecte molt millor! Ara suposeu que voleu publicar aquesta peça. Al meu professor de composició no li agraden les indicacions de compàs, però jo els tinc un cert apreci. Copiarem el fitxer actual
¡Eso tiene un aspecto mucho mejor! Ahora suponga que quiere publicar esta pieza. A mi profesor de composición no le gustan las indicaciones de compás ‘C’, pero yo les tengo cierto cariño. Copiaremos el archivo actual ‘definicions.ily’ a ‘publicar-web.ily’ i modificarem aquest últim fitxer. Com el propòsit d’aquesta música és produir un PDF que es mostrarà a la pantalla, també augmentarem la mida general de la sortida.
%%% publicar-web.ily
mpdolce =
\tweak self-alignment-X #-0.6
#(make-dynamic-script
#{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
(string)
(string?)
#{ <>^\markup \bold \box #string #})
#(set-global-staff-size 23)
\layout{
\context {
\Score
\override MetronomeMark.extra-offset = #'(-5 . 0)
\override MetronomeMark.padding = #'3
}
\context {
\Staff
}
\context {
\Voice
\override Glissando.thickness = #3
\override Glissando.gap = #0.1
}
}
|
Ara, a la música, simplement substitueixo
\include "definicions.ily" per \include "publicar-web.ily". Per
suposat, podríem fer això encara més pràctic. Podríem fer un
fitxer ‘definiciones.ily’ que contingués sols les definicions de
mpdolce i de inst, un fitxer
‘publicar-web.ily’ que contingués sols la secció
\layout que es va mostrar a l’exemple, i un fitxer
‘universitat.ily’ que contindria sols els ajustament per
introduir la sortida que agrada al meu professor. El començament de
‘musica.ly’ tindria ara aquest aspecte:
\include "definiciones.ily" %%% Treure el comentari d'una sola d'aquestes línies! \include "publicar-web.ily" %\include "universitat.ily" |
Aquest enfocament pot ser útil fins i tot si aneu a produir sols
un conjunt de particel·les. Jo utilitzo mitja dotzena de fitxers
de ‘fulls d’estil’ per als meus projectes. Començo tots els
fitxers de música amb un \include "../global.ily", que conté
%%% global.ily \version "2.21.3" #(ly:set-option 'point-and-click #f) \include "../iniciar/iniciar-definicions.ily" \include "../iniciar/iniciar-disposicio.ily" \include "../iniciar/iniciar-capçaleres.ily" \include "../iniciar/iniciar-paper.ily" |
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Other sources of information
La documentació del manual de Referència de Funcionament Intern conté muntanyes d’informació sobre el LilyPond, però es pot obtenir més informació encara llegint els fitxers interns del LilyPond. Per donar-los una ullada, en primer lloc heu de buscar la carpeta corresponent al seu sistema. La ubicació d’aquesta carpeta depèn (a) de si heu aconseguit el programa LilyPond descarregant un binari precompilat des del lloc web lilypond.org o i l’heu instal·lat mitjançant un gestor de paquets (és a dir, distribuït per GNU/Linux, o instal·lat sota fink o cygwin) o si va ser compilat a partir de la font, i (b) de quin sistema operatiu esteu utilitzant:
Dirigiu-vos a
‘CARPETA_DE_INSTAL·LACIÓ/lilypond/usr/share/lilypond/current/’ |
Diríjase a
‘CARPETA_DE_INSTAL·LACIÓ/LilyPond.app/Contents/Resources/share/lilypond/current/’ |
o bé fent cd cap a aquest directori des del terminal, o bé
mantenint polsada la tecla de Control i fent clic sobre
l’aplicació del LilyPond, i escollint aquí
‘Mostrar el contingut del paquet’.
Mitjançant el Explorador del Windows, dirigiu-vos a
‘CARPETA_DE_INSTAL·LACIÓ/LilyPond/usr/share/lilypond/current/’ |
compilat a partir de la font
Dirigiu-vos a ‘PREFIX/share/lilypond/X.Y.Z/’, on
PREFIX s’ha establert pel vostre administrador de paquets o
guió configure, i X.Y.Z es el número de la versió del
LilyPond.
Dins d’aquesta carpeta, les dues subcarpetes interessats són
Començarem observant alguns fitxers que estan a
‘ly/’. Obriu ‘ly/property-init.ly’ amb un editor de
textos. El mateix que usaria normalment per al fitxers
‘.ly’ servirà perfectament. Aquest fitxer conté les
definicions de totes les instruccions estàndard predefinides del
LilyPond, com per exemple \tieUp i \slurDotted.
Podreu veure que no són res més que definicions de variables que
contenen una o diverses ordres \override. Per exemple,
\tieDotted està definit de tal forma que el valor és:
tieDotted = {
\override Tie.dash-period = #0.75
\override Tie.dash-fraction = #0.1
}
|
Si no us agraden els valors predeterminats, aquestes ordres predefinides es poden redefinir amb facilitat com qualsevol altra variable, al principi del seu fitxer de codi d’entrada.
Els següents són els fitxers més útils que es troben a ‘ly/’:
| Fitxer | Contingut |
|---|---|
| ‘ly/engraver-init.ly’ | Definicions de Contextos de gravadors |
| ‘ly/paper-defaults-init.ly’ | especificacions de valors predeterminats relacionats amb el document |
| ‘ly/performer-init.ly’ | Definicions de Contextos de interpretació |
| ‘ly/property-init.ly’ | Definicions de totes las instruccions predefinides que són comunes |
| ‘ly/spanner-init.ly’ | Definicions de les ordres predefinides relacionades amb els objectes d’extensió |
Altres ajustos (com les definicions de les ordres de marcatge) s’emmagatzemen com fitxers ‘.scm’ (de l’Scheme). El llenguatge de programació Scheme es fa servir per proporcoinar una interfície programable en el funcionament intern del LilyPond. Qualsevol explicació addicional sobre aquests fitxers es troba de moment fora de l’àmbit d’aquest manual, perquè es requereixen coneixements del llenguatge Scheme. S’adverteix als usuaris que cal una important quantitat de coneixements tècnics o de temps per comprendre el llenguatge Scheme i aquests fitxers (vegeu (extending)Scheme tutorial section ‘Tutorial de l’Scheme’ in Extensions).
Si ja teniu aquests coneixements, els fitxers de l’Scheme que poden interessar-vos són:
| Fitxer | Contingut |
|---|---|
| ‘scm/auto-beam.scm’ | Valors predeterminats de sub-barrat |
| ‘scm/define-grobs.scm’ | valors predeterminats de les propietats de grobs |
| ‘scm/define-markup-commands.scm’ | Especificar totes les ordres de marcatge |
| ‘scm/midi.scm’ | Ajustaments predeterminats per a la sortida MIDI |
| ‘scm/output-lib.scm’ | Ajustaments que afecten l’aspecte dels trastos, colors, alteracions, línies divisòries, etc. |
| ‘scm/parser-clef.scm’ | Definicions de les claus contemplades |
| ‘scm/script.scm’ | Ajustaments predeterminats per a les articulacions |
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Advanced tweaks with Scheme
Tot i que és possible fer moltes coses amb les ordres
\override i \tweak , tenim una forma encara més
poderosa de modificar el funcionament del LilyPond, mitjançant una
interfície programable cap a les operacions internes del
LilyPond. Es pot incorporar codi escrit en el llenguatge de
programació Scheme, directament en el mecanisme de funcionament
del LilyPond. Per descomptat, per fer això calen almenys uns
coneixements bàsics de programació de l’Scheme, i proveïm una
introducció al
(extending)Scheme tutorial section ‘Tutorial de l’Scheme’ in Extensions.
Com exemple que il·lustra una de les moltes possibilitats, en lloc de donar a una propietat un valor constant, es pot establir al resultat d’una procediment de l’Scheme que s’invoca cada cop que el LilyPond accedeix a aquesta propietat. La propietat es pot establir dinàmicament a un valor determinat pel procediment al moment que s’invoca. En aquest exemple donem als caps de les notes un color que depèn de la seva posició dins del pentagrama.
#(define (color-notehead grob) "Pinta el cap de la nota d'acord amb la seva posició a la partitura." (let ((mod-position (modulo (ly:grob-property grob 'staff-position) 7))) (case mod-position ;; Retorna els colors de l'arc de Sant Martí ((1) (x11-color 'red )) ; for C ((2) (x11-color 'orange )) ; for D ((3) (x11-color 'yellow )) ; for E ((4) (x11-color 'green )) ; for F ((5) (x11-color 'blue )) ; for G ((6) (x11-color 'purple )) ; for A ((0) (x11-color 'violet )) ; for B ))) \relative { % Disposa per obtenir el color del procediment color-notehead \override NoteHead.color = #color-notehead a2 b | c2 d | e2 f | g2 a | }
Es poden trobar exemples addicionals que mostren la utilització d’aquestes interfícies programables, a (extending)Callback functions section ‘Funcions de callback’ in Extensions.
| [ < ] | [ > ] | [ << ] | [ 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.