[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Fold out repeats with alternatives
From: |
David Kastrup |
Subject: |
Re: Fold out repeats with alternatives |
Date: |
Sat, 21 Jul 2012 16:43:33 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux) |
David Kastrup <address@hidden> writes:
> Johan Vromans <address@hidden> writes:
>
>> David Kastrup <address@hidden> writes:
>>
>>> bla = { <big series of notes> \tag #'here {} <another series of notes> }
>>>
>>> \pushToTag #'here { <some notes1> } \bla
>>> \pushToTag #'here { <some notes2> } \bla
>>
>> Yes, this would be a way. Just like:
>>
>> before = { <big series of notes> }
>> after = { <another series of notes> }
>>
>> ...
>> \before
>> <some notes1>
>> \after
>> \before
>> <some notes2>
>> \after
>> ...
>>
>> However, I'd like to avoid the use of variables since that visually
>> interrupts the flow of notes.
>
> If you don't want the flow of notes interrupted, what will mark the
> location where <some notes1> and <some notes2> are to be spliced in?
Perhaps you want something like
#(define-macro (pattern args result)
`(define-music-function (parser location ,@args)
,(make-list (length args) 'ly:music?)
(make-sequential-music (list ,@result))))
$(pattern (A B C D) (A B D A C D))
{ a' a' a' a' }
{ b' b' b' b' }
{ c'' c'' c'' c'' }
{ d'' d'' d'' d'' }
--
David Kastrup