Re: Adds Ferneyhough hairpins to LilyPond. (issue 7615043)

2013-03-17 Thread joseph . wakeling

On a related issue: one thing that's probably clear looking at
Ferneyhough scores is the way in which the vertical placement of hairpin
endpoints is strongly coupled with the vertical placement of dynamic
marks.

I don't think it's really appropriate to bundle all of this together
into one feature request, but it would probably be useful as a
complementary feature request to do some re-evaluation of Lilypond's
vertical placement of hairpin end-points, and whether it's possible to
automate the placement of angled hairpins so as to optimize the relative
positions of hairpin start- and endpoints and nearby dynamic marks.

N.B. this is useful for all music, not just Ferneyhough.  It's a fairly
consistent bugbear of mine that hairpin start- and endpoints are not
better placed relative to dynamic marks.

I think this has already been touched on to an extent in the discussion
above ... ?

https://codereview.appspot.com/7615043/

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


Re: Adds Ferneyhough hairpins to LilyPond. (issue 7615043)

2013-03-17 Thread joseph . wakeling

On 2013/03/17 14:37:52, thomasmorley65 wrote:

> This is doable, but I'd wait to see from someone who knows how these

things

work
> if this is actually how they are printed.
> I want to say that they are always printed with the line going up

irrespective

> of the side of the staff, but I could be wrong.



The only Ferneyhough-score I've at home prints the dynamics always

below the

system.


There are Ferneyhough scores with dynamics above the staff -- some of
the piano works (e.g. Lemma-Icon-Epigram), and some of the vocal works.
See e.g. the second movement of his 4th String Quartet which has a part
for soprano:
http://www.youtube.com/watch?v=hVaDOz7bWU0

In this you see flared hairpins above the staff, and also dynamic
brackets above the staff (e.g. at about 1:33 where there's a great long
 bracket above the soprano part).

The more general remark is that even if Ferneyhough did only place his
dynamic markings below the staff, you couldn't assume that would remain
true of all composers wanting to use Ferneyhough-like dynamic indicators
in their scores :-)

Final remark: while it's nice to see Ferneyhough getting namechecked
might it be worth naming this alteration as flared-hairpin rather than
ferneyhough-hairpin?

https://codereview.appspot.com/7615043/

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


Re: CG tweak: some extra info on make doc and doc build times. (issue 6206071)

2012-05-31 Thread joseph . wakeling

On 2012/05/31 00:01:55, dak wrote:

That's not the Google tracker issue number, but the Rietveld issue
number.



The Google tracker number would have been 2534 .


Please enter a valid google tracker issue number (or enter nothing to
create a new issue): 2534
WARNING: could not change issue labels;
please email lilypond-devel with the issue number: 2534
Tracker issue done


https://codereview.appspot.com/6206071/

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


Re: CG tweak: some extra info on make doc and doc build times. (issue 6206071)

2012-05-30 Thread joseph . wakeling

I have always been using git-cl but for all patches after the first I
got an error message after entering the google tracker issue number:

---
We were not able to associate this patch with a google tracker issue.
Please enter a valid google tracker issue number (or enter nothing to
create a new issue): 6206071
WARNING: could not change issue labels;
please email lilypond-devel with a general description of the problem
Server responded with: 404, issue 6206071 in project lilypond not found
Tracker issue done
---

As the patches did in fact upload, I didn't realize there was a problem.
:-(

Anyway, the warning is included and I can push this to a new issue if
it's needed to make sure it gets included.

https://codereview.appspot.com/6206071/

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


Re: CG tweak: some extra info on make doc and doc build times. (issue 6206071)

2012-05-30 Thread joseph . wakeling

On 2012/05/30 21:16:09, Graham Percival wrote:

The @warning{}


... I'm blind.  Give me 2 seconds to fix that.

https://codereview.appspot.com/6206071/

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


Re: CG tweak: some extra info on make doc and doc build times. (issue 6206071)

2012-05-30 Thread joseph . wakeling

On 2012/05/30 16:55:17, Graham Percival wrote:

I'm not convinced that the added text will help.  How about instead

you change

it to


... done :-)

https://codereview.appspot.com/6206071/

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


Re: CG tweak: some extra info on make doc and doc build times. (issue 6206071)

2012-05-30 Thread joseph . wakeling

Latest patches update as suggested  The build section has a link to
4.6.2 and I've slightly tweaked the language of the latter section as
well as mentioning the doc-stage-1 build option.

https://codereview.appspot.com/6206071/

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


CG tweak: some extra info on make doc and doc build times. (issue 6206071)

2012-05-16 Thread joseph . wakeling

Reviewers: ,

Message:
As per earlier discussion on devel list, this patch just adds a little
bit of extra info on the make process, noting the documentation build
commands and the possible length of build times.

Basically it's to stop other people getting worried as I did when a
single step of the doc build process seemed to have hung with no
progress.

Description:
CG tweak: some extra info on make doc and doc build times.

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

Affected files:
  M Documentation/included/compile.itexi


Index: Documentation/included/compile.itexi
diff --git a/Documentation/included/compile.itexi  
b/Documentation/included/compile.itexi
index  
e95cf2629cd8122a1f7c0c909f3f8d731d5bef0e..4b87ce1fc7602edccb32592a6aa232d62ce08b74  
100644

--- a/Documentation/included/compile.itexi
+++ b/Documentation/included/compile.itexi
@@ -456,6 +456,23 @@ targets, run:
 make help
 @end example

+For example, to build documentation, you can use
+@example
+make doc
+@end example
+
+or to build only the PDF documentation,
+
+@example
+make doc-stage-1
+@end example
+
+Documentation builds can take much longer than building LilyPond itself.
+Some individual commands issued during the make process may take as long
+as an hour to complete on older single-core machines, so don't panic if
+for a long time it looks like nothing is happening!  Be patient, and the
+build will complete.
+
 TODO: Describe what @command{make} actually does.





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


Re: CG tweak: some extra info on make doc and doc build times. (issue 6206071)

2012-05-16 Thread joseph . wakeling

On 2012/05/16 12:05:19, Graham Percival wrote:

Don't we have a different place that discusses the doc-related build

stuff?

You're right; it's in Section 4.6.2.  It's not necessarily obvious/easy
to find as Section 4.6 is simply titled 'post-compilation options'.
I'll tweak as you suggest, with links.

https://codereview.appspot.com/6206071/

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


Re: Changes not propagating when (re)building docs

2011-07-05 Thread Joseph Wakeling
On 07/05/2011 11:16 AM, Joseph Wakeling wrote:
> So, it looks like changes made to .itely files are not being picked up
> as relevant to the build process.
> 
> Any suggestions on how to fix this?

Sorry, missed a "Known Issues" note in the contributors' manual:

  touch Documentation/notation.tely

... also works.  Still, it's a hefty rebuild that results -- all the
different untouched .itely files seem to be reprocessed -- is there any
way of narrowing down the amount of stuff that needs to be rebuilt?

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


Changes not propagating when (re)building docs

2011-07-05 Thread Joseph Wakeling
Hello all,

I'm preparing a few patches for the notation manual (the section on
contemporary music I started ages back but didn't follow through on
properly), but have encountered a problem.

I've built both Lilypond and the docs successfully, and now I'm editing
the file

   Documentation/notation/contemporary.itely

Once done with changes, naturally I use

   make doc

or

   make doc-stage-1

to rebuild the docs.  However, my changes to contemporary.itely are not
picked up on.  The only way I've found to remedy this is to entirely
delete the notation manual output:

   rm -r Documentation/out-www/notation*
   rm -r Documentation/notation/out-www

and redo the make doc-stage-1 from there, which seems rather messy.

To check it wasn't just contemporary.itely, I also tried playing with a
few of the other files in the Documentation/notation/ directory, with
the same result.

So, it looks like changes made to .itely files are not being picked up
as relevant to the build process.

Any suggestions on how to fix this?  It's not such a big deal to have to
manually delete and rebuild, but it would be nice for the build system
to automatically pick up on such changes.

Thanks and best wishes,

-- Joe

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


Re: branching

2011-05-09 Thread Joseph Wakeling
On 04/29/2011 07:15 PM, Carl Sorensen wrote:
> This might work, but fails to meet the major criterion of the proposed
> branching scheme.  The proposal is to make 2.14 stable.

Yes, that's why my proposal was to apply every BUGFIX to 2.14 first, not
every patch. :-)

(Of course, by "bugfix", I mean "fix for a bug in 2.14".  Bugs in dev
only should get fixed in dev only.)

> Actually, I think your final comment is backwards.  Every patch is
> applicable to dev, but only some are applicable to 2.14.

Backwards for patches in general; not for bugfixes.

The idea is that bugfixes get applied to 2.14 first and then merged into
dev (minimal cherrypicking here); while other patches (new features
etc.) get applied to dev and never go near 2.14.

dev still gets everything, 2.14 gets just what it needs, and in the best
case scenario, you should _never have to cherrypick_, just merge from
2.14 to dev every time there is a bugfix.

Is the idea clearer now?

By the way, sorry for not following up on this sooner.  Busy time in the
office. :-(

Thanks & best wishes,

-- Joe

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


Re: branching

2011-04-29 Thread Joseph Wakeling
On 04/15/2011 07:05 PM, Carl Sorensen wrote:
> Just to be sure I understand correctly, the only things I will cherry-pick
> into stable/2.14 will be bugfixes for critical bugs.

Just as a remark, I wonder if you may find it easier to adopt an
alternative workflow:

   -- bugfix gets applied first in 2.14 branch

   -- bugfix gets merged into master dev branch

 since that probably reduces the amount of cherry-picking that's
needed -- I expect that probably almost every patch applied to 2.14 is
also applicable to dev, but not vice versa.

Best wishes,

-- Joe

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


Re: Lilypond's internal pitch representation and microtonal notation

2010-09-24 Thread Joseph Wakeling
On 09/21/2010 10:33 PM, Joseph Wakeling wrote:
> On 09/21/2010 08:13 PM, Graham Percival wrote:
>>> Does that settle the matter adequately? :-)
>>
>> No, because it's not in the issue tracker.
> 
> I'll put it there!  Just checking that the source is adequate.

Done, but could not attach the scans -- too big. :-(

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


Re: Lilypond's internal pitch representation and microtonal notation

2010-09-21 Thread Joseph Wakeling
On 09/21/2010 08:13 PM, Graham Percival wrote:
>> Does that settle the matter adequately? :-)
> 
> No, because it's not in the issue tracker.

I'll put it there!  Just checking that the source is adequate.

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


Re: Lilypond's internal pitch representation and microtonal notation

2010-09-21 Thread Joseph Wakeling
On 09/21/2010 05:28 PM, Joseph Wakeling wrote:
> Stone's guidance about the choice of accidentals is IMO something for
> composers to consider rather than Lilypond.  From a Lilypond point of
> view, the issue should simply be: the composer can have the accidentals
> s/he chooses.

... but ... thank you for uploading the page. :-)

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


Re: Lilypond's internal pitch representation and microtonal notation

2010-09-21 Thread Joseph Wakeling
On 09/21/2010 04:52 PM, Carl Sorensen wrote:
> However, I was wrong in my assumption that something about the key signature
> should determine which of the enharmonic equivalents should be used.
> Instead, it appears that the neighboring notes should govern in tonal music.
> In atonal music, it doesn't matter, except that it does in rapid passages.
> There's virtually no guidance there that I can see for nontonal music.

Stone's guidance about the choice of accidentals is IMO something for
composers to consider rather than Lilypond.  From a Lilypond point of
view, the issue should simply be: the composer can have the accidentals
s/he chooses.

> Transposition of exact quarter tones into appropriate notation is likely to
> remain a *very* tricky problem.

Why do you think so?  If you're transposing in a regular fashion (i.e.
by a certain number of semitones) you just transpose the underlying
notes and preserve the arrows.  If you want to transpose up/down by a
quarter-tone, you just add an up/down-arrow to all the accidentals that
don't already have one; all those that do, you bump them up/down to the
next 'tonal' accidental.

The only thing you have to take into account is that you almost
certainly need to convert double-sharps and flats to naturals of the
staff pitches above and below respectively.  That requirement is one
reason I've been trying to address Lilypond support for chromatic
transposition recently.

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


Re: Lilypond's internal pitch representation and microtonal notation

2010-09-21 Thread Joseph Wakeling
On 09/21/2010 04:42 PM, Han-Wen Nienhuys wrote:
> This is not the nuance implied, since by your definition,
> natural-uparrow (+1/4) and sharp-downarrow are the same, and you
> clearly want them to mean something different.

They are enharmonically the same pitch, which can be notated in two
(symbolically and semantically) different ways.

0 + 1/4 and 1/2 - 1/4 are the same if you consider only the sum, but
they're not the same if you consider the _series_.  Lots of microtonal
notations work on the basis of a superposition of ever-smaller intervals
in this way.

> What is the difference between both?

Similar to the difference between C-sharp and D-flat.

C raised by a semitone is musically not the same as D lowered by a
semitone, even though in equal-tempered tuning they correspond to the
same enharmonic pitch.

Likewise, C-natural raised by a quarter-tone is musically not the same
as C-sharp lowered by a quarter-tone, even though the resulting
frequency is the same.

> The current system satisfies these constraints obviously, but it
> possibly does not represent well various nuances of scales that may
> exist.

Exactly. :-)

Best wishes,

-- Joe

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


Re: Lilypond's internal pitch representation and microtonal notation

2010-09-21 Thread Joseph Wakeling
On 09/21/2010 02:16 PM, Hans Aberg wrote:
> Yes - accidentals do not affect the degree: they are of degree zero. One
> can add notes and intervals on this abstract level, and the degrees add
> as well. In mathematics, a function f is called a homomorphism (of
> abelian groups) when f(0) = 0, f(x + y) = f(x) + f(y), f(-x) = -f(x).
> The degree, which is the sum of the coefficients is a homomorphism.

Ahhh, NOW you are bringing the discussion into terms that I can
appreciate.  I have studied group theory, but it was 10+ years ago
without using it since, and hence my recollection is extremely flaky.
So it was difficult to work out what you were getting at with your
earlier explanations which tried to limit the use of precise
mathematical terminology.  In my case I need _more_ maths, not less,
because it helps me re-familiarize myself with the exact concepts I need
to understand your system ... :-)

Anyway, I will take the time to go over your answers properly and surely
be back with more questions.

>> ... so if we extend this vectorial representation to a 3D case for
>> quarter-tones, (x_M, x_m, x_q), (NB my q is different from yours:-)
> 
> Yes, some mathematicians do that error, too, though in print, q as a
> variable might be typeset in italic, whereas as constant in upright type.

I don't understand what you consider an error here.  I understood very
well that you were using the letter q to represent a coefficient.  I
just wanted to use q to represent a group element, so re-labelled the
coefficients of the elements M, m and q by x_M, x_m and x_q.

It may be an error to think of "vectorial representation", but ... :-P

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


Re: Lilypond's internal pitch representation and microtonal notation

2010-09-21 Thread Joseph Wakeling
On 09/20/2010 05:27 PM, Graham Percival wrote:
>> For arrowed quarter-tones the notation is described (and recommended) in
>> Kurt Stone's book "Music Notation in the Twentieth Century".
> 
> Excellent reference!  That book is frequently quoted on this list, so
> this should settle any question of "is it necessary".

I remembered that I have copies (from JSTOR) of a couple of articles
Stone wrote prior to the publication of the book, giving a very
condensed summary of the notation issues.

The attached PNG (I hope it is small enough to get through) gives the
appropriate paragraphs of that article.  The full citation is K. Stone,
Music Educators' Journal, vol. 63 no. 3 (Nov. 1976), pp. 54-61; it's
available online at:
http://www.jstor.org/stable/3395098

Unfortunately it doesn't explicitly note the enharmonic issues in the
same way as the book, but their existence is obvious given the
accidentals described.

The article adds:

Conferees of the International Conference on New Music Notation in
Ghent ... preferred this arrowed set of accidentals for two reasons:
(1) there has been increased acceptance of the arrow system among
composers, even though there is not yet a clearly discernible
preference for _any_ of the systems of adaptation shown; (2) arrows
are superior in clarity to any of the other alterations because they
are self-explanatory.  In other words, the conferees, in this case,
based their choice on statistical as well as evaluative
considerations.

Does that settle the matter adequately? :-)

Best wishes,

-- Joe
<>___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Lilypond's internal pitch representation and microtonal notation

2010-09-21 Thread Joseph Wakeling
On 09/20/2010 03:41 PM, Hans Aberg wrote:
> A sharp is M-m and a flat m-M.

If I understand right, this is a key "trick" of your system, since such
representations allow you to raise or lower the pitch without affecting
the degree.

So by extension, if we say that q is a quarter-tone, to raise or lower
by a quarter-tone would be to add (m-q) or (q-m); and to raise or lower
by 3/4-tone would be to add (M-q) or (q-M).

 but where/how in that system do we distinguish between for example
natural + 1/4 and sharp - 1/4  ?  Presumably the former is (m-q)
whereas the latter is (M-m)+(q-m) ... ?

> In the traditional typesetting, one has a minor second m and a
> major second M, so it is all combinations p m + q M, where p, q
> are integers, which can be identified with all pairs (p, q).

... so if we extend this vectorial representation to a 3D case for
quarter-tones, (x_M, x_m, x_q), (NB my q is different from yours:-) we
can think of natural+1/4 as being (0, 1, -1) while sharp-1/4 would be
given by (1, -2, 1).

Depending on the notational system desired, those could then be
represented by the same accidental (the half-sharp symbol) or different
ones (natural-with-up-arrow and sharp-with-down-arrow).

Suppose now that I wanted to extend the quarter-tone system to one
including eighth-tones (I'm thinking here of Ferneyhough's "La chûte
d'Icare" which uses the "standard" quarter-tone accidentals supported by
Lilypond plus up- and down-arrows to indicate raising or lowering by an
approximate eighth-tone).  Would I have to add an extra dimension to my
vector space,

   (x_M, x_m, x_q, x_e)

... or is there a cleverer way of dealing with this which lets you keep
only 3 dimensions?

The reason I ask is that I can't see a means of raising/lowering by an
eighth-tone without altering the degree, unless I have the possibility
to have forms (q-e) and (e-q).

... or did your term "neutral second" mean "something that does not
alter the degree by definition"?

Incidentally, if I understand right I think your system offers a way of
separating out the definitions of staff pitches and accidentals, since
one can define the former merely in terms of degree values, while the
latter can be defined independently in terms of different zero-degree
"vectors"; although I wonder whether it might be better from a
representational view to think of maps rather than vectors, e.g.

"Major second" -> 0
"minor second" -> 1
"quarter-tone" -> -1

for quarter-sharp, since this kind of representation allows you to
maintain different "neutral seconds" without risk of overlap.

(Forgive me if this kind of stuff is dealt with in your code; I haven't
looked, because my Haskell knowledge is extremely basic and these days
are extremely busy in my day job...:-)

Thanks & best wishes,

-- Joe

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


Re: Lilypond's internal pitch representation and microtonal notation

