Implement spacing-pair for MeasureCounter (issue 319610043 by david.nales...@gmail.com)

2017-03-30 Thread david . nalesnik

Reviewers: ,

Message:
Please review -- thanks!

Description:
Implement spacing-pair for MeasureCounter

Since MeasureCounter grobs are bounded by columns, sophisticated
horizontal positioning is available relative to "prefatory
materials" (such as barlines, clefs, and key signatures) at the
beginning and end of measures.  This allows numbers to be
placed above full-measure rests which have been similarly adjusted
with 'spacing-pair.

The previous default is established in the grob description: count
objects are centered between BreakAlignment grobs.

Paper_column::break_align_width is made available to Scheme as
ly:paper-column:break-align-width.

Please review this at https://codereview.appspot.com/319610043/

Affected files (+39, -26 lines):
  M lily/paper-column.cc
  M scm/define-grob-interfaces.scm
  M scm/define-grobs.scm
  M scm/output-lib.scm


Index: lily/paper-column.cc
diff --git a/lily/paper-column.cc b/lily/paper-column.cc
index  
5462027928693c15aa9a85d00ccca134b8945173..85b60909c1bdb1fb6cf926c79da8bf42d2497f56  
100644

--- a/lily/paper-column.cc
+++ b/lily/paper-column.cc
@@ -226,6 +226,22 @@ Paper_column::break_align_width (Grob *me, SCM  
align_syms)

   return align->extent (p, X_AXIS);
 }

