1 %% Do not edit this file; it is auto-generated from input/new
2 %% This file is in the public domain.
3 %% Note: this file works from version 2.12.0
6 doctitlees
= "Transportar música con el menor número de alteraciones"
8 Este ejemplo utiliza código de Scheme para forzar las
9 modificaciones enarmónicas de las notas, y así tener el menor
10 número de alteraciones accidentales. En este caso se aplican las
15 Se quitan las dobles alteraciones
31 De esta forma se selecciona el mayor número de notas enarmónicas
36 doctitlede
= "Noten mit minimaler Anzahl an Versetzungszeichen transponieren."
38 texidocde
= "Dieses Beispiel benutzt Scheme-Code, um enharmonische
39 Verwechslungen für Noten zu erzwingen, damit nur eine minimale Anzahl
40 an Versetzungszeichen ausgegeben wird. In diesem Fall gelten die
45 Doppelte Versetzungszeichen sollen entfernt werden
61 Auf diese Art werden am meisten natürliche Tonhöhen als enharmonische
67 texidoc
= "This example uses some Scheme code to enforce enharmonic
68 modifications for notes in order to have the minimum number of
69 accidentals. In this case, the following rules apply:
73 Double accidentals should be removed
89 In this manner, the most natural enharmonic notes are chosen.
91 doctitle
= "Transposing music with minimum accidentals"
95 #(define
(naturalize-pitch p
)
96 (let
* ((o
(ly
:pitch-octave p
))
97 (a (* 4 (ly
:pitch-alteration p
)))
98 ; alteration
, a, in quarter tone steps
,
99 ; for historical reasons
100 (n
(ly
:pitch-notename p
)))
102 ((and
(> a 1) (or
(eq? n
6) (eq? n
2)))
105 ((and
(< a -
1) (or
(eq? n
0) (eq? n
3)))
109 ((> a 2) (set
! a (-
a 4)) (set
! n
(+ n
1)))
110 ((< a -
2) (set
! a (+
a 4)) (set
! n
(- n
1))))
111 (if
(< n
0) (begin
(set
! o
(- o
1)) (set
! n
(+ n
7))))
112 (if
(> n
6) (begin
(set
! o
(+ o
1)) (set
! n
(- n
7))))
113 (ly
:make-pitch o n
(/ a 4))))
115 #(define
(naturalize music
)
116 (let
* ((es (ly
:music-property music
'elements
))
117 (e (ly
:music-property music
'element
))
118 (p
(ly
:music-property music
'pitch
)))
120 (ly
:music-set-property
!
122 (map
(lambda
(x
) (naturalize x
)) es)))
124 (ly
:music-set-property
!
129 (set
! p
(naturalize-pitch p
))
130 (ly
:music-set-property
! music
'pitch p
)))
134 #(define-music-function
(parser location m
)
138 music
= \relative c' { c4 d e g }
142 \transpose c ais { \music }
143 \naturalizeMusic \transpose c ais { \music }
144 \transpose c deses
{ \music }
145 \naturalizeMusic \transpose c deses
{ \music }