Re: Stem.stem-begin-position not giving desired output on beamed stems (tablature)

2016-12-18 Thread Carl Williams
Thanks Harm, 

Then remove it there. 
Yes, for some reason that flew over my head. Probably because it wasn't styled 
correctly ;)

One question on styling, which is correct? 
I think the first, considering rule 3: closing parenthesis close the line. 
(/ (+ start-in (- (abs length-in)
  thickness))
  2)
or
(/ (+ start-in (- (abs length-in)
  thickness)) 2)
or 
(/ (+ start-in (- (abs length-in) thickness)) 2)

(let* 
;; TODO returns 'direction always correctly? 
((dir (ly:grob-property grob 'direction)) 
(position 
(/ (+ (abs start-in) 
(- (abs length-in) 
(ly:grob-property grob 'beam-thickness))) 
(* dir 2 
This bit gave funny results when start-position was below, but direction was 
up, so I just used what I have. Sure using if is another step, but it ain't 
broke ;)


Here it is now:
beam-stem-height =
#(define-music-function (parser location start-in length-in)(number? number?)
  "Takes a list containing values for:
  - the stem-start in Y-direction
  - the stem-length
  Values can be positive or negative, depending on direction
  but may produce a warning if only one value is negative:
    'warning: weird stem size, check for narrow beams'
  "
  #{
    \override Stem.direction = #(if (positive? length-in) UP DOWN)
    \override Stem.stem-begin-position = #start-in
    \override Stem.length = #(abs length-in)
    \override Beam.after-line-breaking =
    #(lambda (grob)
      (let ((stems (ly:grob-array->list (ly:grob-object grob 'stems
        (for-each
          (lambda (stem)
            (ly:stem::calc-stem-begin-position stem)
            (ly:grob-set-property! stem 'length (abs length-in))
            (ly:grob-set-property! stem 'stem-begin-position start-in))
        stems)))
    \override Beam.before-line-breaking =
    #(lambda (grob)
      (let* ((thickness (ly:grob-property grob 'beam-thickness))
             (position (if (positive? length-in)
               (/ (+ start-in (- (abs length-in)
                 thickness))
                 2)
               (/ (- start-in (- (abs length-in)
                 thickness))
                 2
        (ly:grob-set-property! grob 'positions (cons position position
#})

Thanks, 
Carl

On 19/12/2016 00:43:52, Thomas Morley <thomasmorle...@gmail.com> wrote:
Hi Carl,

2016-12-18 8:26 GMT+01:00 Carl Williams :
> One more little adjustment, for anyone who will benefit from it.
> The previous version only overrode Beam.positions on the first line. After a
> line break they go back to how they were if by default.
> I don't quite understand why, but the solution was to move that section
> under a before-line-breaking section rather than after-line-breaking.

Then remove it there.

I missed to take 'beam-thickness into account. Good catch.
Your code can be shortened to the below, probably even more (depending
on your final goal)

beam-stem-height =
#(define-music-function (parser location start-in length-in)(number? number?)
"Takes a list containing values for:
- the stem-start in Y-direction
- the stem-length
Values can be positive or negative, depending on direction
but may produce a warning if only one value is negative:
'warning: weird stem size, check for narrow beams'
"
#{
\override Stem.direction = #(if (positive? length-in) UP DOWN)
\override Stem.stem-begin-position = #start-in
\override Stem.length = #(abs length-in)
\override Beam.after-line-breaking =
#(lambda (grob)
(let ((stems (ly:grob-array->list (ly:grob-object grob 'stems
(for-each
(lambda (stem)
(ly:stem::calc-stem-begin-position stem)
(ly:grob-set-property! stem 'length (abs length-in))
(ly:grob-set-property! stem 'stem-begin-position start-in))
stems)))
\override Beam.before-line-breaking =
#(lambda (grob)
(let*
;; TODO returns 'direction always correctly?
((dir (ly:grob-property grob 'direction))
(position
(/ (+ (abs start-in)
(- (abs length-in)
(ly:grob-property grob 'beam-thickness)))
(* dir 2
(ly:grob-set-property! grob 'positions (cons position position
#})

Cheers,
Harm

P.S.
Your code doesn't follow the recommended style, makes it harder to follow.
Please read
http://community.schemewiki.org/?scheme-style
___
bug-lilypond mailing list
bug-lilypond@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-lilypond


Re: Stem.stem-begin-position not giving desired output on beamed stems (tablature)

2016-12-17 Thread Carl Williams
One more little adjustment, for anyone who will benefit from it. 
The previous version only overrode Beam.positions on the first line. After a 
line break they go back to how they were if by default. 
I don't quite understand why, but the solution was to move that section under a 
before-line-breaking section rather than after-line-breaking. 

Here's the new function: 

beam-stem-height =
#(define-music-function (parser location start-in length-in)(number? number?)
  "Takes a list containing values for:
  - the stem-start in Y-direction
  - the stem-length
  Values can be positive or negative, depending on direction
  but may produce a warning if only one value is negative:
    'warning: weird stem size, check for narrow beams'
  "
  #{
    \override Stem.direction = #(if (positive? length-in) UP DOWN)
    \override Stem.stem-begin-position = #start-in
    \override Stem.length = #(abs length-in)
    \override Beam.after-line-breaking =
    #(lambda (grob)
      (let
        ( (stems (ly:grob-array->list (ly:grob-object grob 'stems)))
          (position (if (positive? length-in)
              (/ (+ start-in (- (abs length-in)
                (ly:grob-property grob 'beam-thickness))) 2)
              (/ (- start-in (- (abs length-in)
                (ly:grob-property grob 'beam-thickness))) 2)
            )
          )
        )
        (ly:grob-set-property! grob 'positions (cons position position))
        (for-each
          (lambda (stem)
            (ly:stem::calc-stem-begin-position stem)
            (ly:grob-set-property! stem 'length (abs length-in))
            (ly:grob-set-property! stem 'stem-begin-position start-in)
          )
        stems
        )
      )
    )
    \override Beam.before-line-breaking =
    #(lambda (grob)
      (let
        ( (position (if (positive? length-in)
              (/ (+ start-in (- (abs length-in)
                (ly:grob-property grob 'beam-thickness))) 2)
              (/ (- start-in (- (abs length-in)
                (ly:grob-property grob 'beam-thickness))) 2)
            )
          )
        )
        (ly:grob-set-property! grob 'positions (cons position position))
      )
    )
#})


On 18/12/2016 18:08:34, Carl Williams <carl.j.willia...@gmail.com> wrote:
To anyone who's interested, 

I've tidied up the workaround for this. It now takes two inputs; stem-start and 
stem-length. 
It also now allows for above or below staff positioning. 

%%
\version "2.18.2"

beam-stem-height =
#(define-music-function (parser location start-in length-in)(number? number?)
  "Takes a list containing values for:
  - the stem-start in Y-direction
  - the stem-length
  Values can be positive or negative, depending on direction
  but may produce a warning if only one value is negative:
    'warning: weird stem size, check for narrow beams'
  "
  #{
    \override Stem.direction = #(if (positive? length-in) UP DOWN)
    \override Stem.stem-begin-position = #start-in
    \override Stem.length = #(abs length-in)
    \override Beam.after-line-breaking =
    #(lambda (grob)
      (let
        ( (stems (ly:grob-array->list (ly:grob-object grob 'stems)))
          (position (if (positive? length-in)
              (/ (+ start-in (- (abs length-in)
                (ly:grob-property grob 'beam-thickness))) 2)
              (/ (- start-in (- (abs length-in)
                (ly:grob-property grob 'beam-thickness))) 2)
            )
          )
        )
        (ly:grob-set-property! grob 'positions (cons position position))
        (for-each
          (lambda (stem)
            (ly:stem::calc-stem-begin-position stem)
            (ly:grob-set-property! stem 'length (abs length-in))
            (ly:grob-set-property! stem 'stem-begin-position start-in)
          )
        stems
        )
      )
    )
#})

%%
%% EXAMPLES
%%

{
  \beam-stem-height #5 #7
  c''8[ d'']
  c''16[ d'']
  c''32[ d'']
  \autoBeamOff
  c''8 d''16 e''32
  \beam-stem-height #-7 #-10
  c''8[ d'']
  c''16[ d'']
  c''32[ d'']
  \autoBeamOff
  c''8 d''16 e''32
}

\new TabStaff \with {
  stringTunings = #ukulele-tuning
  \tabFullNotation
  \beam-stem-height #-5 #-5
} {
  \relative c' {
    r8 g'\4 c,4 e2 |
    a1 |
    g8\4 c, e a c,[ c] a'8 a |
    \beam-stem-height #5 #5
    r8 g\4 c,4 e2
    a1
    g8\4 c, e a c,[ c] a'8 a
  }
}
%%

Cheers, 
Carl

On 16/12/2016 22:09:09, Carl Williams <carl.j.willia...@gmail.com> wrote:
Thanks Harm, 

That's just what I was after. 
I'm keen to learn more about how beam positions and stems are calculated. Then 
maybe I can calculate it using only 2 input variables. 
I think I'll have a look in the .scm files, and see what I can find. I'm not 
sure yet which one it'll be in.

Thanks for adding the feature request too. 

Cheers, 
Carl
On 16/12/2016 12:39:08, Thomas Morley <thomasmorle...@gmail.c

Re: Stem.stem-begin-position not giving desired output on beamed stems (tablature)

2016-12-17 Thread Carl Williams
To anyone who's interested, 

I've tidied up the workaround for this. It now takes two inputs; stem-start and 
stem-length. 
It also now allows for above or below staff positioning. 

%%
\version "2.18.2"

beam-stem-height =
#(define-music-function (parser location start-in length-in)(number? number?)
  "Takes a list containing values for:
  - the stem-start in Y-direction
  - the stem-length
  Values can be positive or negative, depending on direction
  but may produce a warning if only one value is negative:
    'warning: weird stem size, check for narrow beams'
  "
  #{
    \override Stem.direction = #(if (positive? length-in) UP DOWN)
    \override Stem.stem-begin-position = #start-in
    \override Stem.length = #(abs length-in)
    \override Beam.after-line-breaking =
    #(lambda (grob)
      (let
        ( (stems (ly:grob-array->list (ly:grob-object grob 'stems)))
          (position (if (positive? length-in)
              (/ (+ start-in (- (abs length-in)
                (ly:grob-property grob 'beam-thickness))) 2)
              (/ (- start-in (- (abs length-in)
                (ly:grob-property grob 'beam-thickness))) 2)
            )
          )
        )
        (ly:grob-set-property! grob 'positions (cons position position))
        (for-each
          (lambda (stem)
            (ly:stem::calc-stem-begin-position stem)
            (ly:grob-set-property! stem 'length (abs length-in))
            (ly:grob-set-property! stem 'stem-begin-position start-in)
          )
        stems
        )
      )
    )
#})

%%
%% EXAMPLES
%%

{
  \beam-stem-height #5 #7
  c''8[ d'']
  c''16[ d'']
  c''32[ d'']
  \autoBeamOff
  c''8 d''16 e''32
  \beam-stem-height #-7 #-10
  c''8[ d'']
  c''16[ d'']
  c''32[ d'']
  \autoBeamOff
  c''8 d''16 e''32
}

\new TabStaff \with {
  stringTunings = #ukulele-tuning
  \tabFullNotation
  \beam-stem-height #-5 #-5
} {
  \relative c' {
    r8 g'\4 c,4 e2 |
    a1 |
    g8\4 c, e a c,[ c] a'8 a |
    \beam-stem-height #5 #5
    r8 g\4 c,4 e2
    a1
    g8\4 c, e a c,[ c] a'8 a
  }
}
%%

Cheers, 
Carl

On 16/12/2016 22:09:09, Carl Williams <carl.j.willia...@gmail.com> wrote:
Thanks Harm, 

That's just what I was after. 
I'm keen to learn more about how beam positions and stems are calculated. Then 
maybe I can calculate it using only 2 input variables. 
I think I'll have a look in the .scm files, and see what I can find. I'm not 
sure yet which one it'll be in.

Thanks for adding the feature request too. 

Cheers, 
Carl
On 16/12/2016 12:39:08, Thomas Morley <thomasmorle...@gmail.com> wrote:
Hi Carl,

2016-12-14 8:14 GMT+01:00 Carl Williams :
> Hi Everyone,
>
> First time using a mailing list.
> I've raked through the documentation pages all today and yesterday (and 
> learnt a lot), but still couldn't solve this.
>
> So I want to create (ukulele) tablature where all the stems and beams are 
> above the staff.
> I use the \override Stem.stem-begin-position to set the unbeamed stems above, 
> but I think it aught to affect the beamed stems too (they are stems too after 
> all!). bug?

I don't think so.
If I understand correctly, beamed stems are not really calculated on
their own, but mostly rely on the calculations of the beam.
Thus you need to make some effort to have it work.

> Does anyone know any workarounds?

Maybe something at the lines of:

\version "2.18.2"

testFunc =
#(define-music-function (parser location beg-end-beam-pos)(list?)
"Takes a list containing values for
- the stem-start in Y-direction
- the stem-length
- the positions of a possible beam.
TODO: The relationship between those values currently escapes me.
It should be possible to calculate the beam-positions, if the other values
are known.
"
#{
\stemUp
\override Beam.after-line-breaking =
#(lambda (grob)
(let ((stems (ly:grob-array->list (ly:grob-object grob 'stems
(ly:grob-set-property!
grob 'positions (cons (last beg-end-beam-pos) (last beg-end-beam-pos)))
(for-each
(lambda (stem)
(ly:stem::calc-stem-begin-position stem)
(ly:grob-set-property!
stem 'length (second beg-end-beam-pos))
(ly:grob-set-property!
stem 'stem-begin-position (first beg-end-beam-pos)))
stems)))
\override Stem.stem-begin-position = #(first beg-end-beam-pos)
\override Stem.length = #(second beg-end-beam-pos)
#})

%%
%% EXAMPLES
%%

{
\testFunc #'(5 6 5.25)
c''8[ d'']
c''16[ d'']
c''32[ d'']
\autoBeamOff
c''8 d''16 e''32
}


\new TabStaff \with {
stringTunings = #ukulele-tuning
} {

\relative c' {
\testFunc #'(4.6 5 4.75)
\tabFullNotation
r8 g'\4 c,4 e2 |
a1 |
g8\4 c, e a c,[ c] a'8 a |
}
}

2016-12-15 1:24 GMT+01:00 Carl Williams :
> I think the original issue of Stem.stem-begin-position not working for 
> beamed-stems should be fixed. If it's not a bug, I call it a 

Re: Stem.stem-begin-position not giving desired output on beamed stems (tablature)

2016-12-16 Thread Carl Williams
Thanks Harm, 

That's just what I was after. 
I'm keen to learn more about how beam positions and stems are calculated. Then 
maybe I can calculate it using only 2 input variables. 
I think I'll have a look in the .scm files, and see what I can find. I'm not 
sure yet which one it'll be in.

Thanks for adding the feature request too. 

Cheers, 
Carl
On 16/12/2016 12:39:08, Thomas Morley <thomasmorle...@gmail.com> wrote:
Hi Carl,

2016-12-14 8:14 GMT+01:00 Carl Williams :
> Hi Everyone,
>
> First time using a mailing list.
> I've raked through the documentation pages all today and yesterday (and 
> learnt a lot), but still couldn't solve this.
>
> So I want to create (ukulele) tablature where all the stems and beams are 
> above the staff.
> I use the \override Stem.stem-begin-position to set the unbeamed stems above, 
> but I think it aught to affect the beamed stems too (they are stems too after 
> all!). bug?

I don't think so.
If I understand correctly, beamed stems are not really calculated on
their own, but mostly rely on the calculations of the beam.
Thus you need to make some effort to have it work.

> Does anyone know any workarounds?

Maybe something at the lines of:

\version "2.18.2"

testFunc =
#(define-music-function (parser location beg-end-beam-pos)(list?)
"Takes a list containing values for
- the stem-start in Y-direction
- the stem-length
- the positions of a possible beam.
TODO: The relationship between those values currently escapes me.
It should be possible to calculate the beam-positions, if the other values
are known.
"
#{
\stemUp
\override Beam.after-line-breaking =
#(lambda (grob)
(let ((stems (ly:grob-array->list (ly:grob-object grob 'stems
(ly:grob-set-property!
grob 'positions (cons (last beg-end-beam-pos) (last beg-end-beam-pos)))
(for-each
(lambda (stem)
(ly:stem::calc-stem-begin-position stem)
(ly:grob-set-property!
stem 'length (second beg-end-beam-pos))
(ly:grob-set-property!
stem 'stem-begin-position (first beg-end-beam-pos)))
stems)))
\override Stem.stem-begin-position = #(first beg-end-beam-pos)
\override Stem.length = #(second beg-end-beam-pos)
#})

%%
%% EXAMPLES
%%

{
\testFunc #'(5 6 5.25)
c''8[ d'']
c''16[ d'']
c''32[ d'']
\autoBeamOff
c''8 d''16 e''32
}


\new TabStaff \with {
stringTunings = #ukulele-tuning
} {

\relative c' {
\testFunc #'(4.6 5 4.75)
\tabFullNotation
r8 g'\4 c,4 e2 |
a1 |
g8\4 c, e a c,[ c] a'8 a |
}
}

2016-12-15 1:24 GMT+01:00 Carl Williams :
> I think the original issue of Stem.stem-begin-position not working for 
> beamed-stems should be fixed. If it's not a bug, I call it a feature request.
>

Probably.
Added as
https://sourceforge.net/p/testlilyissues/issues/5012/

Cheers,
Harm
___
bug-lilypond mailing list
bug-lilypond@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-lilypond


Re: Stem.stem-begin-position not giving desired output on beamed stems (tablature)

2016-12-14 Thread Carl Williams
So I figured a little workaround that does the job. 
I use 2 voices, one which shows only the Stems and Beams, the other which shows 
only the TabNoteHeads. 

Unfortunately, it's doesn't always compile when I use extra complex 
combinations of rests, notes and spacers. Says it has an internal error. But I 
think it will be robust enough for what I need to do. 

I think the original issue of Stem.stem-begin-position not working for 
beamed-stems should be fixed. If it's not a bug, I call it a feature request. 

\version "2.18.2"

mynotes = {
  \relative c' {
    g'8\4 c,4 e2 |
    a1 |
    g8\4 c, e a g8\4[ g\4 ] a a |
    r8 r8 r4 r2 |
    r1 |
  }
}

\new TabStaff \with {
  stringTunings = #ukulele-tuning
} <<
  \numericTimeSignature
  \clef moderntab
  \partial 2..
  \new TabVoice {
    \voiceOne
    %set noteheads to all be in a horizontal line
    \override TabVoice.TabNoteHead.Y-offset = #2.5
    %hide voiceOne rests
    \override TabVoice.Rest.transparent = ##t
    %hide voiceOne noteHeads
    \override TabVoice.TabNoteHead.transparent = ##t
    \stemUp
    \tabFullNotation
    \mynotes
  }
  \new TabVoice {
    \voiceTwo
    %align voiceTwo rests to the middle of the staff
    \override TabVoice.Rest.Y-offset = #0
    %hide voiceTwo stems
    \override TabVoice.Stem.transparent = ##t
    \mynotes
  }
>>

here's how it comes out now:

On 14/12/2016 20:14:57, Carl Williams <carl.j.willia...@gmail.com> wrote:
Hi Everyone, 

First time using a mailing list. 
I've raked through the documentation pages all today and yesterday (and learnt 
a lot), but still couldn't solve this. 

So I want to create (ukulele) tablature where all the stems and beams are above 
the staff. 
I use the \override Stem.stem-begin-position to set the unbeamed stems above, 
but I think it aught to affect the beamed stems too (they are stems too after 
all!). bug?

Does anyone know any workarounds? 
I've tried lots of things. I think it could be done if somehow the stems were 
'un-parented' from the noteheads in the Y-direction, and then parented to 
something else in the Y-direction (can a grob have 2 parents?). I haven't bee 
able to do this though. 

Here's the example: 
\version "2.18.2"

\new TabStaff \with {
  stringTunings = #ukulele-tuning
} {
  %set bottom of stem position
  \override Stem.stem-begin-position = #4.5
  %set stem length
  \override Stem.length = #5
  %set top of beam position
  \override Beam.positions = #'(4.6 . 4.6)
  \stemUp
  \relative c' {
    \tabFullNotation
    r8 g'\4 c,4 e2 |
    a1 |
    g8\4 c, e a c,[ c] a'8 a |
  }
}

There's an SVG attached, not sure what the deal is with pictures. 

Eventually I want to look at half length stems for minim and quarter length for 
semibreve, but one thing at a time. 

Thanks, 
Carl

http://purl.org/dc/elements/1.1/;
   xmlns:cc="http://creativecommons.org/ns#;
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#;
   xmlns:svg="http://www.w3.org/2000/svg;
   xmlns="http://www.w3.org/2000/svg;
   xmlns:xlink="http://www.w3.org/1999/xlink;
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd;
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape;
   version="1.2"
   width="140mm"
   height="30mm"
   viewBox="0 0 79.667734 17.071657"
   id="svg2"
   inkscape:version="0.91 r13725"
   sodipodi:docname="My Dog Has Fleas2.svg">
  

  
image/svg+xml
http://purl.org/dc/dcmitype/StillImage; />

  

  
  
  
  
  

  
  
  
  
  
  
  
  
  
  
  

  
  

  0

  
  
  

  
  
  

  
  

  0

  
  
  

  
  

  0

  
  
  

  
  

  0

  
  

  
  

  
  
  
  

  
  

  
  

  
  

  
  

  0

  
  
  
  

  
  

  0

  
  
  
  
  
  
T
  
  
A
  
  
B
  
  

  
  

  0

  
  
  

  
  

  0

  
  
  

  
  

  0

  
  
  

  
  

  0

  
  

  
  

  0

  
  
  
  

  
  

  0

  

___
bug-lilypond mailing list
bug-lilypond@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-lilypond


Stem.stem-begin-position not giving desired output on beamed stems (tablature)

2016-12-13 Thread Carl Williams
Hi Everyone, 

First time using a mailing list. 
I've raked through the documentation pages all today and yesterday (and learnt 
a lot), but still couldn't solve this. 

So I want to create (ukulele) tablature where all the stems and beams are above 
the staff. 
I use the \override Stem.stem-begin-position to set the unbeamed stems above, 
but I think it aught to affect the beamed stems too (they are stems too after 
all!). bug?

Does anyone know any workarounds? 
I've tried lots of things. I think it could be done if somehow the stems were 
'un-parented' from the noteheads in the Y-direction, and then parented to 
something else in the Y-direction (can a grob have 2 parents?). I haven't bee 
able to do this though. 

Here's the example: 
\version "2.18.2"

\new TabStaff \with {
  stringTunings = #ukulele-tuning
} {
  %set bottom of stem position
  \override Stem.stem-begin-position = #4.5
  %set stem length
  \override Stem.length = #5
  %set top of beam position
  \override Beam.positions = #'(4.6 . 4.6)
  \stemUp
  \relative c' {
    \tabFullNotation
    r8 g'\4 c,4 e2 |
    a1 |
    g8\4 c, e a c,[ c] a'8 a |
  }
}

There's an SVG attached, not sure what the deal is with pictures. 

Eventually I want to look at half length stems for minim and quarter length for 
semibreve, but one thing at a time. 

Thanks, 
Carl

http://purl.org/dc/elements/1.1/;
   xmlns:cc="http://creativecommons.org/ns#;
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#;
   xmlns:svg="http://www.w3.org/2000/svg;
   xmlns="http://www.w3.org/2000/svg;
   xmlns:xlink="http://www.w3.org/1999/xlink;
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd;
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape;
   version="1.2"
   width="100mm"
   height="30mm"
   viewBox="0 0 56.905524 17.071657"
   id="svg2"
   inkscape:version="0.91 r13725"
   sodipodi:docname="test2.svg">
  

  
image/svg+xml
http://purl.org/dc/dcmitype/StillImage; />

  

  
  
  
  
  

  
  
  
  
  
  
  
  
  

  
  

  0

  
  
  

  
  

  0

  
  
  
  

  
  

  0

  
  

  
  
  
  
  

  
  

  0

  
  
  

  
  

  0

  
  
  

  
  

  0

  
  
  

  
  

  0

  
  
  

  
  

  0

  
  
  
  

  
  

  0

  
  
  
  

  
  
  

  
  

  0

  
  

  
  

  0

  
  
  
  

  
  

  0

  
  http://lilypond.org/;
 id="a184">

  

___
bug-lilypond mailing list
bug-lilypond@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-lilypond