@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 6bcad9cdc487270910758b1ee39cf3c8aee1015e
+ Translation of GIT committish: 4a527608c5ff2ce31e596495d00dce181dc1b9ea
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+@c \version "2.11.61"
@node Interfaces for programmers
@chapter Interfaces for programmers
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
-
+Se pueden realizar trucos avanzados mediante el uso de Scheme. Si no
+está familizarizado con Scheme, le conviene leer nuestro tutorial de
+Scheme, @rlearning{Scheme tutorial}.
@menu
* Music functions::
* Markup programmer interface::
* Contexts for programmers::
* Scheme procedures as properties::
-* TODO moved into scheme::
+* Using Scheme code instead of \tweak::
+* Difficult tweaks::
@end menu
+
@node Music functions
@section Music functions
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
-
+Esta sección trata sobre cómo crear funciones musicales dentro de
+LilyPond.
@menu
* Overview of music functions::
@node Overview of music functions
@subsection Overview of music functions
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+Es fácil hacer una función que sustituya a una variable en código de
+LilyPond. La forma general de estas funciones es:
+
+@example
+funcion =
+#(define-music-function (analizador posicion @var{var1} @var{var2}... )
+ (@var{var1-type?} @var{var2-type?}...)
+ #@{
+ @emph{...música...}
+ #@})
+@end example
+
+@noindent
+donde
+
+@multitable @columnfractions .33 .66
+@item @var{argi} @tab @var{i}-ésima variable
+@item @var{argi-type?} @tab tipo de variable
+@item @var{...música...} @tab entrada normal de LilyPond, usando las variables como @code{#$var1}.
+@end multitable
+
+Los siguientes tipos de entrada se pueden usar como variables en una
+función musical. Esta lista no es exhaustiva; consulte otros lugares
+de la documentación específica de Scheme para ver otros tipos de
+variables.
+
+@multitable @columnfractions .33 .66
+@headitem Tipo de entrada @tab notación de @var{argi-type?}
+@item Entero @tab @code{integer?}
+@item Flotante (número decimal) @tab @code{number?}
+@item Cadena de texto @tab @code{string?}
+@item Marcado @tab @code{markup?}
+@item Expresión musical @tab @code{ly:music?}
+@item Pareja de variables @tab @code{pair?}
+@end multitable
+
+Los argumentos @code{analizador} y @code{posicion} son obligatorios, y
+se usan en ciertas situaciones avanzadas. El argumento
+@code{analizador} se usa para acceder al valor de otra variable de
+LilyPond. El argumento @code{posicion} se usa para establecer el
+@q{origen} de la expresión musical que construye la función musical,
+de forma que en caso de producirse un error de sintaxis LilyPond pueda
+informar al usuario de un lugar adecuado donde buscar en el archivo de
+entrada.
@node Simple substitution functions
@subsection Simple substitution functions
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node Paired substitution functions
@subsection Paired substitution functions
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node Mathematics in functions
@subsection Mathematics in functions
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node Void functions
@subsection Void functions
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node Functions without arguments
@subsection Functions without arguments
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node Overview of available music functions
@subsection Overview of available music functions
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@include identifiers.tely
@node Programmer interfaces
@section Programmer interfaces
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@menu
@node Input variables and Scheme
@subsection Input variables and Scheme
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node Internal music representation
@subsection Internal music representation
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node Building complicated functions
@section Building complicated functions
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@menu
@node Displaying music expressions
@subsection Displaying music expressions
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node Music properties
@subsection Music properties
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node Doubling a note with slurs (example)
@subsection Doubling a note with slurs (example)
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node Adding articulation to notes (example)
@subsection Adding articulation to notes (example)
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node Markup programmer interface
@section Markup programmer interface
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@menu
@node Markup construction in Scheme
@subsection Markup construction in Scheme
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node How markups work internally
@subsection How markups work internally
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node New markup command definition
@subsection New markup command definition
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node New markup list command definition
@subsection New markup list command definition
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node Contexts for programmers
@section Contexts for programmers
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@menu
@node Context evaluation
@subsection Context evaluation
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node Running a function on all layout objects
@subsection Running a function on all layout objects
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node Scheme procedures as properties
@section Scheme procedures as properties
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
-
+@untranslated
-@node TODO moved into scheme
-@section TODO moved into scheme
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
-
-
-@menu
-* Using Scheme code instead of \tweak::
-* Difficult tweaks::
-@end menu
@node Using Scheme code instead of \tweak
-@subsection Using Scheme code instead of @code{\tweak}
+@section Using Scheme code instead of @code{\tweak}
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
+@untranslated
@node Difficult tweaks
-@subsection Difficult tweaks
-
-@ifhtml
-UNTRANSLATED NODE: IGNORE ME
-@end ifhtml
-
-
+@section Difficult tweaks
-@c -- SKELETON FILE --
+@untranslated