lilypond-user
[Top][All Lists]
Advanced

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

Re: Automatic octaves


From: Pierre Perol-Schneider
Subject: Re: Automatic octaves
Date: Sun, 5 Jan 2014 11:41:51 +0100




2014/1/5 Daniel Rosen <address@hidden>
Is someone able to update it?


A standart update works fine.
Here you go :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \version "2.18.0"

#(define (octave-up m t)

(let* ((octave (1- t))

(new-note (ly:music-deep-copy m))

(new-pitch (ly:make-pitch

octave

(ly:pitch-notename (ly:music-property m 'pitch))

(ly:pitch-alteration (ly:music-property m 'pitch)))))

(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)) mus))

\relative c' {

\time 3/8

\key gis \minor

\makeOctaves #1 { dis8( e dis')~ dis8.( cis16 b8}

\makeOctaves #-1 { ais' gis dis) cis( dis <dis gis'>) }

}

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

Cheers,
Pierre

reply via email to

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