Re: \markup on "topmost" voice in a Frenched score?

2019-03-14 Thread Aaron Hill

On 2019-03-14 10:35 am, N. Andrew Walsh wrote:
On Thu, Mar 14, 2019 at 4:36 PM Aaron Hill  
wrote:
Seems like \mark would work.  RehearsalMarks belong to the Score and 
are

by default placed above the entire system regardless of any staves.

This does seem like it wold work well. Is there a way to have a \mark 
that
includes both the \default command and a \markup block at the same 
point?
The client wants Roman-numeral rehearsal marks, but at some of them 
also

wants these section titles.


Well, you can always \override the stencil of the RehearsalMark.  Using 
grob-transformer, it is possible to reuse the original value when 
building the new one.  Consider the following:



\version "2.19.82"

#(define ((align-and-combine axis direction parent self padding) first 
second)

  "Aligns and combines two stencils.  The @var{axis} and @var{direction}
arguments specify on which side of the first stencil the second stencil
will be placed.  The @var{parent} and @var{self} arguments establish the
reference points on the first and second stencils, respectively, that
will be aligned on the opposite axis."
  (if (and (ly:stencil? first) (ly:stencil? second))
(ly:stencil-combine-at-edge first axis direction
  (ly:stencil-translate-axis
(ly:stencil-aligned-to second (- 1 axis) self)
(interval-index (ly:stencil-extent first (- 1 axis)) parent) (- 
1 axis))

  padding)))

%% Here are some convenience procedures using align-and-combine.
#(define centered-above (align-and-combine Y UP CENTER CENTER 1))
#(define as-superscript (align-and-combine X RIGHT UP DOWN 0))
#(define left-aligned-below (align-and-combine Y DOWN LEFT LEFT 1))

combineWithMark = #(define-music-function (proc arg)
  ((procedure? centered-above) markup?)
  "Combines the specified markup with an existing RehearsalMark.
