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 i de número de compàs},
77 @ruser{Comprovació d'octava}.
78 Si incloeu comprovacions de tant en tant, en cas que cometeu un
79 error podreu localitzar-lo molt més ràpidament. Amb quina
80 freqüència és @q{de tant en tant}? Depèn de la complexitat de la
81 música. Per a una música molt senzilla, potser tan sols una o
82 dues vegades. Per a una música molt complexa, potser a cada
85 @item @strong{Un compàs per cada línia de text}. Si hi ha quelcom
86 molt complicat, ja sigui a la pròpia música o a la sortida que
87 desitgeu produir, sovint convé escriure un sol compàs per a cada
88 línia. L'estalvi en espai de pantalla que s'obté acumulant nou
89 compassos per línia no paga la pena si després heu de @q{depurar}
92 @item @strong{Comenteu els fitxers}. Utilitzeu o bé números de
93 compàs (de tant en tant), o referències a temes musicals (@q{segon
94 tema dels violins,} @q{quarta variació,} etc.). Potser que no us
95 calguin comentaris quan introduïu una peça per primer cop, però si
96 voleu tornar a ella o modificar quelcom al cap de dos o tres anys,
97 i també si li passeu la font a un amic, serà tot un desafiament
98 determinar les seves intencions o de quina menara estava
99 estructurat el fitxer si no li heu afegit els comentaris.
101 @item @strong{Apliqueu marges als claudàtors}. Molts problemes
102 estan casat per una falta d'equilibri en el nombre de @code{@{} i
105 @item @strong{Escriviu les duracions explícitament} al començament
106 de les seccions i identificadors. Si especifiqueu @code{c4 d e}
107 al principi d'una frase (en lloc de sols @code{c d e}) us podeu
108 estalviar problemes si reelaboreu la música més tard.
110 @item @strong{Separeu els ajustaments} de les definicions
112 @rlearning{Estalvi de tecleig mitjançant variables i funcions} i
113 @rlearning{Fulls d'estil}
117 @node Gravació de música existent
118 @section Gravació de música existent
119 @translationof Typesetting existing music
121 Si esteu introduint música a partir d'una partitura existent (és a
122 dir, gravant un full de música ja imprès),
126 @item Introduïu al LilyPond cada sistema del manuscrit, o còpia
127 física, per separat (però manteniu la pràctica d'escriure un
128 compàs per línia de text), i comproveu cada sistema quan l'hàgiu
129 acabat. Podeu usar les propietats @code{showLastLength} o
130 @code{showFirstLength} per accelerar el procés (vegeu
131 @rusernamed{Skipping corrected music,Omissió de la música corregida}).
133 @item Definiu @code{mBreak = @{ \break @}} i inseriu
134 @code{\mBreak} dins del fitxer d'entrada on el manuscrit tingui un
135 salt de línia. D'aquesta forma us resultarà molt més fàcil
136 comparar la música del LilyPond amb l'original. Quan hageu acabat
137 de revisar la vostra partitura podreu definir
138 @code{mBreak = @{ @}} per treure tots aquests salts de línia.
139 Així permetreu el LilyPond col·locar els salts on el LilyPond el
140 consideri més oportú.
142 @item En escriure una part per a un instrument transpositor dins
143 d'una variable, es recomana que les notes estiguin envoltades dins de
146 \transpose c altura-natural @{@dots{}@}
150 (on @code{altura-natural} és l'afinació natural de l'instrument)
151 de forma que la música dins de la variable estigui realment en Do
152 major. Després podem tornar a transportar-les en sentit invers
153 quan s'utilitza la variable, si és necessari, però potser no
154 vulguem fer-lo (per exemple en imprimir una partitura en afinació
155 de concert, en convertir una part de trombó de clau de Sol a clau
156 de Fa, etc.). És menys probable cometre errors als transports si
157 tota la música que està dins de les variables es troba en un to
160 A més a més, feu els transport exclusivament cap o des de Do
161 major. Això significa que a part de Do major, les úniques
162 tonalitats que usarem seran els tons d'afinació dels instruments
163 transpositors: bes per a una trompeta en Si bemoll, aes per a un
164 clarinet en La bemoll, etc.
168 @node Projectes grans
169 @section Projectes grans
170 @translationof Large projects
172 En treballar en projectes grans es fa essencial tenir una
173 estructura clara als fitxers dels LilyPond:
177 @item @strong{Utilitzeu un identificador per a cada veu}, amb un
178 mínim d'estructura dins de la definició. L'estructura de la
179 secció @code{\score} és la que canviarà amb major probabilitat:
180 per contra, és extremadament improbable que canviï la definició de
181 @code{violí} a versions noves del LilyPond.
198 @item @strong{Separeu els ajustaments de les definicions
199 musicals}. Ja s'ha mencionat amb anterioritat, però per a
200 projectes grans és vital. Potser haurem de canviar la definició
201 de @code{fdesprésp}, però en aquest cas sols ho haurem de fer un
202 cop, i encara podrem evitar tocar res dins de @code{violí}.
205 fdesprésp = _\markup@{
206 \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p @}
215 @node Solució de problemes
216 @section Solució de problemes
217 @translationof Troubleshooting
219 Abans o després escriureu un fitxer que el LilyPond no podrà
220 compilar. Els missatges que el LilyPond proporciona poden
221 ajudar-vos a trobar l'error, però en molts casos haureu de portar
222 endavant algun tipus d'investigació per determinar l'origen del
223 problema. Les eines més poderoses per a aquest propòsit son el
224 comentari d'una sola línia (indicat per @code{%}) i el comentari
225 de bloc (indicat per @code{%@{@dots{}%@}}). Si no sabeu on és el
226 problema, comenceu convertint seccions grans del fitxer d'entrada
227 en un comentari. Després d'eliminar una secció convertint-la en
228 un comentari, proveu a compilar un fitxer un altre cop. Si
229 funciona, aleshores el problema hauria d'estar a la porció que
230 havíeu eliminat. Si no funciona, continueu eliminant material
231 (transformant-lo en comentaris) fins que tingueu quelcom que
234 En un cas extrem podríeu acabat amb sols
248 (en altres paraules: un fitxer sense música)
250 Si passa això, no abandoneu. Traieu el comentari d'una secció
251 petita -- diguem-ne la part del baix -- i observeu si funciona.
252 Si no és així, transformeu en comentaris tota la música del baix
253 (però deixeu el @code{\baix} de la secció @code{\score} no comentat.
264 Ara comenceu poc a poc traient comentaris a cada cop més fraccions
265 de la part del @code{baix} fins que trobeu la línia del problema.
267 Una altra tècnica de depuració molt útil és la construcció de
268 @rweb{Exemples mínims}.
270 @node Make i els Makefiles
271 @section Make i els Makefiles
272 @translationof Make and Makefiles
274 @cindex make, fitxers de
277 Possiblement totes les plataformes on pot executar-se el LilyPond
278 contemplen una possibilitat de programari anomenada @code{make}.
279 Aquest programa llegeix un fitxer especial anomenat
280 @code{Makefile} que defineix les relacions de dependència entre
281 els fitxers i quines instruccions necessitem donar al sistema
282 operatiu per produir un fitxer a partir d'un altre. Per exemple,
283 el fitxer de make detallaria com obtenir
284 @file{balada.pdf} i @file{balada.midi} a partir de @file{balada.ly}
285 mitjançant l'execució del LilyPond.
287 Hi ha ocasions en les quals és una bona idea crear un
288 @code{Makefile} per al nostre projecte, bé sigui per la nostra
289 pròpia comoditat o com a cortesia per a altres que possiblement
290 tinguin accés als nostres fitxers font. Això és cert per a
291 projectes molt grans amb molts fitxers d'inclusió i diferents
292 opcions de sortida (per exemple partitura completa, particel·les,
293 partitura del director, reducció per a piano, etc.), o per a
294 projectes que requereixen ordres difícils per muntar-los (com els
295 projectes de @code{lilypond-book}). La complexitat i flexibilitat
296 dels Mekfiles varia enormement segons les necessitats i
297 l'habilitat dels autors. El programa GNU Make ve instal·lat a les
298 distribucions del GNU/Linux i al MacOS X, i també existeix per al
301 Consulteu el @strong{Manual de GNU Make} per veure tots els
302 detalls sobre l'ús de @code{make}, atès que el segueix a
303 continuació ofereix sols una pinzellada de tot els és capaç de fer.
305 Les instruccions que defineixen les regles a un fitxer de make
306 difereixen en funció de la plataforma; per exemple, les diferents
307 formes del GNU/Linux i del MacOS usen @code{bash}, mentre que el Windows
308 usa @code{cmd}. Observeu que al MacOS C, hem de configurar el
309 sistema perquè faci servir l'interpret d'ordres. A continuació
310 presentem alguns makefiles d'exemple, amb versions tant per al
311 GNU/Linux/MacOS com per al Windows.
313 El primer exemple és per a una obra orquestral en quatre moviments
314 amb l'estructura de directoris següent:
331 | |-- sinfonia-cello.ly
332 | |-- sinfonia-trompa.ly
333 | |-- sinfonia-oboes.ly
334 | |-- sinfonia-viola.ly
335 | |-- sinfonia-violiU.ly
336 | `-- sinfonia-violiDos.ly
346 Els fitxers @file{.ly} dels directoris @code{Partitures} i
347 @code{Particelles} obtenen les notes de fitxers @file{.ily} que estan al
348 directori @code{Notes}:
351 %%% principi del fitxer "sinfonia-cello.ly"
352 \include ../definicionsSinf.ily
353 \include ../Notes/cello.ily
356 El makefile tindrà els objectius de @code{partitura} (la peça
357 completa en tot el seu esplendor), @code{moviments} (partitura
358 completa dels moviments individuals) i @code{particel·les} (parts
359 individuals per als faristols). També hi ha un objectiu
360 @code{fitxer} que produeix un fitxer tar de distribució (tarball)
361 dels fitxers font, adequat per compartir-lo a través de la web o
362 per correu electrònic. A continuació presentem el makefile per a
363 GNU/Linux o MacOS C. S'ha de desar amb el nom exacte
364 @code{Makefile} al directori superior del projecte:
366 @warning{Quan es defineix un objectiu o una regla de patró, les
367 línies següents han de començar amb tabuladors, no amb espais.}
370 # nom principal dels fitxers de sortida
372 # determinació del nombre de processadors
373 CPU_CORES=`cat /proc/cpuinfo | grep -m1 "cpu cores" | sed s/".*: "//`
374 # L'ordre per executar el LilyPond
375 LILY_CMD = lilypond -ddelete-intermediate-files \
376 -dno-point-and-click -djob-count=$(CPU_CORES)
378 # Els sufixos utilitzats a aquest Makefile.
379 .SUFFIXES: .ly .ily .pdf .midi
381 # Els fitxers d'entrada i de sortida es busquen dins dels directoris relacionats a
382 # la variable VPATH. Tots ells són subdirectoris del directori
383 # en curs (donat per la variable de GNU make `CURDIR').
385 $(CURDIR)/Partitures \
387 $(CURDIR)/Particelles \
390 # La regla de patró per crear fitxers PDF i MIDI a partir fitxers d'entrada LY
391 # Els fitxers de sortida .pdf es col·loquen al subdirectori `PDF', i els fitxers
392 # .midi van al subdirectori `MIDI'.
394 $(LILY_CMD) $<; \ # Aquesta línia comença amb un salt de tabulació
395 if test -f "$*.pdf"; then \
398 if test -f "$*.midi"; then \
399 mv "$*.midi" MIDI/; \
410 # Dependències dels moviments
411 $(nom)I.pdf: $(nom)I.ly $(notes)
412 $(nom)II.pdf: $(nom)II.ly $(notes)
413 $(nom)III.pdf: $(nom)III.ly $(notes)
414 $(nom)IV.pdf: $(nom)IV.ly $(notes)
416 # Dependències de la partitura completa.
417 $(nom).pdf: $(nom).ly $(notes)
419 # Dependències de les particel·les.
420 $(nom)-cello.pdf: $(nom)-cello.ly cello.ily
421 $(nom)-trompa.pdf: $(nom)-trompa.ly trompa.ily
422 $(nom)-oboes.pdf: $(nom)-oboes.ly oboe.ily
423 $(nom)-viola.pdf: $(nom)-viola.ly viola.ily
424 $(nom)-violiU.pdf: $(nom)-violiU.ly violiU.ily
425 $(nom)-violiDos.pdf: $(nom)-violiDos.ly violiDos.ily
427 # Teclegeu `make partitura' per generar la partitura completa dels quatre
428 # moviments com un fitxer únic.
430 partitura: $(nom).pdf
432 # Teclegeu `make particelles' per generar totes les particel·les
433 # Teclegeu `make pepet.pdf' per generar la particel·la de
434 # l'instrument `pepet'.
436 # Exemple: `make sinfonia-cello.pdf'.
438 particellas: $(nom)-cello.pdf \
439 $(nom)-violinUno.pdf \
440 $(nom)-violinDos.pdf \
445 # Teclegeu `make moviments' per generar els fitxers dels
446 # quatre moviments de forma separada.
448 moviments: $(nom)I.pdf \
453 all: partitura particelles moviments
456 tar -cvvf stamitz.tar \ # aquesta línia comença amb un salt de tabulació
457 --exclude=*pdf --exclude=*~ \
458 --exclude=*midi --exclude=*.tar \
462 A la plataforma Windows hi ha certes complicacions. Després de
463 descarregar i instal·lar el programa GNU Make per al Windows,
464 haurem de configurar la ruta adequada a las variables d'entorn del
465 sistema de que l'intèrpret d'ordres del DOS pugui trobar el
466 programa Make. Per fer-lo, polseu amb el botó dret sobre "El meu
467 ordinador", escolliu @code{Propietats} i @code{Avançades}. Polseu
468 sobre @code{Variables d'entorn}, i després a la pestanya
469 @code{Variables del sistema}, seleccioneu @code{Ruta}, polseu
470 sobre @code{edita} i afegiu la ruta al fitxer executable de GNU
471 Make, amb la qual cosa quedarà quelcom semblant al següent:
474 C:\Fitxers de programa\GnuWin32\bin
477 El makefile en si s'ha de modificar perquè gestioni diverses
478 instruccions de l'intèrpret d'ordres i perquè pugui tractar amb
479 els espais que apareixen al nom d'alguns directoris del sistema
480 predeterminats. L'objectiu @code{fitxer} s'elimina perquè el
481 Windows no té l'ordre @code{tar}, i el Windows a més té una
482 extensió predeterminada diferent per als fitxers MIDI.
485 ## VERSIÓ PER AL WINDOWS
488 LILY_CMD = lilypond -ddelete-intermediate-files \
489 -dno-point-and-click \
490 -djob-count=$(NUMBER_OF_PROCESSORS)
492 #obtenció del nom 8.3 de CURDIR (truc per als espais a PATH)
493 workdir = $(shell for /f "tokens=*" %%b in ("$(CURDIR)") \
496 .SUFFIXES: .ly .ily .pdf .mid
499 $(workdir)/Partitures \
501 $(workdir)/Particelles \
505 $(LILY_CMD) $< # aquesta línia comença amb un salt de tabulació
506 if exist "$*.pdf" move /Y "$*.pdf" PDF/ # començament amb tab
507 if exist "$*.mid" move /Y "$*.mid" MIDI/ # començament amb tab
519 $(nom)I.pdf: $(nom)I.ly $(notes)
520 $(nom)II.pdf: $(nom)II.ly $(notes)
521 $(nom)III.pdf: $(nom)III.ly $(notes)
522 $(nom)IV.pdf: $(nom)IV.ly $(notes)
524 $(nom).pdf: $(nom).ly $(notes)
526 $(nom)-cello.pdf: $(nom)-cello.ly cello.ily
527 $(nom)-trompa.pdf: $(nom)-trompa.ly trompa.ily
528 $(nom)-oboes.pdf: $(nom)-oboes.ly oboe.ily
529 $(nom)-viola.pdf: $(nom)-viola.ly viola.ily
530 $(nom)-violiU.pdf: $(nom)-violiU.ly violiU.ily
531 $(nom)-violiDos.pdf: $(nom)-violiDos.ly violiDos.ily
534 partitura: $(nom).pdf
537 particelles: $(nom)-cello.pdf \
539 $(nom)-violiDos.pdf \
545 moviments: $(nom)I.pdf \
550 all: partitura particelles moviments
553 El Makefile següent és per a un document de
554 @command{lilypond-book} fet en LaTeX. Aquest projecte té un
555 índex, que requereix executar l'ordre @command{latex} dues vegades
556 per actualitzar els enllaços. Tots els fitxers de sortida
557 s'emmagatzemen al directori @code{sortida} per als documents .pdf
558 i al directori @code{sortidahtml} per a la sortida en format html.
565 VISUALITZADOR=acroread
567 LILYBOOK_PDF=lilypond-book --output=$(DIR_SORTIDA) --pdf $(NOM).lytex
568 LILYBOOK_HTML=lilypond-book --output=$(DIR_WEB) $(NOM).lytex
569 PDF=cd $(DIR_SORTIDA) && pdflatex $(NOM)
570 HTML=cd $(DIR_WEB) && latex2html $(NOM)
571 INDEX=cd $(DIR_SORTIDA) && makeindex $(NOM)
572 VISTA_PREVIA=$(VISUALITZADOR) $(DIR_SORTIDA)/$(NOM).pdf &
577 $(LILYBOOK_PDF) # comença amb un tab
578 $(PDF) # comença amb un tab
579 $(INDEX) # comença amb un tab
580 $(PDF) # comença amb un tab
581 $(VISTA_PREVIA) # comença amb un tab
584 $(LILYBOOK_HTML) # comença amb un tab
585 $(HTML) # comença amb un tab
586 cp -R $(DIR_WEB)/$(NOM)/ ./ #
587 $(NAVEGADOR) $(NOM)/$(NOM).html & # comença amb un tab
590 cp $(DIR_SORTIDA)/$(NOM).pdf $(NOM).pdf # comença amb un tab
593 rm -rf $(DIR_SORTIDA) # comença amb un tab
596 rm -rf $(DIR_WEB) # comença amb un tab
599 tar -cvvf elmeuprojecte.tar \ # comença amb un tab
600 --exclude=sortida/* \
601 --exclude=sortidahtml/* \
602 --exclude=elmeuprojecte/* \
609 PERFER: aconseguir que funcioni a windows
611 El makefile anterior no funciona al Windows. Una alternativa per
612 als usuaris del Windows seria crear un fitxer de lots senzill que
613 contingui les ordres de muntatge. Això no segueix les
614 dependències com ho fa un makefile, però almenys redueix el procés
615 de construcció a una sola instrucció. Deseu el codi següent com
616 @command{muntatge.bat} o @command{muntatge.cmd}. El fitxer de lots
617 es pot executar en la línia d'ordres del DOS o simplement fent
618 doble clic sobre la seva icona.
621 lilypond-book --output=sortida --pdf elmeuprojecte.lytex
623 pdflatex elmeuprojecte
624 makeindex elmeuprojecte
625 pdflatex elmeuprojecte
627 copy sortida\elmeuprojecte.pdf ElMeuProjecte.pdf
632 Manual d'utilització del programa:
633 @rprogram{Utilització des de la línia d'ordres},
634 @rprogram{LilyPond-book}