[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 2.14.2-syntax for listed Staffs in SimultaneousMusic?
From: |
Thomas Morley |
Subject: |
Re: 2.14.2-syntax for listed Staffs in SimultaneousMusic? |
Date: |
Mon, 14 Dec 2015 01:46:33 +0100 |
2015-12-14 1:37 GMT+01:00 Thomas Morley <address@hidden>:
> 2015-12-13 23:08 GMT+01:00 David Kastrup <address@hidden>:
>> Thomas Morley <address@hidden> writes:
>>
>>> Hi all,
>>>
>>> currently I'm doing some research through the lily-versions.
>>> Therefore it would be great I could have a test-case working even for 2.14.2
>>>
>>> The following works back to 2.16.2
>>> How would be 2.14.2-syntax?
>>> Any hint, even for more clumsy coding, appreciated. I need that
>>> mapping over different staff-spaces.
>>>
>>> <<
>>> $@(map
>>> (lambda (n)
>>> #{
>>> \new Staff \with { \override StaffSymbol #'staff-space = $n }
>>> { c''1 }
>>> #})
>>> (iota 12 0.25 0.25))
>>>>>
>>
>> #(ly:export (make-simultaneous-music ... \override ... = #$n } ...
>>
>> And you better get it right because the error messages will be totally
>> useless.
>
>
> Got it work with the code below, it _is_ clumsy, but good enough for a
> test-case. Compiles with 2.14.2, 2.16.2, 2.18.2 and recent
> devel-version(s)
>
> #(define the-test-music
> (let ((mus
> (make-simultaneous-music
> (map
> (lambda (n)
> #{
> \new Staff \with { \override StaffSymbol #'staff-space = $n }
> { c''1 }
> #})
> (iota 12 0.25 0.25)))))
> ;; option to enable StaffGroup:
> (if #f
> (make-music
> 'ContextSpeccedMusic
> 'create-new #t
> 'property-operations '()
> 'context-type 'StaffGroup
> 'element
> mus)
> mus)))
>
> #(cond ((string=? (lilypond-version) "2.14.2")
> (ly:export (add-score parser (scorify-music the-test-music parser))))
> ((member (lilypond-version) '("2.16.2" "2.18.2"))
> (add-score parser (scorify-music the-test-music parser)))
> ((string-ci<=? (lilypond-version) "2.19.32")
> (add-score (scorify-music the-test-music)))
> (else (ly:error "unknown version: ~a" (lilypond-version))))
No need to special-case 2.14.2 while using
(add-score parser (scorify-music ...
#(cond ((member (lilypond-version) '("2.14.2" "2.16.2" "2.18.2"))
(add-score parser (scorify-music the-test-music parser)))
((string-ci<=? (lilypond-version) "2.19.32")
(add-score (scorify-music the-test-music)))
(else (ly:error "unknown version: ~a" (lilypond-version))))
>
> Long way since 2.14.2 and a lot of clean up was done since those days.
> Mostly from you, I think
>
> Thanks a lot, again!
> Harm