2010-09-20 Thread Joseph Wakeling
On 09/20/2010 05:27 PM, Graham Percival wrote:
>> For arrowed quarter-tones the notation is described (and recommended) in
>> Kurt Stone's book "Music Notation in the Twentieth Century".
> 
> Excellent reference!  That book is frequently quoted on this list, so
> this should settle any question of "is it necessary".

Yes. :-)  He also explicitly highlights the enharmonic equivalence issue
we discussed.

> One scan should be fine.  The first step is to convince people that
> the representation needs to be extended, and Stone should be
> sufficient for that.  The next step is for somebody actually code it.

Sure.  I'll try and follow up with Hans separately, just to explore his
code and ideas and see if they might be useful here.

Thanks & best wishes,

-- Joe

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


Re: Lilypond's internal pitch representation and microtonal notation

2010-09-20 Thread Joseph Wakeling
On 09/20/2010 03:22 PM, Graham Percival wrote:
> Hmm.  This is similar to the distinction between cis and des, correct?

Yes, exactly, it's an enharmonic equivalence.

>  Am I also correct in assuming that d-3/4 is not sufficient?  Also, is
> there a frequency difference between c+1/4 and cis-1/4 ?  Or is this
> purely a difference in graphical notation?

Indeed, d-3/4 is not sufficient [1]: in arrow quarter-tone notation you
want to be able to indicate quarter-tone raising or lowering of any of
the 12 standard tones.

There should be no frequency difference between c+1/4 and cis-1/4.  Some
composers do use the arrow notation to indicate approximate
quarter-tones, but many assume that the quarter-tones are exact.

I did prepare a "cheat" implementation of quarter-tone arrow notation
where there were subtle pitch differences (c+999/4000, cis-999/4000).
This kind of works but it generates all sorts of nightmares with
transposition and means having to write out a HUGE accidentals list (see
discussion in Issue 694).

> I believe that this is a valid feature request -- a single
> "alteration" value is not sufficient to distinguish between c+1/4 and
> cis-1/4.

Yes -- but it goes beyond arrowed quarter-tone notation.  I was a bit
long-winded and abstract because I wanted to stress that it was a
general problem for many different microtonal notations, rather than
just arrow quarter-tones.

> As a general rule -- please take the time to prepare a tiny .ly
> example showing what you wanted to do.  It took me about 10 minutes to
> read your email, think about it, and prepare a good tiny example.
> Since you're more familiar with this material, you probably could have
> made the example in 2-3 minutes.  Having an example makes the
> difference between a developer understanding the issue in a matter of
> 30 seconds vs. 3 minutes, and when we have over 400 open
> bugs+enhancement requests, that difference is significant.

Yes, I'll try and do that in future.

> 2) make a scan of some published music that uses this notation.  This
> will immediately silence anybody who wants to argue (as I somewhat
> did) that a single fraction is sufficient to show any microtonal
> notation.

For arrowed quarter-tones the notation is described (and recommended) in
Kurt Stone's book "Music Notation in the Twentieth Century".  I don't
own a scanner :-( but will try and take a copy of the relevant page
(it's pp.67-70 IIRC; I was looking at it last night).

There are various other notations to consider that have a similar
character.  I'll try and prepare a variety of representative examples.

> 3) send it the bug list so that it gets added to the tracker.
> 
> 4) wait.  Maybe offer a bounty to entice somebody to work on it.

Hans Aberg's work looks promising.  I don't understand it properly yet,
but I'll try and prepare a set of examples to test whether it could
provide a solution.

Best wishes,

-- Joe

[1] There used to be a "how to do arrow quarter-tone notation" example
somewhere in the docs, which "solved" the problem by simply not having a
cis-1/4 symbol.  That was what got me thinking about the whole issue in
the first place.

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


Re: Lilypond's internal pitch representation and microtonal notation

2010-09-20 Thread Joseph Wakeling
On 09/20/2010 12:23 PM, Hans Aberg wrote:
>> I saw the post but was not sure quite how to interpret it.
> 
> I expected someone to ask for details. In the past, I discussed part of
> it with Graham Breed, who did some LilyPond microtonal implementation,
> but perhaps he is not working on it anymore.

I get the feeling activity is rather focused right now on getting 2.14
released ... :-)

I also discussed microtonal stuff with Graham Breed a while back, but we
weren't really able to bring anything to a satisfactory conclusion.

> If you want, I can explain it - the algorithm itself is very simple.
> Writing up it in math style will probably not make it more accessible.

It would make it clearer to me, surely.  What I'd like to see is for it
to be written up in a structured way along the lines of (i) this is the
problem that needs solving, (ii) this is the approach the algorithm
takes to solve the problem, (iii) this is the algorithm.

>> I did wonder if the fact it was Haskell code was part of the reason for
>> the lack of response.  I have a lot of admiration for Haskell but I can
>> see there being problems extending Lilypond with yet another language.
> 
> It should not be difficult to translate into Scheme - no specific
> Haskell features are used, only better syntax and type system to help
> structuring the code. It is just a page.
> 
> The difficulty is to figure out to put it into LilyPond.

Indeed, it sounds like a pretty fundamental
major-version-number-changing kind of modification.

As a related issue, have you considered how (different kinds of)
transposition would be handled in your pitch scheme?

Best wishes,

-- Joe

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


Re: Lilypond's internal pitch representation and microtonal notation

2010-09-20 Thread Joseph Wakeling
On 09/20/2010 10:47 AM, Hans Aberg wrote:
> On 20 Sep 2010, at 00:50, Joseph Wakeling wrote:
> 
>> Hence why I say that the issue of effective microtonal support still
>> requires action at the code level, and is not simply a matter of better
>> documentation ... :-(
> 
> I made a post about this issue last week, but there were no responses.
> 
> http://lists.gnu.org/archive/html/lilypond-devel/2010-09/msg00138.html

I saw the post but was not sure quite how to interpret it.  Could you
write up some more extensive notes on the algorithm and its aims and
possibilities?

I did wonder if the fact it was Haskell code was part of the reason for
the lack of response.  I have a lot of admiration for Haskell but I can
see there being problems extending Lilypond with yet another language.

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


Lilypond's internal pitch representation and microtonal notation

2010-09-20 Thread Joseph Wakeling
Hello all,

This email is an attempt to clarify some outstanding issues regarding
support for microtonal notation in Lilypond.  It's being written in
response to recent discussion with Graham Percival on Lilypond Issue
694: http://code.google.com/p/lilypond/issues/detail?id=694

To begin with, let's review how Lilypond represents pitch.  A pitch is
represented by a triple of numbers (octave, note, alteration) where
"octave" is an integer, "note" is an integer in the range 0 to 6
(corresponding to note names C D E F G A B) and "alteration" is a
continuous-valued variable whose unit is the whole tone.

With these three values Lilypond is able to represent any pitch in a
continuous frequency spectrum.

>From a notational perspective, the first two numbers are used to
calculate the vertical staff position of the notehead, while the value
of the alteration is used to determine the accidental: e.g. (1,1,-1/2)
corresponds to the D-flat a semitone above middle C.

*A key assumption of this approach is that there is a one-to-one
correspondence between accidental and alteration value.*  This clearly
holds for conventional Western 12-tone notation.  However, it does _not_
hold for many _microtonal_ notations.

For example, if we are using the very common 'arrow' notation for
quarter-tones, there are two distinct accidentals that can be used to
represent the alteration +1/4 (i.e. quarter-tone-sharp): the first is a
natural sign with an up arrow, the second is a sharp sign with a down
arrow.  There is currently no effective, well-defined way to indicate
which of the two is desired at any given moment.

The arrow quarter-tone notation is just one of a whole variety of
microtonal notations which operate not on the basis of single symbols
per alteration, but on the basis of asuperposition of a successive
hierarchy of symbols, each corresponding to smaller and smaller shadings
up or down of the pitch.  For example:

   sharp/flat  +  up/down arrow  +  plus/minus
+/- 1/2  +/- 1/4 +/- 1/8

Lilypond's consideration of pitch alteration as a single number makes it
very difficult to adequately represent such hierarchical
pitch-alterations, and hence their corresponding notations.

Hence why I say that the issue of effective microtonal support still
requires action at the code level, and is not simply a matter of better
documentation ... :-(

Best wishes,

-- Joe

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


Music properties and naturalization/transposition style

2010-08-28 Thread Joseph Wakeling
Hello all,

A few queries related to my ongoing project to implement customizable
transposition/naturalization styles.

It was suggested to me to use music properties to set the rules.  I've
come to the conclusion that this may not be the right approach.  Why?
Because as far as I can see music properties work via an "outmost wins"
hierarchy: if I have,

  \withMusicProperty #'some-property = #1 {
  \withMusicProperty #'some-property = #2 {
  \withMusicProperty #'some-property = #3 {
  \myMusic
  }
  }
  }

... then #'some-property will have a value of 1 for \myMusic.  By
contrast I think that a naturalization style needs to work like the
\relative command -- it should be the _innermost_ one that matters.

Specifically, the naturalization style should have the following
characteristics:

   (i) possible to set a default value at Score, StaffGroup, Staff
   and Voice level, with innermost overriding outermost [sample
   use-case: in general a score will have a default style, but
   individual instruments (e.g. harp) may have special rules]

  (ii) possible to alter within the music, with innermost overriding
   outermost [sample use case: whatever the character of the piece,
   individual passages may need to be designated tonal, chromatic,
   or whatever else suits]

 (iii) ideally, possible to override in a manner that _ignores_ any
   inner modifications [sample use case: an instrument like the
   harp, where you need to be able to guarantee that the music
   will be notated according to certain rules]

  (iv) an option to employ naturalization _only_ for music that has
   been passed through the "transpose" function, or alternatively
   to apply to _all_ music where a rule is set -- so it can be
   alternatively a transposition style _or_ a means of enforcing a
   general notation style.  Again, this property can be set at
   Score, StaffGroup, Staff or Voice level.

Sample pseudo-Lilypond of use, excluding the 3rd case which I'm not sure
how best to notate.

  \new Score \with {
% this setting turns naturalization "off",
% i.e. uses Lilypond's defaults.
naturalizationStyle = ##f

% this setting determines whether naturalization
% is applied to all music (#f) or just transposed
% music (#t).  By default it is #t.
naturalizeTransposedOnly = ##f
  } {
<<
  \new Staff = "Clarinet" \with {
naturalizationStyle = #'chromatic
  } {
\transpose a c' {
  \someMusic
  \naturalize #'tonal {
\someTonalMusic
  }
}
  }

  \new PianoStaff = "Harp" \with {
naturalization = #'harp
  } {
\harpMusic
  }

  \new Staff = "Voices" {
<<
  \new Voice = "Soprano" \with {
naturalization = #'chromatic
  } {
\chromaticVocalPart
  }

  \new Voice = "Alto" {
\defaultVocalPart
  }
>>
  }
>>
  }

What I'd like: first, thoughts on the appropriateness and feasibility of
the above notation and "conceptual" model of the naturalize functionality.

Second, advice on implementing it, since I don't think music properties
are the way to go.  In particular, where should naturalization be called
if it's aimed to apply to _all_ notes?  (It's clear where it should be
called if it's to apply only to transposed music.)

Thanks in advance,

-- Joe


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


Re: Setting the value of a music property

2010-07-25 Thread Joseph Wakeling
On 07/25/2010 10:14 PM, Neil Puttock wrote:
> The music property must be set after calling the naturalizeMusic
> function, otherwise it's too late:

Brilliant, that works, thank you! :-)

One small point of clarification -- do I have to put brackets {} around
the music that a \withMusicProperty statement applies to, or does it
apply the property to everything that follows?

It makes no difference in my sample .ly file where there are already
brackets around everything, but it makes a difference when I write all
this up ... :-)

I'll probably be a bit silent on this in the next few days because work
is busy, but next steps are to try and integrate this functionality into
the C++ in lily/music.cc.  Something along the lines of (in pseudo-C++):


if('naturalize-style)  // i.e. if it's not the empty list #f
  {
run_pitches_through_scheme_function(naturalize-pitch);
  }

... anyway, will let you all know how it goes, when (if) it goes... :-)

Thanks again & best wishes,

-- Joe

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


Re: Setting the value of a music property

2010-07-25 Thread Joseph Wakeling
On 07/25/2010 09:49 PM, Joseph Wakeling wrote:
> I don't know how that typo got into my email, but it is _not_ what I
> have in my Lilypond input file.

For reference, I've attached a complete .ly file.

naturalizeMusic =
#(define-music-function (parser location m)
   (ly:music?)
   (naturalize m (ly:music-property m 'naturalize-style)))

microphrase = \relative c'' { geses4 geseh ges geh g gih gis gisih gisis }

\score {
  \new Staff {
\set Staff.extraNatural = ##f
\time 9/4
\withMusicProperty #'naturalize-style #(list (cons >= 1) (cons <= -1) (cons 
>= SHARP) (cons <= FLAT))
\naturalizeMusic { \microphrase }
  }
  \layout { }
}

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


Re: Setting the value of a music property