The @var{proc} argument specifies how the stencils are to be combined."
  #{ \once \override Score.RehearsalMark.stencil =
   #(grob-transformer 'stencil (lambda (grob old)
 (proc old (grob-interpret-markup grob arg #} )

\paper { line-width = 5\in }
{
  % Default is #centered-above.
  \combineWithMark \markup \italic "centered-above"
  \mark \default \repeat unfold 5 { b'1 } \bar "."
  \once \override Score.RehearsalMark.self-alignment-X = #RIGHT
  \combineWithMark #as-superscript \markup \italic "as-superscript"
  \mark \default \repeat unfold 5 { b'1 } \bar "."
  \once \override Score.RehearsalMark.self-alignment-X = #LEFT
  \combineWithMark #left-aligned-below \markup \italic 
"left-aligned-below"

  \mark \default \repeat unfold 5 { b'1 }
}



-- Aaron Hill___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: System with SystemStartBar only in PianoStaff

2019-03-14 Thread Lukas-Fabian Moser




http://lsr.di.unimi.it/LSR/Item?id=873
may help.


... and for Piano Staves, I condensed this in a minimal & ready-to-use 
example:


http://lilypond.1069038.n5.nabble.com/Unconnected-simultaenous-staff-groups-tp206812p206820.html

Lukas


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


Re: Openlilylib edition engraver guide

2019-03-14 Thread Mason Hock
On 03/14, Urs Liska wrote:
> I have now placed the "rundown" at
> https://github.com/openlilylib/edition-engraver/wiki.

This looks great!

Mason


signature.asc
Description: PGP signature
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: System with SystemStartBar only in PianoStaff

2019-03-14 Thread Thomas Morley
Am Do., 14. März 2019 um 17:41 Uhr schrieb Urs Liska :
>
> I need to engrave something like what is shown in the attached image: a score 
> where the PianoStaff has a SystemStartBar but there is none between the top 
> Staff and the PianoStaff. The example is simply created using two separate 
> scores, but that is not an option because the single Staff has to be 
> synchronized with the PianoStaff.
>
> I tried several things so far, without success:
>
> In a \layout block \omit SystemStartBar from Score and \undo \omit it in 
> PianoStaff (wouldn't have expected that to work ...)
> \remove System_start_delimiter_engraver from Score and \consist it to 
> PianoStaff. This has the weird effect of printing two SystemStartBrace-s and 
> no SystemStartBar
>
> I suspect that the SystemStartBar is something that is inherently added to 
> the Score, to connect *all* staves.
>
> What most probably *would* work is remove the SystemStartBar completely then 
> create a callback to an arbitrary grob, creating a "fake" SystemStartBar as a 
> \markup \draw-line and move it to the start of the staff. I would probably 
> manage doing that myself, but I would actually prefer a solution that is more 
> semantically correct (i.e. modify the Score set-up configuration).
>
> Any ideas?
> Urs

http://lsr.di.unimi.it/LSR/Item?id=873
may help.


Cheers,
  Harm

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


Re: Ot Barrios-music

2019-03-14 Thread Ivan Kuznetsov
Your notation of the harmonic on the first beat of measure 3
looked odd to me, and so I compared this note to
two other editions of this piece that I have.
According to those editions, this harmonic should be a "D",
produced at the 7th fret of the 3rd string, not the
"E" that you have.

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


Re: Openlilylib edition engraver guide

2019-03-14 Thread Johan Vromans
On Thu, 14 Mar 2019 08:52:21 +0100, Urs Liska  wrote:

> https://github.com/openlilylib/oll-core/wiki

Call me stupid, but shouldn't this be on the OpenLilyLib web site
instead / as well ?

I find it logical to start looking for information on OpenLilyLib on the
OpenLilyLib web site.

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


Re: \markup on "topmost" voice in a Frenched score?

2019-03-14 Thread N. Andrew Walsh
Hi Aaron,

On Thu, Mar 14, 2019 at 4:36 PM Aaron Hill  wrote:

>
> Seems like \mark would work.  RehearsalMarks belong to the Score and are
> by default placed above the entire system regardless of any staves.
>
>
This does seem like it wold work well. Is there a way to have a \mark that
includes both the \default command and a \markup block at the same point?
The client wants Roman-numeral rehearsal marks, but at some of them also
wants these section titles.

Thanks for the help!

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


System with SystemStartBar only in PianoStaff

2019-03-14 Thread Urs Liska
I need to engrave something like what is shown in the attached image: a 
score where the PianoStaff has a SystemStartBar but there is none 
between the top Staff and the PianoStaff. The example is simply created 
using two separate scores, but that is not an option because the single 
Staff has to be synchronized with the PianoStaff.


I tried several things so far, without success:

 * In a \layout block \omit SystemStartBar from Score and \undo \omit
   it in PianoStaff (wouldn't have expected that to work ...)
 * \remove System_start_delimiter_engraver from Score and \consist it
   to PianoStaff. This has the weird effect of printing two
   SystemStartBrace-s and no SystemStartBar

I suspect that the SystemStartBar is something that is inherently added 
to the Score, to connect *all* staves.


What most probably *would* work is remove the SystemStartBar completely 
then create a callback to an arbitrary grob, creating a "fake" 
SystemStartBar as a \markup \draw-line and move it to the start of the 
staff. I would probably manage doing that myself, but I would actually 
prefer a solution that is more semantically correct (i.e. modify the 
Score set-up configuration).


Any ideas?
Urs

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


Re: Advice sought on making parts for string quartet

2019-03-14 Thread karl
Andrew Bernard:
> Thanks for your great help. I am studying the matter!
> 
> Just for now I am interested in persisting with something close to my
> original approach, until I find out definitively it is just plain
> blockheaded!

Feel free to come back with new questions.

> On Wed, 13 Mar 2019 at 22:59,  wrote:
> > The way I handle it is to first split the lilypond code into two sets.
> > I'm using
> >  http://aspodata.se/git/musik/Guillaume_du_Fay/ave_regina_caelorum/
> >  http://aspodata.se/git/musik/Franz_Zaver_Brixi/heac_est_dies/
> > here to exemplify things.

 The last link should be:
http://aspodata.se/git/musik/Franz_Zaver_Brixi/haec_est_dies/

Regards,
/Karl Hammar


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


Re: \markup on "topmost" voice in a Frenched score?

2019-03-14 Thread Ben

On 3/14/2019 11:32 AM, Aaron Hill wrote:

On 2019-03-14 7:12 am, N. Andrew Walsh wrote:

Hi List,

I have a small chamber setting that includes section titles that the 
client
wants at the top of systems (stuff like "Interlude," "Finale," etc.). 
The

problem I'm having is, as this is a "Frenched" score the topmost voice
isn't always the same one. So I can't attach a \markup to a specific 
voice,
but I want to find a way to apply them to whichever voice happens to 
be at

the top of the score *at that point*.

Is there a way to do that? Is there some conditional formatting that 
can be
applied to achieve something like that? I imagine this would also 
apply to

tempo indications and other similar score instructions.


Seems like \mark would work.  RehearsalMarks belong to the Score and 
are by default placed above the entire system regardless of any staves.



-- Aaron Hill



That is very clever, Aaron - thank you! I'm going to make a note of this...

\version "2.19.80"

\new Staff
{
  \once \override Score.RehearsalMark.Y-offset = #10
  \mark "Interlude" s1
}

\paper {
  top-margin = 0.5\in
  left-margin = 0.75\in
  right-margin = 0.75\in
  bottom-margin = 0.5\in
}

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


Re: \markup on "topmost" voice in a Frenched score?

2019-03-14 Thread Aaron Hill

On 2019-03-14 7:12 am, N. Andrew Walsh wrote:

Hi List,

I have a small chamber setting that includes section titles that the 
client
wants at the top of systems (stuff like "Interlude," "Finale," etc.). 
The

problem I'm having is, as this is a "Frenched" score the topmost voice
isn't always the same one. So I can't attach a \markup to a specific 
voice,
but I want to find a way to apply them to whichever voice happens to be 
at

the top of the score *at that point*.

Is there a way to do that? Is there some conditional formatting that 
can be
applied to achieve something like that? I imagine this would also apply 
to

tempo indications and other similar score instructions.


Seems like \mark would work.  RehearsalMarks belong to the Score and are 
by default placed above the entire system regardless of any staves.



-- Aaron Hill

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


Re: \markup on "topmost" voice in a Frenched score?

2019-03-14 Thread Ben

On 3/14/2019 10:12 AM, N. Andrew Walsh wrote:

Hi List,

I have a small chamber setting that includes section titles that the 
client wants at the top of systems (stuff like "Interlude," "Finale," 
etc.). The problem I'm having is, as this is a "Frenched" score the 
topmost voice isn't always the same one. So I can't attach a \markup 
to a specific voice, but I want to find a way to apply them to 
whichever voice happens to be at the top of the score *at that point*.


Is there a way to do that? Is there some conditional formatting that 
can be applied to achieve something like that? I imagine this would 
also apply to tempo indications and other similar score instructions.


Thanks for the help,

A


Hello,

I can't quite picture exactly what you're describing, but if you're 
trying to attach markup like section titles, maybe you could just attach 
the markup to something like time signatures instead, and then adjust 
the location to taste? (see attached)


If you have any code to share from your example though, please :) 
Frenched scores can vary a good amount depending on where and how you 
cutaway, etc.


Here's an example of what I mean. Hope this helps:

\version "2.19.80"

\new Staff
{
  \numericTimeSignature
  \tweak stencil
  #(grob-transformer 'stencil (lambda (grob default)
    (grob-interpret-markup grob
  #{ \markup \column {
    \stencil #default
    \vspace #-3.5
    \small \with-color #black "FINALE"
  } #})))
  \time 4/4 s1
}

\paper {
  top-margin = 0.5\in
  left-margin = 0.75\in
  right-margin = 0.75\in
  bottom-margin = 0.5\in
}

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


\markup on "topmost" voice in a Frenched score?

2019-03-14 Thread N. Andrew Walsh
Hi List,

I have a small chamber setting that includes section titles that the client
wants at the top of systems (stuff like "Interlude," "Finale," etc.). The
problem I'm having is, as this is a "Frenched" score the topmost voice
isn't always the same one. So I can't attach a \markup to a specific voice,
but I want to find a way to apply them to whichever voice happens to be at
the top of the score *at that point*.

Is there a way to do that? Is there some conditional formatting that can be
applied to achieve something like that? I imagine this would also apply to
tempo indications and other similar score instructions.

Thanks for the help,

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


Re: Edition-engraver and page-layout module

2019-03-14 Thread Urs Liska
Please put this (with as much information as you can reasonably provide 
yourself) in an issue at https://github.com/openlilylib/page-layout/issues


I will have to look into it (when I can manage)

Urs

Am 14.03.19 um 13:48 schrieb Andrew Bernard:
Ah. Using the source, I see an option was added (the value of the git 
commit log!) to support page-layout being associated with a specific 
editionID. This solves the problem in my context.


But I do note that by trial and error I found the editionID name has 
to be in a list, which I thought a little strange for something that 
will only have one item.


\setOption page-layout.conditional-breaks.score-id #'(sq)

Andrew


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


Re: Edition-engraver and page-layout module

2019-03-14 Thread Andrew Bernard
Ah. Using the source, I see an option was added (the value of the git
commit log!) to support page-layout being associated with a specific
editionID. This solves the problem in my context.

But I do note that by trial and error I found the editionID name has to be
in a list, which I thought a little strange for something that will only
have one item.

\setOption page-layout.conditional-breaks.score-id #'(sq)

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


Edition-engraver and page-layout module

2019-03-14 Thread Andrew Bernard
Are these modules incompatible with each other? I naively imagined I could
use both. only to find out the combination does not work after a day of
debugging, and I have narrowed it down to the fact tha putting \editionID
in the Score context makes the page-layout module stop working.

I suppose page-layout is written using the edition-engraver. So am I trying
something fundamentally stupid?

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


Re: Color one SystemStartBrace

2019-03-14 Thread Urs Liska

Hi David,

thank you once again for your extremely valuable input!

Am 13.03.19 um 22:55 schrieb David Nalesnik:

On Wed, Mar 13, 2019 at 4:27 PM David Nalesnik  wrote:

On Wed, Mar 13, 2019 at 3:44 PM Urs Liska  wrote:

..

You're not going to be able to do it simply, any more than you can
introduce overrides of individual pieces of a broken slur once it's
begun.  The starting bars are all clones of the first object.

The only way I can suggest is to collect all the grobs on the system
in question using the 'all-elements property (you can do this through
a grob on the system in question), locate the target grob, and set its
'color property.

DN

Like this:

\version "2.19.82"

#(define drop-in-on-spanner
(lambda (grob)
  (let* ((elts (ly:grob-array->list (ly:grob-object (ly:grob-system
grob) 'all-elements)))
 (ssb (filter (lambda (e) (grob::has-interface e
'system-start-delimiter-interface))
  elts)))
(set! (ly:grob-property (car ssb) 'color) red

\new StaffGroup <<
   \new Staff {
 c1 \break
 \once \override NoteHead.after-line-breaking = #drop-in-on-spanner
 c1 \break
 c1 \break
   }
   \new Staff {
 c1
 c1
 c1
   }



Thank you, this gave me enough input to find my solution. Since I 
actually needed to get to the SystemStartBar I modified the approach a 
little bit but succeeded. Then I additionally created a wrapper function 
that can now be used like this:


\version "2.19.82"

#(define color-system-start-bar
   (lambda (grob)
 (let*
  ((staff-elements
(ly:grob-array->list
 (ly:grob-object (ly:grob-system grob) 'all-elements)))
   (ssb
(filter
 (lambda (e)
   (eq? 'SystemStartBar (assq-ref (ly:grob-property e 'meta) 'name)))
 staff-elements)))
  (ly:grob-set-property! (car ssb) 'color red

annotateSystemStartBar =
#(define-music-function (comment)(string?)
  ; the string? argument is discarded and only used for the input file
   #{
 \once \override NoteHead.after-line-breaking = #color-system-start-bar
   #})

\score {
  \new PianoStaff <<
\new Staff {
  c'1
  \break
  \annotateSystemStartBar "This is a comment that is now documented in the 
input"
  c'
}
\new Staff { c'1 c' }
  >>
}

Urs

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


Re: Openlilylib edition engraver guide

2019-03-14 Thread Urs Liska
I have now placed the "rundown" at 
https://github.com/openlilylib/edition-engraver/wiki.


I found myself extending it significantly, adding some background 
information and concepts that I thought important to understand the 
descriptions. I hope this improves the readability and usefulness.


Maybe having this introduction at a visible place may encourage more 
people to try out the edition-engraver and openLilyLib.


Urs

Am 14.03.19 um 07:56 schrieb Andrew Bernard:

Hi Urs,

Well \editionModList is the whole point of it for me! Thanks!

I think it's wiki'ish rather than readme'ish.

Andrew


On Thu, 14 Mar 2019 at 17:37, Urs Liska > wrote:



thanks for the contribution. I'll integrate it somewhere ASAP
(either in
the Wiki or maybe in the entry README.md). If I find a place and the
time I'll add a section about \editionModList, which is one of the
tiny
contributions by me.

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


Re: Openlilylib edition engraver guide

2019-03-14 Thread Urs Liska



Am 14.03.19 um 08:24 schrieb Johan Vromans:

On Thu, 14 Mar 2019 00:47:59 +1100, Andrew Bernard
 wrote:


Can we add Stefano Troncaro's excellent introductory material about the
edition engraver to the github wiki for the project?

It is a great guide... Unfortunately I get stuck at one of the first lines:

 "Assuming OpenLilyLib is already installed..."

 From the openLilyLib documentation:
https://openlilylib.org/app/#/getstarted/get-openlilylib

 Get Started With openLilyLib

 Very short introduction hwo to get OLL up and running

 Another paragraph.

 Get openLilyLib
 Different ways of obtaining OLL

(Note these are not links, but the actual text on the page)

So I need a good guide for OpenLilyLib first before I can try the edition
engraver.



https://github.com/openlilylib/oll-core/wiki



-- Johan

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


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


Re: Openlilylib edition engraver guide

2019-03-14 Thread Andrew Bernard
Hi Johan,

This design pattern is called infinite regress. :-)

Maybe I can start to put something together.

Openlilylib is utterly essential to my engraving practice, I hope others
can benefit from it also.

Andrew



On Thu, 14 Mar 2019 at 18:40, Johan Vromans  wrote:

>
> It is a great guide... Unfortunately I get stuck at one of the first lines:
>
> "Assuming OpenLilyLib is already installed..."
>
>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Openlilylib edition engraver guide

2019-03-14 Thread Johan Vromans
On Thu, 14 Mar 2019 00:47:59 +1100, Andrew Bernard
 wrote:

> Can we add Stefano Troncaro's excellent introductory material about the
> edition engraver to the github wiki for the project?

It is a great guide... Unfortunately I get stuck at one of the first lines:

"Assuming OpenLilyLib is already installed..."

>From the openLilyLib documentation:
https://openlilylib.org/app/#/getstarted/get-openlilylib

Get Started With openLilyLib

Very short introduction hwo to get OLL up and running

Another paragraph.

Get openLilyLib
Different ways of obtaining OLL

(Note these are not links, but the actual text on the page)

So I need a good guide for OpenLilyLib first before I can try the edition
engraver.

-- Johan

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


Re: Openlilylib edition engraver guide

2019-03-14 Thread Andrew Bernard
Hi Urs,

Well \editionModList is the whole point of it for me! Thanks!

I think it's wiki'ish rather than readme'ish.

Andrew


On Thu, 14 Mar 2019 at 17:37, Urs Liska  wrote:

>
> thanks for the contribution. I'll integrate it somewhere ASAP (either in
> the Wiki or maybe in the entry README.md). If I find a place and the
> time I'll add a section about \editionModList, which is one of the tiny
> contributions by me.
>
>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Openlilylib page-layout module

2019-03-14 Thread Urs Liska

Hi Andrew,

Am 14.03.19 um 06:20 schrieb Andrew Bernard:

Starting a new thread on this for clarity.

OK. So my previously posted MWE for string quartet with parts used 
tags and multiple books in one file. I found that edition-engraver and 
page-layout do their work and stop after the first book. Consequently 
have found that if I make separate file for the score for each part, 
with their own single book section, and appropriate includes of common 
material, that all works nicely, with the only issue being that I have 
five separate compiles to do and more files to manage. This can be 
trivially handled with a makefile of course. Also, I really only need 
to generate parts at the end of the engraving work, so in practice I 
think this won't be an issue.


Urs, I know you don't use tags, and I do, but I would very like to see 
how you would go about structuring string quartet with parts, using 
page-layout and or edition=engraver.


Would there be an argument for providing a reset or restart mechanism 
for page-layout so it could process multiple books in a file?



I once ran in a situation that I think is pretty much exactly what you 
are experiencing: applying breaks to consecutive movements of a score 
which were wrapped in bookparts.


I will have to look into the matter, so please remind me if it should 
slip from my attention. The core of my solution (although I can't say 
right now if it was a solution or a hack) was (IIRC) assigning each 
score an individual editionID and targeting that. Obviously I should 
review the package to determine if there is something I should add to 
the package or if I have to document the use case with multiple 
scores/books. When I wrote the package I wasn't aware of that problem.


Urs

(PS: I won't reply to your original thread now. If my review reveals 
anything that might be useful there I may comment there as well)





Andrew


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


Re: Openlilylib edition engraver guide

2019-03-14 Thread Urs Liska

Hi Andrew and Randy,

thanks for the contribution. I'll integrate it somewhere ASAP (either in 
the Wiki or maybe in the entry README.md). If I find a place and the 
time I'll add a section about \editionModList, which is one of the tiny 
contributions by me.


Best
Urs

Am 14.03.19 um 05:37 schrieb Andrew Bernard:

Hi All,

Here's a redacted version of Randy's file, lots of small cleanups, and 
the email chat tone removed.


Andrew




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