1 %% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
2 %% This file is in the public domain.
8 %% Translation of GIT committish: 4866dfd58d5c3a8cab4c6c06d5c4fca8e05a3cd7
9 doctitlees = "Transportar música con el menor número de alteraciones"
11 Este ejemplo utiliza código de Scheme para forzar las
12 modificaciones enarmónicas de las notas, y así tener el menor
13 número de alteraciones accidentales. En este caso se aplican las
18 Se quitan las dobles alteraciones
34 De esta forma se selecciona el mayor número de notas enarmónicas
39 %% Translation of GIT committish: e75f1604a1b866c853dee42dbffcb7800c706a5f
40 doctitlede = "Noten mit minimaler Anzahl an Versetzungszeichen transponieren."
41 texidocde = "Dieses Beispiel benutzt Scheme-Code, um enharmonische
42 Verwechslungen für Noten zu erzwingen, damit nur eine minimale Anzahl
43 an Versetzungszeichen ausgegeben wird. In diesem Fall gelten die
48 Doppelte Versetzungszeichen sollen entfernt werden
64 Auf diese Art werden am meisten natürliche Tonhöhen als enharmonische
70 This example uses some Scheme code to enforce enharmonic modifications
71 for notes in order to have the minimum number of accidentals. In this
72 case, the following rules apply:
74 Double accidentals should be removed
89 In this manner, the most natural enharmonic notes are chosen.
92 doctitle = "Transposing pitches with minimum accidentals (\"Smart\" transpose)"
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 }