lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Répétition «octave en accord»


From: Gilles Thibault
Subject: Re: Répétition «octave en accord»
Date: Mon, 16 Jul 2018 17:18:02 +0200
User-agent: Webmail Free/1.3.3

makeOctaves = #(define-music-function (parser location arg mus)
(integer? ly:music?)
  (make-simultaneous-music (list
     mus
     (ly:music-transpose (ly:music-deep-copy mus)
                         (ly:make-pitch arg 0 0)))))



2 dernières choses.

1- la fonction ci-dessus copie en double les textes : ce n'est pas bien !

music = \relative { c'4-. d-. r g( f^"coucou" e f g) <e g c>1-> }
\new Voice \makeOctaves #1 \music
\new Voice \makeOctaves #-1 \music

Le "coucou" est en double...
Il ne faudrait pas copier les TextScript

2- La fonction \makeOctaves du snippet http://lsr.di.unimi.it/LSR/Item?id=445 ne marche pas pour moi avec l'exemple ci-dessus !
J'ai du changer la fonction (octave-up m t) pour que ça fonctionne :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

#(define (octave-up m t)
 (let* ((old-pitch (ly:music-property m 'pitch))
        (new-pitch (ly:make-pitch
          (+ (ly:pitch-octave old-pitch) t)
          (ly:pitch-notename old-pitch)
          (ly:pitch-alteration old-pitch)))
        (new-note (ly:music-deep-copy m)))
  (set! (ly:music-property new-note 'pitch) new-pitch)
  new-note))

#(define (octavize-chord elements t)
 (cond ((null? elements) elements)
     ((eq? (ly:music-property (car elements) 'name) 'NoteEvent)
       (cons (car elements)
             (cons (octave-up (car elements) t)
                   (octavize-chord (cdr elements) t))))
     (else (cons (car elements) (octavize-chord (cdr elements ) t)))))

#(define (octavize music t)
 (if (eq? (ly:music-property music 'name) 'EventChord)
       (ly:music-set-property! music 'elements (octavize-chord
(ly:music-property music 'elements) t)))
 music)

makeOctaves = #(define-music-function (parser location arg mus) (integer? ly:music?)
 (music-map (lambda (x) (octavize x arg)) (event-chord-wrap! mus)))

music = \relative { c'4-. d-. r g( f^"coucou" e f g) <e g c>1-> }

\new Voice \makeOctaves #1 \music
\new Voice \makeOctaves #-1 \music

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



--
Gilles



reply via email to

[Prev in Thread] Current Thread [Next in Thread]