1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
4 Translation of GIT committish: 8c1840ca28a05b3dad8d595e04d03779ba0a286a
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
18 de LilyPond más grandes -- no sólo los pequeños ejemplos que
19 aparecen en el tutorial, sino piezas completas --. Pero ¿cómo debe
20 proceder para hacerlo?
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
25 tener en cuenta cuando se escriben archivos de LilyPond.
28 @item ¿Qué ocurre si comete un fallo? La estructura de un archivo de
29 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
34 algunos años? Algunos archivos de LilyPond se comprenden a
35 primera vista; otros pueden tenerle rascándose la cabeza durante
38 @item ¿Qué ocurre si quiere actualizar su archivo de LilyPond para
39 poderlo usar con una versión más reciente del programa?
41 La sintaxis de la entrada se modifica de forma ocasional según
42 LilyPond se va perfeccionando. Casi todos los cambios se pueden
43 hacer de forma automática con @code{convert-ly}, pero algunos
44 podrían necesitar de una ayuda manual. Los archivos de LilyPond
45 se pueden estructurar para que sean más fáciles (o más difíciles)
51 * Sugerencias de tipo general::
52 * Tipografiar música existente::
54 * Solución de problemas::
55 * Make y los Makefiles::
59 @node Sugerencias de tipo general
60 @section Sugerencias de tipo general
61 @translationof General suggestions
63 Presentamos algunas sugerencias que le pueden servir de ayuda para
64 evitar o corregir los problemas más comunes al realizar trabajos
65 de tipografía musical:
69 @strong{Incluya siempre el número de @code{\version} en los
70 archivos de entrada}, aun en los más pequeños. Ello evita tener
71 que recordar para qué versión de LilyPond se creó el archivo y es
72 especialmente relevante al
73 @ref{Actualizar ficheros con convert-ly} (una instrucción que
74 requiere que el enunciado @code{\version} esté presente); o si
75 está enviando código de entrada a otros usuarios (p.ej. si está
76 pidiendo ayuda en una de las listas de distribución de correo).
77 Observe que todas las plantillas de LilyPond contienen números de
81 @strong{Escriba un compás de música en cada línea del código de
82 entrada}. Esto hará que la búsqueda de problemas dentro de los
83 archivos de entrada sea mucho más sencilla.
86 @strong{Inserte barras de
87 @ruser{Comprobación de compás y de número de compás} así como
88 códigos de @ruser{Comprobación de octava}}. La inclusión de
89 códigos de comprobación de estos tipos será de ayuda para
90 localizar los errores mucho más rápidamente. La frecuencia con
91 que añadir las comprobaciones dependerá de la complejidad de la
92 música que se está componiendo tipográficamente. Para
93 composiciones sencillas, las comprobaciones añadidas en ciertos
94 puntos estratégicos dentro de la música pueden ser suficientes,
95 pero para música más compleja, con muchas voces y/o pentagramas,
96 sería mejor poner comprobaciones a cada compás.
99 @strong{Inserte comentarios en el código de entrada}. Las
100 referencias a los temas musicales (p.ej. @q{segundo tema en los
101 violines}, @q{cuarta variación}, etc.), o simplemente la inclusión
102 de los números de compás como compentarios, hará mucho más
103 sencilla la navegación por el archivo de entrada, especialmente si
104 más tarde se hace necesario alterar algo, o si estamos pasando los
105 archivos de entrada a otra persona.
107 @item @strong{Escriba las duraciones explícitamente} al comienzo de las
108 @q{secciones}. Por ejemplo, si especifica @code{c4 d e f} al
109 principio de una frase (en lugar de sólo @code{c d e f}) se puede
110 ahorrar problemas si reelabora la música más tarde.
113 @strong{Aprenda a aplicar márgenes y sangrados a las llaves y a la
114 música paralela}. Muchos problemas suelen estar producidos por
115 llaves de apertura o de cierre que faltan. La aplicación clara de
116 sangrados a las llaves curvas de apertura y de cierre (o a los
117 indicadores @code{<<} y @code{>>}) será de ayuda para evitar tales
140 es mucho más fácil de seguir que:
143 \new Staff @{ \relative @{ r4 g'8 g c4 c8 d | e4 r8
145 << @{ f8 c c @} \new Staff @{ f8 f c @} >> r4 | @} @}
150 @strong{Mantenga separados la música y el estilo} poniendo las
151 sobreescrituras dentro del bloque @code{\layout}:
155 @var{@dots{}música@dots{}}
157 \override TabStaff.Stemstencil = ##f
162 Esto no crea un contexto nuevo, sino que se aplicará en el momento
163 de crear uno. Véase también @rlearning{Ahorrar tecleo mediante
164 variables y funciones} y @rlearning{Hojas de estilo}.
169 @node Tipografiar música existente
170 @section Tipografiar música existente
171 @translationof Typesetting existing music
173 Si está introduciendo música a partir de una partitura existente
174 (es decir, tipografiando una hoja de música ya impresa),
178 @item Introduzca en LilyPond un sistema del manuscrito, o copia física,
179 de cada vez (pero mantenga la práctica de escribir un compás por
180 línea de texto), y compruebe cada sistema cuando lo haya
181 terminado. Puede usar las propiedades @code{showLastLength} o
182 @code{showFirstLength} para acelerar el proceso (véase
183 @ruser{Saltar la música corregida}).
185 @item Defina @code{mBreak = @{ \break @}} e inserte @code{\mBreak}
186 dentro del archivo de entrada donde el manuscrito tenga un saldo
187 de línea. De esta forma le resultará mucho más fácil comparar la
188 música de LilyPond con la original. Cuando haya terminado de
189 revisar su partitura podrá definir @code{mBreak = @{ @}} para
190 quitar todos esos saltos de línea. Así permitirá a LilyPond
191 colocar los saltos donde éste lo estime más oportuno.
193 @item Al escribir una parte para un instrumento transpositor dentro de
194 una variable, se recomienda que las notas estén envueltas dentro
198 \transpose c altura-natural @{@dots{}@}
202 (donde @code{altura-natural} es la afinación natural del
203 instrumento) de forma que la música dentro de la variable esté
204 realmente en Do mayor. Después podemos volver a transportarlas en
205 sentido inverso cuando se utiliza la variable, si es necesario,
206 pero quizá no queramos hacerlo (p.ej., al imprimir una partitura
207 en afinación de concierto, al convertir una parte de trombón de
208 clave de Sol a clave de Fa, etc.). Es menos probable cometer
209 errores en los transportes si toda la música que está dentro de
210 las variables se encuentra en un tono coherente.
212 Asimismo, haga los transportes exclusivamente hacia o desde Do
213 mayor. Esto significa que aparte de ésta, las únicas tonalidades
214 que usaremos serán los tonos de afinación de los instrumentos
215 transpositores: bes para una trompeta en Si bemol, aes para un
216 clarinete en La bemol, etc.
222 @node Proyectos grandes
223 @section Proyectos grandes
224 @translationof Large projects
226 Al trabajar en proyectos grandes se hace esencial tener una
227 estructura clara en los archivos de LilyPond:
231 @item @strong{Utilice un identificador para cada voz}, con un mínimo de
232 estructura dentro de la definición. La estructura de la sección
233 @code{\score} es la que cambiará con mayor probabilidad; por
234 contra, es extremadamente improbable que cambie la definición de
235 @code{violin} en versiones nuevas de LilyPond.
238 violin = \relative @{
251 @item @strong{Separe los trucos de las definiciones musicales}. Ya se
252 mencionó con anterioridad, pero para proyectos grandes es vital.
253 Quizá tengamos que cambiar la definición de @code{fluegop}, pero
254 en ese caso sólo lo tendremos que hacer una vez, y aún podremos
255 evitar tocar nada dentro de @code{violin}.
259 \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p @}
260 violin = \relative @{
268 @node Solución de problemas
269 @section Solución de problemas
270 @translationof Troubleshooting
272 Antes o después escribirá un archivo que LilyPond no podrá
273 compilar. Los mensajes que LilyPond proporciona pueden ayudarle a
274 encontrar el error, pero en muchos casos tendrá que llevar a cabo
275 algún tipo de investigación para determinar el origen del
278 Las herramientas más poderosas para este cometido son el
279 comentario de una sola línea (indicado por @code{%}) y el
280 comentario de bloque (indicado por @code{%@{@dots{}%@}}). Si no
281 sabe dónde está el problema, comience convirtiendo grandes
282 secciones del archivo de entrada en un comentario. Después de
283 eliminar una sección convirtiéndola en un comentario, pruebe a
284 compilar el archivo otra vez. Si funciona, entonces el problema
285 debía estar en la porción que había eliminado. Si no funciona,
286 continúe eliminando material (transformándolo en comentarios)
287 hasta que tenga algo que funcione.
289 En un caso extremo podría terminar con sólo
303 (en otras palabras: un archivo sin música)
305 Si ocurre esto, no abandone. Descomente un trozo pequeño --
306 digamos la parte del bajo -- y observe si funciona. Si no es así,
307 transforme en comentarios toda la música del bajo (pero deje el
308 @code{\bajo} de la sección @code{\score} no comentado.
319 Ahora empiece poco a poco descomentando cada vez más fracciones de
320 la parte del @code{bajo} hasta que encuentre la línea del
323 Otra técnica de depuración muy útil es la construcción de
324 @rweb{Ejemplos mínimos}.
327 @node Make y los Makefiles
328 @section Make y los Makefiles
329 @translationof Make and Makefiles
331 @cindex make, archivos de
334 Posiblemente todas las plataformas en que puede correr LilyPond,
335 contemplan una posibilidad de software llamada @code{make}. Este
336 programa lee un archivo especial llamado @code{Makefile} que
337 define las relaciones de dependencia entre los archivos y qué
338 instrucciones necesitamos dar al sistema operativo para producir
339 un archivo a partir de otro. Por ejemplo, el archivo de make
340 detallaría cómo obtener @file{balada.pdf} y @file{balada.midi} a
341 partir de @file{balada.ly} mediante la ejecución de LilyPond.
343 Existen ocasiones en las que es buena idea crear un
344 @code{Makefile} para nuestro proyecto, bien sea por nuestra propia
345 comodidad o como cortesía para otros que posiblemente tengan
346 acceso a nuestros archivos fuente. Esto es cierto para proyectos
347 muy grandes con muchos archivos de inclusión y distintas opciones
348 de salida (p.ej. partitura completa, particellas, partitura del
349 director, reducción para piano, etc.), o para proyectos que
350 requieren instrucciones difíciles para montarlas (como los
351 proyectos de @code{lilypond-book}). La complejidad y flexibilidad
352 de los Makefiles varía enormemente según las necesidades y la
353 habilidad de los autores. El programa GNU Make viene instalado en
354 las distribuciones de GNU/Linux y en MacOS X, y también existe
357 Consulte el @strong{Manual de GNU Make} para ver todos los
358 detalles sobre el uso de @code{make}, pues lo que sigue a
359 continuación ofrece solamente una pincelada de todo lo que es
362 Las instrucciones que definen las reglas en un archivo de make
363 difieren en función de la plataforma; por ejemplo, las distintas
364 formas de GNU/Linux y MacOS usan @code{bash}, mientras que Windows
365 usa @code{cmd}. Observeque en MacOS X, tenemos que configurar el
366 sistema para que utilice el intérprete de órdenes. A continuación
367 presentamos algunos makefiles de ejemplo, con versiones tanto para
368 GNU/Linux/MacOS como para Windows.
370 El primer ejemplo es para una obra orquestal en cuatro movimientos
371 con la estructura de directorios siguiente:
382 | |-- trioCuerdas.ily
388 | |-- sinfonia-cello.ly
389 | |-- sinfonia-trompa.ly
390 | |-- sinfonia-oboes.ly
391 | |-- sinfonia-viola.ly
392 | |-- sinfonia-violinUno.ly
393 | `-- sinfonia-violinDos.ly
403 Los archivos @file{.ly} de los directorios @code{Partituras} y
404 @code{Particellas} obtienen las notas de archivos @file{.ily} que
405 están en el directorio @code{Notas}:
408 %%% principio del archivo "sinfonia-cello.ly"
409 \include ../definicionesSinf.ily
410 \include ../Notas/cello.ily
413 El makefile tendrá los objetivos de @code{partitura} (la pieza
414 completa en todo su esplendor), @code{movimientos} (partitura
415 completa de los movimientos individuales) y @code{particellas}
416 (partes individuales para los atriles). También existe un objetivo
417 @code{archivo} que produce un tarball de los archivos fuente,
418 adecuado para compartirlo a través de la web o por correo
419 electrónico. A continuación presentamos el makefile para
420 GNU/Linux o MacOS X. Se debe guardar con el nombre exacto
421 @code{Makefile} el el directorio superior del proyecto:
423 @warning{Cuando se define un objetivo o una regla de patrón, las
424 líneas siguientes deben comenzar con tabuladores, no con
428 # nombre principal de los archivos de salida
430 # determinar cuántos procesadores existen
431 CPU_CORES=`cat /proc/cpuinfo | grep -m1 "cpu cores" | sed s/".*: "//`
432 # La instrucción para ejecutar lilypond
433 LILY_CMD = lilypond -ddelete-intermediate-files \
434 -dno-point-and-click -djob-count=$(CPU_CORES)
436 # Los sufijos utilizados en este Makefile.
437 .SUFFIXES: .ly .ily .pdf .midi
439 # Los archivos de entrada y salida se buscan dentro de los directorios relacionados en
440 # la variable VPATH. Todos esllos son subdirectorios del directorio
441 # en curso (dado por la variable de GNU make `CURDIR').
443 $(CURDIR)/Partituras \
445 $(CURDIR)/Particellas \
448 # La regla de patrón para crear archivos PDF y MIDI a partir de un archivo de entrada LY.
449 # Los archivos de salida .pdf se colocan en el subdirectorio `PDF', y los archivos
450 # .midi van al subdirectorio `MIDI'.
452 $(LILY_CMD) $<; \ # esta línea comienza con un salto de tabulación
453 if test -f "$*.pdf"; then \
456 if test -f "$*.midi"; then \
457 mv "$*.midi" MIDI/; \
468 # Dependencias de los movimientos.
469 $(nombre)I.pdf: $(nombre)I.ly $(notas)
470 $(nombre)II.pdf: $(nombre)II.ly $(notas)
471 $(nombre)III.pdf: $(nombre)III.ly $(notas)
472 $(nombre)IV.pdf: $(nombre)IV.ly $(notas)
474 # Dependencias de la partitura completa.
475 $(nombre).pdf: $(nombre).ly $(notas)
477 # Dependencias de las particellas.
478 $(nombre)-cello.pdf: $(nombre)-cello.ly cello.ily
479 $(nombre)-trompa.pdf: $(nombre)-trompa.ly trompa.ily
480 $(nombre)-oboes.pdf: $(nombre)-oboes.ly oboe.ily
481 $(nombre)-viola.pdf: $(nombre)-viola.ly viola.ily
482 $(nombre)-violinUno.pdf: $(nombre)-violinUno.ly violinUno.ily
483 $(nombre)-violinDos.pdf: $(nombre)-violinDos.ly violinDos.ily
485 # Teclee `make partitura' para generer la partitura completa de los cuatro
486 # movimientos como un archivo único.
488 partitura: $(nombre).pdf
490 # Teclee `make particellas' para generar todas las particellas.
491 # Teclee `make fulanito.pdf' para generar la particella del instrumento `fulanito'.
492 # Ejemplo: `make sinfonia-cello.pdf'.
494 particellas: $(nombre)-cello.pdf \
495 $(nombre)-violinUno.pdf \
496 $(nombre)-violinDos.pdf \
497 $(nombre)-viola.pdf \
498 $(nombre)-oboes.pdf \
501 # Teclee `make movimientos' para generar los archivos de los
502 # cuatro movimientos de forma separada.
504 movimientos: $(nombre)I.pdf \
509 all: partitura particellas movimientos
512 tar -cvvf stamitz.tar \ # esta línea comienza con un salto de tabulación
513 --exclude=*pdf --exclude=*~ \
514 --exclude=*midi --exclude=*.tar \
519 Existen ciertas complicaciones en la plataforma Windows. Después
520 de descargar e instalar el programa GNU Make para Windows, debemos
521 configurar la ruta adecuada en las variables de entorno del
522 sistema de forma que el shell del DOS pueda encontrar el programa
523 Make. Para hacerlo, pulse con el botón derecho sobre "Mi PC",
524 elija @code{Propiedades} y @code{Avanzadas}. Pulse sobre
525 @code{Variables de entorno}, y luego en la pestaña @code{Variables
526 del sistema}, seleccione @code{Ruta}, pulse sobre @code{editar} y
527 añada la ruta al archivo ejecutable de GNU Make, con lo que
528 quedará algo parecido a lo siguiente:
531 C:\Archivos de programa\GnuWin32\bin
534 El makefile en sí debe modificarse para que maneje distintas
535 instrucciones del shell y para que pueda tratar con los espacios
536 que aparecen en el nombre de algunos directorios del sistema
537 predeterminados. El objetivo @code{archivo} se elimina porque
538 Windows no tiene la instrucción @code{tar}, y Windows tiene
539 también una extensión predeterminada distinta para los archivos
544 ## VERSIÓN PARA WINDOWS
547 LILY_CMD = lilypond -ddelete-intermediate-files \
548 -dno-point-and-click \
549 -djob-count=$(NUMBER_OF_PROCESSORS)
551 #obtener el nombre 8.3 de CURDIR (rodeo para los espacios en PATH)
552 workdir = $(shell for /f "tokens=*" %%b in ("$(CURDIR)") \
555 .SUFFIXES: .ly .ily .pdf .mid
558 $(workdir)/Partituras \
560 $(workdir)/Particellas \
564 $(LILY_CMD) $< # esta línea comienza con un salto de tabulación
565 if exist "$*.pdf" move /Y "$*.pdf" PDF/ # comienzo con tab
566 if exist "$*.mid" move /Y "$*.mid" MIDI/ # comienzo con tab
578 $(nombre)I.pdf: $(nombre)I.ly $(notas)
579 $(nombre)II.pdf: $(nombre)II.ly $(notas)
580 $(nombre)III.pdf: $(nombre)III.ly $(notas)
581 $(nombre)IV.pdf: $(nombre)IV.ly $(notas)
583 $(nombre).pdf: $(nombre).ly $(notas)
585 $(nombre)-cello.pdf: $(nombre)-cello.ly cello.ily
586 $(nombre)-trompa.pdf: $(nombre)-trompa.ly trompa.ily
587 $(nombre)-oboes.pdf: $(nombre)-oboes.ly oboe.ily
588 $(nombre)-viola.pdf: $(nombre)-viola.ly viola.ily
589 $(nombre)-violinUno.pdf: $(nombre)-violinUno.ly violinUno.ily
590 $(nombre)-violinDos.pdf: $(nombre)-violinDos.ly violinDos.ily
593 partitura: $(nombre).pdf
596 particellas: $(nombre)-cello.pdf \
597 $(nombre)-violinUno.pdf \
598 $(nombre)-violinDos.pdf \
599 $(nombre)-viola.pdf \
600 $(nombre)-oboes.pdf \
604 movimientos: $(nombre)I.pdf \
609 all: partitura particellas movimientos
613 El Makefile siguiente es para un documento de
614 @command{lilypond-book} hecho en LaTeX. Este proyecto tiene un
615 índice, que requiere ejecutar la instrucción @command{latex} dos
616 veces para actualizar los enlaces. Todos los archivos de salida
617 se almacenan en el directorio @code{salida} para los documentos
618 .pdf y en el directorio @code{salidahtml} para la salida en
628 LILYBOOK_PDF=lilypond-book --output=$(DIR_SALIDA) --pdf $(NOMBRE).lytex
629 LILYBOOK_HTML=lilypond-book --output=$(DIR_WEB) $(NOMBRE).lytex
630 PDF=cd $(DIR_SALIDA) && pdflatex $(NOMBRE)
631 HTML=cd $(DIR_WEB) && latex2html $(NOMBRE)
632 INDICE=cd $(DIR_SALIDA) && makeindex $(NOMBRE)
633 VISTA_PREVIA=$(VISOR) $(DIR_SALIDA)/$(NOMBRE).pdf &
638 $(LILYBOOK_PDF) # comienza con un tab
639 $(PDF) # comienza con un tab
640 $(INDICE) # comienza con un tab
641 $(PDF) # comienza con un tab
642 $(VISTA_PREVIA) # comienza con un tab
645 $(LILYBOOK_HTML) # comienza con un tab
646 $(HTML) # comienza con un tab
647 cp -R $(DIR_WEB)/$(NOMBRE)/ ./ # comienza con un tab
648 $(NAVEGADOR) $(NOMBRE)/$(NOMBRE).html & # comienza con un tab
651 cp $(DIR_SALIDA)/$(NOMBRE).pdf $(NOMBRE).pdf # comienza con un tab
654 rm -rf $(DIR_SALIDA) # comienza con un tab
657 rm -rf $(DIR_WEB) # comienza con un tab
660 tar -cvvf miproyecto.tar \ # comienza con un tab
662 --exclude=salidahtml/* \
663 --exclude=miproyecto/* \
670 HACER: conseguir que funcione en Windows
672 El makefile anterior no funciona en Windows. Una alternativa para
673 los usuarios de Windows sería crear un archivo de lotes sencillo
674 que contenga las instrucciones de montaje. Esto no rastrea las
675 dependencias en la manera en que lo hace un makefile, pero al
676 menos reduce el proceso de construcción a una sola instrucción.
677 Guarde el código siguiente como @command{montaje.bat} o
678 @command{montaje.cmd}. El archivo de lotes se puede ejecutar en
679 la línea de comandos del DOS o simplemente haciendo doble click
683 lilypond-book --output=salida --pdf miproyecto.lytex
689 copy salida\miproyecto.pdf MiProyecto.pdf
694 Manual de utilización del programa:
695 @rprogram{Configuración para MacOS X},
696 @rprogram{Utilización desde la línea de órdenes},
697 @rprogram{LilyPond-book}