[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: addFingering
From: |
David Nalesnik |
Subject: |
Re: addFingering |
Date: |
Fri, 13 Jan 2017 19:21:27 -0600 |
On Fri, Jan 13, 2017 at 11:50 AM, Gilles THIBAULT
<address@hidden> wrote:
> Le vendredi 13 janvier 2017, 14:06:23 Gianmaria Lari a écrit :
>> I have a problem with (the fantastic) addFingering snippet.
>>
>> Here it is my simple code.
>>
>> \version "2.19.54"
>> \include "addFingering.ly"
>>
>> {
>> \addFingering {a b a b} #"12"
>> }
>>
>> {
>> \addFingering {\repeat unfold 2 {a b}} #"12"
>> }
>
> You can create your own repeat function :
>
> %%%
>
> nCopy = #(define-music-function (parser location n music)(integer? ly:music?)
> (cond
> ((> n 1)(ly:music-deep-copy (make-sequential-music (make-list n music))))
> ((= n 1) music)
> (else (make-music 'Music 'void #t))))
>
>
> \addFingering { \nCopy #2 {a b} } #"12"
>
> %%%
>
You could also do this without \addFingering:
nCopyNoFingerings =
#(define-music-function (parser location n music) (integer? ly:music?)
(cond
((= n 1)
music)
((> n 1)
(let ((stripped
(music-filter
(lambda (m) (not (music-is-of-type? m 'fingering-event)))
(ly:music-deep-copy music))))
(make-sequential-music
(cons music
(make-list (1- n) stripped)))))
(else (make-music 'Music 'void #t))))
{ \nCopyNoFingerings #3 { a-1 b-2 } }
> David Kastrup explains how to make it work in \relative mode in this thread :
> http://lists.gnu.org/archive/html/lilypond-user/2015-11/msg00361.html
>
Haven't tried adapting this to relative mode.
HTH,
David
Re: addFingering, Gilles THIBAULT, 2017/01/13
- Re: addFingering,
David Nalesnik <=