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 doctitlees = "Transportar música con el menor número de alteraciones"
10 Este ejemplo utiliza código de Scheme para forzar las
11 modificaciones enarmónicas de las notas, y así tener el menor
12 número de alteraciones accidentales. En este caso se aplican las
17 Se quitan las dobles alteraciones
33 De esta forma se selecciona el mayor número de notas enarmónicas
38 doctitlede = "Noten mit minimaler Anzahl an Versetzungszeichen transponieren."
40 texidocde = "Dieses Beispiel benutzt Scheme-Code, um enharmonische
41 Verwechslungen für Noten zu erzwingen, damit nur eine minimale Anzahl
42 an Versetzungszeichen ausgegeben wird. In diesem Fall gelten die
47 Doppelte Versetzungszeichen sollen entfernt werden
63 Auf diese Art werden am meisten natürliche Tonhöhen als enharmonische
69 This example uses some Scheme code to enforce enharmonic modifications
70 for notes in order to have the minimum number of accidentals. In this
71 case, the following rules apply:
73 Double accidentals should be removed
88 In this manner, the most natural enharmonic notes are chosen.
91 doctitle = "Transposing pitches with minimum accidentals (\"Smart\" transpose)"
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 }