make doc and make all

2012-05-03 Thread m...@apollinemike.com
Hey all,

I'm for the first time doing semi-complicated doc work w/ the website thing and 
discovering a bit about the build system in the process.  I learned today that 
`make doc' does not automatically `make all' if there are files that have been 
touched.  Would it be a good idea to roll a make all into make doc?  It'd add 
no more than 10 seconds onto a doc build if nothing in scm/ ps/ mf/ lily/ ps/ 
/ly has changed (perhaps I'm forgetting a few directories) and would 
automatically do any necessary compilation if these things have changed.  I 
can't think of a reason that, when launching make doc, someone would not want 
to be working from the current binary.  If this seems like a smart automation, 
let me know.

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


Recap of my meeting w/ Janek

2012-05-03 Thread m...@apollinemike.com
Hey all,

Janek and I talked at length about GSoC and I wanted to give people a little 
update about the game plan.

He plans to tackle 2451, 2452, and 2453 first via a parsing of pango strings to 
find word prefixes and suffixes and do alignment from where these lie.

2454 will require spacing stubs not unlike the StemStub and SpanBarStub grobs.  
He may or may not have been influenced by his mentor's design bias for this :)

Onto 2457, which will require an engraver in the score context to check the 
alignment of simultaneous lyrics and override it based on certain melisma 
conditions.

2459 can then be tackled by creating positioning-done callbacks for objects in 
Dynamics contexts and having an intermediary spanner grob that handles vertical 
positioning of these objects.

2455 and 2456 will require an implementation of second-pass spacing after line 
breaking that will replace get_line_configuration in spacing-spanner.cc with a 
more robust algorithm that respaces the line based on extra spacing 
constraints.  The idea is that if a more optimal horizontal spacing can be 
achieved without resulting in ugly vertical spacing, this'll be done.

2461 can be tackled after this - it is an easy fix once 2455 and 2451-2453 have 
been taken care of, as it requires subtle alignment changes on a second 
horizontal-spacing pass (ergo 2455) based on the contents of pango strings 
(ergo 2451-2453).

Once the second-pass spacing is in place, 2458 will require an extra step - 
snap spacing.  Snap spacing snaps horizontal spacing to certain ideal states 
instead of treating it as a continuum.  This will remove unwanted small gaps 
from lyrics.

The opposite of snap spacing for issue 2462 is target spacing, where all paper 
columns of a given length stretch un-uniformly to a given target and then 
stretch uniformly after this target instead of stretching uniformly all the 
time.  This guarantees that short lyrics will be able to catch up to the 
spacing of long lyrics on notes of the same duration before these long-lyricked 
notes are given more horizontal space.

With this implemented, 2450 will be solvable, as similar-valued notes will be 
able to be spaced non-uniformly.  The same logic will be generalized to this - 
2462 is just an easy test case that allows us to know what works and want 
doesn't.

2460 is more or less impossible.

And there you have it!  All comments are appreciated - even though I'm the 
official mentor, you're certainly all welcome to suggest alternative approaches 
to the ones outline about.

Cheers,
MS___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Recap of my meeting w/ Janek

2012-05-03 Thread Aleksandr Andreev
 He plans to tackle 2451, 2452, and 2453 first via a parsing of pango strings
 to find word prefixes and suffixes and do alignment from where these lie.

Quick question: will languages that do not use Latin characters be
considered? For example, 2452 is also a problem when working with
Slavic languages written in Cyrillic.

Aleksandr

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


Re: MIDI with ancient notation

2012-05-03 Thread Aleksandr Andreev
Upon further investigation, I believe this is related to this issue:

http://code.google.com/p/lilypond/issues/detail?id=2004

Aleksandr

On Wed, May 2, 2012 at 1:39 PM, Aleksandr Andreev
aleksandr.andr...@gmail.com wrote:
 Hello folks,

 I've been experimenting with what is supported so far for Kievan
 notation, and I've run in to some problems generating MIDI output. I
 get the following messages at compile time if I add a \midi block:

 warning: cannot find or create new `KievanStaff'
 warning: cannot find or create new `KievanVoice'
 warning: cannot find or create `Timing' called `'

 Looking at performer-init.ly, I see that VaticanaStaff and
 VaticanaVoice have their own Context blocks so that makes me think
 that KievanStaff and KievanVoice should be implemented similarly.

 However, if I typeset some Gregorian chant, as in:

 \include gregorian.ly
 \score {
  \new VaticanaStaff
  
    \new VaticanaVoice {
      \[ c'\melisma a \]
    }
  
 \midi {  }
 \layout { }
 }

 I get no MIDI output -- the resulting MIDI file appears to consist of
 a few seconds of rests.

 There's probably something I'm not doing right.

 Also, I couldn't find anything about MIDI output with ancient music in
 the documentation.

 Help much appreciated as always!

 Aleksandr

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


Re: Recap of my meeting w/ Janek

2012-05-03 Thread m...@apollinemike.com
On 3 mai 2012, at 14:00, Aleksandr Andreev wrote:

 He plans to tackle 2451, 2452, and 2453 first via a parsing of pango strings
 to find word prefixes and suffixes and do alignment from where these lie.
 
 Quick question: will languages that do not use Latin characters be
 considered? For example, 2452 is also a problem when working with
 Slavic languages written in Cyrillic.
 
 Aleksandr
 

Janek's solution is generalized to any pango string, so if pango can read it, 
LilyPond will be able to typeset it.


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


Re: Lilypond miscompiled on Fedora 17

2012-05-03 Thread Pavel Roskin

Quoting David Kastrup d...@gnu.org:


Pavel Roskin pro...@gnu.org writes:


Hello!

I mentioned in passing that Fedora 17 (currently in beta) ships
Lilypond 2.15.29 that reports bogus bar checks.

It turns out that both the current Lilypond from git and Lilypond
2.14.2 are miscompiled on the up-to-date Fedora 17 so they exhibit the
same problem.


What compiler version are they using?


It's gcc 4.7.0.  I'm using x86_64.

I just checked that Lilypond compiled without optimization or with -O1  
instead of -O2 has no problem with that file.


An update for gcc was released this morning (gcc 4.7.0-3), and I  
compiled Lilypond with it with all defaults.  Unfortunately, the  
problem persists.


--
Regards,
Pavel Roskin

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


Re: make doc and make all

2012-05-03 Thread Phil Holmes
- Original Message - 
From: m...@apollinemike.com

To: Devel Team lilypond-devel@gnu.org
Sent: Thursday, May 03, 2012 11:52 AM
Subject: make doc and make all



Hey all,

I'm for the first time doing semi-complicated doc work w/ the website 
thing and discovering a bit about the build system in the process.  I 
learned today that `make doc' does not automatically `make all' if there 
are files that have been touched.  Would it be a good idea to roll a make 
all into make doc?  It'd add no more than 10 seconds onto a doc build if 
nothing in scm/ ps/ mf/ lily/ ps/ /ly has changed (perhaps I'm forgetting 
a few directories) and would automatically do any necessary compilation if 
these things have changed.  I can't think of a reason that, when launching 
make doc, someone would not want to be working from the current binary. 
If this seems like a smart automation, let me know.



Personally I'd prefer that make doc didn't include make - it may only take a 
little time, but if you've only changed the docs, why would you want all the 
binary stuff rechecked?


--
Phil Holmes 



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


Re: Lilypond miscompiled on Fedora 17

2012-05-03 Thread David Kastrup
Pavel Roskin pro...@gnu.org writes:

 Quoting David Kastrup d...@gnu.org:

 Pavel Roskin pro...@gnu.org writes:

 Hello!

 I mentioned in passing that Fedora 17 (currently in beta) ships
 Lilypond 2.15.29 that reports bogus bar checks.

 It turns out that both the current Lilypond from git and Lilypond
 2.14.2 are miscompiled on the up-to-date Fedora 17 so they exhibit the
 same problem.

 What compiler version are they using?

 It's gcc 4.7.0.  I'm using x86_64.

 I just checked that Lilypond compiled without optimization or with -O1
 instead of -O2 has no problem with that file.

 An update for gcc was released this morning (gcc 4.7.0-3), and I
 compiled Lilypond with it with all defaults.  Unfortunately, the
 problem persists.

Any chance to compile using i386?  If the problem persisted, it would
strongly point to the language frontend of g++ being involved.  If it
vanishes, it can be either the backend or a general 32/64 bit
architecture problem.

-- 
David Kastrup

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


Re: make doc and make all

2012-05-03 Thread Francisco Vila
2012/5/3 m...@apollinemike.com m...@apollinemike.com:
 Hey all,

 I'm for the first time doing semi-complicated doc work w/ the website thing 
 and discovering a bit about the build system in the process.  I learned today 
 that `make doc' does not automatically `make all' if there are files that 
 have been touched.  Would it be a good idea to roll a make all into make doc? 
  It'd add no more than 10 seconds onto a doc build if nothing in scm/ ps/ mf/ 
 lily/ ps/ /ly has changed (perhaps I'm forgetting a few directories) and 
 would automatically do any necessary compilation if these things have 
 changed.  I can't think of a reason that, when launching make doc, someone 
 would not want to be working from the current binary.  If this seems like a 
 smart automation, let me know.

I think that dependencies list for building the binary are waaay
longer than for make doc. People could want to try building docs
alone. That said, it is not usual that make doc succeeds if there are
new snippets which usually require the very latest version of the
binary to get them compiled. So yes, in practice 'make all' is usually
also needed.

-- 
Francisco Vila. Badajoz (Spain)
www.paconet.org , www.csmbadajoz.com

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


Re: make doc and make all

2012-05-03 Thread Phil Holmes
- Original Message - 
From: Francisco Vila paconet@gmail.com

To: m...@apollinemike.com
Cc: Devel Team lilypond-devel@gnu.org
Sent: Thursday, May 03, 2012 4:18 PM
Subject: Re: make doc and make all


2012/5/3 m...@apollinemike.com m...@apollinemike.com:

Hey all,

I'm for the first time doing semi-complicated doc work w/ the website 
thing and discovering a bit about the build system in the process. I 
learned today that `make doc' does not automatically `make all' if there 
are files that have been touched. Would it be a good idea to roll a make 
all into make doc? It'd add no more than 10 seconds onto a doc build if 
nothing in scm/ ps/ mf/ lily/ ps/ /ly has changed (perhaps I'm forgetting 
a few directories) and would automatically do any necessary compilation if 
these things have changed. I can't think of a reason that, when launching 
make doc, someone would not want to be working from the current binary. If 
this seems like a smart automation, let me know.


I think that dependencies list for building the binary are waaay
longer than for make doc. People could want to try building docs
alone. That said, it is not usual that make doc succeeds if there are
new snippets which usually require the very latest version of the
binary to get them compiled. So yes, in practice 'make all' is usually
also needed.


=

Not if you're just editing the CG, for example.

--
Phil Holmes 



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


Re: Lilypond miscompiled on Fedora 17

2012-05-03 Thread Pavel Roskin

Quoting David Kastrup d...@gnu.org:


Any chance to compile using i386?  If the problem persisted, it would
strongly point to the language frontend of g++ being involved.  If it
vanishes, it can be either the backend or a general 32/64 bit
architecture problem.


Fedora 17 i386 has exactly the same problem.

Let me try to find the file that needs to be compiled with -O1.  I  
have some ideas how to bisect the problem.  I want to write a wrapper  
around g++ that starts adding -O1 to the command line after N  
invocations.


--
Regards,
Pavel Roskin

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


Re: Recap of my meeting w/ Janek

2012-05-03 Thread Łukasz Czerwiński
On 3 May 2012 13:07, m...@apollinemike.com m...@apollinemike.com wrote:

 *2460* is more or less impossible.


Why? I don know the details of Lilypond's internals, but a white-out is a
rather simple idea, isn't it?

Łukasz
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Recap of my meeting w/ Janek

2012-05-03 Thread m...@apollinemike.com
On 4 mai 2012, at 00:37, Łukasz Czerwiński wrote:

 On 3 May 2012 13:07, m...@apollinemike.com m...@apollinemike.com wrote:
 2460 is more or less impossible.
 
 Why? I don know the details of Lilypond's internals, but a white-out is a 
 rather simple idea, isn't it?
 
 Łukasz
 

What's hard is creating flexible blocking mechanisms for left-shifting objects. 
 When collisions happen, there is no notion of elasticity - objects are not 
allowed to touch or they ignore each other.  Here, we want something between - 
objects that can overlap but just by a little.  We'd have to redo the spring 
and rod model at the core of LilyPond, which itself would a summer of lily (if 
not two or three!).

Cheers,
MS


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


Re: Strange loop executed only once!

2012-05-03 Thread Łukasz Czerwiński
On 3 May 2012 04:18, Keith OHara k-ohara5...@oco.net wrote:

 On Wed, 02 May 2012 17:12:33 -0700, Łukasz Czerwiński 
 milimet...@gmail.com wrote:

  On 22 April 2012 13:28, Han-Wen Nienhuys hanw...@gmail.com wrote:

  this also looks a little suspect:

 Real total_head_length = previous_extents[d].length ()
  + current_extents[d].length ();


  As for Keith's code:
 { \time 4/1
  \override Score.SpacingSpanner #'packed-spacing = ##t
 c'1 a b'' c''' g''' a''' }

 I can see no too much spacing between b'' and c''', and g''' and a'''


 The notes within the chords are spaced normally, but the chords are
 too-far separated from each other.  It is only a tiny problem.  No-one
 reported noticing the problem in output, only in the code.


Well, it's a bug, so it should be at least *tried* to be solved. As I
guess, it will need only one change in line:
  Real total_head_length = previous_extents[d].length ()
   + current_extents[d].length ();

so it's doable and therefore desired :)


  Was that bug already filed or should I do it?


 It is so closely related to
 http://code.google.com/p/**lilypond/issues/detail?id=2493http://code.google.com/p/lilypond/issues/detail?id=2493
 that I'll just add a note there.

Thanks.


 Anyway, I don't understand: The cause seems to be the decision
 to scale the ledger from the notecolumn width,


 I should have set to scale the rod  The function set_rods() at
 http://codereview.appspot.**com/6109046/diff/6001/lily/**
 ledger-line-spanner.cc#**newcode39http://codereview.appspot.com/6109046/diff/6001/lily/ledger-line-spanner.cc#newcode39
 
 is passed two columns and asked to figure out the space needed for ledgers.


Ah, I see... Now I'm starting to understand what's that code about. Thanks
:)



 Now I see that the extents passed to set_rods() include /only/ notes that
 go on ledgers, so finally I see how HanWen's original suggestion should
 work.


Where do you know it from? Is it this line which make it work so?
  if (staff_extent.contains (pos))
continue;



 And where to find what's min_length_fraction for?


 It is a local variable holding the last parameter to set_rods() so you
 have to look at how set_rods() is called, and figure out how that last
 parameter is determined.   It comes from some property of a
 Ledger_line_spanner called minimum-length-fraction that might be talked
 about http://lilypond.org/doc/v2.**14/Documentation/internals/**
 ledgerlinespannerhttp://lilypond.org/doc/v2.14/Documentation/internals/ledgerlinespanner
 


I meant the link, not finding usage of a variable which is trivial :)
Thanks for the link.

I don't understand why minimum-length-fraction is takenn into account while
calculating rod.distance_, but let's say someone wise devised such a
formula and it works properly :)



I'd like to comment set_rods and set_spacing_rods.
I'll place for set_rods a comment:
/*
 The extents passed to set_rods() include *only* notes that go on ledgers.
*/

and for set_spacing_rods:
/*
 This function sets rods to force a proper distance between chords that
have
 some notes on ledger lines.
*/

Is it correct?

I don't understand the whole idea of iterating through all heads:

 extract_item_set (me, note-heads, heads);
   for (vsize i = heads.size (); i--;)


Which heads would those be? As I guess, the answer is: those that are
contained in Ledger_Line_Spanner, but... what is a ledger line spanner,
when is it used, where does it lie and which notes will it contain? Just
two chords that are neighbours?

Why iterating through heads forces the right order of the notes - first
notes from the first chord, then from the second one?

Łukasz
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Recap of my meeting w/ Janek

2012-05-03 Thread Łukasz Czerwiński
On 4 May 2012 01:08, m...@apollinemike.com m...@apollinemike.com wrote:

 On 4 mai 2012, at 00:37, Łukasz Czerwiński wrote:

 On 3 May 2012 13:07, m...@apollinemike.com m...@apollinemike.com wrote:

 *2460* is more or less impossible.


 Why? I don know the details of Lilypond's internals, but a white-out is
 a rather simple idea, isn't it?

 Łukasz


 What's hard is creating flexible blocking mechanisms for left-shifting
 objects.  When collisions happen, there is no notion of elasticity -
 objects are not allowed to touch or they ignore each other.  Here, we want
 something between - objects that can overlap but just by a little.  We'd
 have to redo the spring and rod model at the core of LilyPond, which itself
 would a summer of lily (if not two or three!).

 Cheers,
 MS


Aaah, I see... Thanks for the explanation. But as I understand, not
everywhere springs and rods are used, e.g. beams collide with many objects
and that's ok. If there is a place where I can read about springs and rods
in Lilypond, just let me know instead of answering me.

Łukasz
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Recap of my meeting w/ Janek

2012-05-03 Thread m...@apollinemike.com
On 4 mai 2012, at 01:23, Łukasz Czerwiński wrote:

 
 
 On 4 May 2012 01:08, m...@apollinemike.com m...@apollinemike.com wrote:
 On 4 mai 2012, at 00:37, Łukasz Czerwiński wrote:
 
 On 3 May 2012 13:07, m...@apollinemike.com m...@apollinemike.com wrote:
 2460 is more or less impossible.
 
 Why? I don know the details of Lilypond's internals, but a white-out is a 
 rather simple idea, isn't it?
 
 Łukasz
 
 
 What's hard is creating flexible blocking mechanisms for left-shifting 
 objects.  When collisions happen, there is no notion of elasticity - objects 
 are not allowed to touch or they ignore each other.  Here, we want something 
 between - objects that can overlap but just by a little.  We'd have to redo 
 the spring and rod model at the core of LilyPond, which itself would a summer 
 of lily (if not two or three!).
 
 Cheers,
 MS
 
 Aaah, I see... Thanks for the explanation. But as I understand, not 
 everywhere springs and rods are used, e.g. beams collide with many objects 
 and that's ok. If there is a place where I can read about springs and rods in 
 Lilypond, just let me know instead of answering me.
 
 Łukasz
 

There's a file you can read...
lily/simple-spacer.cc

That is the long and short of the nuts and bolts.  You can work backwards from 
the file to see where the functions in it are called (I believe that it's only 
in lily/constrained-breaking.cc).

Cheers,
MS


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


PATCH: Countdown to 20120506

2012-05-03 Thread Colin Campbell

For 20:00 MDT Sunday May 6th

Documentation:
Issue 2438 
http://code.google.com/p/lilypond/issues/detail?id=2438: NR 1.2.3 Add 
explanation about reminder accidentals and \cadenzaOn - R5976056 
http://codereview.appspot.com/5976056/


Cheers,

Colin

--
I've learned that you shouldn't go through life with a catcher's mitt on both 
hands.
You need to be able to throw something back.
-Maya Angelou, poet (1928- )

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


Fix MIDI output for Kievan (issue 6193043)

2012-05-03 Thread aleksandr . andreev

Reviewers: ,

Message:
Here is a patch that attempts to fix issues with MIDI playback of Kievan
notation.

Description:
Fix MIDI output for Kievan

Adding KievanStaff and KievanVoice for MIDI output of Kievan notation.

Please review this at http://codereview.appspot.com/6193043/

Affected files:
  M ly/performer-init.ly


Index: ly/performer-init.ly
diff --git a/ly/performer-init.ly b/ly/performer-init.ly
index  
0ad1e2964ee9cab5e4b7b7f030b00f1fed8ffd71..1b60a6393dfba16cfa847f1007f6c496e2523b9d  
100644

--- a/ly/performer-init.ly
+++ b/ly/performer-init.ly
@@ -31,6 +31,7 @@
   \consists Staff_performer
   \consists Key_performer
 }
+
 \context {
   \name Global
   \accepts Score
@@ -39,6 +40,17 @@
 }

 \context {
+  \type Performer_group
+  \name KievanStaff
+  \denies Voice
+  \accepts KievanVoice
+  \defaultchild KievanVoice
+  \alias Staff
+  \consists Staff_performer
+  \consists Key_performer
+}
+
+\context {
   \Staff
   \name DrumStaff
   midiInstrument = #drums
@@ -70,6 +82,17 @@
 }

 \context {
+  \type Performer_group
+  \name KievanVoice
+  \alias Voice
+  \consists Dynamic_performer
+  \consists Tie_performer
+  \consists Note_performer
+  \consists Beam_performer
+  \consists Slur_performer
+}
+
+\context {
   \Voice
   \remove Note_performer
   \consists Drum_note_performer
@@ -157,6 +180,7 @@
   \accepts FretBoards
   \accepts Lyrics
   \accepts VaticanaStaff
+  \accepts KievanStaff

   \consists Time_signature_performer
   \consists Control_track_performer



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


Re: Fix MIDI output for Kievan (issue 6193043)

2012-05-03 Thread Carl . D . Sorensen

Looks like it works, but I think it can (and should) be simplified.  If
it can't, then LGTM.


http://codereview.appspot.com/6193043/diff/1/ly/performer-init.ly
File ly/performer-init.ly (right):

http://codereview.appspot.com/6193043/diff/1/ly/performer-init.ly#newcode49
ly/performer-init.ly:49: \consists Staff_performer
Do these \consists need to be added?  Does the \alias Staff bring in the
Staff_performer and the Key_performer from the Staff Performer_group?

http://codereview.appspot.com/6193043/diff/1/ly/performer-init.ly#newcode88
ly/performer-init.ly:88: \consists Dynamic_performer
Again, don't the performers from the Voice performer group get added
automatically by the \alias Voice?

http://codereview.appspot.com/6193043/

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


Re: Lilypond miscompiled on Fedora 17

2012-05-03 Thread Pavel Roskin

Quoting Pavel Roskin pro...@gnu.org:


Fedora 17 i386 has exactly the same problem.

Let me try to find the file that needs to be compiled with -O1.  I have
some ideas how to bisect the problem.  I want to write a wrapper around
g++ that starts adding -O1 to the command line after N invocations.


The problematic file is simultaneous-music-iterator.cc

I'll try to identify the function tomorrow.

--
Regards,
Pavel Roskin

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