2010-07-25 Thread Joseph Wakeling
On 07/25/2010 08:49 PM, Neil Puttock wrote:
> This function has an arg called `m', but you're trying to access a
> property from `music'.  This doesn't cause an `unbound variable' error
> since you have the following identifier (whose music has no
> 'naturalize-style setting):

I don't know how that typo got into my email, but it is _not_ what I
have in my Lilypond input file.  This is:

   naturalizeMusic =
   #(define-music-function (parser location m)
  (ly:music?)
  (naturalize m (ly:music-property m 'naturalize-style)))

... which still generates the error mentioned. :-(

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


Setting the value of a music property

2010-07-25 Thread Joseph Wakeling
Dear everyone,

A possibly dumb question -- I'm having some difficulty working out how
to set the value of a given music property.

Here's a little piece of Lilypond Scheme adapted from the
naturalizeMusic.ly snippet:

naturalizeMusic =
#(define-music-function (parser location m)
   (ly:music?)
   (naturalize m (ly:music-property music 'naturalize-style)))

Now, naturalize-style I've defined in scm/define-music-properties.scm:

--
diff --git a/scm/define-music-properties.scm
b/scm/define-music-properties.scm
index 2af8f92..6709154 100644
--- a/scm/define-music-properties.scm
+++ b/scm/define-music-properties.scm
@@ -106,6 +106,7 @@ whether to allow, forbid or force a line break.")
  (metronome-count ,number? "How many beats in a minute?")

  (name ,symbol? "Name of this music object.")
+ (naturalize-style ,list? "The rules for what pitch-alterations are
permissible.")
  (no-continuation ,boolean? "If set, disallow continuation lines.")
  (numerator ,integer? "Numerator of a time signature.")
--

... but when I try some Lilypond code along the following lines,

> music = \relative c' { c4 d e g }
> 
> \score {
>   \new Staff {
> \set Staff.extraNatural = ##f
> \withMusicProperty #'naturalize-style #(list (cons >= 1) (cons <= -1) 
> (cons >= SHARP) (cons <= FLAT))
> \naturalizeMusic \transpose c ais { \music }
>   }
>   \layout { }
> }

... I get an error:

> Parsing...code/lily/out/share/lilypond/current/scm/naturalize.scm:10:33: In 
> procedure list-ref in expression (list-ref pitch-limits 0):
> code/lily/out/share/lilypond/current/scm/naturalize.scm:10:33: Argument 2 out 
> of range: 0

... which suggests that 'naturalize-style is being taken as empty by the
ly:music-property function.  Giving it a default value equal to an
actual list,

> naturalizeMusic =
> #(define-music-function (parser location m)
>(ly:music?)
>(naturalize m (ly:music-property music 'naturalize-style (list (cons >= 1) 
> (cons <= -1) (cons >= SHARP) (cons <= FLAT)

... means it parses without error, so it looks like the
ly:music-property function is currently just using the default value
given, and does not appreciate the 'naturalize-style property as already
having a set value.

So, the question comes down to, what am I doing wrong in trying to set
the 'naturalize-style property of the music?  Putting brackets {} round
the music to which the \withMusicProperty statement should apply doesn't
help.

I tried more directly using the ly:music-set-property! function, but
could not work it out. :-(

Can anyone advise?

Thanks & best wishes,

-- Joe


P.S. naturalize.scm is not really relevant to this question (I think),
but just in case, I've attached it.

(define (naturalize-limit lim)
  (define (limit a)
((car lim) a (cdr lim)))
  limit)

(define-public (naturalize-pitch p pitch-limits)
  (let ((o (ly:pitch-octave p))
(n (ly:pitch-notename p))
(a (ly:pitch-alteration p))
(high (naturalize-limit (list-ref pitch-limits 0)))
(low (naturalize-limit (list-ref pitch-limits 1)))
(higheb (naturalize-limit (list-ref pitch-limits 2)))
(lowcf (naturalize-limit (list-ref pitch-limits 3
(do ((aa 0))
((= aa a) (ly:make-pitch o n a))
  (set! aa a)
  (cond
   ((and (higheb a) (or (eq? n 2) (eq? n 6)))
(set! a (- a (/ 1 2)))
(set! n (+ n 1)))
   ((and (lowcf a) (or (eq? n 0) (eq? n 3)))
(set! a (+ a (/ 1 2)))
(set! n (- n 1
  (cond
   ((high a) (set! a (- a 1)) (set! n (+ n 1)))
   ((low a) (set! a (+ a 1)) (set! n (- n 1
  (if (< n 0) (begin (set! o (- o 1)) (set! n (+ n 7
  (if (> n 6) (begin (set! o (+ o 1)) (set! n (- n 7)))

(define-public (naturalize music pitch-limits)
  (let ((es (ly:music-property music 'elements))
(e (ly:music-property music 'element))
(p (ly:music-property music 'pitch)))
(if (pair? es)
(ly:music-set-property!
 music 'elements
 (map (lambda (x) (naturalize x pitch-limits)) es)))
(if (ly:music? e)
(ly:music-set-property!
 music 'element
 (naturalize e pitch-limits)))
(if (ly:pitch? p)
(begin
  (set! p (naturalize-pitch p pitch-limits))
  (ly:music-set-property! music 'pitch p)))
music))
___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Chromatic transposition -- a very small starting step

2010-07-11 Thread Joseph Wakeling
On 07/10/2010 12:25 PM, Joseph Wakeling wrote:
> On second thoughts, it seems like transposition constraints for the
> whole of LP could be set by four naturalize-limits: upper and lower
> limits respectively for c, e, f, b; and upper and lower limits for
> everything else.

OK, done.  The attached example now contains a "complete"
naturalize-pitch which allows the user to define the too-high and
too-low rules for e, b and c, f respectively, as well as for the rest of
the notes.

This allows the definition of a "naturalizeMusicTonal" expression which
seems to leave properly-transposed stuff (by Lilypond's defaults) untouched.

The aim would be to allow the user to define custom naturalization rules
alongside defaults, e.g:

\withMusicProperty #'naturalize = ##f
% don't employ naturalization, use Lilypond's default
% functionality

\withMusicProperty #'naturalize = #'chromatic
% typical naturalize-music function

\withMusicProperty #'naturalize = #'harp
% naturalize with nothing > 1/2-tone

\withMusicProperty #'naturalize = #'tonal
% superfluous since Lilypond 2.13.14+ already handles this,
% but if the user wants to be sure ... :-)

\withMusicProperty #'naturalize =
  #((naturalize-limit >= 1) (naturalize-limit < (/ -1 2))
(naturalize-limit >= (/ 1 2)) (naturalize-limit < (/ -1 2)))
% custom choice of user (my notation may be wrong here, but it
% gives the idea of what the user could do).  I see why Lisp is
% sometimes referred to as "Lost in sodding parentheses" ... !

Note that the naturalization process could be employed in
transposition_mutable() or it could be employed after transposition (if
any) has been carried out, so the naturalization rules could be used to
enforce style choices anywhere in the composition.

e.g.

\naturalizeChromatic
...
bes8 \naturalizeOff ces   % I really, really want this c-flat.
\naturalizeOn   % default option, same as \naturalizeChromatic

There could even be two different music properties (#'naturalize or
#'transposition-style?) depending on at what stage one wishes to apply
naturalization; or with warnings if untransposed music is nevertheless
altered by the naturalization process.

Are there any other thoughts for what more needs to be done with the
naturalize-pitch function itself?  Or is it good to go in terms of
hooking into Lilypond ... ?

Thanks & best wishes,

-- Joe
#(define (naturalize-limit lim val)
   (define (limit a)
 (lim a val))
   limit)

#(define (naturalize-pitch p high low higheb lowcf)
   (let ((o (ly:pitch-octave p))
 (n (ly:pitch-notename p))
 (a (ly:pitch-alteration p)))
 (do ((aa 0))
 ((= aa a) (ly:make-pitch o n a))
   (set! aa a)
   (cond
((and (higheb a) (or (eq? n 2) (eq? n 6)))
 (set! a (- a (/ 1 2)))
 (set! n (+ n 1)))
((and (lowcf a) (or (eq? n 0) (eq? n 3)))
 (set! a (+ a (/ 1 2)))
 (set! n (- n 1
   (cond
((high a) (set! a (- a 1)) (set! n (+ n 1)))
((low a) (set! a (+ a 1)) (set! n (- n 1
   (if (< n 0) (begin (set! o (- o 1)) (set! n (+ n 7
   (if (> n 6) (begin (set! o (+ o 1)) (set! n (- n 7)))

#(define (naturalize music high low higheb lowcf)
   (let ((es (ly:music-property music 'elements))
 (e (ly:music-property music 'element))
 (p (ly:music-property music 'pitch)))
 (if (pair? es)
 (ly:music-set-property!
  music 'elements
  (map (lambda (x) (naturalize x high low higheb lowcf)) es)))
 (if (ly:music? e)
 (ly:music-set-property!
  music 'element
  (naturalize e high low higheb lowcf)))
 (if (ly:pitch? p)
 (begin
   (set! p (naturalize-pitch p high low higheb lowcf))
   (ly:music-set-property! music 'pitch p)))
 music))

naturalizeMusic =
#(define-music-function (parser location m)
   (ly:music?)
   (naturalize m (naturalize-limit >= 1)
 (naturalize-limit <= -1)
 (naturalize-limit >= (/ 1 2))
 (naturalize-limit <= (/ -1 2

naturalizeMusicHarp =
#(define-music-function (parser location m)
   (ly:music?)
   (naturalize m (naturalize-limit > (/ 1 2))
 (naturalize-limit < (/ -1 2))
 (naturalize-limit >= (/ 1 2))
 (naturalize-limit <= (/ -1 2

naturalizeMusicTonal =
#(define-music-function (parser location m)
   (ly:music?)
   (naturalize m (naturalize-limit > 1)
 (naturalize-limit < -1)
 (naturalize-limit > (/ 1 2))
 (naturalize-limit < (/ -1 2

music = \relative c' { c4 d e g }
microphrase = \relative c'&#

Re: Chromatic transposition -- a very small starting step

2010-07-10 Thread Joseph Wakeling
On 07/10/2010 12:16 PM, Joseph Wakeling wrote:
> In principle I can also use these to define custom cases for the notes
> c, e, f, b as well; not sure if I should, since the whole point of the
> naturalizeMusic function is to kill things like c-flats and e-sharps,
> and tonal transposition is already taken care of by Lilypond's default
> options.

On second thoughts, it seems like transposition constraints for the
whole of LP could be set by four naturalize-limits: upper and lower
limits respectively for c, e, f, b; and upper and lower limits for
everything else.

so

(naturalize-limit > 1)
(naturalize-limit < -1)
(naturalize-limit > (/ 1 2))
(naturalize-limit < (/ -1 2))

should cover regular tonal transposition; make it >= and <= to get my
naturalizeMusic function.

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


Re: Chromatic transposition -- a very small starting step

2010-07-10 Thread Joseph Wakeling
On 07/09/2010 10:34 PM, Neil Puttock wrote:
> Sounds good to me.

So, here we go ... (faster to achieve than I expected, thanks to a
conversation with a friend who is Scheme-experienced).

I've defined a Scheme function "naturalize-limit" which can be used to
define limits for different cases, and given two examples -- one where
the maximum alteration must be less than a whole tone, and one where the
maximum alteration must be less than or equal to 1/2-tone (the old
naturalizeMusic).

In principle I can also use these to define custom cases for the notes
c, e, f, b as well; not sure if I should, since the whole point of the
naturalizeMusic function is to kill things like c-flats and e-sharps,
and tonal transposition is already taken care of by Lilypond's default
options.

(Other possible improvements -- getting rid of the (set! ...) functions?
 My Schemer friend laughed at these...:-)

Next step, hooking this into the transpose_mutable() function... :-)
#(define (naturalize-limit lim val)
   (define (limit a)
 (lim a val))
   limit)

#(define (naturalize-pitch p high low)
   (let ((o (ly:pitch-octave p))
 (n (ly:pitch-notename p))
 (a (ly:pitch-alteration p)))
 (do ((aa 0))
 ((= aa a) (ly:make-pitch o n a))
   (set! aa a)
   (cond
((and (>= a (/ 1 2)) (or (eq? n 2) (eq? n 6)))
 (set! a (- a (/ 1 2)))
 (set! n (+ n 1)))
((and (<= a (/ -1 2)) (or (eq? n 0) (eq? n 3)))
 (set! a (+ a (/ 1 2)))
 (set! n (- n 1
   (cond
((high a) (set! a (- a 1)) (set! n (+ n 1)))
((low a) (set! a (+ a 1)) (set! n (- n 1
   (if (< n 0) (begin (set! o (- o 1)) (set! n (+ n 7
   (if (> n 6) (begin (set! o (+ o 1)) (set! n (- n 7)))

#(define (naturalize music high low)
   (let ((es (ly:music-property music 'elements))
 (e (ly:music-property music 'element))
 (p (ly:music-property music 'pitch)))
 (if (pair? es)
 (ly:music-set-property!
  music 'elements
  (map (lambda (x) (naturalize x high low)) es)))
 (if (ly:music? e)
 (ly:music-set-property!
  music 'element
  (naturalize e high low)))
 (if (ly:pitch? p)
 (begin
   (set! p (naturalize-pitch p high low))
   (ly:music-set-property! music 'pitch p)))
 music))

naturalizeMusic =
#(define-music-function (parser location m)
   (ly:music?)
   (naturalize m (naturalize-limit >= 1) (naturalize-limit <= -1)))

naturalizeMusicHarp =
#(define-music-function (parser location m)
   (ly:music?)
   (naturalize m (naturalize-limit > (/ 1 2)) (naturalize-limit < (/ -1 2

music = \relative c' { c4 d e g }
microphrase = \relative c'' { geses4 geseh ges geh g gih gis gisih gisis }

\score {
  \new Staff {
\set Staff.extraNatural = ##f
\transpose c ais { \music }
\naturalizeMusic \transpose c ais { \music }
\transpose c deses { \music }
\naturalizeMusic \transpose c deses { \music }
\bar "||"
\naturalizeMusicHarp \transpose c ais { \music }
\naturalizeMusicHarp \transpose c deses { \music }
\bar "||"
\break

\time 9/4
\microphrase
\bar ":"
\naturalizeMusic { \microphrase }
\bar ":"
\naturalizeMusicHarp { \microphrase }
\break

\transpose c ais { \microphrase }
\bar ":"
\naturalizeMusic \transpose c ais { \microphrase }
\bar ":"
\naturalizeMusicHarp \transpose c ais { \microphrase }
\break

\transpose c deses { \microphrase }
\bar ":"
\naturalizeMusic \transpose c deses { \microphrase }
\bar ":"
\naturalizeMusicHarp \transpose c deses { \microphrase }
\break

\transpose c cih { \microphrase }
\bar ":"
\naturalizeMusic \transpose c cih { \microphrase }
\bar ":"
\naturalizeMusicHarp \transpose c cih { \microphrase }
  }
  \layout { }
}

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


Re: Chromatic transposition -- a very small starting step

2010-07-09 Thread Joseph Wakeling
Neil -- thanks ever so much for the detailed explanations.

> Take a look at lily/music.cc to see where the transposition takes place.

The transpose_mutable() function seems to be where it's at ... :-)

I note the following lines which are surely responsible for cleaning up
anything larger than a double flat:

  if (transposed.get_alteration ().abs () > Rational (1,1))
{
  string delta_str;
  if (delta.get_alteration ().abs () > Rational (1, 1))
delta_str = (delta.normalized ().to_string ()
 + " " + _ ("(normalized pitch)"));
  else
delta_str = delta.to_string ();

  warning (_f ("Transposing %s by %s makes alteration
   larger than double",
   p->to_string (), delta_str));
  transposed = transposed.normalized ();
}

So, thinking about the way to implement the various chromatic
transpositions, what seems natural is that once new_val has been
generated in the transpose_mutable() function, to run through one of the
naturalize-pitch Scheme functions (or perhaps a C++ version of it).

Anyway, first port of call, I'm going to try and implement those toohigh
and toolow options for the naturalize-pitch Scheme function...

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


Re: Chromatic transposition -- a very small starting step

2010-07-08 Thread Joseph Wakeling
On 07/09/2010 12:09 AM, Neil Puttock wrote:
> That sounds like a useful enhancement, except that it would be a music
> property rather than a context property, since transposition happens
> before translation.

Can you explain more precisely ... ?  This seems like something I should
understand very well in order to provide an effective solution.

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


Re: Chromatic transposition -- a very small starting step

2010-07-08 Thread Joseph Wakeling
On 07/08/2010 10:25 PM, Neil Puttock wrote:
> On 8 July 2010 19:47, Joseph Wakeling  wrote:
> 
>>(Example: take the music of bb. 9-10 in the sample music, and
>>put it through the _original_ naturalizeMusic function.  You get
>>left with a g-double-flat instead of an f-natural.)
> 
> You're using 2.12, I assume?

Yup.

> Since 2.13.14, transpositions greater than a double are normalized
> automatically, so the original \naturalizeMusic also produces an f
> natural here (see attached output using latest git).

Hah!  I've not kept up, I missed that being introduced ... :-P

('original' and 'revised' refer to the original and my version of
naturalizeMusic?)

So ... other than that it might be nice to have the snippet for 2.12, is
there any contribution that I can meaningfully make to 2.13 with this?
The ensuring-convergence-of-naturalization seems superfluous now, but
the variable determination of maximum alteration might be worthwhile.

The reason I was working on this was with the longer-term aim of being
able to have an option to set transposition style in music:

   \set Staff.transpositionStyle = #'chromatic
   % what follows will be transposed in chromatic fashion

   \set Staff.transpositionStyle = #'tonal
   % tonal transposition

   \set Staff.transpositionStyle = #'chromatic-harp
   % chromatic transposition tailored for harp, so
   % no alterations of > 1/2-tone

In any case, I should clearly update to 2.13.x before making further
revisions ...

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


Chromatic transposition -- a very small starting step

2010-07-08 Thread Joseph Wakeling
Hello all,

As per earlier discussion on the -user list:
http://www.mail-archive.com/lilypond-u...@gnu.org/msg51183.html

... I finally managed to put some time and mental energy towards
chromatic transposition, in particular, the naturalizeMusic function
from the LSR.

I've attached a draft version that makes two changes to the original:

(1) it takes out the original's focus on quarter-tones as the
units of alteration, and changes the conditions for rewriting
so that it will let pass any alteration less than a whole tone
(so e.g. 3/4-flats and sharps will not be rewritten; but see
below for caveat ...)

(2) it introduces a (do ...) loop to make sure that the process of
naturalization converges.  This way you don't get accidental
(pun intended:-) double-flats hanging around due to weird
transpositions.

(Example: take the music of bb. 9-10 in the sample music, and
put it through the _original_ naturalizeMusic function.  You get
left with a g-double-flat instead of an f-natural.)

What I still would like to do is make optional the question of the
largest alteration permitted.  See lines 15--17 of the code:

 (cond
  ((>= a 1) (set! a (- a 1)) (set! n (+ n 1)))
  ((<= a -1) (set! a (+ a 1)) (set! n (- n 1

In the original naturalizeMusic function, these conditional statements
were the equivalent of (> a (/ 1 2)) and (< a (/ -1 2)), which rewrote
any alteration larger than a semitone.

As Hans Aberg pointed out, this can be important for e.g. harp music
where there is a strict limit of +/- 1/2-tone on note alterations.

The best way to achieve this seems to be to make those conditions
variables in the function definition, something like,

 (define (naturalize-pitch p toohigh toolow)

 ...

 (cond
  ((toohigh a) (set! a (- a 1)) (set! n (+ n 1)))
  ((toolow a) (set! a (+ a 1)) (set! n (- n 1

... with toohigh or toolow being defined to give both a predicate (>,
>=, <, <=) and a value (1, -1, (/ 1 2), (/ -1 2) ...)

I'm shaky on how to define toohigh or twolow, though (not so much a
schemer as a meddler): can someone advise?

Thanks & best wishes,

-- Joe

#(define (naturalize-pitch p)
   (let ((o (ly:pitch-octave p))
 (n (ly:pitch-notename p))
 (a (ly:pitch-alteration p)))
 (do ((aa 0))
 ((= aa a) (ly:make-pitch o n a))
 (set! aa a)
 (cond
  ((and (>= a (/ 1 2)) (or (eq? n 2) (eq? n 6)))
   (set! a (- a (/ 1 2)))
   (set! n (+ n 1)))
  ((and (<= a (/ -1 2)) (or (eq? n 0) (eq? n 3)))
   (set! a (+ a (/ 1 2)))
   (set! n (- n 1
 (cond
  ((>= a 1) (set! a (- a 1)) (set! n (+ n 1)))
  ((<= a -1) (set! a (+ a 1)) (set! n (- n 1
 (if (< n 0) (begin (set! o (- o 1)) (set! n (+ n 7
 (if (> n 6) (begin (set! o (+ o 1)) (set! n (- n 7)))

#(define (naturalize music)
   (let ((es (ly:music-property music 'elements))
 (e (ly:music-property music 'element))
 (p (ly:music-property music 'pitch)))
 (if (pair? es)
 (ly:music-set-property!
  music 'elements
  (map (lambda (x) (naturalize x)) es)))
 (if (ly:music? e)
 (ly:music-set-property!
  music 'element
  (naturalize e)))
 (if (ly:pitch? p)
 (begin
   (set! p (naturalize-pitch p))
   (ly:music-set-property! music 'pitch p)))
 music))

naturalizeMusic =
#(define-music-function (parser location m)
   (ly:music?)
   (naturalize m))

music = \relative c' { c4 d e g }
microphrase = \relative c'' { geses4 geseh ges geh g gih gis gisih gisis }

\score {
  \new Staff {
\set Staff.extraNatural = ##f
\transpose c ais { \music }
\naturalizeMusic \transpose c ais { \music }
\transpose c deses { \music }
\naturalizeMusic \transpose c deses { \music }
\bar "||"
\break

\time 9/4
\microphrase
\bar ":"
\naturalizeMusic { \microphrase }
\break

\transpose c ais { \microphrase }
\bar ":"
\naturalizeMusic \transpose c ais { \microphrase }
\break

\transpose c deses { \microphrase }
\bar ":"
\naturalizeMusic \transpose c deses { \microphrase }
\break

\transpose c cih { \microphrase }
\bar ":"
\naturalizeMusic \transpose c cih { \microphrase }
  }
  \layout { }
}

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


Re: Quickstart guide

2010-06-23 Thread Joseph Wakeling
On 06/23/2010 05:37 PM, Graham Percival wrote:
> What did you mean by "customized per platform, that would be part
> of the install" ?
> 
> I think I understand what you mean now, however...

Well, to be clear: I mean that when you install Lilypond on Windows, it
should create a menu item (and optionally, a desktop icon) that would
load the aforesaid (HTML) quickstart guide when you click on it.

Similar for Mac OS.

It was a response to David K.'s remark about the experience of having
people install Lilypond and then come back with remarks like, 'Where is
it, then??':
http://lists.gnu.org/archive/html/lilypond-devel/2010-06/msg00377.html

> ... "Packaging it up" is extremely difficult.

I'm not familiar with Windows or Mac development or installers -- is it
genuinely difficult to have the installation program create a menu item
or desktop icon which simply points to a locally-stored HTML file? :-(

Best wishes,

-- Joe

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


Re: Quickstart guide

2010-06-23 Thread Joseph Wakeling
On 06/23/2010 05:16 PM, Graham Percival wrote:
> Given that AFAIK, none of the active developers know where to find
> the source repository for the windows lilypond editor, let alone
> being at all familiar with that code, this is an extremely
> ambitious project.

Hang on.  Where did I say people should be working on a Windows
development editor?

> So something like we already have on the download page?

Yes, exactly.  So it's not so difficult to package it up so that the
same guidance is available courtesy of an item on the Windows menu, no?
 'Lilypond > Lilypond Quickstart Guide'

> Look, for better or worse, we have absolutely no resources to
> spend on editor stuff (have you looked at the bug tracker
> lately?!).  Feel free to suggest something to the lilypondtool or
> frescobaldi people.

I never said anything about editor stuff. :-\

Best wishes,

-- Joe

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


Re: Quickstart guide

2010-06-23 Thread Joseph Wakeling
On 06/22/2010 09:38 PM, Graham Percival wrote:
> On Tue, Jun 22, 2010 at 09:16:34PM +0200, Joseph Wakeling wrote:
>> I was sure there was some kind of one-page quickstart guide in the
>> documentation, but looking on the development version doc pages at
>> http://kainhofer.com/~lilypond/ I can't find one -- at least, it's not
>> immediately apparent that one exists.
> 
> WTM are you talking about?  something like this:
> http://lilypond.org/website/macos-x.html
> or this:
> http://lilypond.org/doc/v2.13/Documentation/learning/tutorial
> ?

Please let me emphasize that I'm not talking about cutting material from
the existing docs or website, nor am I saying that the information in
question is not provided by the existing website.

I'm talking about creating a 1-page quickstart readme guide, probably
customized per platform, that would be _part of the install_ on
platforms where people are used to GUIs.

Example: Windows.  Add a Lilypond menu item.  Clicking on it loads the
HTML quickstart guide and a command-line window.  It's not what the user
is used to, but it does provide an immediate offset to the 'HTM do I use
this program?' reaction that some Windows users have.

> What would you omit from the current Learning 1 in the 2.13 docs?

I wouldn't omit anything from the current Learning 1.

I'd just create a new page which gives the absolute, absolute minimum of
information (edit file in text editor, open command line window, compile
like this...), and CLICK HERE FOR MORE DETAILED INFORMATION.

Something that jumps up in the face of the new user on Windows/Mac OS
and gives them a pre-emptive answer to the 'How does this program work?'
question that keeps arriving on the mailing list.

> I'm really curious about what you think is irrelevant...

I don't say it's irrelevant.  I _do_ say that there is value in a simple
1-page quickstart guide.

Best wishes,

-- Joe

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


Quickstart guide

2010-06-22 Thread Joseph Wakeling
On 06/21/2010 12:18 AM, I wrote:
> On 06/20/2010 06:10 PM, David Kastrup wrote:
> > You can't stop at selling Lilypond to somebody without having an
> > answer to "how do I start this thing"?  How many people are complaining
> > that they double-click on the Lilypond icon and nothing happens?
> 
> Hmmm ... so why not start by having the icon open a 'Quickstart' help
> page that explains how to use Lilypond on the platform in question?
> Trivial to implement, no?

I was sure there was some kind of one-page quickstart guide in the
documentation, but looking on the development version doc pages at
http://kainhofer.com/~lilypond/ I can't find one -- at least, it's not
immediately apparent that one exists.

(I didn't look hard; it's kind of defeating the point of a Quickstart
guide if you have to...)

Most of the material you'd want for such a guide is covered in Chapter 1
of the Learning Manual, so it should be reasonably OK to condense into a
1-page piece of HTML that could (i) be included in a prominent place on
the webpage and (ii) could load as a result of clicking on a 'Lilypond
icon' installed with Windows or Mac OS.

Shall I give it a go?  Any thoughts/comments?

Best wishes,

-- Joe

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


Re: bounties

2010-06-22 Thread Joseph Wakeling
On 06/21/2010 06:37 PM, Kieren MacMillan wrote:
> However, for me personally -- i.e., how I will spend my assistance and 
> sponsorship time, money, and effort -- trying to make Lilypond a better 
> *composing* tool is a total non-issue, whereas fixing the innumerable 
> *engraving* problems remaining to be solved is everything.

I think that's a pretty good priority for Lilypond in general, actually.
 I mean, there are things that can be done, like enhanced MIDI
performance (dynamics, articulation, ...) that could help make Lilypond
a better tool for sketching out compositional ideas and producing demos
of pieces, but engraving is the key strength Lilypond has and it should
play to it.

I would step back from that slightly and say that say that what makes
Lilypond great is _engraving without cheating_ -- i.e. its source
notation is in general a precise representation of the musical content
(meaning as well as appearance).

Its use of a well-defined human-readable semantic markup is also a big
plus, particularly when it comes to archiving.

>> You'll be fine raising grant money as long as you make case studies of 
>> typesetting and theses.
> 
> That's probably an accurate assessment, at least in the immediate term. I 
> think the point about "non-serviced communities" (e.g., unsighted, less 
> affluent, etc.) is a good one, too. Platform options (i.e., emerging devices, 
> where FinSib likely won't go) will become important very soon. And so on.

True, but you have to be careful that the grant gets used to develop a
viable, supported long term solution to whatever you're trying to
achieve, not just something that permits the people involved to write
enough research articles to make themselves look good to the funding agency.

I'm not sure about emerging devices, or rather, it seems there are a
bunch of optimizations and improvements that would be needed to see
Lilypond becoming a serious contender on mobile or low-power devices
etc.  I'm speaking purely from the experience of trying to compile
Valentin's opera on my laptop. :-)

> Personally, I'm not trying to "sell Lilypond to universities", at least not 
> in the way that particular phrase suggests (i.e., convince them to replace 
> their current FinSib setup with Lilypond). I'm trying to make a case to a 
> well-funded university (Rice) with a proven track record in the development 
> and promotion of digital, open, on-demand publishing (Connexions) and a 
> fabulous music school (Shepherd School) that there might be a great way to 
> extend their publishing platform into the [essentially untapped] sphere of 
> print music, and simultaneously support the development of an open-source 
> application/community.

Agree about 'selling to universities' in that sense -- it's exactly what
is likely to get the « Dans le cul de ta mère! » kind of response that
Valentin received. :-P

Your connection with Rice sounds very interesting.  I don't know what
your exact proposal is, but one thing I would be interested in is the
development of 'free/open scholarly urtext editions' -- think Project
Gutenberg but for music, not just the kind of 'engrave the old Breitköpf
edition' stuff that you see from random enthusiasts on IMSLP, but
carefully-prepared expert-scholarship urtext editions with well defined
editorial guidelines, etc. etc.

Take the Neue Mozart Ausgabe as an example -- it's available to browse
free online, but it's _ridiculous_ that this scholarly archive of
Mozart's texts is still under proprietary lock and key in this day and
age.  The scholarly and music-professional consequences of having a
high-quality open archive that anyone can access and derive from are
fairly profound.

So, if you can persuade Rice to take up that kind of challenge -- kind
of 'O'Reilly for music publishing' -- you'll have done something rather
marvellous, IMO.

Best wishes,

-- Joe

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


Re: bounties

2010-06-21 Thread Joseph Wakeling
On 06/21/2010 01:46 PM, David Kastrup wrote:
> You wish.  It is a problem when Lilypond is the best tool for the job
> and/or the cheapest.

'Cheapest' is IMO nowhere near as relevant as many people think,
especially when it relates to organizations like publishers or
universities that have large budgets anyway.

As for 'best tool for the job', what job are you referring to?  Are you
sure it is the job that everyone else is trying to do?

> Well, by now everybody and his dog writes diatribes how Stallman and the
> Free Software Foundation and free software are on the road to total
> failure and need to make themselves indistinguishable from those systems
> for which they provide alternatives.

Not me.  I'm with Stallman in the struggle for software freedom, and
find myself amazed by how often people misrepresent and misunderstand
what he and the FSF are on about.

Note that I did list ideological/philosophical reasons as one of the
principal ways to get the self-motivation to learn to use Lilypond.  (It
worked for me.)

> It takes a Stallman to keep course even when in the middle of a
> popularity shouting contest.

Yea, but right now we're not talking about a popularity contest.  It
would be very nice if universities and publishers all enthusiastically
took up the use of Lilypond, but what we're talking about now is
something much simpler -- raising money to dedicate to Lilypond
development and project sustainability.

> For each given platform.  Separately.  Sounds like employment for a
> number of platform-localized frogs.

Well, you have 3 platforms you need to address -- Windows, Mac and
'other UNIX' (GNU+LINUX/BSD/OpenSolaris/.), the commonalities and
tech-savvy of the latter group being enough that you can group them
together.  Plus most of a 'quick start' would be platform-independent.
All you need is an instruction along the lines of, 'Edit text file
[suggest platform-specific editors], open up command line [with
platform-specific instructions], run Lilypond from the command line.

Then 'click here for more info', taking you to the online or locally
installed documentation.

> One way of evading the question is to make a compellingly good user
> interface on Emacs (which then runs everywhere), but that's not exactly
> a small task to do.  And there are people who would balk at
> "compellingly good" in the same sentence with "Emacs".

Despite the power of Emacs it doesn't make sense to me to use it as the
dedicated platform.  Most users of Lilypond, especially beginners, don't
need the possibilities it offers, and it's difficult to 'get' Emacs if
you do not have a need for more than simple text editing.

If I were aiming for an effective cross-platform editing environment for
Lilypond, I would go for Frescobaldi as the leading candidate -- it has
a nice, friendly interface, good functionality, and Qt/KDE based tools
make for good long term candidates for cross-platform applications.

Best wishes,

-- Joe

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


Re: bounties

2010-06-20 Thread Joseph Wakeling
On 06/20/2010 06:10 PM, David Kastrup wrote:
> People want a _solution_ to their problem, not new problems they never
> thought about and which are not actually in their personal problem
> space.

That's true, but it only shows that Lilypond isn't yet capable of
operating as a general-purpose best solution.  That's only a problem if
that's what Lilypond wants to _be_, or more precisely, what Lilypond
tries to sell itself as.  ('Wants to be' is fine as long as you have a
plan to get there and don't sell yourself as such prematurely...)

It's a bit like GNU/Linux a few years ago, and to an extent even now --
it wasn't possible to market it as a general-purpose operating system
suitable for all, because learning to use it involved an expenditure of
effort that only made sense if you had a deliberate motivation.  That
might be ideological/philosophical, it might be the opportunity for
hacking and customization, it might be that it provides better for your
particular technical needs, but whatever it was, you _needed_ that
self-motivation.

Lilypond's situation is almost exactly parallel, and like GNU/Linux, it
doesn't mean that you can't sell it -- it means you have to target your
sales pitch at the people in whom you can create that self-motivation.
Or rather, you have to target cases where the problem of learning to use
Lilypond is small compared to the benefit of having it.

The first such pitch can obviously be at those of us who already _have_
the motivation and are involved -- as Valentin is doing -- to create a
Lilypond 'subscription' model.  I'd go further than that and create
classes of sponsorship, the most prominent of which come with very overt
display (logos on the webpage and in documentation, etc.).  'Lilypond,
sponsored by ...' etc. etc.  Even if no one (for now) takes up the
higher classes of sponsorship, I think there are lots of us who would
happily offer regular monthly donations to Lilypond if there was a
well-defined funding (and spending) structure.

(I would suggest splitting any such initial funds between development
work and outreach -- spend some of the money on getting new features
implemented and some of it on pursuing a wider range of funding sources.
 Someone mentioned the hassle of writing grants and tracking
deliverables and project bureaucracy, but once you've _got_ a grant you
can and should dedicate part of that money towards such admin work.)

Above and beyond that, look at special or specialist needs that Lilypond
can fulfil and even more, at special or specialist needs where _further
development_ can fulfil them -- that gives an obvious reason to people
to fund Lilypond development.

> You can't stop at selling Lilypond to somebody without having an
> answer to "how do I start this thing"?  How many people are complaining
> that they double-click on the Lilypond icon and nothing happens?

Hmmm ... so why not start by having the icon open a 'Quickstart' help
page that explains how to use Lilypond on the platform in question?
Trivial to implement, no?

One other thing: yesterday a developer colleague of mine showed me the
following page,
http://tryhaskell.org/

... which he'd been inspired to implement by the equivalent 'Try Ruby'
page.  (There are now apparently a bunch of 'Try X' sites out there.)

Lilypond isn't exactly equivalent, since AFAICS it can't meaningfully be
run in any kind of 'scripting mode', but there is surely scope for some
kind of online interactive Lilypond environment (most likely a primitive
online editor + output display + tutorial).

I'll try and keep this in mind as a potential pet project (I don't have
the skill, but together he and I probably do).  There is no way we can
put time towards it in the immediate future, since we have strong
immediate priorities for the projects of our employer, but maybe a few
months down the line something can be done ...

Best wishes,

-- Joe

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


Re: bounties

2010-06-20 Thread Joseph Wakeling
On 06/19/2010 07:50 PM, Valentin Villenave wrote:
> Ditto here. I have contacted dozens of French universities, music
> schools, government-funded music structures and whatnot. Everytime I
> got an answer, the answer was: "Fuck off, we already have Finale".
> 
> Or something like that.

What were the nature of the proposals or enquiries you made?

I'm asking because of my own experience, now, working for an
organization where the leadership is quite
traditional-business-oriented, and trying to steer their thinking in
more open ways.

What's clear is that their attitude is very much along the lines of,
'There are lots of different models/tools you could adopt, but these
ones have clear and proven track record of success.  So you have to
prove to us that your alternative is viable and sustainable.'

Returning to the music institutions, Finale/Sibelius work for them, _and
the issue is not the money_, even on a student level.  Music students
will pay tens of thousands of euros for instruments -- €500 for a
software licence, and €100 a year for an upgrade (if you really want to)
is a piss in the park by comparison.

The issue is also not the freedom, because it's not such a big deal in
most cases to be able to read past files or hack the software.  Once
you've got a PDF of a composition your work is done, and it's common for
music to be re-engraved from scratch.

It's not even the beauty of results, because -- we see this on a regular
basis -- the Finale- or Sibelius-produced editions are _good enough for
purpose_.  With publishers at least, the norm seems to be to use the
music engraving software to produce the basic framework and then further
edit the output postscript in some vector graphics tool where necessary.
 It really is about producing final graphical output.

They won't even care if Lilypond offers them something they don't get
from Finale/Sibelius, because -- well -- you guys are doing this anyway
and give it away for free. :-P

What they _will_ care about is if you can give them a concrete plan
along the lines of, 'This is something that you care about that you
don't have now, or don't have easily, and here is how we can provide it,
and this is how much money it will cost.'

You have to make it very clear to them, because although the people
concerned may be very nice and talented and able in the general scheme
of things, where software is concerned they generally have the level of
understanding of the pointy-haired boss.  Or else they have a
pointy-haired technology boss to tell them what to think. :-)

(Mind you: that's European and US colleges.  I'd be curious to see if
you might have more luck going to South American or Asian or African
institutions, who might appreciate the budgetary implications of being
able to secure a long-term reliably supported notation solution for a
fraction of the cost of Finale/Sibelius licenses.  To say nothing of the
fact that it fits with the more communally-inclined cultural innovations
that are taking place in these countries.  Try taking the message to
Brazil with their increasing enthusiasm for copyleft [Gilberto Gil as
culture minister], try taking it to Venezuela with reference to Il
Sistiema, try wedding it to projects built on top of the 'One Laptop Per
Child' scheme.)

Examples of things that could get people's attention:

-- Lilypond as a tool for disabled (notably, blind) access to music
   notation software.  Not just blind music students like our own
   Hui Haipeng -- as a tool for disabled outreach projects.  You'd
   have to take account of the fact that while Finale and Sibelius
   aren't so helpful to a blind person from a visual point of view,
   they DO offer valuable support in their ease of entering music
   by playing on the keyboard.

-- Lilypond as a tool for 3rd-world or poor country outreach,
   prison outreach (it happens!), educational outreach to deprived
   regions of their own country.

-- Support for community outreach projects (bearing in mind that
   music students and even schools can probably deal with the costs
   of software licenses, but it lowers the point of entry and long-
   term sustainability of wider community participation; think of
   the way that community and church choirs already use Lilypond...)

-- Support for niche notational needs not well supported by Finale
   or Sibelius, such as early music or extreme contemporary music,
   algorithmically-created music, etc.

-- Support for non-Western musics.

Bear in mind that one GREAT way to unlock the coffers of institutions is
to provide them with something where, by spending this money, they can
do something that makes them look good in terms of the public arts
spending aims of the day. :-)

Example of these priorities in terms of questions a friend of mine was
asked to address when applying to have her work displayed in a music
technology exhibition:

   'How can new technology build local

Re: bounties

2010-06-18 Thread Joseph Wakeling
On 06/15/2010 09:19 PM, Graham Percival wrote:
> One idea I've toyed with is seeking a grant to work on lilypond.
> Various governments and agencies give research grants; I'm pretty
> certain that we could get a grant to improve medieval chant
> notation or contemporary non-Western scales or whatnot.  However,
> this would probably require
> - a bunch of grant applications
> - collaborating with some musicologists (i.e. a medieval chant
>   expert, or John Cage scholar, or whatever)
> - overhead of writing reports about deliverables, giving
>   presentations to people, etc.
> - etc.
> In the process of doing the specialized notation, the developer
> might fix a few "normal" bugs as well.

An alternative would be to go directly to the institutions that have an
interest in notation software -- the (many) music colleges.  Most of
these have large numbers of computers with either or both of Finale and
Sibelius installed (to say nothing of other music software), and if I
recall right, that means a fairly large payout _per computer_.

Take a message to multiple music colleges, demonstrate Lilypond's
coolest features, emphasise the fact that it is and always will be free
both as in beer and freedom, the cool features, and then ask for
development support on the order of the cost of 3 Sibelius desktop licenses.

Multiply that out across multiple institutions across the whole of
Europe and it could add up to a fairly substantial amount of money.

Best wishes,

-- Joe

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


Re: nice stockhausen excerpt

2010-02-24 Thread Joseph Wakeling
Valentin Villenave wrote:
> Indeed. Similarly, WWI is said to have ended in 1921... go figure.

Another amusing tale here.  I'm from a part of Wales called
Monmouthshire; but this is border country, and historically there was an
extended period of ambiguity (from about the 1600s to the 20th century)
about whether it was considered part of Wales or of England.  It was
quite common for laws to be declared as applying to 'Wales and
Monmouthsire'.

Anyway, allegedly, the text of the declaration of war in 1914 referred
to 'England, Wales, and Monmouthsire', while the peace treaty signed at
Versailles only referred to England and Wales -- technically leaving
Monmouthshire and Germany still at war.  A friend in the local town
council tells me that this oversight was finally rectified only in 1998.

When I was at school there (pre-1998...) we used to have a regular
exchange with a German gymnasium, where the school orchestra would go
over and perform concerts for them.  If this wasn't a continuation of
hostilities, I don't know what was ...

I just hope this doesn't mean that copyright in Monmouthshire is 80
years behind the times ... :-)


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


Re: nice stockhausen excerpt

2010-02-24 Thread Joseph Wakeling
Valentin Villenave wrote:
> US-printed scores where still illegal in France when I was a student
> (that means less than a decade ago). Our teachers had to smuggle these
> when they went on holiday in the US...

1918 + 90 years = 2008, so makes sense ...

> In addition to the death of the author, one have to take the editior's
> year into account. Debussy might well be legally usable now, but we
> certainly do not want to take any chances (let alone *truly*
> contemporary composers such as Satie or Ravel, these guys you
> definitely don't want to mess with).

It's been interesting watching the things that have been happening with
Henle Urtext, who have been bringing out editions of relatively
contemporary works in the last few years (Berg Piano Sonata and Four
Pieces for Clarinet); of course, in Europe, 1935 + 70 years = ...

Alas for them, their Finale-engraved score of the latter is far less
attractive than the old-style engraving of the edition still published
by UE. :-P

Amusingly, they have also brought out an edition of Debussy's Etudes,
complete with a beautiful trilingual print of the foreword where Debussy
explains very wittily why fingerings are not provided in the work, and
the benefits of finding one's own fingerings; and then you turn the page
and see the work itself -- an Urtext edition, a faithful reproduction of
the composer's intended text! -- replete with editorially-added
fingerings as per Henle's house style.


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


Re: nice stockhausen excerpt

2010-02-23 Thread Joseph Wakeling
Graham Percival wrote:
> On Tue, Feb 23, 2010 at 2:49 PM, Hans Aberg  wrote:
>> RMS says he thinks it is better using artificial examples, not risking a
>> lawsuit when it is so easy to avoid and still have good results.
> 
> 1)  I don't care what RMS says.

Though in this case his comment is apt, and provides a good
justification for your points (2) and (3) :-)


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


Re: nice stockhausen excerpt

2010-02-23 Thread Joseph Wakeling
Valentin Villenave wrote:
> Certainly not. Even Debussy got banned from our docs, for GNU's sake!

Oh Gawd.  Really?  Where on earth is he still in copyright?

Even in the US (90 years after death) copyright should have expired by
now, no?  Or is the worry that another 10+ year extension will be put in
place before the decade is out?


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


Re: [frogs] CG Feedback

2010-01-18 Thread Joseph Wakeling
Carl Sorensen wrote:
>> "The -a is short for --all which includes modified and deleted files,
>> but not newly created files."
>>
>> would be better as:
>>
>> "The -a is short for --all which includes modified and deleted files,
>> but only newly created files which have been added with git add."
> 
> Thanks for the suggestion.  I've made the change in git.

An even better phrasing (IMO:-):

"The -a is short for --all, which includes all modified and deleted
files.  Newly created files must first be added using git add or else
they will not be included."


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


Re: CG chapter 2, first draft

2010-01-14 Thread Joseph Wakeling
Mark Polesky wrote:
> Yep.  Thanks Joe!

Brilliant.  There's probably plenty more that can be added -- see all
the info on the Wine wiki linked to -- but this seems to be the really
_essential_ stuff.  Maybe also a link to where to get dos2unix ... ?


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


Re: [PATCH] Doc: CG: Sending and receiving git patches via email

2010-01-14 Thread Joseph Wakeling
Trevor Daniels wrote:
> Thanks Joe
> 
> Mark is currently redrafting this section of the CG and it seems
> he has picked up and applied your changes in his latest patch.

That's great.  Glad it was useful. :-)

Sometime soon I must get back onto the Contemporary Music docs.  I'm
sorry for the absence -- things have been very busy and complicated in
my other life.  Nothing bad, just busy and complicated ... :-P

Best wishes,

-- Joe



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


[PATCH] Doc: CG: Sending and receiving git patches via email

2010-01-12 Thread Joseph Wakeling
Hello all,

With the news on CG revision I remembered I had never got round to
contributing a patch about solving the issues I had with patches and
email MIME types.  So here it is.

It can probably be improved but this gets across the basic info, and it
includes a link to pages with further information.

Best wishes,

-- Joe
From 0b16d7c2d074eeb8f33ed77494bdd26ef9b182db Mon Sep 17 00:00:00 2001
From: Joseph Wakeling 
Date: Tue, 12 Jan 2010 15:42:04 +0100
Subject: [PATCH] Information on sending/receiving git patches via email.

This contains the solution for MIMEtype problems experienced
with some email clients, and a link to the Wine wiki page on
git which contains much useful info.

It also incidentally removes some trailing whitespace. :-P
---
 Documentation/contributor/git-starting.itexi |   72 ++
 1 files changed, 50 insertions(+), 22 deletions(-)

diff --git a/Documentation/contributor/git-starting.itexi 
b/Documentation/contributor/git-starting.itexi
index fb45b59..d6e23e5 100644
--- a/Documentation/contributor/git-starting.itexi
+++ b/Documentation/contributor/git-starting.itexi
@@ -9,10 +9,10 @@ usage in this chapter, it may be a good idea to look at the 
other
 Git documentation listed in @ref{Other git documentation}.
 
 @menu
-* Getting the source code:: 
-* Updating the source code::
-* Sharing your changes::
-* Advanced git stuff::  
+* Getting the source code::
+* Updating the source code::
+* Sharing your changes::
+* Advanced git stuff::
 * Git on Windows::
 * Other git documentation::
 * Roadmap of directories::
@@ -23,12 +23,12 @@ Git documentation listed in @ref{Other git documentation}.
 @section Getting the source code
 
 @menu
-* Git introduction::
-* Git user configuration::  
-* Main source code::
-* Documentation translations source code::  
-* Other branches::  
-* Other locations for git:: 
+* Git introduction::
+* Git user configuration::
+* Main source code::
+* Documentation translations source code::
+* Other branches::
+* Other locations for git::
 @end menu
 
 @node Git introduction
@@ -146,9 +146,9 @@ internet through a router that filters out Git and/or SSH 
connections.
 @section Updating the source code
 
 @menu
-* Importance of updating::  
-* Update command::  
-* Resolving conflicts:: 
+* Importance of updating::
+* Update command::
+* Resolving conflicts::
 @end menu
 
 
@@ -225,8 +225,8 @@ any changes you have made!
 @section Sharing your changes
 
 @menu
-* Producing a patch::   
-* Committing directly:: 
+* Producing a patch::
+* Committing directly::
 @end menu
 
 
@@ -358,13 +358,14 @@ Some Git commands are introduced first, then a workflow 
with several
 Git branches of LilyPond source code is presented.
 
 @menu
-* Introduction to Git concepts::  
-* Git commands for managing several branches::  
-* Working on LilyPond sources with several branches::  
+* Introduction to Git concepts::
+* Git commands for managing several branches::
+* Working on LilyPond sources with several branches::
 * Git log::
 * Using local git branches::
-* Applying git patches::
-* Reverting all local changes::  
+* Applying git patches::
+* Sending and receiving patches via email::
+* Reverting all local changes::
 @end menu
 
 
@@ -373,7 +374,7 @@ Git branches of LilyPond source code is presented.
 
 A bit of Git vocabulary will be explained below.  The following is
 just introduction material; for better understanding of Git concepts,
-you are invited to read further documentation, especially Git
+you are invited to read further documentation, especially the Git
 Community Book at @uref{http://book.git-scm.com/}.
 
 The @code{git pull origin} command above is just a shortcut for this
@@ -672,6 +673,33 @@ git commit -a --author="First Last "
 @end example
 
 
+...@node Sending and receiving patches via email
+...@subsection Sending and receiving patches via email
+
+The default @code{x-diff} MIME type associated with patch files
+(i.e., files whose name ends in @code{.patch}) means that the
+encoding of line endings may be changed from UNIX to DOS format
+when they are sent as attachments.  Attempting to apply such an
+inadvertently altered patch will cause git to fail with a message
+about @q{whitespace errors}.
+
+The solution to such problems is surprisingly simple --- just
+change the default file extension of patches generated by git to
+end in @code{.txt}, for example:
+
+...@example
+git config format.suffix '.patch.txt'
+...@end example
+
+This should cause email programs to apply the correct base64
+encoding to attached patches.
+
+If you receive a patch with DOS instead of UNIX line-endings,
+it can be converted back using the @code{dos2unix} utility.
+
+Lots of useful information on email complications with patches
+is provided on the Wine wiki at @uref{http://wiki.winehq.org/GitWine}.
+
 @node Reverti

Re: copyright info... actually wanted!

2009-09-26 Thread Joseph Wakeling
Graham Percival wrote:
> Please re-read my request.  This is not what I asked for.

'As a separate patch, feel free to add the "this manual is under
the FDL" as a comment to the top of any relevant files in
Documentation/.'

I took 'all relevant files' to mean all files in the manual, re-reading
your request I now presume you mean just the top-level file for each
manual ... ?

Is there any particular reason why these per-file license statements are
bad?

Best wishes,

-- Joe


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


Re: copyright info... actually wanted!

2009-09-26 Thread Joseph Wakeling
Graham Percival wrote:
> As a separate patch, feel free to add the "this manual is under
> the FDL" as a comment to the top of any relevant files in
> Documentation/.

I think you'll find a couple of such patches, sent by me, from a while
back ... :-)

Attached again in combined form, hope it's OK.

Best wishes,

-- Joe
From 63a650c550357fd2372370db49e0676f1a79420f Mon Sep 17 00:00:00 2001
From: Joseph Wakeling 
Date: Sun, 27 Sep 2009 00:38:19 +0200
Subject: [PATCH] Doc: GFDL licensing notices for all files in LM + NR.

(Plus some trailing whitespace fixes from my text editor:-)
---
 Documentation/learning/common-notation.itely   |   16 +++-
 Documentation/learning/fundamental.itely   |   14 +++
 Documentation/learning/introduction.itely  |   40 +--
 Documentation/learning/preface.itely   |   14 +++
 Documentation/learning/scheme-tutorial.itely   |   14 +++
 Documentation/learning/templates.itely |   17 +++-
 Documentation/learning/tweaks.itely|   14 +++
 Documentation/notation/ancient.itely   |   15 +++
 Documentation/notation/changing-defaults.itely |   14 +++
 Documentation/notation/cheatsheet.itely|   14 +++
 Documentation/notation/chords.itely|   15 +++
 Documentation/notation/contemporary.itely  |   15 +++
 Documentation/notation/editorial.itely |   17 -
 Documentation/notation/expressive.itely|   15 +++
 Documentation/notation/fretted-strings.itely   |   23 +--
 Documentation/notation/input.itely |   14 +++
 Documentation/notation/keyboards.itely |   17 -
 Documentation/notation/notation-appendices.itely   |   14 +++
 Documentation/notation/notation.itely  |   15 +++
 Documentation/notation/percussion.itely|   15 +++
 Documentation/notation/pitches.itely   |   15 +++
 Documentation/notation/programming-interface.itely |   18 -
 Documentation/notation/repeats.itely   |   15 +++
 Documentation/notation/rhythms.itely   |   17 -
 Documentation/notation/simultaneous.itely  |   15 +++
 Documentation/notation/spacing.itely   |   16 +++-
 Documentation/notation/specialist.itely|   15 +++
 Documentation/notation/staff.itely |   17 -
 Documentation/notation/text.itely  |   15 +++
 Documentation/notation/unfretted-strings.itely |   15 +++
 Documentation/notation/vocal.itely |   15 +++
 Documentation/notation/wind.itely  |   15 +++
 Documentation/notation/world.itely |   15 +++
 33 files changed, 507 insertions(+), 28 deletions(-)

diff --git a/Documentation/learning/common-notation.itely 
b/Documentation/learning/common-notation.itely
index c9eb78d..c34d8c4 100644
--- a/Documentation/learning/common-notation.itely
+++ b/Documentation/learning/common-notation.itely
@@ -1,4 +1,18 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
+...@ignore
+Documentation/learning/common-notation.itely
+
+This file is part of the documentation for GNU Lilypond.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1
+or any later version published by the Free Software Foundation;
+with no Invariant Sections, no Front-Cover Texts and no Back-Cover
+Texts.
+
+You should have received a copy of the GNU Free Documentation License
+along with this file.  If not, see <http://www.gnu.org/licenses/>.
+...@end ignore
 
 @ignore
 Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
@@ -1400,7 +1414,7 @@ Learning Manual, you may want to read some sections again 
and follow
 cross-references for further reading.
 
 If you have not done so already, @emph{please} read
-FIXME FIXME FIXME 
+FIXME FIXME FIXME
 @c @ref{About the documentation}.
 There is a lot of information about LilyPond, so
 newcomers often do not know where they should look for help.  If
diff --git a/Documentation/learning/fundamental.itely 
b/Documentation/learning/fundamental.itely
index 690c735..2fe3ebb 100644
--- a/Documentation/learning/fundamental.itely
+++ b/Documentation/learning/fundamental.itely
@@ -1,4 +1,18 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
+...@ignore
+Documentation/learning/fundamental.itely
+
+This file is part of the documentation for GNU Lilypond.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1
+or any later version published by the Free Software Foundation;
+with no Invariant Sections, no Front-Cover Texts and no Back-Cover
+Texts.
+
+You should h

Re: [PATCH] COPYING rewrite to clarify licensing

2009-09-22 Thread Joseph Wakeling
Graham Percival wrote:
> ok, committed, and I dealt with the copying.documentation thing.

Thanks!  I've attached a small tweak to add front/back cover text
mentions, for you to take or leave as you please.

Best wishes,

-- Joe
From 7bdfa348918fab245f1130de988fbf3dc6ef49b4 Mon Sep 17 00:00:00 2001
From: Joseph Wakeling 
Date: Tue, 22 Sep 2009 19:47:12 +0200
Subject: [PATCH] COPYING.DOCUMENTATION tweak to mention (lack of) front/back 
cover texts.

---
 COPYING.DOCUMENTATION |5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/COPYING.DOCUMENTATION b/COPYING.DOCUMENTATION
index f9cd158..7fab1d7 100644
--- a/COPYING.DOCUMENTATION
+++ b/COPYING.DOCUMENTATION
@@ -1,8 +1,9 @@
 Permission is granted to copy, distribute and/or modify the
 documentation for GNU LilyPond under the terms of the GNU Free
 Documentation License, Version 1.1 or any later version published
-by the Free Software Foundation; with no Invariant Sections.  A
-copy of the license is contained in this file.
+by the Free Software Foundation; with no Invariant Sections, no
+Front-Cover Texts and no Back-Cover Texts.  A copy of the license
+is contained in this file.
 
 There exist the following exceptions to this license:
 
-- 
1.6.3.3

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


Re: Licensing dependencies

2009-09-22 Thread Joseph Wakeling
Graham Percival wrote:
> What does this mean?  I mean, *any* project would be a problem if
> they changed to a non-GPLv2-compatible license.  Are they
> considering/planning such a change?

Not that I know of.  The point is just that most Lilypond dependencies
are either called rather than linked to, or have permissive licenses --
(L)GPL'd dependencies like Pango have greater potential for a version
upgrade that buggers GPLv2-only code.


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


Re: Overview of copyright issues

2009-09-21 Thread Joseph Wakeling
Trevor Daniels wrote:
> For example, we seem to have lost Joseph's really
> promising work to document contemporary music.

Not lost. :-)  Actually, the delay came at least in part because I was
looking through problems of functionality related to my docs.  I'll post
about this on -user.


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


Re: Copyright/licensing action plan + a sample [PATCH]

2009-09-20 Thread Joseph Wakeling
Graham Percival wrote:
> I would have thought that
> http://lists.gnu.org/archive/html/lilypond-devel/2009-09/msg00438.html
> was right up your alley.

Yep.  I was having a bit of a look through what's there to see what
would be involved.  I'll see what I can do ...


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


Re: Overview of copyright issues

2009-09-20 Thread Joseph Wakeling
Graham Percival wrote:
> For this reason, I categorically refuse to have file-specific
> ownership.  Documentation is documentation; any doc committers
> will be listed in the same place.

About docs, I completely agree.  I didn't have to spend long in the git
logs to realise that it just wasn't feasible to meaningfully identify
contributors -- there's too much moving, renaming, copy-pasting, etc.

> I still think it would be a complete waste of time, but if you
> really want to track down file ownership of source code, _I_ won't
> stop you.  You'd better check that everybody else is ok with this,
> though.  And by "ok", I mean "agrees to you doing the initial
> work, *and* commits to maintain such info in the future".

I think with code it has more value, and ought to be reasonably easy to
maintain.  There's also the fact that the code, unlike the docs, _does_
contain per-file copyright notices, and that these are wrong.  If we're
going to have them, they ought to be accurate.

Best wishes,

-- Joe


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


Re: Licensing dependencies

2009-09-20 Thread Joseph Wakeling
Reinhold Kainhofer wrote:
> Am Sonntag, 20. September 2009 13:46:32 schrieb Joseph Wakeling:
>> It looks like the problems are FreeType (GPLv2 only or GPL-incompatible
>> permissive license, so blocks upgrade); 
> 
> The FTL is GPLv2-incompatible, but according to the FSF, it's GPLv3-
> compatible... See 
> http://www.fsf.org/licensing/licenses/index_html#GPLCompatibleLicenses
> No blocker here.

Oh, great.  Missed that when reading the compatible license list.

>> Guile (future versions will be
>> LGPLv3+, so GPLv2-only-incompatible); and potentially Pango (if it
>> upgrades to LGPLv3+).
> 
>> None are a present, active problem but all are clear risks.
> 
> Yes, that's the only possible license issue in the future that I can see. 
> Everything else appears okay...

So, the upshot is that, while not an absolute necessity, it would be
highly convenient to gain GPLv3 compatibility.

If there are no objections I will continue to track contributors and ask
for their licensing preferences -- specifically, what is the most
permissive license they are willing to permit (i.e. GPLv2/3, GPLv2+,
BSD-style, etc.) -- and record in the publicly-viewable Google Doc
mentioned previously.

Best wishes,

-- Joe


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


[PATCH] COPYING rewrite to clarify licensing

2009-09-20 Thread Joseph Wakeling
Following the earlier discussion with Graham and others, this patch
slightly rewrites the COPYING file to clarify the Lilypond licensing
situation.

It might also be sensible to add a line mentioning that docs are
released under GFDL, and a separate COPYING.DOCUMENTATION file that
contains that license.

Best wishes,

-- Joe
From d1ee19e7d7dd10d0504ebec2a621d675087f0f70 Mon Sep 17 00:00:00 2001
From: Joseph Wakeling 
Date: Sun, 20 Sep 2009 15:58:09 +0200
Subject: [PATCH] COPYING rewrite to clarify licensing.

  * Text is closer to FSF guidelines and explicitly states that
Lilypond is released under GPLv2 only.
---
 COPYING |   38 --
 1 files changed, 20 insertions(+), 18 deletions(-)

diff --git a/COPYING b/COPYING
index 3ad0007..da2d00d 100644
--- a/COPYING
+++ b/COPYING
@@ -1,21 +1,23 @@
-If you want to redistribute LilyPond, you must comply with the GNU
-General Public License (reproduced below). This license applies to
-LilyPond with the following exceptions:
-
-- It does not apply to example input files (which are in
-the subdirectory input/) that explicitly specify another license.
-
-- If you create a document which uses fonts included in LilyPond, and
-embed this font or unaltered portions of this font into the document,
-then this font does not by itself cause the resulting document to be
-covered by the GNU General Public License. This exception does not
-however invalidate any other reasons why the document might be covered
-by the GNU General Public License. If you modify this font, you may
-extend this exception to your version of the font, but you are not
-obligated to do so. If you do not wish to do so, delete this exception
-statement from your version.
-
-
+GNU Lilypond is free software; you can redistribute it and/or modify
+it under the terms of version 2 of the GNU General Public License as
+published by the Free Software Foundation.  A copy of the license is
+contained in this file.
+
+The following exceptions are granted to this license:
+
+ -- It does not apply to example input files (contained in the
+subdirectory input/) that explicitly specify another license.
+
+ -- If you create a document which uses fonts included in Lilypond,
+and embed this font or unaltered portions of this font into the
+document, then this font does not by itself cause the resulting
+document to be covered by the GNU General Public License.  This
+exception does not however invalidate any other reasons why the
+document might be covered by the GNU General Public License.
+If you modify one or more of the fonts, you may extend this
+exception to your version of the fonts but you are not obliged
+to do so.  If you do not wish to do so, delete this exception
+statement from your version.
 
 
GNU GENERAL PUBLIC LICENSE
-- 
1.6.3.3

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


Licensing dependencies

2009-09-20 Thread Joseph Wakeling
Have had a look through the licenses of dependencies as listed in the
Contributor's Guide.

It looks like the problems are FreeType (GPLv2 only or GPL-incompatible
permissive license, so blocks upgrade); Guile (future versions will be
LGPLv3+, so GPLv2-only-incompatible); and potentially Pango (if it
upgrades to LGPLv3+).

None are a present, active problem but all are clear risks.

Best wishes,

-- Joe

---
Running requirements:

   FreeType: FreeType license (GPL-incompatible due to advert clause)
 or GPLv2 only

   FontConfig: Permissive license, seems to be GPL-compatible (it's
   pretty much identical to the advertising-clause-free
   version of the BSD license; if there is anything wrong
   we're as buggered with GPLv2 as 3+).
   http://cgit.freedesktop.org/fontconfig/tree/COPYING

   Pango: Development version downloaded from Git is LGPLv2+.

   Guile: as already discussed, 1.8.x is LGPLv2+.  Development version
  (1.9.x) is LGPLv3+.

   Python: GPL-compatible: see,
   http://www.python.org/download/releases/2.6/license/

   Ghostscript: GPLv3+, but LP doesn't link to it, so it's OK.

   Dejaview: can't find any info on this, what is its provenance?


Build requirements:

   FontForge: new BSD license (i.e. GPL-compatible)

   Metafont: seems a bit weird and uncertain (TeX licenses, some GPL)
 but this is just called, not linked to, no?

   t1utils: permissive license, seems GPL-compatible

   Guile: see above

   Texinfo: GPLv3+, but we only call it, don't link (?)

   g++: GPLv3+, but we only call it

   Python: see above

   GNU Make: GPLv3+, but we only call it

   Gettext: GPLv3+, but we only call it

   Flex: new BSD license (GPL-compatible)

   Perl: Artistic License/GPLv1 (!) but seems to be OK as we only call
 it and don't link.

   GNU Bison: GPLv3+, but we only call it


Doc build requirements:

   texi2html: GPLv2+ (we only call it anyway)

   netpbm: seems horribly complicated, but we only call it

   imagemagick: own license, claims GPL compatibility (but we only call
it in any case)

   rsync: GPLv3+, but we only call it.


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


Re: Copyright/licensing action plan + a sample [PATCH]

2009-09-20 Thread Joseph Wakeling
Reinhold Kainhofer wrote:
> Ouch. so as soon as a LGPLv3 version of guile comes out, lilypond can't use 
> guile any more, because LGPLv3 is not compatible with GPLv2... So, lilypond 
> then has to switch to GPLv3... But then we have a problem with freetype, 
> which 
> is FTL (BSD with advertising clause, thus incompatible with GPL) or GPLv2 
> only... 

Argh.  I wasn't aware of the LGPLv3/GPLv2 incompatibility until now.
 That's nasty. :-(

> I really love it how FSF handles the GPL purely for political reasons... 
> (Which might make sense from an abstract viewpoint, but in daily developer 
> life that is just counterproductive and hindering productive development!)
> 
> To be honest, as an open source developer, I'm really starting disliking the 
> GPL, simply for practical reasons.

Well, they are a political organisation.  They aren't there to make your
life as a developer easy -- and if you follow their practical advice,
you don't end up in these situations.  (They are also generally pretty
good about taking into account the practical issues that will be raised
by any licensing change, and trying to minimise them.)

>> That was one of the motivations for tracking who was OK with GPLv2+ --
>> to have an advance list of people ready for such an eventuality.
> 
> See e.g. what KDE did a while ago:
> http://techbase.kde.org/Projects/KDE_Relicensing
> 
> I propose we also keep such a list (publicly available) about what the devs 
> allow with regards to their licenses.

I am already doing so, although not as detailed as KDE's.
http://spreadsheets.google.com/ccc?key=0AkXkBLpoZm-_dHdkUUZRRVJvX2ZHWVpOeloyTU00SHc&hl=en

It's on Sheet 2 :-)

Best wishes,

-- Joe


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


Re: Overview of copyright issues

2009-09-19 Thread Joseph Wakeling
Anthony W. Youngman wrote:
> Aarrgghh.
> 
> The snippets are not public domain, unless the author put them there.
> The *music* may be public domain, but the *arrangement* is copyright
> whoever wrote the lilypond code (unless you make the argument that the
> snippet is too small to qualify for copyright).

The snippets are taken from the LSR and a condition of submission to the
LSR is that you consign your work to the public domain (and that you
have the right to do so).  I know, because I submitted a couple of
snippets to the LSR and they later made it into the Lilypond docs'
selection of snippets.


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


Re: Copyright/licensing action plan + a sample [PATCH]

2009-09-19 Thread Joseph Wakeling
Graham Percival wrote:
> There's a *ton* of other janitorial work to be done, especially by
> people who have proven that they're willing to do work (about 50%
> of people who say "hey, I want to help out" never do anything!).
> And not only that, but you're capable of using git!  There's lots
> of stuff that needs doing for the new website, for example.

OK.  I have not been following those discussions closely but if you can
give me a rough todo list I will see what I can contribute in that
respect and prioritise it over any copyright work.

I also have to get back to the contemporary music documentation, which
I've been neglecting ...

> If you really want to keep on doing copyright stuff, then I'd
> suggest that you look into the licenses of the projects which
> lilypond *links* to.  Stuff like ghostscript doesn't matter, since
> we only call it on the command-line.  But it would be good to
> know, for example, what license guile 1.8 is under, if they
> changed to GPLv3 when did it happen, etc.

Yes, I think that's a good idea and will start tracking those things.

Guile I think is LGPLv3 although parts may be GPL -- but that's only for
the current development release (i.e. 1.9.x).  1.8.x is still under LGPLv2+.

> I'm pretty certain that we're fine right now, but as more and more
> projects switch to GPLv3, we might suddenly discoved that we can't
> link to pango or freetype or something like that.  It would be
> great if we had a list of such projects, so that if/when we
> seriously discover any license switch (again, in a few months) we
> have that info handy.

That was one of the motivations for tracking who was OK with GPLv2+ --
to have an advance list of people ready for such an eventuality.

> There's no dual-licensing of doc contributions.  Docs are
> currently FDL 1.1 or later (sigh).  Code is GPLv2.  Exceptions to
> this (such as cary.ly) should be remedied.

Just tracking willingness, rather than proposing a change.  It seemed
worthwhile to see who would sign up for the Debian maintainer's proposal
of dual-licensing the docs.

On the broader scheme of things I'm going to keep tracing the
contributors to individual files (but not with incredible speed).
Besides any usefulness for Lilypond I have a vested interest which has
nothing to do with Lilypond or licensing per se, but relates to a
project that stems from my day job:
http://project.liquidpub.org/
http://github.com/WebDrake/liquidpub-dvcs
https://code.launchpad.net/~webdrake/liquidpub/peer-review

... so learning about tracing/tracking contributions and contributors in
a version control system is interesting to me anyway, and since it's
unlikely to HURT Lilypond and might be of some use, I might as well
follow that interest ... :-)

Best wishes,

-- Joe


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


Re: [PATCH] Licensing notices for NR and LM

2009-09-19 Thread Joseph Wakeling
Graham Percival wrote:
> On Sat, Sep 12, 2009 at 04:32:16PM +0200, Joseph Wakeling wrote:
>> I think this is a fairly uncontroversial addition (it's just stating in
>> each file what's already true) so I'm submitting these patches now
>> rather than later.
> 
> For the benefit of the mailist archives, this *is* controversial,
> but the discussion is occuring in other threads.

Uncontroversial inasmuch as it doesn't propose to change the licensing
situation, just states the license on a file-by-file basis.


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


Re: Overview of copyright issues

2009-09-19 Thread Joseph Wakeling
Graham Percival wrote:
> Bugger the GNU project guidelines.  They're not the be-all and
> end-all of good project mangement.  In many ways, they're pure
> rubbish.  Toodle-pip, cheers, and all that.
> 
> (I'm trying to be more British... I was really surprised at the
> use of "cheers" here.  It's a greeting!  It's a farewell!  It's a
> thanks!  It's an airplaine... no, it's super-word!  :)

One of the best words in the English language. ;-)

GNU guidelines seem to me to be least important reason to do anything,
but worth reading and understanding the motivation behind them,
particularly where copyright/licensing is concerned -- just because the
people behind GNU have put a lot of thought into these things and have a
lot of experience.

>>> Really?  Line 22 says "Version 2, June 1991" to me.  How exactly
>>> do you propose to change the COPYING file?
>> I propose to add text closer to the statement recommended by the FSF/GNU
>> foundation and by the GPL itself:
>>
>> GNU Lilypond is free software; you can redistribute it and/or modify
>> it under the terms of version 2 of the GNU General Public License as
>> published by the Free Software Foundation.
> 
> ok.
> 
>> ... plus some further explanatory text that will probably be close to
>> what the existing file says.  Perhaps also a line emphasising the
>> licensing situation (i.e. v2 only) as the Linux kernel COPYING file
>> does,
> 
> ok.

I'll put forward a patch for this, then.

>> and a note explaining how we are attempting to change the
>> licensing situation.
> 
> Not ok.

Will not be in the aforementioned patch, then.

   (v) the link on the main page which (still) points to the
   text of GPLv3 on gnu.org (and has ever since v3 was
   released -- the first message pointing out this
   discrepancy was sent to the -devel mailing list over
   2 years ago!).
>>> This is fixed on the new website.
>> But not on the current one, which is still live ... :-)
> 
> Patches accepted.

I'll see what I can do.  (Depending on the timeline for launch of the
new site.  Not much point patching the current one if you're going to
launch the new one in a couple of weeks' time.)

>> Sure; this is just a useful policy to have (and maintain) because it
>> clarifies the licensing situation on a file-by-file basis.
> 
> But we *don't* have "a licensing situation" on a file-by-file
> basis.  Everything[1] under Documentation/  is FDL; everything
> else[2] is GPLv2.

I'll come to this in a moment after addressing your next points...

> [1] it would be very useful if somebody could create an example to
> replace cary.ly, since that's non-free.
> 
> [2] it would be very useful if somebody could identify anything
> (other than texinfo.tex and input/* since those are slated for
> demolition) that isn't GPLv2.
> 
> [3] haha, an unreferenced footnote!  It would be very useful if
> the note at the top of /COPYING had these exceptions noted.

I can work on at least [2] and [3].  I can try to do [1] as well.

> What's the point of per-file stuff?  The only thing that I can
> think of is that if somebody discovers the file via a google
> search (say, in gitweb), but is too lazy to look at the top of the
> gitweb repository, they can see the license and comply with it.
> 
> That's ridiculous.  Anybody who is moral will take the extra 30
> seconds to find the appropriate COPYING file.  Anybody who isn't
> moral is going to ignore the license anyway and just take whatever
> they want.

OK, well.  Perhaps I should say 'credit on a per-file basis' rather than
licensing[1].  The reason I can see is this: if I decide I want to use a
file from Lilypond in my own piece of code, it's helpful to me to know
exactly who the authors and copyright holders are for that particular
file.  With such a notice I immediately know who I have to contact if I
need/want further permissions, I know who I have to credit in my AUTHORS
file, etc. etc.

Now, I can of course go searching through the git log to track them
down.  But then what happens when I discover the apparent contributors
don't match with the copyright notice in the file (currently the case)?
 What happens if I trust the copyright/credit notice, then suddenly
later get someone I didn't know about coming along and saying, 'Hey,
you're using my code without credit'?

(Or, what happens if someone adds third-party material to Lilypond code
or docs?  OK, we have the git log, but it's handy to be able to see
without delving into version history whether a particular file contains
material from a given source.)

So, I see maintaining good file-by-file contribution records as being
both helpful to Lilypond (it helps us track who did what) and courteous
to people receiving the code (it helps facilitate the process of
adapting parts of the code for other projects).

[1] Where the licensing issue might be important is this: what if
someone forks Lilypond and adds a bunch of t

Re: Copyright/licensing action plan + a sample [PATCH]

2009-09-14 Thread Joseph Wakeling
Graham Percival wrote:
> I know you all want to rush ahead on this, but this is one issue
> which will not be rushed.  Later today, I have the choice of
> working on GUB and dealing with this thread; I will prioritize GUB
> (and therefore making releases, particularly ones with fixed OSX
> 10.5 for both 2.13 and 2.12).

>From my point of view that shouldn't be an issue.  Patches I've
submitted are as examples for people to comment on rather than with
expectation that they be reviewed/accepted quickly.

I will push ahead with tracking contributions to code, but not
make/submit any further new patches until this debate is better addressed.

Best wishes,

-- Joe


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


Re: Copyright/licensing action plan + a sample [PATCH]

2009-09-13 Thread Joseph Wakeling
Anthony W. Youngman wrote:
> I think you don't understand copyright properly ...
> 
> DON'T track "whether they support switching the licence". Because if
> they do, they will (presumably already) have switched the licence on
> their contributions.

... but we have no records of that switch, because copyright and
licensing details have not been tracked on a per-file or
per-contribution base.  If the license has not been stated within the
code they contributed, it can't be assumed by users of Lilypond,
regardless of verbal/email assurances (which most users won't know about
anyway).

> For each contributor you want to track the licence THEY have used.
> Obviously, it's v2-compatible - it must be. So I would suggest the
> spreadsheet contain the following columns ...
> 
> Contributor, licence, v3 compatible?, date, comment

That's a very good suggestion and I will follow it.

> You are exhibiting a touching, blind, blinkered faith in the FSF. If I
> may speak for Han-Wen, I don't think he shares that faith. There may
> well be lilypond contributors who don't believe in the GPL, surprising
> as that may sound! But there's nothing stopping BSD believers (who may
> find the GPL offensive!) from contributing to lilypond.
> 
> DO NOT try to switch the licence to v2+. You will probably run into a
> brick wall! And if the eventual plan is to be v3-compatible you're
> setting yourself up for failure!

I stress that the main point of my activity is not to switch the license
(a decision not for me to take) but to attempt to identify who made
significant (i.e. copyrightable) contributions what to which files.

> Use your spreadsheet to *track* *all* the licences to lilypond, not
> restrict the licences you can handle to an arbitrary subset of the
> licences you think other people should use (that attitude is offensive).
> That way, your spreadsheet will actually BE USEFUL. And it might achieve
> something POSITIVE. As you describe your intentions, the spreadsheet
> looks pretty useless at the moment.

Yes, very fair point -- I do not want to force a license choice on
anyone.  The main point of the spreadsheet is not in any case to track
license choices but contributions.  Perhaps you would like to take a look:
http://spreadsheets.google.com/ccc?key=0AkXkBLpoZm-_dHdkUUZRRVJvX2ZHWVpOeloyTU00SHc&hl=en

> As it is, I find your emphasis on v2+ offensive, and I doubt I'm alone.
> Given the choice of "v2 or v2+", I'd go for "v2 only". But if you ask me
> "what licence would *I* choose?", my reply would be "v2/v3". See what I
> mean about your approach being counter-productive?

Again, fair point.  I've no wish to argue (now) the merits of different
licensing choices.

> I repeat. Sod *your* choice of favourite licences. Just *track* the
> licences contributors have chosen, and then you can also track whether
> the licences are v3-compatible. If you ask Han-Wen "will you change your
> licence to v2/v3" I think you stand a decent chance of getting a "yes".
> If you ask "will you change to v2+?" you'll almost certainly get a flat NO!

The only reason for mentioning v2+ was just to get an idea of the number
of people willing to relicense in a way that could satisfy all other
licensing desires -- not an attempt to force it on anyone.  Note that in
the sample patch I posted the license was very clearly v2 only -- the
existing license of Lilypond.  Not really the actions of someone trying
to ram his 'favourite license' down everyone's throats, is it?

> By the way, I said to put a column in the spreadsheet called "date".
> That spreadsheet should be in the source code, probably in a LICENSING
> subdirectory, along with copies of all the emails contributors send
> confirming their license. That way you can track how and when people
> change licensing. (And you're not adding yet ANOTHER dependency, namely
> Google Docs, that people have to have if they're going to contribute to
> lilypond. And how do they patch the spreadsheet, if you screw up? I
> certainly don't want Google Docs on my system!)

Eh??!!!  Google Docs is a web app, you don't have to have anything on
your system.  It's just handy because this way I can share a link (like
above) that lets anyone view the progress of my work, and I can also
open the document to others who want to contribute.

I can export the data to OpenOffice, Excel or any damn format you like
-- it can wind up as a comma- or tab-separated text file if you really
want it to.  It's not about requiring Lilypond to do anything, it's just
something that is useful for me, now, actually trying to work out who
authored what.  And since I don't see anyone else wanting to take on
that (arguably sensible) task, it might be nice to let me get on with it
without beating me over the head for what you assume are my intentions
regarding Lilypond's license(*).

Thanks nevertheless for your useful suggestions -- I hope this email
clears up what I do and don't intend.  I'll update the licensing part of
the spreadsheet ac

Copyright/licensing action plan + a sample [PATCH]

2009-09-12 Thread Joseph Wakeling
Hello everyone,

A word or more about the action plan to deal with the
copyright/licensing issue raised earlier.

The main aim is not relicensing but just to try and get a handle on who
wrote what parts of Lilypond.  So, for each code file, I'm using git
shortlog to get the list of contributors (thanks to Francisco's .mailmap
file this is much simplified) and then using gitk to browse the commit
history of the file.

I'm dividing commits into Tweaks and Contributions.  Tweaks are things
like removing whitespace, changing a version statement, changing the
name of a symbol or function -- small editorial changes in other words.
 Contributions involve addition of a reasonable amount of novel
material.  Following the GNU guidelines at:
http://www.gnu.org/prep/maintain/html_node/Legally-Significant.html#Legally-Significant
I've taken the line that tweaks are not significant for copyright
purposes unless there are a lot of them (i.e. 10+).  So far anyone with
10+ tweaks has also got at least one commit that counts as a
'contribution' anyway.

For each significant contributor (C) I note their earliest and most
recent commit and use that to date their copyright.  In the event a
contributor already has a copyright notice in the file, I take the
earliest starting date of the two.  For tweakers (T) I note the number
of tweaks (in commits).

I'm then entering these details into a Google Docs spreadsheet (which
I'll share with anyone who requests it).  The same spreadsheet also
contains a complete list of contributors (from Francisco's .mailmap) and
a note on whether they support switching the license to GPLv2+ and
whether they are willing to dual-license doc contributions as GPLv2+.

The attached patch for lily/accidental.cc shows one result.  A git
shortlog shows that the contributors are Han-Wen (68 commits), Jan (17),
Joe Neeman (8), and Mats Bengtsson and Neil Puttock (1 each) and Werner
Lemberg (2).  Mats', Neil's and Werner's contributions are all small
tweaks, while Han-Wen, Jan and Joe have all made at least one
significant contribution.  Han-Wen's first patch is dated from 2002, but
the existing copyright notice puts the beginning of his work in 2001; so
I've taken the earlier date, but kept the final date at 2008 with his
last commit.  Jan's commits date from 2002-2009 and Joe's from
2007-2009.  The proposed copyright/licensing notice gives copyright to
all 3 for the appropriate dates, and credits contributors of tweaks and
corrections without declaring copyright for them.

Feedback (most of all from the authors!) on whether this notice is
acceptable would be gratefully received.

The docs are much more difficult to trace than code, with material
having been moved and copied and pasted all over the place.  :-(   But
when the code parts are finished, I'll see what I can do with them.

Best wishes,

    -- Joe
From 848114f18748bb70f199e6d8f6a9c6cc0cdf6a32 Mon Sep 17 00:00:00 2001
From: Joseph Wakeling 
Date: Sat, 12 Sep 2009 21:02:26 +0200
Subject: [PATCH 5/5] accidental.cc licensing and copyright notice.

  * Contributions (major and minor) tracked via git logs

  * Copyright credited to major contributors with dates
corresponding to first and last commit

  * Contributors of small tweaks and corrections given
brief credit in alphabetical order

  * ... and trailing whitespace correction courtesy
of Kate editor :-)
---
 lily/accidental.cc |   35 ++-
 1 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/lily/accidental.cc b/lily/accidental.cc
index a017cf8..16d57e0 100644
--- a/lily/accidental.cc
+++ b/lily/accidental.cc
@@ -1,9 +1,26 @@
 /*
   accidental.cc -- implement Accidental_interface
 
-  source file of the GNU LilyPond music typesetter
+  Copyright (c) 2001--2008 Han-Wen Nienhuys 
+  Copyright (c) 2002--2009 Jan Nieuwenhuizen 
+  Copyright (c) 2007--2009 Joe Neeman 
 
-  (c) 2001--2009 Han-Wen Nienhuys 
+  Small corrections and tweaks by Mats Bengtsson, Werner Lemberg
+  and Neil Puttock.
+
+  This source file is part of the GNU Lilypond music typesetter.
+
+  GNU Lilypond is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; version 2 of the License.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "accidental-interface.hh"
@@ -19,7 +36,7 @@ Stencil
 parenthesize (Grob *me, Stencil m)
 {
   Font_metric * font
-= Font_interface::get_default_font (me); 
+= Font_interface::get_def

[PATCH] Licensing notices for NR and LM

2009-09-12 Thread Joseph Wakeling
These patches add licensing notices (GFDL1.1+) but _not_ copyright
notices to individual files making up the Notation Reference and
Learning Manual.  There's also another dual-licensing my section on
contemporary music (my sole copyright) with GPL2+.

I think this is a fairly uncontroversial addition (it's just stating in
each file what's already true) so I'm submitting these patches now
rather than later.  Currently going through git logs to track down
authors of other documentation sections (docs are looking more difficult
than code as content has been shifted around and tweaked a fair bit more
than a lot of code files).

Question -- in _code_ (not docs) are there preferences/constraints
regarding the use of (c), (C) or © as copyright symbol (bearing in mind
files are in UTF-8 format)?

Best wishes,

-- Joe
From eb5a242818bda7994e6897533113240de5b842c3 Mon Sep 17 00:00:00 2001
From: Joseph Wakeling 
Date: Fri, 11 Sep 2009 16:08:22 +0200
Subject: [PATCH 2/4] Doc: add GPLv2+ permission to contemporary music section.

---
 Documentation/notation/contemporary.itely |   10 --
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/Documentation/notation/contemporary.itely 
b/Documentation/notation/contemporary.itely
index c92ea47..08e512c 100644
--- a/Documentation/notation/contemporary.itely
+++ b/Documentation/notation/contemporary.itely
@@ -12,8 +12,14 @@
 with no Invariant Sections, no Front-Cover Texts and no Back-Cover
 Texts.
 
-You should have received a copy of the GNU Free Documentation License
-along with this file.  If not, see <http://www.gnu.org/licenses/>.
+Permission is also granted to redistribute and/or modify this file
+under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+You should have received copies of the GNU Free Documentation License
+and the GNU General Public License along with this file.  If not, see
+<http://www.gnu.org/licenses/>.
 @end ignore
 
 @ignore
-- 
1.6.3.3

From 77e36108b17549ea065400901805739e733d82db Mon Sep 17 00:00:00 2001
From: Joseph Wakeling 
Date: Fri, 11 Sep 2009 16:43:11 +0200
Subject: [PATCH 3/4] Doc: GFDLv1.1+ licensing notice for files in Notation 
Reference.

 * All files in the Notation Reference now contain individual
   licensing notices for GNU Free Documentation License version
   1.1 or later, with no Invariant Sections, Front-Cover Texts
   or Back-Cover Texts

 * ... incidentally, my text editor cleaned up some trailing
   whitespace :-)
---
 Documentation/notation/ancient.itely   |   15 +
 Documentation/notation/changing-defaults.itely |   14 
 Documentation/notation/cheatsheet.itely|   14 
 Documentation/notation/chords.itely|   15 +
 Documentation/notation/editorial.itely |   17 +-
 Documentation/notation/expressive.itely|   15 +
 Documentation/notation/fretted-strings.itely   |   23 ---
 Documentation/notation/input.itely |   14 
 Documentation/notation/keyboards.itely |   17 +-
 Documentation/notation/notation-appendices.itely   |   14 
 Documentation/notation/notation.itely  |   15 +
 Documentation/notation/percussion.itely|   15 +
 Documentation/notation/pitches.itely   |   15 +
 Documentation/notation/programming-interface.itely |   18 +-
 Documentation/notation/repeats.itely   |   15 +
 Documentation/notation/rhythms.itely   |   17 +-
 Documentation/notation/simultaneous.itely  |   15 +
 Documentation/notation/spacing.itely   |   16 +-
 Documentation/notation/specialist.itely|   15 +
 Documentation/notation/staff.itely |   17 +-
 Documentation/notation/text.itely  |   15 +
 Documentation/notation/unfretted-strings.itely |   15 +
 Documentation/notation/vocal.itely |   15 +
 Documentation/notation/wind.itely  |   15 +
 Documentation/notation/world.itely |   15 +
 25 files changed, 380 insertions(+), 11 deletions(-)

diff --git a/Documentation/notation/ancient.itely 
b/Documentation/notation/ancient.itely
index cd01c94..c37db4c 100644
--- a/Documentation/notation/ancient.itely
+++ b/Documentation/notation/ancient.itely
@@ -1,6 +1,21 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @c vim: foldmethod=marker
 @ignore
+Documentation/notation/ancient.itely
+
+This file is part of the documentation for GNU Lilypond.
+
+Permission is granted to cop

Re: [PATCH] Doc: copyright/licensing notice for contemporary music section.

2009-09-11 Thread Joseph Wakeling
Graham Percival wrote:
> I'll examine this in a day or two; I'm still sorting out basic
> issues about how to live on the other side of the Atlantic.

No rush whatsoever -- I will need time to work on this stuff.  Currently
going through Notation Reference source one file at a time and tracking
down the user commits.

Good luck with the other-side-of-Atlantic issues!

Best wishes,

-- Joe



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


Re: Overview of copyright issues

2009-09-11 Thread Joseph Wakeling
Francisco Vila wrote:
> 2009/9/11 Francisco Vila :
>> Those stats are very old now.
> 
> They are now up to date, just in case.
> 
> http://paconet.org/lilypond-statistics/

Thanks very much for this! :-)

It leads to the question -- already in mind from browsing the git log --
who is 'fred'?  There is no full name and no email ('fred '), but
a lot of commits are in his name.  Is this someone responsible for much
code?  Or just someone responsible for managing the git or cvs repo in
the past?

And no, it seems docs are (fortunately) already 'or later', so we don't
have to worry on that account. :-)


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


[PATCH] Doc: copyright/licensing notice for contemporary music section.

2009-09-11 Thread Joseph Wakeling
This one IS for inclusion in the main source tree, unless there is a
problem with it. :-)

I'll be adding the same licensing notice to all files in the docs unless
anyone objects.  (Debian-related comments particularly welcome.)

For COPYRIGHT notices I will take longer and try and identify concretely
who contributed what on a file-by-file basis.

Best wishes,

-- Joe
From ac8a3517383a3f5aea9ab9b6c0efb672b620800f Mon Sep 17 00:00:00 2001
From: Joseph Wakeling 
Date: Fri, 11 Sep 2009 10:58:26 +0200
Subject: [PATCH] Doc: copyright/licensing notice for contemporary music section.

---
 Documentation/notation/contemporary.itely |   17 +
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/Documentation/notation/contemporary.itely 
b/Documentation/notation/contemporary.itely
index 34dda95..c92ea47 100644
--- a/Documentation/notation/contemporary.itely
+++ b/Documentation/notation/contemporary.itely
@@ -1,5 +1,22 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
+Documentation/notation/contemporary.itely
+
+Copyright © 2009 Joseph Wakeling 
+
+This file is part of the documentation for GNU Lilypond.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1
+or any later version published by the Free Software Foundation;
+with no Invariant Sections, no Front-Cover Texts and no Back-Cover
+Texts.
+
+You should have received a copy of the GNU Free Documentation License
+along with this file.  If not, see <http://www.gnu.org/licenses/>.
+...@end ignore
+
+...@ignore
 Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
 
 When revising a translation, copy the HEAD committish of the
-- 
1.6.3.3

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


Re: Overview of copyright issues

2009-09-11 Thread Joseph Wakeling
Carl Sorensen wrote:
> Amen to that.  If only they had made some kind of an accomodation clause
> that would have allowed projects with mixed v2 and v3 licenses to go
> forward, as long as the v3 license terms were followed on the combined
> package (e.g. no tivoization, and following the patent stuff).  But they
> don't.

There was no way they could have done that, unfortunately. :-(  It's not
a matter of GPLv3 accommodating GPLv2 but the other way round -- GPLv2
has a 'no additional clauses' requirement and GPLv3 applies ...
additional clauses.


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


Re: Overview of copyright issues + Debian

2009-09-11 Thread Joseph Wakeling
Graham Percival wrote:
> The beginnings of the manuals.  In my restructuring, that's now in
> macros.itexi, although this may well move to a third macro file.
> Hmm, I just noticed that the copyright years are messed up... I'll
> fix that fairly soon.

Brilliant.  So as far as the docs are concerned that reduces my task to
'Who contributed to ... ?' rather than 'Do they agree to ... ?'

In that case I'll submit a patch with licensing notices for doc files.
I will still work on identifying who should be credited as authors on a
file-by-file basis.

Best wishes,

-- Joe


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


Re: Overview of copyright issues + Debian

2009-09-10 Thread Joseph Wakeling
Graham Percival wrote:
> Docs have always been FDLv1.1 or later.  I was thinking about
> unilaterially changing them to FDLv1.3 or later, as soon as I've
> got GUB working.

Great, that should simplify matters A LOT.  Where in the source tree is
the explicit statement of the 'or later' ... ?


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


Re: Overview of copyright issues

2009-09-10 Thread Joseph Wakeling
Graham Percival wrote:
> Mao, I missed the flamewar.  I'm very disappointed that this
> happened without me.  :(

:-)

> The manuals include the FDL, so I'd argue that it's clear that the
> sources are under the same license.  I'd argue the same about the
> source files, actually.

This is basically about good (unambiguous) practice as far as I'm
concerned (see e.g. GNU project guidelines).

> Yes.  Including people for whom we lost contact 10 years ago, and
> including the heir(s) of Rune Zedeler, who passed away last year.
> 
> Are you offering to track down those people?  And write to his
> family to find out who owns his software (I'm sure they won't
> know), and ask for their permission?  How good's your German, by
> the way?  I have no clue if his family speaks English well enough
> to understand the nuances of GPLv2 vs. GPLv3.  Or at least the
> notation of changing a software license, where both licenses
> essentially say the same thing[1].
> 
> [1]  yes, you and I know the differences, but normal people have a
> hard enough concept with "I'll share this software with you if you
> share it with others".

Yes, I'm prepared at some point to attempt this task.  That's not a
cop-out; it's just that I want to see how much we can do _without_ that
tracking-down before I go down that particular difficult route.  More on
that to follow.

> Really?  Line 22 says "Version 2, June 1991" to me.  How exactly
> do you propose to change the COPYING file?

I propose to add text closer to the statement recommended by the FSF/GNU
foundation and by the GPL itself:

GNU Lilypond is free software; you can redistribute it and/or modify
it under the terms of version 2 of the GNU General Public License as
published by the Free Software Foundation.

... plus some further explanatory text that will probably be close to
what the existing file says.  Perhaps also a line emphasising the
licensing situation (i.e. v2 only) as the Linux kernel COPYING file
does, and a note explaining how we are attempting to change the
licensing situation.

>>   (v) the link on the main page which (still) points to the
>>   text of GPLv3 on gnu.org (and has ever since v3 was
>>   released -- the first message pointing out this
>>   discrepancy was sent to the -devel mailing list over
>>   2 years ago!).
> 
> This is fixed on the new website.

But not on the current one, which is still live ... :-)

>> In addressing this there are several policies that can be put in place NOW:
>>
>>(1) All new files added to the code or docs must contain an
>>unambiguous copyright AND licensing notice: I suggest in this
>>case GPLv2 or later for code, and the GFDL 1.1 or later for docs.
> 
> I really don't see why we MUST do this.  Is there any legal
> requirement that every single file contain the license?  I'm not
> aware of any.  Material is copyright by default.

Sure; this is just a useful policy to have (and maintain) because it
clarifies the licensing situation on a file-by-file basis.

>>(2) Contributors of new material to existing files should add
>>copyright/licensing notices *for their contributions*, again with
>>appropriate 'or later' bits.
> 
> That's going to get ridiculous.  We should add a name for each
> one-line bugfix?

No.  My statement was not clear enough.  There are guidelines on this in
the 'Information for Maintainers of GNU Software':
http://www.gnu.org/prep/maintain/html_node/Legally-Significant.html#Legally-Significant

A change of just a few lines (less than 15 or so) is not legally
significant for copyright. A regular series of repeated changes,
such as renaming a symbol, is not legally significant even if the
symbol has to be renamed in many places. Keep in mind, however, that
a series of minor changes by the same person can add up to a
significant contribution. What counts is the total contribution of
the person; it is irrelevant which parts of it were contributed
when.


>>(1) How well have the copyright notices for individual files been
>>maintained?
> 
> Not.
> 
>>  Do they refer only to original authors of files
>>or all authors over that file's history?  (More precisely: is
>>there not just a list of who contributed to LP but also who
>>wrote exactly what?)
> 
> Original authors of files.  Look at the git log for more details.

Yup, as I discovered after a few sessions with git annotate. :-)

>>(2) Is there a preference for transferring copyright to some third
>>party (either the FSF or some LP-dedicated organisation)?  If
>>not, it seems a good idea for future contributions to LP to be
>>'or later', as it avoids a repeat of this issue in the future.
> 
> This has been discussed privately, and might occur if the
> copyright-fixing issue is undertaken seriously.

Personally I'm not in favour of copyright-transfer agreements, I 

Re: Overview of copyright issues + Debian

2009-09-10 Thread Joseph Wakeling
Travis Briggs wrote:
> The source material could be public domain, but the snippet itself is
> a 'derivative work' and is thus under the copyright of whoever made
> it.

What I recall from submitting to LSR was that I was asked to agree that
by submitting this snippet, I was (a) consigning it to the public domain
and (b) had the right to do so.

As Valentin says, public domain is not a license, but public domain is
arguably the optimal copyright status for most musical examples given in
the documentation.


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


Re: Overview of copyright issues + Debian

2009-09-10 Thread Joseph Wakeling
Reinhold Kainhofer wrote:
> Because they are not allowed by copyright law. They cannot change the license 
> if the file is only "mostly" their work. They can only change the license if 
> the file is SOLELY their work.

Well, technically they can release their bit of the file under their own
license, as long as it is compatible with the original.  What they can't
do is unilaterally rewrite the license for the whole file (see the whole
mess last year when some guy working on the Linux kernel rewrote the
licensing notice for a file copied from the BSD kernel).

Having a 'one license per file' rule just makes things simpler, is all.


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


Re: Overview of copyright issues + Debian

2009-09-10 Thread Joseph Wakeling
Don Armstrong wrote:
> This is now my problem,[1] so I'll attempt to get it addressed at some
> point in the future. [I'd certainly like to see Lilypond at least
> clear up some of the issues so that the above can become correct.]

Hmm, I noted you were listed as the Debian maintainer on Launchpad's
Lilypond page, and brain went off: "The same Don Armstrong as ... ?"
Nice to have you involved in this discussion (and congratulations on
getting your PhD).

Disclaimer: I'm a relatively new contributor to (but long-time user of)
Lilypond, so what I say are my own thoughts and I don't speak for the
Lilypond developer community.

But, since I'm putting myself forward to try and deal with some of this,
any advice you can give would be very welcome.  From my point of view
the DFSG are a very nice benchmark against which to test code and doc
licensing and compatibility is an important aim.

> (There are a significant number of files distributed in lilypond which
> are under v2 or later, or v3 or later, as well as things like
> input/mutopia/claop.py, which isn't even Free Software, as it cannot
> be modified.[2])

If I'm not mistaken, isn't that file only used for a regression test?
How does that affect the situation?

> Furthermore, the licensing statement in COPYING is immensely
> ambiguous, as it only states "GNU PUBLIC LICENSE" without specifying a
> version, or anything.
> 
>>  (1) All new files added to the code or docs must contain an
>>  unambiguous copyright AND licensing notice: I suggest in this
>>  case GPLv2 or later for code, and the GFDL 1.1 or later for
>>  docs.
> 
> I'd personally prefer it if documentation was at least licensed under
> the same license as the code to allow for easily inclusion of code
> examples (and to obviate the problems I [and Debian] have with
> specific aspects of the GFDL.) It certainly can be dual licensed under
> GFDL >= v1.1 + GPL >= v2, though.

AFAIK the docs have always been GFDLv1.1 -- I don't think we can
unilaterally relicense them.  Can you clarify the particular issue with
GFDL?  I thought the Debian consensus was that GFDL is OK as long as
there are no invariant sections.

What does GPL imply for docs?  Would it mean e.g. that someone who
distributes a PDF of the Learning Manual would have to also be prepared
to provide Texinfo sources?

>>  (1) How well have the copyright notices for individual files been
>>  maintained?
> 
> As near as I can tell, they haven't been maintained at all. Very few
> of them actually have the boilerplate that they should have, which
> makes this kind of thing very difficult.
> 
> But by all means, please help work on this. It'll certainly make my
> life easier when I have to go through and audit the code for inclusion
> in Debian (which I naïvely assumed had already been done before I took
> over maintenance.)

What I have noted is that copyright dates have been updated but I'm not
clear whether author names have.

What I propose is that I maintain a separate branch of the code (but
keep pulling/rebasing against the Lilypond master) to insert appropriate
copyright and licensing notices.  git blame should help to give a better
idea of who has contributed to what, so I can fire of queries to authors
where necessary.

What would be good is if as many contributors as possible can reply to
this email just to OK (i) my putting copyright/licensing notices in the
files they have contributed to and (ii) their licensing preferences for
their contributions:

-- for code, GPLv2 only or GPLv2 or later;

-- for docs, GFDLv1.1 or later and/or GPLv2 or later;

-- freer licenses (BSD/MIT-style, or donated to the public domain).

I think that snippets are already public domain since it's a condition
of submission to LSR.

I have Han-Wen's OK already for his contributions, but would like
others. :-)

Now, future policies -- I would suggest new contributions be requested
to follow these rules:

-- for code, GPLv2 or later or a more liberal compatible license;

-- for docs, GFDLv1.1 or later/GPLv2 or later dual license (or
   more liberal compatible license);

-- when altering a file that already exists, use the same license
   as for the rest of that file (so if someone contributes a code
   file under a BSD/MIT-esque license, anyone who adds to that file
   uses the same);

-- patches that make a significant alteration to a file should add
   the author's name to the copyright notice

-- new files should be required to carry a copyright and licensing
   notice when added to the source code.

Note that if all this goes OK, we should then be OK to unilaterally
upgrade to GPLv3 (if that's desired).

Does this sound good to everyone?

Best wishes,

-- Joe


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


Re: Overview of copyright issues

2009-09-10 Thread Joseph Wakeling
Hans Aberg wrote:
> In GNU projects, the normal thing is that contributors sign a paper
> which is sent in to GNU that they donate the code to GNU.

Nope.

   "For a program to be GNU software does not require transferring
   copyright to the FSF; that is a separate question. If you transfer
   the copyright to the FSF, the FSF will enforce the GPL for the
   program if someone violates it; if you keep the copyright,
   enforcement will be up to you."

from:
http://www.gnu.org/help/evaluation.html#whatmeans


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


Re: Overview of copyright issues

2009-09-09 Thread Joseph Wakeling
Han-Wen Nienhuys wrote:
> I think having to sign paperwork (esp. having your employer sign
> something) is something that puts a big barrier up for potential
> contributors.  I am not sure it is worth the effort.

I would not want to see users in general having to sign a contributor
agreement or any such.  What does seem like a good idea is moving
existing code from 'v2 only' to 'v2 or later' (or v3 if desired),
because that takes a lot of the sting out of potential future license
upgrade decisions.  I don't know whether that needs formal paperwork or
whether emailed permission will suffice (again, allowing for the fact
that LP contributors are most likely not interested in suing over such
factors:-)


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


Re: Overview of copyright issues

2009-09-09 Thread Joseph Wakeling
Han-Wen Nienhuys wrote:
> Jan and I know that the current situation wrt copyright headers and
> license notes is not ideal, but we never could bring ourselves to fix
> it, because there always were more important things to do.
> Nevertheless, if someone feels energetic to take this on, they have my
> blessing.

Well, I'm happy to go fix the actual files, just not sure what the
precise legal ramifications of this are.  I mean, if _I_ change the
copyright notice in a file that is _your_ copyright ... :-)

But anyway, I'm willing to do the typing side of it.  I just need you to
clarify exactly what I should put: presumably GPLv2 for code files and
GFDLv1.1 for docs are the base licenses, but would you and Jan approve
putting GPLv2 or later for your own contributions?  What are your
thoughts (and recommendations) for code written by others?  I know that
you ran into a paperwork issue some time back that has never been resolved.

I'd consider taking on the paperwork side as well (not right now, maybe
a month or two from now) but I want to try and to as much as possible of
what can be done without it.

What I could suggest as an approval mechanism is for individual authors
to 'sign off' the patches (as git allows) that add licensing notices to
their files, to show that they consent to what has been put there.


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


Re: Overview of copyright issues

2009-09-09 Thread Joseph Wakeling
Reinhold Kainhofer wrote:
> ... which I'm sure will NOT hold up in court, so I propose we really end this 
> discussion. Please leave the lawyering to the lawyers and lets go back to 
> coding.

Please understand the motivation for OPENING this discussion -- not to
debate which license or what license, but to propose a few concrete
things the LP coding team can do to clarify licensing and (perhaps) make
it easier to upgrade the license if that's desired.

I particularly think it would be a good idea to make sure that all files
in the source tree -- code and docs -- have both copyright and licensing
statements in them.

More particularly, does anyone object to me adding a GFDL 1.1 or later
notice to the doc files I have written?

Best wishes,

-- Joe


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


Re: Overview of copyright issues

2009-09-09 Thread Joseph Wakeling
Hans Aberg wrote:
> The point is that if you want to be up-to-date with latest GPL in both
> new restrictions and permissions, the only way to do it is to refer to
> the latest version when the source is published. "Or later" will admit
> later restrictions, "or latest" will impose them quietly on old sources.

No, it won't, because if a piece of code has been released under
particular license conditions (say, GPLv2) you can't revoke that.  You
can't rewrite the license for old sources -- you can only upgrade the
license for new releases.  And for that, 'or later' is a much better
formulation than 'or latest', because it also allows you to choose NOT
to upgrade if that is your desire or interest.


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


Re: Overview of copyright issues

2009-09-09 Thread Joseph Wakeling
Hans Aberg wrote:
> As long as you use "or later", tivoization and other new restriction in v3 is 
> allowed.

No, as long as you use _GPLv2_, whether it's GPLv2 or later or GPLv2 and
only GPLv2, tivoization is possible.  'GPLv3 or later' would not allow
tivoization.

> It is probably simplest to just make sure that the latest GPL is copied
> into the lilypond sources by some semi-automated scheme.

Unless you have an 'or later' cause already in place, or you have the
permission of the copyright holders, you cannot unilaterally substitute
GPLv3 for GPLv2.  That's what the whole problem is about.

I don't see much point in continuing this discussion further because I
don't think you understand what the real problems (or solutions) are, or
what the requirements of the GPL (in any version) are.


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


Re: Overview of copyright issues

2009-09-09 Thread Joseph Wakeling
Hans Aberg wrote:
> You might check with the GNUers if it is the intention. It means that
> sources can be tivoized, even in the face of the new v3.

It's GPLv2, and not the 'or later', that allows for tivoization -- but
you have to question whether this is a serious risk for Lilypond.

> Linking is always allowed if you make sure the interfaces are provided
> and other linking info is provided - copyright only controls
> distribution of the parts that makes it creatively unique, and v3 seemed
> to have changed over v2 to bring that out. There is no legal requirement
> that the parts should have the same license.

The parts need a compatible license if one links to the other.  GPLv2
and GPLv3 are not compatible licenses.  That's why the 'or later' is
important -- it allows that compatibility.

> But it has the effect that sources that formerly have been OK to
> distribute may not be so. For example, if they are tivoized, then when
> the GPL v3 now has arrived, the old sources cannot be tivoized, even if
> the package itself has not been changed.
> 
> On the other hand, the formulation "or later" means that new sources can
> be tivoized even if the new version v3 has been released, unless they
> explicitly mention v3.

Again, the 'or later' has nothing to do with tivoization.  It's GPLv2
that allows for that possibility (which, again, is not likely).

If Lilypond does switch to GPLv3 I would strongly argue for a 'GPLv3 or
later' formulation, to avoid this problem arising again if a further GPL
revision is released.

I don't think it matters much whether Lilypond moves to GPLv3 because
most of the risks that GPLv3 is designed to obviate are unlikely to
arise in the case of Lilypond.  I _do_ think it matters that Lilypond be
released under license terms that are compatible with GPLv3 and future
potential releases of the GPL.


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


Re: Overview of copyright issues

2009-09-09 Thread Joseph Wakeling
Matthias Kilian wrote:
> On Wed, Sep 09, 2009 at 06:04:17PM +0200, Joseph Wakeling wrote:
>> So, having read the past discussion and looked through source code etc.
>> it seems like there are several general observations, some conclusions,
>> and some questions.
>>
>> Observations:
>>
>>(1) Lilypond isn't violating any copyright/license requirements.
> 
> So what's the point of this discussion?

Part is that there's some general consensus that it would be nice to
move Lilypond to GPLv3, or at least to have the chance to do so.  Hence
some of the practical points on how to make that easier.

The other part is that there are some aspects of the way Lilypond code
and docs are managed with respect to licensing that are confusing or
problematic -- lack of licensing notices in source code, lack of
copyright or licensing notices in docs.  Those really should be fixed
and better practices established for maintaining them.  I would see that
as pretty urgent actually, far more important than the 'what license?'
question, because it relates to LP's ability to track who wrote what and
which conditions they made it available under.


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


Re: Overview of copyright issues

2009-09-09 Thread Joseph Wakeling
Hans Aberg wrote:
> I think that the formulation should be "GPL, v2 or latest", because
> otherwise those that want to redistribute the code can choose which
> version, which is not the intent - v3 is in fact more restrictive with
> respect to tivoization. Only one GPL should be applicable. The
> formulation "or later" is probably spilled usage when indicating which
> version can be used - then it means one can choose version.

The standard formulation, as advised in the GPL appendix which describes
how to apply the GPL to your programs, is

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

The whole point of this formulation is to give users of the program the
option to choose which version of the license they want to be bound by
if they redistribute or modify the code, and in particular to make it
easy for a project to upgrade the license OR NOT.

> This formulation also means that the distribution conditions may change,
> even though the copyright notice is not changed of a package, when new
> version of the GPL are issued. I think that is fully legal.

The problem with your formulation is that it is too restrictive.
Consider this scenario: a program is being distributed as 'GPLv2 or
latest' as you suggest.  Someone writes a GPLv3 program which links with
that code (as they are allowed to do at that point).  Now Version 4 of
the GPL is released.  Suddenly the person with the second program can no
longer keep linking to new releases of the first one, because 'GPLv2 or
latest' now means v2 or v4 and neither v2 nor v4 are compatible with v3.

It's a scenario that is completely undesirable.  'or later' basically is
about making sure that writers of programs using all future versions of
the GPL will have the right to link to or incorporate your code (as well
as being handy if, as a community, you decide you want to upgrade the
license).


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


Overview of copyright issues

2009-09-09 Thread Joseph Wakeling
So, having read the past discussion and looked through source code etc.
it seems like there are several general observations, some conclusions,
and some questions.

Observations:

   (1) Lilypond isn't violating any copyright/license requirements.
   There's no LEGAL pressure to switch to GPLv3, although there may
   be issues related to Lilypond's status in the GNU project.  (That
   said, the longer we leave the situation as it is, the more likely
   a legal issue WILL arise.)

   (2) The intention of the original authors, and the strict
   interpretation of the COPYING file, is that Lilypond is
   GPLv2 only.

   (3) Individual code files contain copyright notices but not licensing
   notices.  It's not clear if these notices have been maintained
   beyond updating the date -- have author names been persistently
   added where appropriate?  (Most the files have a single author
   listed; the one two-author file I saw was by Han-Wen and Jan.)

   (4) Individual documentation source files (.itely files) in general
   contain neither copyright notices nor licensing notices.

   (5) We have a full list of contributors to Lilypond but need to have
   PAPER documentation giving their permission to change the license
   of the code/documentation they wrote.

   (6) Confusion has come from

  (i) a Debian copyright file for the package, apparently last
  updated in 2004, stating that Lilypond is 'v2 or later'

 (ii) the fact that the Lilypond COPYING file, while describing
  the licensing situation accurately, does so in non-
  standard language (people expect to see the statement
  recommended in the GPL appendix, which allows for
  unambiguous distinction between 'vN or later' or 'vN')

(iii) the lack of licensing notices within code and
  documentation

 (iv) GNU recommendations that GNU packages always use the
  latest version of the GPL

  (v) the link on the main page which (still) points to the
  text of GPLv3 on gnu.org (and has ever since v3 was
  released -- the first message pointing out this
  discrepancy was sent to the -devel mailing list over
  2 years ago!).

In addressing this there are several policies that can be put in place NOW:

   (1) All new files added to the code or docs must contain an
   unambiguous copyright AND licensing notice: I suggest in this
   case GPLv2 or later for code, and the GFDL 1.1 or later for docs.

   (2) Contributors of new material to existing files should add
   copyright/licensing notices *for their contributions*, again with
   appropriate 'or later' bits.

   (3) For files with single authors, those same authors can send
   patches containing explicit licensing notices for their files.
   If those licensing notices are GPLv2 or later (which they can do
   unilaterally since they are sole authors) that solves problems
   for a good part of the code.

   (4) It's still a good idea to get appropriate paperwork from EVERY
   contributor but with the above done we have a much less heavy
   amount of OBLIGATORY work.

Questions:

   (1) How well have the copyright notices for individual files been
   maintained?  Do they refer only to original authors of files
   or all authors over that file's history?  (More precisely: is
   there not just a list of who contributed to LP but also who
   wrote exactly what?)

   (2) Is there a preference for transferring copyright to some third
   party (either the FSF or some LP-dedicated organisation)?  If
   not, it seems a good idea for future contributions to LP to be
   'or later', as it avoids a repeat of this issue in the future.

OK, I think that's the lot.  Thoughts/disagreements/comments anyone?

Best wishes,

-- Joe


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


Re: kainhofer docs not updating

2009-09-09 Thread Joseph Wakeling
John Mandereau wrote:
> Le mardi 08 septembre 2009 à 12:30 +0200, Joseph Wakeling a écrit :
>> I note that texi2html is only 1.78 on my system (it's the version native
>> to Ubuntu Karmic).  Is this going to be a blocker?
> 
> If you want HTML output of the documentation, yes.

OK, that's tolerable.  doc-stage-1 now builds successfully, so I can
check the PDF and the correctness of the markup.  HTML is not absolutely
necessary.


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


Re: Copyright issues

2009-09-08 Thread Joseph Wakeling
I wrote:
> Second: Lilypond is part of the GNU project and GNU programs typically
> have the 'or later' option, and indeed there is a perception that they
> will upgrade to the latest GPL by default.

... see the general information on making a package part of the GNU project:
http://www.gnu.org/help/evaluation.html

   "A GNU program should use the latest version of the license that
   the GNU Project recommends—not just any free software license."


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


Re: Copyright issues

2009-09-08 Thread Joseph Wakeling
Jan Nieuwenhuizen wrote:
> Op dinsdag 08-09-2009 om 13:16 uur [tijdzone +0200], schreef Jan
> Nieuwenhuizen:
> 
>> Not only out-of-date, but also /wrong/.  I just checked our sources,
>> a very early one and the one that was claimed to be packaged
>>
>>git show release/{1.0.1,2.2.2}:{COPYING,main.cc}
> 
> git show release/{1.0.1,2.2.2}:{COPYING,lily/main.cc

There are several possible sources of this confusion.

First: nowhere in the LP source can I find the typical notice that the
FSF recommends/requests in the 'How to Apply These Terms to your new
program' appendix to the GPL.

The notice in the COPYING file is technically unambiguous but is so
atypical as to not necessarily be clear.

Second: Lilypond is part of the GNU project and GNU programs typically
have the 'or later' option, and indeed there is a perception that they
will upgrade to the latest GPL by default.

Third -- and this is really important: Lilypond's source code and other
files lack often copyright/licensing notices.  This is explicitly
contrary to the policies of the GNU project:
http://www.gnu.org/prep/maintain/html_node/License-Notices.html#License-Notices

I gather there is a complete list of Lilypond contributors but are there
records of who contributed what?

Best wishes,

-- Joe


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


Re: Copyright issues

2009-09-08 Thread Joseph Wakeling
Jan Nieuwenhuizen wrote:
> Op dinsdag 08-09-2009 om 12:34 uur [tijdzone +0200], schreef Joseph
> Wakeling:
> 
>> The
>> copyright file in my distro (Ubuntu) refers to GPLv2 or later
> 
> Which file are you referring to, and what does it say?

/usr/share/doc/lilypond/copyright

Its contents:


This package was Debianized by Anthony Fok  on

Wed,  6 Aug 1997 04:30:28 -0600


The development branch, lilypond1.3, was packaged separately
on Tue,  9 Nov 1999 22:30:32 -0700
but was merged back into the lilypond package
as of Mon, 16 Apr 2001 21:58:42 -0600

It was downloaded from
http://lilypond.org/download/v2.2/lilypond-2.2.2.tar.gz

For more information about GNU LilyPond, please visit:
http://lilypond.org/

Authors:
  Han-Wen Nienhuys 
  Jan Nieuwenhuizen 

Copyright:

  GNU LilyPond is Copyright (C) 1996--2004
  Jan Nieuwenhuizen & Han-Wen Nienhuys

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301, USA.

*** NOTE

This license applies to all files except the included example
input files (which are in the subdirectory input/ )

*** END NOTE


All the other scripts and control files for building and installing
GNU LilyPond under Debian GNU/Linux are also under the GNU General
Public License (GPL) version 2 or later.

On Debian GNU/Linux systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL'.


I didn't read it properly before, but it looks like a severely
out-of-date notice added by the Debian packager which no one has ever
bothered to revise.


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


Re: kainhofer docs not updating

2009-09-08 Thread Joseph Wakeling
John Mandereau wrote:
> Le mardi 08 septembre 2009 à 12:30 +0200, Joseph Wakeling a écrit :
>> [century_schoolbook_l_serif_3.0673828125]Segmentation fault (core
>> dumped)
>> command failed: /home/myusername/code/lily/out/bin/lilypond 
> 
> What is the snippet that causes a segmentation fault?

It's trying to build BUILD-DIR/out/lybook-db/snippet-names--494188324.ly
whose content is:

snippet-map--494188324.ly
c3/lily-e7ee339b.ly
98/lily-8b8d1acf.ly

The two snippets are respectively as follows:

%% Generated by lilypond-book.py

%% Options: [alt=[image of
music],printfilename,indent=0\mm,texidoc,line-width=160\mm]
\include "lilypond-book-preamble.ly"



% 
% Start cut-&-pastable-section
% 



\paper {
  indent = 0\mm
  line-width = 160\mm
  force-assignment = #""
  line-width = #(- line-width (* mm  3.00))
}

\layout {

}



% 
% ly snippet:
% 
\sourcefilename "page-spacing-system-count-overfull.ly"
\sourcefileline 0
\version "2.13.4"

\header {
  texidoc = "Page breaking doesn't crash when the line-breaking
is invalid."
}

\book {
  \paper {
system-count = #1
  }

  \repeat unfold 20 { c d e f }
}



% 
% end ly snippet
% 


%% Generated by lilypond-book.py
%% Options: [alt=[image of
music],printfilename,indent=0\mm,texidoc,line-width=160\mm]
\include "lilypond-book-preamble.ly"



% 
% Start cut-&-pastable-section
% 



\paper {
  indent = 0\mm
  line-width = 160\mm
  force-assignment = #""
  line-width = #(- line-width (* mm  3.00))
}

\layout {

}



% 
% ly snippet:
% 
\sourcefilename "warn-unterminated-span-dynamic.ly"
\sourcefileline 0
\version "2.13.4"

#(ly:set-option 'warning-as-error #f)

\header {
  texidoc = "A warning is printed if a dynamic spanner is
unterminated."
}

<<
  \new Staff {
% warning expected: unterminated crescendo
c'1\<
  }
  \new Staff {
% warning expected: unterminated decrescendo
c'1\>
  }
>>




% 
% end ly snippet
% 



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


Re: Copyright issues

2009-09-08 Thread Joseph Wakeling
John Mandereau wrote:
> Even if any program in LilyPond linked with gs, we'd have no problem
> since LilyPond is licensed under GPLv2+ (GPL v2 or later).
> 
> Please correct me if I'm wrong.

That was the point of the re-opening of discussion -- my query on that
very point in relation to the new website design.

The COPYING file in Lilypond source code references GPLv2 only.  The
copyright file in my distro (Ubuntu) refers to GPLv2 or later, which may
be where confusion comes from.  Past discussion on -devel notes that LP
is v2 only and the difficulty comes from the paperwork needed to get
permission from contributors to move to 'v2 or later' or 'v3 or later'.

By the way, I note that individual source/documentation files often have
no notice of copyright or license.

Best wishes,

-- Joe


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


  1   2   >