Manual de aprendizaje de GNU LilyPond: B.1 Tweaking with Scheme

## B.1 Tweaking with Scheme

Hemos visto cómo la salida de LilyPond se puede modificar profundamente usando instrucciones como `\override TextScript #'extra-offset = ( 1 . -1)`. Pero tenemos incluso mucho más poder si utilizamos Scheme. Para ver una explicación completa de esto, consulte el Scheme tutorial, y programmers Interfaces for programmers.

Podemos usar Scheme simplemente para sobreescribir instrucciones con `\override`,

Lo podemos usar para crear instrucciones nuevas:

>     tempoMark = #(define-music-function (parser location padding marktext)
>                                         (number? string?)
>     #{
>       \once \override Score . RehearsalMark #'padding = $padding
>       \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
>       \mark \markup { \bold $marktext }
>     #})

>     \relative c'' {
>       c2 e
>       \tempoMark #3.0 #"Allegro"
>       g c
>     }

Incluso se le pueden pasar expresiones musicales:

>     pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
>     #{
>       $x e8 a b $y b a e
>     #})

>     \relative c''{
>       \pattern c8 c8\f
>       \pattern {d16 dis} { ais16-> b\p }
>     }

Other languages: English, deutsch.

#### Manual de aprendizaje