1 @c -*- coding: utf-8; mode: texinfo; -*-
4 Translation of GIT committish: fe2cae0fa47ec4ec0184e6b3d15572fbcba881cf
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 Sugerencias para escribir archivos de entrada
14 @chapter Sugerencias para escribir archivos de entrada
15 @translationof Suggestions for writing files
17 En este momento está preparado para comenzar a escribir archivos de
18 LilyPond más grandes -- no sólo los pequeños ejemplos que aparecen en
19 el tutorial, sino piezas completas --. Pero ¿cómo debe proceder para
22 En la medida en que LilyPond entienda sus archivos y produzca la
23 salida que usted pretendía, realmente no importa mucho qué aspecto
24 tengan sus archivos. Sin embargo existen algunas otras cosas a tener
25 en cuenta cuando se escriben archivos de LilyPond.
28 @item ¿Qué ocurre si comete un fallo? La estructura de un archivo
29 de LilyPond puede hacer que ciertos errores se hagan más fáciles (o
30 más difíciles) de encontrar.
32 @item ¿Qué ocurre si quiere compartir sus archivos con otras personas?
33 De hecho, ¿y si quiere alterar sus propios archivos después de algunos
34 años? Algunos archivos de LilyPond se comprenden a primera vista;
35 otros pueden tenerle rascándose la cabeza durante una hora.
37 @item ¿Qué ocurre si quiere actualizar su archivo de LilyPond para poderlo
38 usar con una versión más reciente del programa?
40 La sintaxis de la entrada se modifica de forma ocasional según
41 LilyPond se va perfeccionando. Casi todos los cambios se pueden hacer
42 de forma automática con @code{convert-ly}, pero algunos podrían
43 necesitar de una ayuda manual. Los archivos de LilyPond se pueden
44 estructurar para que sean más fáciles (o más difíciles) de actualizar.
49 * Sugerencias de tipo general::
50 * Tipografiar música existente::
52 * Solución de problemas::
53 * Make y los Makefiles::
57 @node Sugerencias de tipo general
58 @section Sugerencias de tipo general
59 @translationof General suggestions
61 Presentamos algunas sugerencias que le pueden servir de ayuda para evitar
65 @item @strong{Incluya los números de @code{\version} en todos los archivos}. Dése cuenta de que todas las
66 plantillas contienen información sobre la @code{\version}. Le
67 recomendamos mucho que siempre incluya la @code{\version}, sin
68 importar cuán pequeño pueda ser su archivo. Desde la experiencia
69 personal podemos decirle que es bastante frustrante intentar recordar
70 el número de versión de LilyPond que estaba usando hace unos años.
71 @code{convert-ly} requiere que declare qué versión de LilyPond
74 @item @strong{Incluya comprobaciones}: @ruser{Comprobación de compás y de número de compás},
75 @ruser{Comprobación de octava}. Si incluye comprobaciones de vez en cuando, en
76 caso de que cometa un error podrá localizarlo mucho más rápidamente.
77 ¿Con qué frecuencia es @q{de vez en cuando}? Depende de la
78 complejidad de la música. Para una música muy sencilla, quizá tan
79 sólo una o dos veces. Para una música muy compleja, quizá a cada
82 @item @strong{Un compás por cada línea de texto}. Si hay algo muy complicado, ya sea
83 en la propia música o en la salida que desea producir, a menudo
84 conviene escribir un solo compás por cada línea. El ahorro en espacio
85 de pantalla que se obtiene al amontonar ocho compases por línea no
86 merece la pena si luego tiene que @q{depurar} los archivos.
88 @item @strong{Comente los archivos}. Utilice o números de compás (de vez en cuando)
89 o referencias a temas musicales (@q{segundo tema de los violines,}
90 @q{cuarta variación,} etc.). Puede que no necesite comentarios cuando
91 introduce una pieza por vez primera, pero si quiere volver a ella o
92 modificar algo al cabo de dos o tres años, y también si le pasa la
93 fuente a un amigo, será todo un desafío determinar sus intenciones o
94 de qué manera estaba estructurado el archivo si no le añadió los
97 @item @strong{Aplique márgenes a las llaves}. Muchos problemas están causados por una
98 falta de equilibrio en el número de @code{@{} y @code{@}}.
100 @item @strong{Escriba las duraciones explícitamente} al comienzo de las secciones
101 e identificadores. Si especifica @code{c4 d e} al principio de una
102 frase (en lugar de sólo @code{c d e}) se puede ahorrar problemas si
103 reelabora la música más tarde.
105 @item @strong{Separe los trucos} de las definiciones musicales. Consulte
106 @rlearning{Ahorrar tecleo mediante variables y funciones} y
107 @rlearning{Hojas de estilo}.
112 @node Tipografiar música existente
113 @section Tipografiar música existente
114 @translationof Typesetting existing music
116 Si está introduciendo música a partir de una partitura existente (es
117 decir, tipografiando una hoja de música ya impresa),
121 @item Introduzca en LilyPond un sistema del manuscrito, o copia física, de
122 cada vez (pero mantenga la práctica de escribir un compás por línea de
123 texto), y compruebe cada sistema cuando lo haya terminado. Puede usar
124 las propiedades @code{showLastLength} o @code{showFirstLength} para
125 acelerar el proceso (véase @ruser{Saltar la música corregida}).
127 @item Defina @code{mBreak = @{ \break @}} e inserte @code{\mBreak}
128 dentro del archivo de entrada donde el manuscrito tenga un saldo de
129 línea. De esta forma le resultará mucho más fácil comparar la música
130 de LilyPond con la original. Cuando haya terminado de revisar su
131 partitura podrá definir @code{mBreak = @{ @}} para quitar todos esos
132 saltos de línea. Así permitirá a LilyPond colocar los saltos donde
133 éste lo estime más oportuno.
135 @item Al escribir una parte para un instrumento transpositor dentro de una
136 variable, se recomienda que las notas estén envueltas dentro de
139 \transpose c altura-natural @{...@}
143 (donde @code{altura-natural} es la afinación natural del instrumento)
144 de forma que la música dentro de la variable esté realmente en Do
145 mayor. Después podemos volver a transportarlas en sentido inverso
146 cuando se utiliza la variable, si es necesario, pero quizá no queramos
147 hacerlo (p.ej., al imprimir una partitura en afinación de concierto,
148 al convertir una parte de trombón de clave de Sol a clave de Fa,
149 etc.). Es menos probable cometer errores en los transportes si toda
150 la música que está dentro de las variables se encuentra en un tono
153 Asimismo, haga los transportes exclusivamente hacia o desde Do mayor.
154 Esto significa que aparte de ésta, las únicas tonalidades que usaremos
155 serán los tonos de afinación de los instrumentos transpositores: bes
156 para una trompeta en Si bemol, aes para un clarinete en La bemol, etc.
162 @node Proyectos grandes
163 @section Proyectos grandes
164 @translationof Large projects
166 Al trabajar en proyectos grandes se hace esencial tener una estructura
167 clara en los archivos de LilyPond:
171 @item @strong{Utilice un identificador para cada voz}, con un mínimo de
172 estructura dentro de la definición. La estructura de la sección
173 @code{\score} es la que cambiará con mayor probabilidad; por contra, es
174 extremadamente improbable que cambie la definición de @code{violin} en
175 versiones nuevas de LilyPond.
178 violin = \relative c'' @{
191 @item @strong{Separe los trucos de las definiciones musicales}.
192 Ya se mencionó con anterioridad, pero para proyectos grandes es vital.
193 Quizá tengamos que cambiar la definición de @code{fluegop}, pero en ese
194 caso sólo lo tendremos que hacer una vez, y aún podremos evitar tocar
195 nada dentro de @code{violin}.
199 \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p @}
200 violin = \relative c'' @{
208 @node Solución de problemas
209 @section Solución de problemas
210 @translationof Troubleshooting
212 Antes o después escribirá un archivo que LilyPond no podrá compilar.
213 Los mensajes que LilyPond proporciona pueden ayudarle a encontrar el
214 error, pero en muchos casos tendrá que llevar a cabo algún tipo de
215 investigación para determinar el origen del problema.
217 Las herramientas más poderosas para este cometido son el comentario de
218 una sola línea (indicado por @code{%}) y el comentario de bloque
219 (indicado por @code{%@{ ... %@}}). Si no sabe dónde está el problema,
220 comience convirtiendo grandes secciones del archivo de entrada en un
221 comentario. Después de eliminar una sección convirtiéndola en un
222 comentario, pruebe a compilar el archivo otra vez. Si funciona,
223 entonces el problema debía estar en la porción que había eliminado.
224 Si no funciona, continúe eliminando material (transformándolo en
225 comentarios) hasta que tenga algo que funcione.
227 En un caso extremo podría terminar con sólo
241 (en otras palabras: un archivo sin música)
243 Si ocurre esto, no abandone. Descomente un trozo pequeño -- digamos
244 la parte del bajo -- y observe si funciona. Si no es así, transforme
245 en comentarios toda la música del bajo (pero deje el @code{\bajo} de
246 la sección @code{\score} no comentado.
249 bajo = \relative c' @{
257 Ahora empiece poco a poco descomentando cada vez más fracciones de la
258 parte del @code{bajo} hasta que encuentre la línea del problema.
260 Otra técnica de depuración muy útil es la construcción de
261 @rweb{Ejemplos mínimos}.
264 @node Make y los Makefiles
265 @section Make y los Makefiles
266 @translationof Make and Makefiles
268 @cindex make, archivos de
271 Posiblemente todas las plataformas en que puede correr LilyPond,
272 contemplan una posibilidad de software llamada @code{make}. Este
273 programa lee un archivo especial llamado @code{Makefile} que define
274 las relaciones de dependencia entre los archivos y qué instrucciones
275 necesitamos dar al sistema operativo para producir un archivo a partir
276 de otro. Por ejemplo, el archivo de make detallaría cómo obtener
277 @code{balada.pdf} y @code{balada.midi} a partir de @code{balada.ly}
278 mediante la ejecución de Lilypond.
280 Existen ocasiones en las que es buena idea crear un @code{Makefile}
281 para nuestro proyecto, bien sea por nuestra propia comodidad o como
282 cortesía para otros que posiblemente tengan acceso a nuestros archivos
283 fuente. Esto es cierto para proyectos muy grandes con muchos archivos
284 de inclusión y distintas opciones de salida (p.ej. partitura completa,
285 particellas, partitura del director, reducción para piano, etc.), o
286 para proyectos que requieren instrucciones difíciles para montarlas
287 (como los proyectos de @code{lilypond-book}). La complejidad y
288 flexibilidad de los Makefiles varía enormemente según las necesidades
289 y la habilidad de los autores. El programa GNU Make viene instalado
290 en las distribuciones de GNU/Linux y en MacOS X, y también existe para
293 Consulte el @strong{Manual de GNU Make} para ver todos los detalles
294 sobre el uso de @code{make}, pues lo que sigue a continuación ofrece
295 solamente una pincelada de todo lo que es capaz de hacer.
297 Las instrucciones que definen las reglas en un archivo de make
298 difieren en función de la plataforma; por ejemplo, las distintas
299 formas de Linux y MacOS usan @code{bash}, mientras que Windows usa
300 @code{cmd}. Observeque en MacOS X, tenemos que configurar el sistema
301 para que utilice el intérprete de órdenes. A continuación presentamos
302 algunos makefiles de ejemplo, con versiones tanto para Linux/MacOS
305 El primer ejemplo es para una obra orquestal en cuatro movimientos con
306 la estructura de directorios siguiente:
317 | |-- trioCuerdas.ily
323 | |-- sinfonia-cello.ly
324 | |-- sinfonia-trompa.ly
325 | |-- sinfonia-oboes.ly
326 | |-- sinfonia-viola.ly
327 | |-- sinfonia-violinUno.ly
328 | `-- sinfonia-violinDos.ly
338 Los archivos @code{.ly} de los directorios @code{Partituras} y
339 @code{Particellas} obtienen las notas de archivos @code{.ily} que están en
340 el directorio @code{Notas}:
343 %%% principio del archivo "sinfonia-cello.ly"
344 \include ../definiciones.ily
345 \include ../Notas/cello.ily
348 El makefile tendrá los objetivos de @code{partitura} (la pieza
349 completa en todo su esplendor), @code{movimientos} (partitura completa
350 de los movimientos individuales) y @code{particellas} (partes
351 individuales para los atriles). También existe un objetivo
352 @code{archivo} que produce un tarball de los archivos fuente, adecuado
353 para compartirlo a través de la web o por correo electrónico. A
354 continuación presentamos el makefile para GNU/Linux o MacOS X. Se
355 debe guardar con el nombre exacto @code{Makefile} el el directorio
356 superior del proyecto:
358 @warning{Cuando se define un objetivo o una regla de patrón, las
359 líneas siguientes deben comenzar con tabuladores, no con espacios.}
362 # nombre principal de los archivos de salida
364 # determinar cuántos procesadores existen
365 CPU_CORES=`cat /proc/cpuinfo | grep -m1 "cpu cores" | sed s/".*: "//`
366 # La instrucción para ejecutar lilypond
367 LILY_CMD = lilypond -ddelete-intermediate-files \
368 -dno-point-and-click -djob-count=$(CPU_CORES)
370 # Los sufijos utilizados en este Makefile.
371 .SUFFIXES: .ly .ily .pdf .midi
373 # Los archivos de entrada y salida se buscan dentro de los directorios relacionados en
374 # la variable VPATH. Todos esllos son subdirectorios del directorio
375 # en curso (dado por la variable de GNU make `CURDIR').
377 $(CURDIR)/Partituras \
379 $(CURDIR)/Particellas \
382 # La regla de patrón para crear archivos PDF y MIDI a partir de un archivo de entrada LY.
383 # Los archivos de salida .pdf se colocan en el subdirectorio `PDF', y los archivos
384 # .midi van al subdirectorio `MIDI'.
386 $(LILY_CMD) $<; \ # esta línea comienza con un salto de tabulación
387 if test -f "$*.pdf"; then \
390 if test -f "$*.midi"; then \
391 mv "$*.midi" MIDI/; \
402 # Dependencias de los movimientos.
403 $(nombre)I.pdf: $(nombre)I.ly $(notas)
404 $(nombre)II.pdf: $(nombre)II.ly $(notas)
405 $(nombre)III.pdf: $(nombre)III.ly $(notas)
406 $(nombre)IV.pdf: $(nombre)IV.ly $(notas)
408 # Dependencias de la partitura completa.
409 $(nombre).pdf: $(nombre).ly $(notas)
411 # Dependencias de las particellas.
412 $(nombre)-cello.pdf: $(nombre)-cello.ly cello.ily
413 $(nombre)-trompa.pdf: $(nombre)-trompa.ly trompa.ily
414 $(nombre)-oboes.pdf: $(nombre)-oboes.ly oboe.ily
415 $(nombre)-viola.pdf: $(nombre)-viola.ly viola.ily
416 $(nombre)-violinUno.pdf: $(nombre)-violinUno.ly violinUno.ily
417 $(nombre)-violinDos.pdf: $(nombre)-violinDos.ly violinDos.ily
419 # Teclee `make partitura' para generer la partitura completa de los cuatro
420 # movimientos como un archivo único.
422 partitura: $(nombre).pdf
424 # Teclee `make particellas' para generar todas las particellas.
425 # Teclee `make fulanito.pdf' para generar la particella del instrumento `fulanito'.
426 # Ejemplo: `make sinfonia-cello.pdf'.
428 particellas: $(nombre)-cello.pdf \
429 $(nombre)-violinUno.pdf \
430 $(nombre)-violinDos.pdf \
431 $(nombre)-viola.pdf \
432 $(nombre)-oboes.pdf \
435 # Teclee `make movimientos' para generar los archivos de los
436 # cuatro movimientos de forma separada.
438 movimientos: $(nombre)I.pdf \
443 all: partitura particellas movimientos
446 tar -cvvf stamitz.tar \ # esta línea comienza con un salto de tabulación
447 --exclude=*pdf --exclude=*~ \
448 --exclude=*midi --exclude=*.tar \
453 Existen ciertas complicaciones en la plataforma Windows. Después de
454 descargar e instalar el programa GNU Make para Windows, debemos
455 configurar la ruta adecuada en las variables de entorno del sistema de
456 forma que el shell del DOS pueda encontrar el programa Make. Para
457 hacerlo, pulse con el botón derecho sobre "Mi PC", elija
458 @code{Propiedades} y @code{Avanzadas}. Pulse sobre @code{Variables de
459 entorno}, y luego en la pestaña @code{Variables del sistema},
460 seleccione @code{Ruta}, pulse sobre @code{editar} y añada la ruta al
461 archivo ejecutable de GNU Make, con lo que quedará algo parecido a lo
465 C:\Archivos de programa\GnuWin32\bin
468 El makefile en sí debe modificarse para que maneje distintas
469 instrucciones del shell y para que pueda tratar con los espacios que
470 aparecen en el nombre de algunos directorios del sistema
471 predeterminados. El objetivo @code{archivo} se elimina porque Windows
472 no tiene la instrucción @code{tar}, y Windows tiene también una
473 extensión predeterminada distinta para los archivos MIDI.
477 ## VERSIÓN PARA WINDOWS
480 LILY_CMD = lilypond -ddelete-intermediate-files \
481 -dno-point-and-click \
482 -djob-count=$(NUMBER_OF_PROCESSORS)
484 #obtener el nombre 8.3 de CURDIR (rodeo para los espacios en PATH)
485 workdir = $(shell for /f "tokens=*" %%b in ("$(CURDIR)") \
488 .SUFFIXES: .ly .ily .pdf .mid
491 $(workdir)/Partituras \
493 $(workdir)/Particellas \
497 $(LILY_CMD) $< # esta línea comienza con un salto de tabulación
498 if exist "$*.pdf" move /Y "$*.pdf" PDF/ # comienzo con tab
499 if exist "$*.mid" move /Y "$*.mid" MIDI/ # comienzo con tab
511 $(nombre)I.pdf: $(nombre)I.ly $(notas)
512 $(nombre)II.pdf: $(nombre)II.ly $(notas)
513 $(nombre)III.pdf: $(nombre)III.ly $(notas)
514 $(nombre)IV.pdf: $(nombre)IV.ly $(notas)
516 $(nombre).pdf: $(nombre).ly $(notas)
518 $(nombre)-cello.pdf: $(nombre)-cello.ly cello.ily
519 $(nombre)-trompa.pdf: $(nombre)-trompa.ly trompa.ily
520 $(nombre)-oboes.pdf: $(nombre)-oboes.ly oboe.ily
521 $(nombre)-viola.pdf: $(nombre)-viola.ly viola.ily
522 $(nombre)-violinUno.pdf: $(nombre)-violinUno.ly violinUno.ily
523 $(nombre)-violinDos.pdf: $(nombre)-violinDos.ly violinDos.ily
526 partitura: $(nombre).pdf
529 particellas: $(nombre)-cello.pdf \
530 $(nombre)-violinUno.pdf \
531 $(nombre)-violinDos.pdf \
532 $(nombre)-viola.pdf \
533 $(nombre)-oboes.pdf \
537 movimientos: $(nombre)I.pdf \
542 all: partitura particellas movimientos
546 El Makefile siguiente es para un documento de @command{lilypond-book}
547 hecho en LaTeX. Este proyecto tiene un índice, que requiere ejecutar
548 la instrucción @command{latex} dos veces para actualizar los enlaces.
549 Todos los archivos de salida se almacenan en el directorio
550 @code{salida} para los documentos .pdf y en el directorio
551 @code{salidahtml} para la salida en formato html.
560 LILYBOOK_PDF=lilypond-book --output=$(DIR_SALIDA) --pdf $(NOMBRE).lytex
561 LILYBOOK_HTML=lilypond-book --output=$(DIR_WEB) $(NOMBRE).lytex
562 PDF=cd $(DIR_SALIDA) && pdflatex $(NOMBRE)
563 HTML=cd $(DIR_WEB) && latex2html $(NOMBRE)
564 INDICE=cd $(DIR_SALIDA) && makeindex $(NOMBRE)
565 VISTA_PREVIA=$(VISOR) $(DIR_SALIDA)/$(NOMBRE).pdf &
570 $(LILYBOOK_PDF) # comienza con un tab
571 $(PDF) # comienza con un tab
572 $(INDICE) # comienza con un tab
573 $(PDF) # comienza con un tab
574 $(VISTA_PREVIA) # comienza con un tab
577 $(LILYBOOK_HTML) # comienza con un tab
578 $(HTML) # comienza con un tab
579 cp -R $(DIR_WEB)/$(NOMBRE)/ ./ # comienza con un tab
580 $(NAVEGADOR) $(NOMBRE)/$(NOMBRE).html & # comienza con un tab
583 cp $(DIR_SALIDA)/$(NOMBRE).pdf $(NOMBRE).pdf # comienza con un tab
586 rm -rf $(DIR_SALIDA) # comienza con un tab
589 rm -rf $(DIR_WEB) # comienza con un tab
592 tar -cvvf miproyecto.tar \ # comienza con un tab
594 --exclude=salidahtml/* \
595 --exclude=miproyecto/* \
602 HACER: conseguir que funcione en Windows
604 El makefile anterior no funciona en Windows. Una alternativa para los
605 usuarios de Windows sería crear un archivo de lotes sencillo que
606 contenga las instrucciones de montaje. Esto no rastrea las
607 dependencias en la manera en que lo hace un makefile, pero al menos
608 reduce el proceso de construcción a una sola instrucción. Guarde el
609 código siguiente como @command{montaje.bat} o @command{montaje.cmd}.
610 El archivo de lotes se puede ejecutar en la línea de comandos del DOS
611 o simplemente haciendo doble click sobre su icono.
614 lilypond-book --output=salida --pdf miproyecto.lytex
620 copy salida\miproyecto.pdf MiProyecto.pdf
625 Manual de utilización del programa:
626 @rprogram{Configuración para MacOS X},
627 @rprogram{Utilización desde la línea de órdenes},
628 @rprogram{LilyPond-book}