lilypond-devel
[Top][All Lists]
Advanced

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

Re: A proposal of organize music paragraph layout by a new DSL


From: K.L.
Subject: Re: A proposal of organize music paragraph layout by a new DSL
Date: Sun, 15 Nov 2020 18:22:48 +0800

The blog link is missed, appended here:
https://findlab.github.io/2020/11/15/music-layout-language/

On Sun, Nov 15, 2020 at 6:20 PM K.L. <k.l.lambda@gmail.com> wrote:

> Hi all.
>
> For a multiple voices music score, all voices share the same repeat
> positions. Such as:
>
> <<
>>   {
>>     \repeat volta 2 { g1 g g g }
>>     \repeat volta 2 { g g g g }
>>   }
>>   {
>>     \repeat volta 2 { c1 c c c }
>>     \repeat volta 2  { c c c c }
>>   }
>> >>
>
>
> The repeat layout information occurred 2 times, that is waste and
> error-leading.
>
> Considering change it like this:
>
> \repeat layout "2*[1..4], 2*[5..8]" <<
>>         {
>>               g1 g g g g g g g
>>         }
>>         {
>>               c1 c c c c c c c
>>         }
>> >>
>
>
> We can define a new DSL to express all kinds of repeat types, including
> volta, volta-alternative and *D.C. al Fine* and so on. For some examples:
>
> [image: image.png]
> code: *1, 2, 3, 4*
> or:     *1..4*
>
> [image: image.png]
> code: *2*[1, 2], 3*
>
> [image: image.png]
>
> code: *2*[1, 2]{3, 4}*
>
> [image: image.png]
> code: *<[1, 2], 3, 4>*
>
> Via this, exact MIDI performing for D.C. & D.S. can also be done.
>
> I have implemented a basic grammar parser in my project to facilitate
> score edition. See the demo video
> <https://www.youtube.com/watch?v=uUOV-Kjrt4M>. And my blog to descript
> details.
>
>>
> Beside measure indices, we can consider adding some grammar to express
> partial measure, like '1 + 1/4'. But the upbeat beginning music's measure
> index rule seems a little ambiguous. We should clarify how the measure
> index works in any situation first.
>
> Glad to hear any ideas.
>
>

PNG image

PNG image

PNG image

PNG image


reply via email to

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