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