1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ca -*-
4 Translation of GIT committish: 45d0e015edc53abebada17a0fdb1d665f7edf900
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. For details, see the Contributors'
8 Guide, node Updating translation committishes..
13 @node Suggeriments per escriure fitxers d'entrada
14 @chapter Suggeriments per escriure fitxers d'entrada
15 @translationof Suggestions for writing files
17 En aquest moment teniu la preparació per començar a escriure
18 fitxers del LilyPond més grans -- no sols els petits exemples que
19 apareixen en el tutorial, sinó peces completes --. Però, com heu
20 de procedir per fer-lo?
22 En la mesura que el LilyPond entengui els seus fitxers i produeixi
23 la sortida que preteníeu, realment no importa massa quin aspecte
24 tinguin els vostres fitxers. Tot i així existeixen algunes altres
25 coses a tenir en compte quan s'escriuen fitxers del LilyPond.
28 @item Què passa si feu un error? L'estructura d'un fitxers del
29 LilyPond pot fer que certs errors es facin més fàcils (o més
32 @item Què passa si voleu compartir els vostres fitxers amb altres
33 persones? De fet, i si voleu alterar els vostres propis fitxers
34 després d'alguns anys? Alguns fitxers del LilyPond s'entenen a
35 primera vista; d'altres poden portar-vos una hora d'entendre.
37 @item Què passa si voleu actualitzar el vostre fitxers del
38 LilyPond per poder-lo usar amb una versió més recent del programa?
40 La sintaxi de l'entrada es modifica de forma ocasional segons el
41 LilyPond es va perfeccionant. Gairebé tots els canvis es poden
42 fer de forma automàtica amb @code{convert-ly}, però a alguns
43 altres els caldria una ajuda manual. Els fitxers del LilyPond es
44 poden estructura perquè siguin més fàcils (o més difícils)
50 * Suggeriments de tipus general::
51 * Gravació de música existent::
53 * Solució de problemes::
54 * Make i els Makefiles::
58 @node Suggeriments de tipus general
59 @section Suggeriments de tipus general
60 @translationof General suggestions
62 Us presentem alguns suggeriments que us poden servir d'ajuda per
63 evitar o corregir problemes:
66 @item @strong{Incloeu els números de @code{\version} a tots els fitxers}.
67 Adoneu-vos que totes les plantilles contenen informació sobre la
68 versió (@code{\version}). Us recomanem molt que sempre incloeu la
69 versió, tot i que els vostre fitxer pugui ser molt petit. Des de
70 l'experiència personal us podem dir que força frustrant intentar
71 recordar el número de versió del LilyPond que estàveu fent servir
72 fa uns anys. @code{convert-ly} requereix que declareu quina
73 versió del LilyPond fèieu servir.
75 @item @strong{Incloeu comprovacions}:
76 @rusernamed{Bar and bar number checks,Comprovació de compàs y de
78 @rusernamed{Octave checks,Comprovació d'octava}.
79 Si incloeu comprovacions de tant en tant, en cas que cometeu un
80 error podreu localitzar-lo molt més ràpidament. Amb quina
81 freqüència és @q{de tant en tant}? Depèn de la complexitat de la
82 música. Per a una música molt senzilla, potser tan sols una o
83 dues vegades. Per a una música molt complexa, potser a cada
86 @item @strong{Un compàs per cada línia de text}. Si hi ha quelcom
87 molt complicat, ja sigui a la pròpia música o a la sortida que
88 desitgeu produir, sovint convé escriure un sol compàs per a cada
89 línia. L'estalvi en espai de pantalla que s'obté acumulant nou
90 compassos per línia no paga la pena si després heu de @q{depurar}
93 @item @strong{Comenteu els fitxers}. Utilitzeu o bé números de
94 compàs (de tant en tant), o referències a temes musicals (@q{segon
95 tema dels violins,} @{quarta variació,} etc.). Potser que no us
96 calguin comentaris quan introduïu una peça per primer cop, però si
97 voleu tornar a ella o modificar quelcom al cap de dos o tres anys,
98 i també si li passeu la font a un amic, serà tot un desafiament
99 determinar les seves intencions o de quina menara estava
100 estructurat el fitxer si no li heu afegit els comentaris.
102 @item @strong{Apliqueu marges als claudàtors}. Molts problemes
103 estan casat per una falta d'equilibri en el nombre de @code{@{} i
106 @item @strong{Escriviu les duracions explícitament} al començament
107 de les seccions i identificadors. Si especifiqueu @code{c4 d e}
108 al principi d'una frase (en lloc de sols @code{c d e}) us podeu
109 estalviar problemes si reelaboreu la música més tard.
111 @item @strong{Separeu els ajustaments} de les definicions
113 @rlearning{Estalvi de tecleig mitjançant variables i funcions} i
114 @rlearning{Fulls d'estil}
118 @node Gravació de música existent
119 @section Gravació de música existent
120 @translationof Typesetting existing music
122 Si esteu introduint música a partir d'una partitura existent (és a
123 dir, gravant un full de música ja imprès),
127 @item Introduïu al LilyPond cada sistema del manuscrit, o còpia
128 física, per separat (però manteniu la pràctica d'escriure un
129 compàs per línia de text), i comproveu cada sistema quan l'hàgiu
130 acabat. Podeu usar les propietats @code{showLastLength} o
131 @code{showFirstLength} per accelerar el procés (vegeu
132 @rusernamed{Skipping corrected music,Omissió de la música corregida}).
134 @item Definiu @code{mBreak = @{ \break @}} i inseriu
135 @code{\mBreak} dins del fitxer d'entrada on el manuscrit tingui un
136 salt de línia. D'aquesta forma us resultarà molt més fàcil
137 comparar la música del LilyPond amb l'original. Quan hageu acabat
138 de revisar la vostra partitura podreu definir
139 @code{mBreak = @{ @}} per treure tots aquests salts de línia.
140 Així permetreu el LilyPond col·locar els salts on el LilyPond el
141 consideri més oportú.
143 @item En escriure una part per a un instrument transpositor dins
144 d'una variable, es recomana que les notes estiguin envoltades dins de
147 \transpose c altura-natural @{@dots{}@}
151 (on @code{altura-natural} és l'afinació natural de l'instrument)
152 de forma que la música dins de la variable estigui realment en Do
153 major. Després podem tornar a transportar-les en sentit invers
154 quan s'utilitza la variable, si és necessari, però potser no
155 vulguem fer-lo (per exemple en imprimir una partitura en afinació
156 de concert, en convertir una part de trombó de clau de Sol a clau
157 de Fa, etc.). És menys probable cometre errors als transports si
158 tota la música que està dins de les variables es troba en un to
161 A més a més, feu els transport exclusivament cap o des de Do
162 major. Això significa que a part de Do major, les úniques
163 tonalitats que usarem seran els tons d'afinació dels instruments
164 transpositors: bes per a una trompeta en Si bemoll, aes per a un
165 clarinet en La bemoll, etc.
169 @node Projectes grans
170 @section Projectes grans
171 @translationof Large projects
173 En treballar en projectes grans es fa essencial tenir una
174 estructura clara als fitxers dels LilyPond:
178 @item @strong{Utilitzeu un identificador per a cada veu}, amb un
179 mínim d'estructura dins de la definició. L'estructura de la
180 secció @code{\score} és la que canviarà amb major probabilitat:
181 per contra, és extremadament improbable que canviï la definició de
182 @code{violí} a versions noves del LilyPond.
186 violí = \relative c'' @{
199 @item @strong{Separeu els ajustaments de les definicions
200 musicals}. Ja s'ha mencionat amb anterioritat, però per a
201 projectes grans és vital. Potser haurem de canviar la definició
202 de @code{fdesprésp}, però en aquest cas sols ho haurem de fer un
203 cop, i encara podrem evitar tocar res dins de @code{violí}.
206 fdesprésp = _\markup@{
207 \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p @}
208 violí = \relative c'' @{
216 @node Solució de problemes
217 @section Solució de problemes
218 @translationof Troubleshooting
220 Abans o després escriureu un fitxer que el LilyPond no podrà
221 compilar. Els missatges que el LilyPond proporciona poden
222 ajudar-vos a trobar l'error, però en molts casos haureu de portar
223 endavant algun tipus d'investigació per determinar l'origen del
224 problema. Les eines més poderoses per a aquest propòsit son el
225 comentari d'una sola línia (indicat per @code{%}) i el comentari
226 de bloc (indicat per @code{%@{@dots{}%@}}). Si no sabeu on és el
227 problema, comenceu convertint seccions grans del fitxer d'entrada
228 en un comentari. Després d'eliminar una secció convertint-la en
229 un comentari, proveu a compilar un fitxer un altre cop. Si
230 funciona, aleshores el problema hauria d'estar a la porció que
231 havíeu eliminat. Si no funciona, continueu eliminant material
232 (transformant-lo en comentaris) fins que tingueu quelcom que
235 En un cas extrem podríeu acabat amb sols
249 (en altres paraules: un fitxer sense música)
251 Si passa això, no abandoneu. Traieu el comentari d'una secció
252 petita -- diguem-ne la part del baix -- i observeu si funciona.
253 Si no és així, transformeu en comentaris tota la música del baix
254 (però deixeu el @code{\baix} de la secció @code{\score} no comentat.
257 bajo = \relative c' @{
265 Ara comenceu poc a poc traient comentaris a cada cop més fraccions
266 de la part del @code{baix} fins que trobeu la línia del problema.
268 Una altra tècnica de depuració molt útil és la construcció de
269 @rweb{Exemples mínims}.
271 @node Make i els Makefiles
272 @section Make i els Makefiles
273 @translationof Make and Makefiles
275 @cindex make, fitxers de
278 Possiblement totes les plataformes on pot executar-se el LilyPond
279 contemplen una possibilitat de programari anomenada @code{make}.
280 Aquest programa llegeix un fitxer especial anomenat
281 @code{Makefile} que defineix les relacions de dependència entre
282 els fitxers i quines instruccions necessitem donar al sistema
283 operatiu per produir un fitxer a partir d'un altre. Per exemple,
284 el fitxer de make detallaria com obtenir
285 @file{balada.pdf} i @file{balada.midi} a partir de @file{balada.ly}
286 mitjançant l'execució del LilyPond.
288 Hi ha ocasions en les quals és una bona idea crear un
289 @code{Makefile} per al nostre projecte, bé sigui per la nostra
290 pròpia comoditat o com a cortesia per a altres que possiblement
291 tinguin accés als nostres fitxers font. Això és cert per a
292 projectes molt grans amb molts fitxers d'inclusió i diferents
293 opcions de sortida (per exemple partitura completa, particel·les,
294 partitura del director, reducció per a piano, etc.), o per a
295 projectes que requereixen ordres difícils per muntar-los (com els
296 projectes de @code{lilypond-book}). La complexitat i flexibilitat
297 dels Mekfiles varia enormement segons les necessitats i
298 l'habilitat dels autors. El programa GNU Make ve instal·lat a les
299 distribucions del GNU/Linux i al MacOS X, i també existeix per al
302 Consulteu el @strong{Manual de GNU Make} per veure tots els
303 detalls sobre l'ús de @code{make}, atès que el segueix a
304 continuació ofereix sols una pinzellada de tot els és capaç de fer.
306 Les instruccions que defineixen les regles a un fitxer de make
307 difereixen en funció de la plataforma; per exemple, les diferents
308 formes del GNU/Linux i del MacOS usen @code{bash}, mentre que el Windows
309 usa @code{cmd}. Observeu que al MacOS C, hem de configurar el
310 sistema perquè faci servir l'interpret d'ordres. A continuació
311 presentem alguns makefiles d'exemple, amb versions tant per al
312 GNU/Linux/MacOS com per al Windows.
314 El primer exemple és per a una obra orquestral en quatre moviments
315 amb l'estructura de directoris següent:
332 | |-- sinfonia-cello.ly
333 | |-- sinfonia-trompa.ly
334 | |-- sinfonia-oboes.ly
335 | |-- sinfonia-viola.ly
336 | |-- sinfonia-violiU.ly
337 | `-- sinfonia-violiDos.ly
347 Els fitxers @file{.ly} dels directoris @code{Partitures} i
348 @code{Particelles} obtenen les notes de fitxers @file{.ily} que estan al
349 directori @code{Notes}:
352 %%% principi del fitxer "sinfonia-cello.ly"
353 \include ../definicionsSinf.ily
354 \include ../Notes/cello.ily
357 El makefile tindrà els objectius de @code{partitura} (la peça
358 completa en tot el seu esplendor), @code{moviments} (partitura
359 completa dels moviments individuals) i @code{particel·les} (parts
360 individuals per als faristols). També hi ha un objectiu
361 @code{fitxer} que produeix un fitxer tar de distribució (tarball)
362 dels fitxers font, adequat per compartir-lo a través de la web o
363 per correu electrònic. A continuació presentem el makefile per a
364 GNU/Linux o MacOS C. S'ha de desar amb el nom exacte
365 @code{Makefile} al directori superior del projecte:
367 @warning{Quan es defineix un objectiu o una regla de patró, les
368 línies següents han de començar amb tabuladors, no amb espais.}
371 # nom principal dels fitxers de sortida
373 # determinació del nombre de processadors
374 CPU_CORES=`cat /proc/cpuinfo | grep -m1 "cpu cores" | sed s/".*: "//`
375 # L'ordre per executar el LilyPond
376 LILY_CMD = lilypond -ddelete-intermediate-files \
377 -dno-point-and-click -djob-count=$(CPU_CORES)
379 # Els sufixos utilitzats a aquest Makefile.
380 .SUFFIXES: .ly .ily .pdf .midi
382 # Els fitxers d'entrada i de sortida es busquen dins dels directoris relacionats a
383 # la variable VPATH. Tots ells són subdirectoris del directori
384 # en curs (donat per la variable de GNU make `CURDIR').
386 $(CURDIR)/Partitures \
388 $(CURDIR)/Particelles \
391 # La regla de patró per crear fitxers PDF i MIDI a partir fitxers d'entrada LY
392 # Els fitxers de sortida .pdf es col·loquen al subdirectori `PDF', i els fitxers
393 # .midi van al subdirectori `MIDI'.
395 $(LILY_CMD) $<; \ # Aquesta línia comença amb un salt de tabulació
396 if test -f "$*.pdf"; then \
399 if test -f "$*.midi"; then \
400 mv "$*.midi" MIDI/; \
411 # Dependències dels moviments
412 $(nom)I.pdf: $(nom)I.ly $(notes)
413 $(nom)II.pdf: $(nom)II.ly $(notes)
414 $(nom)III.pdf: $(nom)III.ly $(notes)
415 $(nom)IV.pdf: $(nom)IV.ly $(notes)
417 # Dependències de la partitura completa.
418 $(nom).pdf: $(nom).ly $(notes)
420 # Dependències de les particel·les.
421 $(nom)-cello.pdf: $(nom)-cello.ly cello.ily
422 $(nom)-trompa.pdf: $(nom)-trompa.ly trompa.ily
423 $(nom)-oboes.pdf: $(nom)-oboes.ly oboe.ily
424 $(nom)-viola.pdf: $(nom)-viola.ly viola.ily
425 $(nom)-violiU.pdf: $(nom)-violiU.ly violiU.ily
426 $(nom)-violiDos.pdf: $(nom)-violiDos.ly violiDos.ily
428 # Teclegeu `make partitura' per generar la partitura completa dels quatre
429 # moviments com un fitxer únic.
431 partitura: $(nom).pdf
433 # Teclegeu `make particelles' per generar totes les particel·les
434 # Teclegeu `make pepet.pdf' per generar la particel·la de
435 # l'instrument `pepet'.
437 # Exemple: `make sinfonia-cello.pdf'.
439 particellas: $(nom)-cello.pdf \
440 $(nom)-violinUno.pdf \
441 $(nom)-violinDos.pdf \
446 # Teclegeu `make moviments' per generar els fitxers dels
447 # quatre moviments de forma separada.
449 moviments: $(nom)I.pdf \
454 all: partitura particelles moviments
457 tar -cvvf stamitz.tar \ # aquesta línia comença amb un salt de tabulació
458 --exclude=*pdf --exclude=*~ \
459 --exclude=*midi --exclude=*.tar \
463 A la plataforma Windows hi ha certes complicacions. Després de
464 descarregar i instal·lar el programa GNU Make per al Windows,
465 haurem de configurar la ruta adequada a las variables d'entorn del
466 sistema de que l'intèrpret d'ordres del DOS pugui trobar el
467 programa Make. Per fer-lo, polseu amb el botó dret sobre "El meu
468 ordinador", escolliu @code{Propietats} i @code{Avançades}. Polseu
469 sobre @code{Variables d'entorn}, i després a la pestanya
470 @code{Variables del sistema}, seleccioneu @code{Ruta}, polseu
471 sobre @code{edita} i afegiu la ruta al fitxer executable de GNU
472 Make, amb la qual cosa quedarà quelcom semblant al següent:
475 C:\Fitxers de programa\GnuWin32\bin
478 El makefile en si s'ha de modificar perquè gestioni diverses
479 instruccions de l'intèrpret d'ordres i perquè pugui tractar amb
480 els espais que apareixen al nom d'alguns directoris del sistema
481 predeterminats. L'objectiu @code{fitxer} s'elimina perquè el
482 Windows no té l'ordre @code{tar}, i el Windows a més té una
483 extensió predeterminada diferent per als fitxers MIDI.
486 ## VERSIÓ PER AL WINDOWS
489 LILY_CMD = lilypond -ddelete-intermediate-files \
490 -dno-point-and-click \
491 -djob-count=$(NUMBER_OF_PROCESSORS)
493 #obtenció del nom 8.3 de CURDIR (truc per als espais a PATH)
494 workdir = $(shell for /f "tokens=*" %%b in ("$(CURDIR)") \
497 .SUFFIXES: .ly .ily .pdf .mid
500 $(workdir)/Partitures \
502 $(workdir)/Particelles \
506 $(LILY_CMD) $< # aquesta línia comença amb un salt de tabulació
507 if exist "$*.pdf" move /Y "$*.pdf" PDF/ # començament amb tab
508 if exist "$*.mid" move /Y "$*.mid" MIDI/ # començament amb tab
520 $(nom)I.pdf: $(nom)I.ly $(notes)
521 $(nom)II.pdf: $(nom)II.ly $(notes)
522 $(nom)III.pdf: $(nom)III.ly $(notes)
523 $(nom)IV.pdf: $(nom)IV.ly $(notes)
525 $(nom).pdf: $(nom).ly $(notes)
527 $(nom)-cello.pdf: $(nom)-cello.ly cello.ily
528 $(nom)-trompa.pdf: $(nom)-trompa.ly trompa.ily
529 $(nom)-oboes.pdf: $(nom)-oboes.ly oboe.ily
530 $(nom)-viola.pdf: $(nom)-viola.ly viola.ily
531 $(nom)-violiU.pdf: $(nom)-violiU.ly violiU.ily
532 $(nom)-violiDos.pdf: $(nom)-violiDos.ly violiDos.ily
535 partitura: $(nom).pdf
538 particelles: $(nom)-cello.pdf \
540 $(nom)-violiDos.pdf \
546 moviments: $(nom)I.pdf \
551 all: partitura particelles moviments
554 El Makefile següent és per a un document de
555 @command{lilypond-book} fet en LaTeX. Aquest projecte té un
556 índex, que requereix executar l'ordre @command{latex} dues vegades
557 per actualitzar els enllaços. Tots els fitxers de sortida
558 s'emmagatzemen al directori @code{sortida} per als documents .pdf
559 i al directori @code{sortidahtml} per a la sortida en format html.
566 VISUALITZADOR=acroread
568 LILYBOOK_PDF=lilypond-book --output=$(DIR_SORTIDA) --pdf $(NOM).lytex
569 LILYBOOK_HTML=lilypond-book --output=$(DIR_WEB) $(NOM).lytex
570 PDF=cd $(DIR_SORTIDA) && pdflatex $(NOM)
571 HTML=cd $(DIR_WEB) && latex2html $(NOM)
572 INDEX=cd $(DIR_SORTIDA) && makeindex $(NOM)
573 VISTA_PREVIA=$(VISUALITZADOR) $(DIR_SORTIDA)/$(NOM).pdf &
578 $(LILYBOOK_PDF) # comença amb un tab
579 $(PDF) # comença amb un tab
580 $(INDEX) # comença amb un tab
581 $(PDF) # comença amb un tab
582 $(VISTA_PREVIA) # comença amb un tab
585 $(LILYBOOK_HTML) # comença amb un tab
586 $(HTML) # comença amb un tab
587 cp -R $(DIR_WEB)/$(NOM)/ ./ #
588 $(NAVEGADOR) $(NOM)/$(NOM).html & # comença amb un tab
591 cp $(DIR_SORTIDA)/$(NOM).pdf $(NOM).pdf # comença amb un tab
594 rm -rf $(DIR_SORTIDA) # comença amb un tab
597 rm -rf $(DIR_WEB) # comença amb un tab
600 tar -cvvf elmeuprojecte.tar \ # comença amb un tab
601 --exclude=sortida/* \
602 --exclude=sortidahtml/* \
603 --exclude=elmeuprojecte/* \
610 PERFER: aconseguir que funcioni a windows
612 El makefile anterior no funciona al Windows. Una alternativa per
613 als usuaris del Windows seria crear un fitxer de lots senzill que
614 contingui les ordres de muntatge. Això no segueix les
615 dependències com ho fa un makefile, però almenys redueix el procés
616 de construcció a una sola instrucció. Deseu el codi següent com
617 @command{muntatge.bat} o @command{muntatge.cmd}. El fitxer de lots
618 es pot executar en la línia d'ordres del DOS o simplement fent
619 doble clic sobre la seva icona.
622 lilypond-book --output=sortida --pdf elmeuprojecte.lytex
624 pdflatex elmeuprojecte
625 makeindex elmeuprojecte
626 pdflatex elmeuprojecte
628 copy sortida\elmeuprojecte.pdf ElMeuProjecte.pdf
633 Manual d'utilització del programa:
634 @rprogram{Configuració per a MacOS X},
635 @rprogram{Utilització des de la línia d'ordres},
636 @rprogram{LilyPond-book}