| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Working with input files
| 3.3.1 Inclusió de fitxers del LilyPond | ||
| 3.3.2 Diferents edicions a partir d’una mateixa font | ||
| 3.3.3 Caràcters especials |
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Including LilyPond files
Un projecte gran es pot dividir en diversos fitxers. Per referir-se a un altre fitxer, utilitzeu
\include "unaltrefitxer.ly" |
La línia \include "unaltrefitxer.ly" equival a enganxar el
contingut de ‘unaltrefitxer.ly’ al fitxer actual al lloc en el
qual apareix l’\include. Por exemple, a un projecte gran
podríem voler fitxer diferents per a cada part instrumental i
crear un fitxer de “partitura completa” que reuneix els fitxers
individuals dels instruments. Normalment el fitxer inclòs
defineix un cert nombre de variables que a partir d’aleshores
queden disponibles per poder-les utilitzar al fitxer de la
partitura completa. Als fitxers inclosos es poden marcar les
seccions etiquetades per ajudar a fer-les utilitzables a diferents
llocs de la partitura. Vegeu
Diferents edicions a partir d’una mateixa font.
Els fitxers que estan al directori de treball actual es poden
referenciar simplement especificant el nom després de l’ordre
\include. Els fitxers a d’altres llocs es poden incloure
proporcionant una referència de ruta completa o una ruta relativa
(però utilitzeu la barra inclinada normal de l’UNIX, /, no la
barra invertida de DOS/Windows, \, com a separador de directori).
Per exemple, si ‘material.ly’ està ubicat un directori per
sobre del directori de treball actual, utilitzeu
\include "../material.ly" |
o si els fitxers de les parts orquestrals incloses estan tots situats en un subdirectori anomenat ‘parts’ dins del directori actual, useu
\include "partes/VI.ly" \include "partes/VII.ly" … etc. |
Els fitxers d’inclusió també poden contenir enunciats
\include al seu cop. De forma predeterminada, aquests
enunciats \include de segon nivell no s’interpreten fins
que s’incorporen al fitxer principal, per la qual cosa els noms de
fitxer que especifiquen han de ser relatius al directori que conté
el fitxer principal, no al directori que conté el fitxer inclòs.
Malgrat això, aquest comportament es pot modificar globalment
passant l’opció ‘-drelative-includes’ a la línia d’ordres
(o mitjançant l’addició de
#(ly:set-option 'relative-includes #t) al principi del
fitxer principal d’entrada).
Quan relative-includes està establert al valor
#t, la ruta de cada ordre \include es considera
relativa al fitxer que conté aquesta ordre. Aquest comportament
és el recomanat i es convertirà en el comportament predeterminat a
una versió futura del LilyPond.
Tant els fitxers relatius al directori principal com els fitxers
relatius a algun altre directori es poden incloure
(\include) mitjançant l’establiment de
relative-includes al valor #t o a #f als
llocs apropiats dins dels fitxers. Per exemple, si s’ha creat una
biblioteca genèrica, libA, que al seu cop utilitza sub-fitxers que
s’inclouen (\include) per mitjà del fitxer d’entrada
d’aquesta biblioteca, aquestes instruccions \include hauran
d’anar precedides per #(ly:set-option
#relative-includes #t) de manera que s’interpretin correctament
en construir el fitxer d’entrada .ly principal, d’aquesta
forma:
libA/ libA.ly A1.ly A2.ly … |
aleshores el fitxer d’entrada, libA.ly, conté
#(ly:set-option 'relative-includes #t) \include "A1.ly" \include "A2.ly" … % retorn a l'ajustament predeterminat #(ly:set-option 'relative-includes #f) |
Qualsevol fitxer ‘.ly’ pot aleshores incloure la biblioteca completa, simplement amb
\include "~/libA/libA.ly" |
Es poden utilitzar estructures de fitxer més complexes instant els canvis als llocs adequats.
També es poden incloure fitxers d’un directori que està a una ruta de cerca especificada com opció en invocar al LilyPond des de la línia d’ordres. Els fitxers inclosos s’especifiquen usant sols el seu nom de fitxer. Per exemple, per compilar mitjançant aquest mètode un fitxer ‘principal.ly’ que inclou fitxers situats a un subdirectori anomenat ‘parts’, canvieu el directori que conté ‘principal.ly’ e introduïu
lilypond --include=parts principal.ly |
i a ‘principal.ly’ escriviu
\include "VI.ly" \include "VII.ly" … etc. |
Els fitxers que s’inclouen a moltes partitures es poden posar al
directori del LilyPond ‘../ly’ (la localització d’aquest
directori depèn de la instal·lació: vegeu
(learning)Altres fonts d’informació section ‘Altres fonts d'informació’ in Manual d’aprenentatge). Aquests fitxers es poden
incloure senzillament pel seu nom a una ordre \include.
D’aquesta forma s’inclouen els fitxers dependents de la llengua
com ‘catala.ly’.
El LilyPond inclou de forma predeterminada certes fitxers quan
s’inicia el programa. Aquestes inclusions no són visibles per a
l’usuari, però els fitxers es poden identificar executant
lilypond --verbose des de la línia d’ordres. Això
presentarà una llista de rutes i fitxers que fa servir el
LilyPond, junt amb moltes altres indicacions. De forma
alternativa, poden veure’s explicacions sobre els fitxers més
importants d’aquest conjunt a
(learning)Altres fonts d’informació section ‘Altres fonts d'informació’ in Manual d’aprenentatge. Aquests fitxers es poden
editar, però els canvis realitzats sobre ells es perdran en
instal·la una nova versió del LilyPond.
Es poden veure exemples senzills sobre l’ús de \include a
en
(learning)Partitures i particel·les section ‘Partitures i particel·les’ in Manual d’aprenentatge.
Manual d’aprenentatge (learning)Altres fonts d’informació section ‘Altres fonts d'informació’ in Manual d’aprenentatge, (learning)Partitures i particel·les section ‘Partitures i particel·les’ in Manual d’aprenentatge.
Si un fitxer inclòs rep un nom igual al d’un dels fitxers d’instal·lació del LilyPond, el fitxer que té prioritat és el dels fitxers d’instal·lació del LilyPond.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Different editions from one source
Es posen usar diversos mètodes per generar la producció de diferents versions d’una partitura a partir de la mateixa font musical. Les variables són potser el més útil per combinar seccions extenses de música i/o anotacions. Les etiquetes són més útils per seleccionar una secció d’entre diverses seccions de música alternatives, més curtes, i es poden usar també per dividir peces de música en diferents trossos.
Qualsevol que sigui el mètode utilitzat, la separació de la notació de l’estructura de la partitura farà que sigui més fàcil canviar l’estructura deixant intacta la notació.
| Ús de les variables | ||
| Ús d’etiquetes | ||
| Ús d’ajustaments globals |
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Using variables
Si les seccions de la música es defineixen dins de variables, es poden reutilitzar en diferents parts de la partitura, vegeu (learning)Organitzar les peces mitjançant variables section ‘Organitzar les peces mitjançant variables’ in Manual d’aprenentatge. Per exemple, una partitura vocal a cappella freqüentment inclou una reducció de piano de les parts per assajar que és idèntica a la música vocal, per la qual cosa aquesta partitura sols s’ha d’escriure una vegada. Es pot combinar sobre un sol pentagrama la música de dues variables, vegeu Combinació automàtica de les parts. Vegeu aquí un exemple:
sopranoMusic = \relative { a'4 b c b8( a) } altoMusic = \relative { e'4 e e f } tenorMusic = \relative { c'4 b e d8( c) } bassMusic = \relative { a4 gis a d, } allLyrics = \lyricmode { King of glo -- ry } << \new Staff = "Soprano" \sopranoMusic \new Lyrics \allLyrics \new Staff = "Alto" \altoMusic \new Lyrics \allLyrics \new Staff = "Tenor" { \clef "treble_8" \tenorMusic } \new Lyrics \allLyrics \new Staff = "Bass" { \clef "bass" \bassMusic } \new Lyrics \allLyrics \new PianoStaff << \new Staff = "RH" { \partCombine \sopranoMusic \altoMusic } \new Staff = "LH" { \clef "bass" \partCombine \tenorMusic \bassMusic } >> >>
Es poden produir partitures diferents que presenten sols les parts vocals o sola la part de piano, canviant sols els enunciats estructurals, sense modificar la notació musical.
Per partitures extenses, les definicions de variable es poden posar a fitxers separats que s’inclouen més tard, vegeu Inclusió de fitxers del LilyPond.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Using tags
L’ordre \tag #'parteA marca una expressió musical amb
el nom parteA. Les expressions etiquetades d’aquesta manera
es poden seleccionar o filtrar més tard pel seu nom, usant o bé
\keepWithTag #'nom o bé
\removeWithTag #'nom. El resultat de l’aplicació
d’aquests filtres a la música etiquetada és com segueix:
| Filtre | Resultat |
|---|---|
Música etiquetada precedida de \keepWithTag #'nom o
de \keepWithTag #'(nom1 nom2…) | S’inclou la música no etiquetada i la música etiquetada amb el nom o noms d’etiquetes donats; s’exclou la música etiquetada amb qualsevol altre nom d’etiqueta. |
Música etiquetada precedida de
\removeWithTag #'nom o
\removeWithTag #'(nom1 nom2…) | S’inclou la música no etiquetada i la música que no està etiquetada amb cap dels noms d’etiqueta donats; s’exclou la musica etiquetada amb els noms d’etiqueta donats. |
Música etiquetada no precedida de \keepWithTag ni de
\removeWithTag | S’inclou la música etiquetada i no etiquetada. |
Els arguments de les ordres \tag,
\keepWithTag i \removeWithTag han de ser un símbol o
llista de símbols (com #'score o #'(violiI
violiII), seguida d’una expressió musical. Si i sols si
els símbols són identificadors del LilyPond vàlids
(caràcters alfabètics sols, sense números, guions baixos ni guions
normals) que no poden confondre’s amb notes, la porció
#' es pot ometre i, com abreviatura, una llista de símbols
pot usar el separador de punt, és a dir: \tag
#'(violiI violiII) es pot escriure com \tag
violiI.violiII. Val el mateix per a \keepWithTag i
\removeWithTag.
A l’exemple següent veiem dues versions d’una peça musical, una que mostra trins amb la notació usual i una altra amb els trins expandits explícitament:
music = \relative { g'8. c32 d \tag #'trills { d8.\trill } \tag #'expand { \repeat unfold 3 { e32 d } } c32 d } \score { \keepWithTag #'trills \music } \score { \keepWithTag #'expand \music }
De forma alternativa, a vegades és més fàcil excloure seccions de música:
music = \relative { g'8. c32 d \tag #'trills { d8.\trill } \tag #'expand {\repeat unfold 3 { e32 d } } c32 d } \score { \removeWithTag #'expand \music } \score { \removeWithTag #'trills \music }
El filtrat d’etiquetes es pot aplicar a articulacions, textos, etc., anteposant
-\tag #'la-meva-etiqueta |
a una articulació. Per exemple, això defineix una nota amb una indicació opcional de digitació i una nota amb una anotació condicional:
c1-\tag #'finger ^4 c1-\tag #'warn ^"Alerta!" |
Es poden posar diverses etiquetes sobre expressions amb diverses
entrades de \tag, o combinant diverses etiquetes en una
llista de símbols:
music = \relative c'' { \tag #'a \tag #'both { a4 a a a } \tag #'(b both) { b4 b b b } } << \keepWithTag #'a \music \keepWithTag #'b \music \keepWithTag #'both \music >>
Es poden aplicar diversos filtres \removeWithTag a una sola
expressió musical per treure diverses seccions etiquetades amb
noms diferents. De forma alternativa, podem usar una sola ordre
\removeWithTag amb una llista d’etiquetes.
music = \relative c'' { \tag #'A { a4 a a a } \tag #'B { b4 b b b } \tag #'C { c4 c c c } \tag #'D { d4 d d d } } \new Voice { \removeWithTag #'B \removeWithTag #'C \music \removeWithTag #'(B C) \music }
L’ús de dos o més filtres \keepWithTag sobre una sola
expressió musical produeix l’eliminació de totes les
seccions etiquetades. El primer filtre treu totes excepte la que
es nombra, i qualsevol filtre posterior elimina el reste. Usant
una sola ordre \keepWithTag amb una llista de diverses
etiquetes se suprimiran sols les seccions etiquetades que no
apareixen especificades a la llista.
music = \relative c'' { \tag #'violiI { a4 a a a } \tag #'violiII { b4 b b b } \tag #'viola { c4 c c c } \tag #'violoncel { d4 d d d } } \new Staff { \keepWithTag #'(violinI violinII) \music }
imprimirà \tags violiI i violiII però no
viola o violoncel.
Tot i que \keepWithTag és útil per a la gestió de un
sol conjunt d’alternatives, l’eliminació de música etiquetada amb
altres etiquetes no relacionades és problemàtica si
s’utilitza per més d’un propòsit. En aquest cas poden declarar-se
‘grups d’etiquetes’:
\tagGroup #'(violiI violiII viola violoncel) |
Ara totes les etiquetes pertanyen a un sol ‘grup d’etiquetes’. Observeu que les etiquetes individuals no poden ser membres de més d’un grup d’etiquetes.
\keepWithTag #'violiI … |
mostrarà sols la música etiquetada a partir del grup d’etiquetes
de violiI i qualsevol fragment musical etiquetada amb una
de les altres etiquetes resultarà suprimit.
music = \relative { \tagGroup #'(violiI violiII viola violoncel) \tag #'violiI { c''4^"violiI" c c c } \tag #'violiII { a2 a } \tag #'viola { e8 e e2. } \tag #'violoncel { d'2 d4 d } R1^"untagged" } \new Voice { \keepWithTag #'violiI \music }
En usar l’ordre \keepWithTag sols són visibles les
etiquetes dels grups d’aquelles etiquetes que s’inclouen a l’ordre.
A vegades podem desitjar dividir la música en un determinat lloc
dins d’una expressió musical existent. Podem usar
\pushToTag i \appendToTag per afegir material davant
o al final dels elements d’una construcció musical
existent. No tota construcció musical té la part
elements, però les músiques seqüencials i simultànies són
dues apostes segures:
music = { \tag #'here { \tag #'here <<c''>> } } { \pushToTag #'here c' \pushToTag #'here e' \pushToTag #'here g' \music \appendToTag #'here c' \appendToTag #'here e' \appendToTag #'here g' \music }
Les dues ordres admeten una etiqueta, el material que divideix en cada aparició de l’etiqueta, i l’expressió etiquetada.
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ó: Combinació automàtica de les parts, Inclusió de fitxers del LilyPond.
En cridar a \relative sobre una expressió musical obtinguda
mitjançant el filtratge de música amb les ordres
\keepWithTag o \removeWithTag, podria passar que
canviessin les altures de les notes que efectivament romanen a
l’expressió filtrada. L’aplicació de \relative en primer
lloc, abans de \keepWithTag o de \removeWithTag,
evita aquest perill perquè en aquest cas
\relative actua sobre totes les notes tal i com s’introdueixen.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Using global settings
Es poden incloure ajustos globals a partir d’un fitxer diferent:
lilypond -dinclude-settings=ELS_MEUS_AJUSTAMENTS.ly LA_MEVA_PARTITURA.ly |
A fitxers diferents es poden emmagatzemar grups d’ajustaments com la mida de la pàgina o les fonts tipogràfiques. Això permet fer diferents edicions de la mateixa partitura així com aplicar ajustaments estàndard a moltes partitures, simplement per mitjà de l’especificació del fitxer d’ajustaments adequat.
Aquesta tècnica també funciona bé amb l’ús de fulls d’estil, com s’estudia a (learning)Fulls d’estil section ‘Fulls d'estil’ in Manual d’aprenentatge.
Manual d’aprenentatge: (learning)Organitzar les peces mitjançant variables section ‘Organitzar les peces mitjançant variables’ in Manual d’aprenentatge. (learning)Fulls d’estil section ‘Fulls d'estil’ in Manual d’aprenentatge.
Referència de la notació: Inclusió de fitxers del LilyPond.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Special characters
| Codificació del text | ||
| Unicode | ||
| Àlies d’ASCII |
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Text encoding
El LilyPond usa el conjunt de caràcters definit pel consorci Unicode i la norma ISO/IEC 10646. Defineix un nom únic i un codi per als conjunts de caràcters que s’utilitzen en pràcticament tots els idiomes moderns i també en molts d’altres. L’Unicode es pot implementar utilitzant diverses esquemes de codificació diferents. El LilyPond usa la codificació UTF-8 (UTF són les sigles d’Unicode Transformation Format, o format de transformació de l’Unicode) que representa tots els caràcters comuns de la codificació Latin en un sol byte, i representa altres caràcters usant un format de longitud variable de fina a quatre bytes.
L’aspecte visual real dels caràcter ve determinat per els glifs que es defineixen als tipus de lletres concretes que es tinguin disponibles: un tipus de lletra defineix l’assignació d’un subconjunt dels codis d’Unicode a glifs. El LilyPond fa servir la biblioteca Pango per representar i disposar tipogràficament els textos multilingües.
El Lilypond no realitza cap conversió a la codificació de l’entrada. Això significa que qualsevol text, ja sigui el títol, la lletra de la cançó o una ordre musical que contingui caràcters diferents als del conjunt ASCII, s’han de codificar en UTF-8. La forma més fàcil d’escriure aquest text és utilitzar un editor preparat per a Unicode i desar el fitxer amb la codificació UTF-8. Gairebé tots els editors moderns populars donen suport al UTF-8, per exemple ho fan el vim, l’Emacs, el jEdit i el Gedit. Tots els sistemes MS Windows posteriors a NT fan servir l’Unicode com a codificació de caràcters nativa, de manera que fins i tot l’accessori Bloc de Notes (Notepad) pot editar-se i desar un fitxer en el format UTF-8. Una alternativa més funcional per a Windows és el BabelPad.
Si un fitxer d’entrada que conté un caràcter que no és ASCII no es desa en el format UTF-8, es genera un missatge d’error.
FT_Get_Glyph_Name () error: argument invàlid |
Vet aquí un exemple que mostra text ciríl·lic, hebreu i portuguès:
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Unicode
Per introduir un caràcter aïllat per al qual es coneix el punt de
codi Unicode però no està disponible a l’editor que s’està fent
servir, useu \char ##xhhhh o bé \char
#dddd dins d’un bloc \markup, on hhhh és el codi
hexadecimal del caràcter en qüestió i dddd és el seu valor
decimal corresponent. Poden ometre’s els zeros inicials, però és
costum indicar els quatre caràcters a la representació hexadecimal
(observeu que no s’ha d’utilitzar la codificació UTF-8 del
punt de codi Unicode després de \char, atès que la
codificació UTF-8 conté bits addicionals que indiquen el nombre
d’octets). Hi ha taules de codis Unicode i un índex de noms de
caràcters que dóna el punt de codi en hexadecimal per a qualsevol
caràcter al portal del Consorci Unicode, http://www.unicode.org/.
Per exemple, tant \char ##x03BE com \char #958
insereixen el caràcter Unicode U+03BE, que té el nom Unicode
“Lletra grega Xi petita”.
Es pot escriure d’aquesta forma qualsevol punt de codi Unicode, i si tots els caràcters especials s’escriuen en aquest format no cal desar el fitxer d’entrada en format UTF-8. Per suposat, ha d’estar instal·lat i estar disponible per al LilyPond un tipus de lletra que contingui codificats tots aquests caràcters.
L’exemple següent mostra valors hexadecimals Unicode que s’usen a quatre llocs: a una crida d’assaig, com text d’articulació, a la lletra i com text independent sota la partitura:
\score { \relative { c''1 \mark \markup { \char ##x03EE } c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } } } \addlyrics { O \markup { \concat { Ph \char ##x0153 be! } } } } \markup { "Copyright 2008--2015" \char ##x00A9 }
Per escriure el símbol de copyrights a la nota de crèdits, utilitzeu:
\header {
copyright = \markup { \char ##x00A9 "2008" }
}
|
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof ASCII aliases
Es pot incloure una llista d’àlies d’ASCII per a caràcters especials:
\paper { #(include-special-characters) } \markup "&flqq; – &OE;uvre incomplète… &frqq;" \score { \new Staff { \repeat unfold 9 a'4 } \addlyrics { This is al -- so wor -- kin'~in ly -- rics: –_&OE;… } } \markup \column { "The replacement can be disabled:" "– &OE; …" \override #'(replacement-alist . ()) "– &OE; …" }
També podem fer els nostres propis àlies, ja sigui de forma global,
\paper { #(add-text-replacements! '(("100" . "hundred") ("dpi" . "dots per inch"))) } \markup "A 100 dpi."
o local:
\markup \replace #'(("100" . "hundred") ("dpi" . "dots per inch")) "A 100 dpi."
Referència de la notació: Llista de caràcters especials.
Fitxers instal·lats: ‘ly/text-replacements.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.