+LY_DEFINE  
(ly_paper_column__break_align_width, "ly:paper-column::break-align-width",

+   2, 0, 0, (SCM col, SCM align_syms),
+   "Determine the extent along the X-axis of a grob used for"
+   " break-alignment organized by column @var{col}. The grob is"
+   " specified by @code{align-syms}, which contains either a"
+   " single @code{break-align-symbol} or a list of such"
+   " symbols.")
+{
+  LY_ASSERT_SMOB (Grob, col, 1);
+  SCM_ASSERT_TYPE (scm_is_symbol (align_syms) || ly_is_list (align_syms),
+   align_syms, SCM_ARG2, __FUNCTION__, "symbol or list");
+
+  Interval ext = Paper_column::break_align_width (unsmob (col),  
align_syms);

+  return ly_interval2scm (ext);
+}
+
 /*
   Loop through elements of a PaperColumn, find all grobs implementing  
specified

   interface and return their combined extent.
Index: scm/define-grob-interfaces.scm
diff --git a/scm/define-grob-interfaces.scm b/scm/define-grob-interfaces.scm
index  
ffcfc355113af36777ec91bb8bce72930e5a870b..31188d0d8ea8156e1b762a7512522fbc39f120de  
100644

--- a/scm/define-grob-interfaces.scm
+++ b/scm/define-grob-interfaces.scm
@@ -204,7 +204,8 @@ accidentals)."
  'measure-counter-interface
  "A counter for numbering measures."
  '(columns
-   count-from))
+   count-from
+   spacing-pair))

 (ly:add-interface
  'metronome-mark-interface
Index: scm/define-grobs.scm
diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm
index  
45cac04bd3d65b1146beec8acdf89b42bcf8be7c..d3b4b9f06e42b73be7219067a80c9406261a2820  
100644

--- a/scm/define-grobs.scm
+++ b/scm/define-grobs.scm
@@ -1453,6 +1453,7 @@
 (outside-staff-priority . 750)
 (self-alignment-X . ,CENTER)
 (side-axis . ,Y)
+(spacing-pair . (break-alignment . break-alignment))
 (staff-padding . 0.5)
 (stencil . ,measure-counter-stencil)
 (meta . ((class . Spanner)
Index: scm/output-lib.scm
diff --git a/scm/output-lib.scm b/scm/output-lib.scm
index  
8df9b56ef2489c4bcbd6737c71523016bf405d27..2f74918bdc7c3b292710bf170634128b23e7393f  
100644

--- a/scm/output-lib.scm
+++ b/scm/output-lib.scm
@@ -1508,43 +1508,38 @@ parent or the parent has no setting."
 ;; measure counter

 (define-public (measure-counter-stencil grob)
-  "Print a number for a measure count.  The number is centered using
-the extents of @code{BreakAlignment} grobs associated with the left and
-right bounds of a @code{MeasureCounter} spanner.  Broken measures are
-numbered in parentheses."
+  "Print a number for a measure count.  Broken measures are numbered in
+parentheses."
   (let* ((num (make-simple-markup
-   (number->string (ly:grob-property grob 'count-from
+(number->string (ly:grob-property grob 'count-from
  (orig (ly:grob-original grob))
  (siblings (ly:spanner-broken-into orig)) ; have we been split?
  (num
-  (if (or (null? siblings)
-  (eq? grob (car siblings)))
+   (if (or (null? siblings)
+   (eq? grob (car siblings)))
   num
   (make-parenthesize-markup num)))
  (num (grob-interpret-markup grob num))
- (num (ly:stencil-aligned-to num X (ly:grob-property  
grob 'self-alignment-X)))

+ (num (ly:stencil-aligned-to
+   num X (ly:grob-property grob 'self-alignment-X)))
  (left-bound (ly:spanner-bound grob LEFT))
  (right-bound (ly:spanner-bound grob RIGHT))
- (elts-L (ly:grob-array->list (ly:grob-object  
left-bound 'elements)))
- (elts-R (ly:grob-array->list (ly:grob-object  
right-bound 'elements)))

- (break-alignment-L
-   (filter
- (lambda (elt) 

Re: Google SoC

2017-03-30 Thread Winston, Charles R.
Thanks for the feedback. Definitely really helpful. I'll have another chance to 
look at it later tonight. I'll email you then with any questions I have (and I 
presume I will have many).


Thanks,

Charles


From: Carl Sorensen 
Sent: Thursday, March 30, 2017 5:19:27 PM
To: Winston, Charles R.; jefferyshiv...@gmail.com; lilypond-devel@gnu.org
Subject: Re: Google SoC

Charles,

On 3/30/17 8:33 AM, "Winston, Charles R." 
wrote:
>
>Anyway, I would love for either of you to pass my draft proposal on to
>the list. It can be found here:
>https://docs.google.com/document/d/1TZLsCovyvqBhahS3Vy7LJMRqyp-C8ZanHTuCOP
>PTNAg/edit?usp=sharing
>
>
>PPTNAg/edit?usp=sharing>
>Of course, thanks again for all the help. I welcome any and all feedback
>to improve this, and really hope to get to work on this in the summer!


Thanks for sharing your proposal.  It's a great start.

The major challenge I see with the proposal right now is that it's
somewhat superficial.  It could have been written by someone who just read
what's available on the mailing list, and doesn't reflect much
understanding of what goes on under the hood in LilyPond.  I realize that
getting in to LilyPond is a big undertaking, but I think you could make
the proposal shine if you had a bit more clarity on how your work will fit
within the greater aspect of LilyPond.

For example, your midterm goal is to complete the implementation of the
new representation.  But what does that mean?  When the implementation is
complete, what will we see?  Does it change any input or output?  If it
doesn't, how will we know that the implementation is complete?

Note that I'm not arguing that you need to have input or output by the
midterm deadline.  I'm just asking some questions to try to help you
clarify what "implementation is complete" means.  The more specific you
can be, the better we will be able to judge your ability to complete the
project.

Let me know if you have more questions.

Thanks,

Carl

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


Re: Google SoC

2017-03-30 Thread Carl Sorensen
Charles,

On 3/30/17 8:33 AM, "Winston, Charles R." 
wrote:
>
>Anyway, I would love for either of you to pass my draft proposal on to
>the list. It can be found here:
>https://docs.google.com/document/d/1TZLsCovyvqBhahS3Vy7LJMRqyp-C8ZanHTuCOP
>PTNAg/edit?usp=sharing
>
> 
>PPTNAg/edit?usp=sharing>
>Of course, thanks again for all the help. I welcome any and all feedback
>to improve this, and really hope to get to work on this in the summer!


Thanks for sharing your proposal.  It's a great start.

The major challenge I see with the proposal right now is that it's
somewhat superficial.  It could have been written by someone who just read
what's available on the mailing list, and doesn't reflect much
understanding of what goes on under the hood in LilyPond.  I realize that
getting in to LilyPond is a big undertaking, but I think you could make
the proposal shine if you had a bit more clarity on how your work will fit
within the greater aspect of LilyPond.

For example, your midterm goal is to complete the implementation of the
new representation.  But what does that mean?  When the implementation is
complete, what will we see?  Does it change any input or output?  If it
doesn't, how will we know that the implementation is complete?

Note that I'm not arguing that you need to have input or output by the
midterm deadline.  I'm just asking some questions to try to help you
clarify what "implementation is complete" means.  The more specific you
can be, the better we will be able to judge your ability to complete the
project.

Let me know if you have more questions.

Thanks,

Carl


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


Re: Google SoC

2017-03-30 Thread Jeffery Shivers
Hi Charles,

On Thu, Mar 30, 2017 at 10:33 AM, Winston, Charles R.
 wrote:
> The list has given me some sad trouble. I am still unable to register. I am
> certain that I am not making a mistake in typing in my email because I have
> submitted the request multiple times and have been taking to a web page that
> reads this message:
>
> [trimmed]
>
> I have checked spam folders and still have received no email. I have also
> tried this with multiple emails, again with no luck. Jeffery told me the
> server dealing with this was down. Is this still the case? Is there some
> other way to be added to the list manually? Any help would be greatly
> appreciated.

Good news! It looks like you are successfully posting to the list now.
I see your two most recent posts (the quoted one included) on the
public archives, so whatever happened right before then worked.

No servers/services were down (I speculated it could have been, but
asked and found that this was not the case), so all points to a
probably over-protective spam/quarentine situation with the university
email you are using.

-- 

Jeffery Shivers
 jefferyshivers.com
 soundcloud.com/jefferyshivers

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


Re: Google SoC

2017-03-30 Thread Winston, Charles R.
The list has given me some sad trouble. I am still unable to register. I am 
certain that I am not making a mistake in typing in my email because I have 
submitted the request multiple times and have been taking to a web page that 
reads this message:


"Your subscription request has been received, and will soon be acted upon. 
Depending on the configuration of this mailing list, your subscription request 
may have to be first confirmed by you via email, or approved by the list 
moderator. If confirmation is required, you will soon get a confirmation email 
which contains further instructions."


I have checked spam folders and still have received no email. I have also tried 
this with multiple emails, again with no luck. Jeffery told me the server 
dealing with this was down. Is this still the case? Is there some other way to 
be added to the list manually? Any help would be greatly appreciated.


Anyway, I would love for either of you to pass my draft proposal on to the 
list. It can be found here:

https://docs.google.com/document/d/1TZLsCovyvqBhahS3Vy7LJMRqyp-C8ZanHTuCOPPTNAg/edit?usp=sharing


Of course, thanks again for all the help. I welcome any and all feedback to 
improve this, and really hope to get to work on this in the summer!



Thanks,

Charles




From: Jeffery Shivers 
Sent: Wednesday, March 29, 2017 11:18:54 PM
To: Carl Sorensen; Winston, Charles R.; lilypond-devel@gnu.org
Subject: Re: Google SoC

On Wed, Mar 29, 2017 at 9:31 PM, Carl Sorensen  wrote:
>
> On 3/29/17 6:31 PM, "Winston, Charles R." 
> wrote:
>>
>>I also understand there is a period of "community bonding" for the GSoC.
>>I'd love to hear about that in more detail.
>
> After students are selected and before coding begins (from May 4 to May
> 30), students work to lay the foundation for their success.  This means
> they are involved in the development community, perhaps submitting bug
> fixes or documentation suggestions, reviewing code, and otherwise
> participating in the community.  But you don't need to wait until May 4 to
> start bonding with the LilyPond communityŠ

The GSoC website itself also has the comprehensive descriptions of
things in the timeline, rules, and other sections:
  https://summerofcode.withgoogle.com/how-it-works/#timeline

If you scroll to the bottom/footer, you'll find those and other helpful links.

Also, the last section at:
  http://lilypond.org/website/google-summer-of-code.html

--

Jeffery Shivers
 jefferyshivers.com
 soundcloud.com/jefferyshivers
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: [translations] Re: not translating a node in a file

2017-03-30 Thread Federico Bruni



Il giorno gio 30 mar 2017 alle 14:08, Francisco Vila 
 ha scritto:

2017-03-30 13:07 GMT+02:00 Federico Bruni :
 Continuous changes to Google Summer of Code node made me think 
about
 removing the translation, because maintaining the translation is 
too
 cumbersome and it's not worth (as any GSoC candidate should speak 
english).
 The problem is that I do not want to throw away all the community 
italian

 file, of course.


 When I run "make website" after applying above change I get a 404 
error

 when I try to open the italian GSoC page.
 So the italian node is not created.
 It's a bug or I'm missing something? (see patch attached if you 
want to

 try it out)

 An alternative might be moving the GSoC page in an includable file 
(in
 Documentation/included/), so we can easily include the english 
text in a

 localized website.

...
 Today I had the chance to run 'make doc' and in this case the GSoC 
page is

 generated, BUT it's all (including menu and footer) in english.

 What do you think about moving the GSoC node to 
Documentation/included?

 I may give it a try if there's no objection.


I think the @untranslated option is better because it does not mean a
change for original English authors, but otherwise I put no objection.



I would agree if:

1. menus, footer, etc. were not in english
2. it wouldn't break 'make website' (see below)


I could be wrong but make website is intended to be triggered after
any successful make doc, that's why it didn't work for you at first.




I've run 'make website' again after a successful 'make doc' (and after 
"touching" all the files in Documentation/it/web). Again no 
google-summer-of-code.it.html file generated:


$ find out-website/website/ -name google-summer-of-code*
out-website/website/google-summer-of-code.en.html
out-website/website/google-summer-of-code.de.html
out-website/website/google-summer-of-code.fr.html
out-website/website/google-summer-of-code.html
out-website/website/google-summer-of-code.es.html
out-website/website/google-summer-of-code.nl.html
out-website/website/google-summer-of-code.ja.html

I'll propose a patch to move the english node.




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


Re: Google SoC

2017-03-30 Thread Winston, Charles R.
Hi Carl,


I am at this point trying to get familiar with some of the source code and 
reading the documentation. It would be great if you could tell me about 
LilyPond's current way of representing chords. Is there any data structure at 
all that represents a chord beyond simply the notes that make it up? In what 
modules in the code is this representation defined and used? And it would be 
great if you could point me toward helpful documentation for this, and for 
anything else you deem appropriate. I appreciate the help—I'm new to LilyPond, 
and to open source projects in general, and am still trying to get a sense of 
everything.


Also, I've been having trouble with joining the mailing lists. I've followed 
the instructions to subscribe and was told I would receive conformation 
instructions, but I haven't. I understand that the servers dealing with that 
are currently down, so please excuse the fact that I'm not able to communicate 
on those lists at the moment. I would appreciate any help you could give me in 
that regard—is there another way to subscribe to the lists? I really want to 
dive right into the community.


I also understand there is a period of "community bonding" for the GSoC. I'd 
love to hear about that in more detail.


And finally, after I have the information about the chord representation and 
have studied the source code and documentation a little more thoroughly, it 
would be great if I could send you a draft of my proposal for you to look over 
and edit.



Thanks a lot for all the help,


Charles


From: Carl Sorensen 
Sent: Tuesday, March 28, 2017 4:29:06 PM
To: Winston, Charles R.
Cc: lilypond-devel@gnu.org
Subject: Re: Google SoC



On 3/28/17 2:15 PM, "Winston, Charles R." 
wrote:

>Hi Carl,
>
>
>I've thought of some basic ideas, let me know what you think.
>
>
>A basic chord data structure should include the following elements:
>- root
>- quality (major, minor, diminished, etc.)
>- extensions (2nd, 7th, 9th, 13th etc.)
>
>
>Other ideal features would be:
>- scale degree (I, ii, IV, V, etc.)
>- voicing/inversion
>- implied notes left off the chord. For example, say I want a C major
>chord, but with no fifth. Since G (the fifth) is by default included in a
>C major chord, there must be the ability to leave off the G.
>
>
>
>
>I think these features would lend themselves well to the current chord
>input modes as well as new easy and meaningful chord input modes, and
>they would also lend themselves to the current pop, jazz, and classical
>conventions of naming and characterizing
> chords.

Charles,

I think that the internal chord structure should be chosen to meet musical
needs, not to match input syntax needs.  We can adjust the input syntax as
needed.

The discussion about the chord structure should probably take place on
lilypond-user.  I'm certainly not the one who should make the decision.

Please raise the issue on lilypond-user.

Thanks,

Carl

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


Re: [translations] Re: not translating a node in a file

2017-03-30 Thread Francisco Vila
2017-03-30 13:07 GMT+02:00 Federico Bruni :
>> Continuous changes to Google Summer of Code node made me think about
>> removing the translation, because maintaining the translation is too
>> cumbersome and it's not worth (as any GSoC candidate should speak english).
>> The problem is that I do not want to throw away all the community italian
>> file, of course.

>> When I run "make website" after applying above change I get a 404 error
>> when I try to open the italian GSoC page.
>> So the italian node is not created.
>> It's a bug or I'm missing something? (see patch attached if you want to
>> try it out)
>>
>> An alternative might be moving the GSoC page in an includable file (in
>> Documentation/included/), so we can easily include the english text in a
>> localized website.
...
> Today I had the chance to run 'make doc' and in this case the GSoC page is
> generated, BUT it's all (including menu and footer) in english.
>
> What do you think about moving the GSoC node to Documentation/included?
> I may give it a try if there's no objection.

I think the @untranslated option is better because it does not mean a
change for original English authors, but otherwise I put no objection.

I could be wrong but make website is intended to be triggered after
any successful make doc, that's why it didn't work for you at first.

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

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


Re: not translating a node in a file

2017-03-30 Thread Federico Bruni



Il giorno mer 29 mar 2017 alle 18:45, Federico Bruni 
 ha scritto:

Hi translators

Continuous changes to Google Summer of Code node made me think about 
removing the translation, because maintaining the translation is too 
cumbersome and it's not worth (as any GSoC candidate should speak 
english).
The problem is that I do not want to throw away all the community 
italian file, of course.


The documentation seems to suggest that something like this:

"""
@node Google Summer of Code
@unnumberedsec Google Summer of Code
@translationof Google Summer of Code

@untranslated
"""

should load the text from the original english file into the 
localized page.

Ok, probably it's just my imagination. I've found it here:
http://lilypond.org/doc/v2.19/Documentation/contributor/documentation-translation-details#translating-the-web-site-and-other-texinfo-documentation

When I run "make website" after applying above change I get a 404 
error when I try to open the italian GSoC page.

So the italian node is not created.
It's a bug or I'm missing something? (see patch attached if you want 
to try it out)


An alternative might be moving the GSoC page in an includable file 
(in Documentation/included/), so we can easily include the english 
text in a localized website.


Thanks for any suggestion
Federico



Today I had the chance to run 'make doc' and in this case the GSoC page 
is generated, BUT it's all (including menu and footer) in english.


What do you think about moving the GSoC node to Documentation/included?
I may give it a try if there's no objection.




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


Re: Improve internal chord structure

2017-03-30 Thread Renato Fabbri
Thanks for the replies.
Today I compiled LilyPond using the repository code.
I also went through the Contributor’s Guide, which was very instructive.
I hope to send something more specifically about chords after some rest.
Best,
Renato


On Wed, Mar 29, 2017 at 8:07 PM, Carl Sorensen  wrote:

>
>
> On 3/29/17 2:13 PM, "David Kastrup"  wrote:
>
> >Carl Sorensen  writes:
> >
> >> On 3/29/17 8:57 AM, "lilypond-devel on behalf of Renato Fabbri"
> >>  >> renato.fab...@gmail.com> wrote:
> >>
> >>>Thanks for the feedback.
> >>>Yes, I should be an enrolled student by May 4.
> >>>
> >>>Could you give me examples of what you consider an internal chord
> >>>structure
> >>>(semitone counting?)?
> >> The internal chord structure is a Guile (scheme) list containing
> >>pitches,
> >> a duration, and events.
> >
> >I beg to differ.  The tangible representation we are working with is a
> >list of note events.  When this list of note events is the result of
> >chord entry, some additional information is put in to make identifying
> >root/inversion possible.
>
> I agree that your statement is more precise.  In my mind, this project is
> about deciding what additional information is necessary to give us all the
> semantics we would like to have to be able to properly deduce the
> appropriate chord name, and how this additional information should be
> stored.
>
> >Other forms may be used for the internals of various chord
> >naming/identifying routines, but they are an implementation detail.  The
> >note events are the information bottleneck that every chord is passing
> >through: if the information in there is not sufficient, it has to be
> >amended and one has to see how to get the information best into there
> >and out again.
>
> If the information in the list of note events is not sufficient, we now
> need to guess the semantics.  This GSOC project won't change that; we
> aren't proposing to improve our ability to guess the semantics.
>
> We eventually want to get to the point where when we parse something like
> e:m7.5-, we don't just get the pitches, but we get the appropriate
> semantic information to properly identify this chord in a rational chord
> naming system.  So we'd want to capture the root, the quality, the
> inversion, and whatever else needs to be captured.  Once we have that, we
> can separate the pitch identification from the naming process.  It should
> help separate things.
>
> Thanks,
>
> Carl
>
>


-- 
GNU/Linux User #479299
labmacambira.sourceforge.net
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


GSoC application deadline

2017-03-30 Thread Urs Liska
Hi all,

this is a message to all students who have expressed interest in GSoC
and LilyPond or Frescobaldi (even those who haven't engaged in further
communication recently). I send it to both mailing lists and all of you
in BCC. If you want to reply please do so to the respective lists rather
than directly. (Well, if you just want to let us know you're not
interested anymore you can do so privately as well.)

We've received many posts from interested students, a number of you have
engaged in further discussion of varying deptgh or have even laid their
hands on code, but very few have actually submitted anything on the GSoC
site. For all who are interested in participating I strongly recommend
to upload a draft proposal ASAP. Depending on the number of drafts we
will try to review them up-front and can give you recommendation where
we see the need for improvement.

Deadline for applications is Tuesday, April 3, 2017 18:00 (CEST). GSoC
deadlines are "hard" deadlines, there's nothing to be done about missed
dates. And you have to take care for yourself to upload a final version
as well, drafts will not automatically become final applications.

Be sure to review the students manual at
http://write.flossmanuals.net/gsocstudentguide/what-is-google-summer-of-code/
and make sure to get everything right.

GSoC is a competitive program, and it looks like there will be more
applications than we will be able to accept - although we have no idea
yet how many slots *we* will get from GSoC. So please try as hard as you
can to write a good proposal but also be prepared to *not* be accepted.
*If* you are not accepted this doesn't mean we don't like your proposal,
the reason can also be that there is simply another proposal for the
same project that has convinced us more, or we can't accept the project
because of our mentoring and slot resources.


# Where to apply?

LilyPond is pretty hard to find on the GSoC site (we will have to make
that clearer next year) because we're not a mentoring organization but
part of GNU. On the organizations page
https://summerofcode.withgoogle.com/organizations you'll have to find
"The GNU project" - which will only be visible when the page count in
the URL has counted up to 5, which can take a significant amount of
time. So you better go to the project page
https://summerofcode.withgoogle.com/organizations/5029441722908672/
directly.

Frescobaldi's project page is
https://summerofcode.withgoogle.com/organizations/6253554806292480/.


# Double application

Those of you who intend to apply for the Frescobaldi projects "Implement
a system to handle scores system by system", "openLilyLib user
interface" or "MusicXML export" may consider applying for both
Frescobaldi *and* LilyPond (with an identical proposal), as these can
reasonably be justified in both organizations. This may help us
distributing our mentoring and slot resources and thus increase your
chances of being accepted. Keep in mind that you may apply for up to
five GSoC projects.


Best wishes and good luck
Urs


-- 
u...@openlilylib.org
https://openlilylib.org
http://lilypondblog.org

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