Re: Let rhythmic-engraver make its articulation-or-event decision based on current listeners (issue 6098050)

2012-04-23 Thread dak

Reviewers: Graham Percival, J_lowe,


http://codereview.appspot.com/6098050/diff/2001/Documentation/changes.tely
File Documentation/changes.tely (right):

http://codereview.appspot.com/6098050/diff/2001/Documentation/changes.tely#newcode170
Documentation/changes.tely:170: Another consequence is that string
numbers and right hand fingerings on
On 2012/04/23 03:43:13, Graham Percival wrote:

IMO each @item should be self-contained, and multi-paragraph items are

the way

to go if there's multiple implications of a single change.  Could this

(and the

previous @item) just be additional paragraphs (i.e. remove the @item).


Can do.  Problem is that this change, programmatically a side effect, is
rather important to the user on its own.  If you want to have the items
more self-contained, they can be either written completely
independently, or the EventChord thing can end with The next two items
are also consequences of this change.

It's sort of a you will likely consider this a nuisance when writing
your own code, but there were good reasons for it reasoning.  Maybe the
changes file is not the place for defending the decisions we (TM) made.

Anyway, I think this is important enough for the user-visible
consequences to warrant individual items.  Should I mention the relation
in the lead-up, or just drop it?

http://codereview.appspot.com/6098050/diff/2001/Documentation/notation/fretted-strings.itely
File Documentation/notation/fretted-strings.itely (left):

http://codereview.appspot.com/6098050/diff/2001/Documentation/notation/fretted-strings.itely#oldcode103
Documentation/notation/fretted-strings.itely:103: @warning{String
numbers @strong{must} be defined inside a chord
On 2012/04/23 03:43:13, Graham Percival wrote:

awesome change.


Actually, an unexpected side effect of turning the event class hierarchy
away from being a compile-time constant.

http://codereview.appspot.com/6098050/diff/2001/Documentation/notation/fretted-strings.itely
File Documentation/notation/fretted-strings.itely (right):

http://codereview.appspot.com/6098050/diff/2001/Documentation/notation/fretted-strings.itely#newcode521
Documentation/notation/fretted-strings.itely:521: \new Voice \with {
\override StringNumber #'stencil = ##f } {
On 2012/04/23 03:43:13, Graham Percival wrote:

our vague almost-certainly-unwritten guidelines on lilypond formatting

would

suggest that the \override should be on a newline, but I can't be

bothered to

complain about this.


Well, this is not a music override but a context modification.  I'll
check a bit around for style.

http://codereview.appspot.com/6098050/diff/2001/Documentation/notation/fretted-strings.itely#newcode527
Documentation/notation/fretted-strings.itely:527: \new TabStaff \with {
stringTunings = #bass-tuning } {
This would have to be formatted differently as well if I decided to
change the above.

Description:
Let rhythmic-engraver make its articulation-or-event decision based on
current listeners

This removes the dependency of the rhythmic engraver on a static list
of unlistened event classes and thus is part of work on issue 2449.

As one effect, string numbers on isolated notes in Voice contexts are
now typeset by default since the string numbers have no listener in
Voice contexts even though they would have one in TabVoice.

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

Affected files:
  M Documentation/changes.tely
  M Documentation/notation/fretted-strings.itely
  M lily/dispatcher.cc
  M lily/include/dispatcher.hh
  M lily/rhythmic-music-iterator.cc


Index: Documentation/changes.tely
diff --git a/Documentation/changes.tely b/Documentation/changes.tely
index  
e57bbe7562eba77fe817a45b9d492552fcc550a8..c1bda08952f5d4b495c1138712360c74a50c7b9e  
100644

--- a/Documentation/changes.tely
+++ b/Documentation/changes.tely
@@ -167,6 +167,11 @@ some events of the original chord, he can run the  
repeat chord

 replacement function @code{\chordRepeats} manually.

 @item
+Another consequence is that string numbers and right hand fingerings on
+single notes appear in normal notation without having to be placed
+inside of chord brackets.
+
+@item
 Scheme expressions inside of embedded Lilypond (@code{#@{@dots{}#@}})
 are now executed in lexical closure of the surrounding Scheme code.
 @code{$} is no longer special in embedded Lilypond.  It can be used
Index: Documentation/notation/fretted-strings.itely
diff --git a/Documentation/notation/fretted-strings.itely  
b/Documentation/notation/fretted-strings.itely
index  
e8deaafb8c9402363d8e4f9195a39416d2d4c82d..ef004f3e2cf032f75d849a5f240c4279d254f1e2  
100644

--- a/Documentation/notation/fretted-strings.itely
+++ b/Documentation/notation/fretted-strings.itely
@@ -97,15 +97,11 @@ Notation Reference:
 @cindex fingering vs. string numbers

 The string on which a note should be played may be indicated by
-appending @code{\@var{number}} to a note inside a chord construct
-@code{}.
-
-@warning{String numbers @strong{must} be 

Re: Change \bendAfter and \rightHandFinger into event functions (issue 6102045)

2012-04-23 Thread dak

Reviewers: Graham Percival,


http://codereview.appspot.com/6102045/diff/1/Documentation/notation/fretted-strings.itely
File Documentation/notation/fretted-strings.itely (right):

http://codereview.appspot.com/6102045/diff/1/Documentation/notation/fretted-strings.itely#newcode1589
Documentation/notation/fretted-strings.itely:1589: e\rightHandFinger 2
On 2012/04/23 03:45:38, Graham Percival wrote:

oh god.  At one point, we tried to eliminate all #-less numbers to

avoid

confusion like this.



I know that you're proud of parser work which lets us write a bare 2

here, but I

fear this would lead to user confusion and not be a net positive.

Could we

leave the #2  there?


Done.

Description:
Change \bendAfter and \rightHandFinger into event functions

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

Affected files:
  M Documentation/notation/expressive.itely
  M Documentation/notation/fretted-strings.itely
  M ly/music-functions-init.ly


Index: Documentation/notation/expressive.itely
diff --git a/Documentation/notation/expressive.itely  
b/Documentation/notation/expressive.itely
index  
0d86f3e639dd7b1344726ce61b11e680dd37e088..d38175ce4858544b5b34f441de1c4ab1a93ef64e  
100644

--- a/Documentation/notation/expressive.itely
+++ b/Documentation/notation/expressive.itely
@@ -989,18 +989,14 @@ indicates the pitch interval that the fall or doit  
will extend

 @emph{beyond} the main note.

 @lilypond[verbatim,quote,relative=2]
-c2-\bendAfter #+4
-c2-\bendAfter #-4
-c2-\bendAfter #+6.5
-c2-\bendAfter #-6.5
-c2-\bendAfter #+8
-c2-\bendAfter #-8
+c2\bendAfter #+4
+c2\bendAfter #-4
+c2\bendAfter #+6.5
+c2\bendAfter #-6.5
+c2\bendAfter #+8
+c2\bendAfter #-8
 @end lilypond

-The dash @code{-} immediately preceding the @code{\bendAfter}
-command is @emph{required} when writing falls and doits.
-
-
 @snippets

 @lilypondfile[verbatim,quote,texidoc,doctitle]
Index: Documentation/notation/fretted-strings.itely
diff --git a/Documentation/notation/fretted-strings.itely  
b/Documentation/notation/fretted-strings.itely
index  
e8deaafb8c9402363d8e4f9195a39416d2d4c82d..b9267e33d050aa0f8416c2d4051da80a8b7e7103  
100644

--- a/Documentation/notation/fretted-strings.itely
+++ b/Documentation/notation/fretted-strings.itely
@@ -1580,24 +1580,24 @@ Right-hand fingerings @var{p-i-m-a} must be entered  
within a

 chord construct @code{} for them to be printed in the score,
 even when applied to a single note.

-@warning{There @strong{must} be a hyphen before
-@code{@bs{}rightHandFinger} and a space before the closing @code{}.}
+@warning{If the number is entered in Scheme notation, remember to append
+a space before following it with a closing @code{} or similar.}

 @lilypond[quote,verbatim,relative=0]
 \clef treble_8
-c-\rightHandFinger #1 4
-e-\rightHandFinger #2 
-g-\rightHandFinger #3 
-c-\rightHandFinger #4 
-c,-\rightHandFinger #1 e-\rightHandFinger #2
- g-\rightHandFinger #3 c-\rightHandFinger #4 1
+c\rightHandFinger #1 4
+e\rightHandFinger #2 
+g\rightHandFinger #3 
+c\rightHandFinger #4 
+c,\rightHandFinger #1 e\rightHandFinger #2
+ g\rightHandFinger #3 c\rightHandFinger #4 1
 @end lilypond

 For convenience, you can abbreviate @code{\rightHandFinger} to something
 short, for example @code{RH},

 @example
-#(define RH rightHandFinger)
+RH=#rightHandFinger
 @end example


Index: ly/music-functions-init.ly
diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly
index  
80c3020ac04b7a2574ad72b85e59cad45edffaac..59a11264f7c741d84d3c854494adfd3f8cdfad2c  
100644

--- a/ly/music-functions-init.ly
+++ b/ly/music-functions-init.ly
@@ -178,7 +178,7 @@ barNumberCheck =
 cbn n))

 bendAfter =
-#(define-music-function (parser location delta) (real?)
+#(define-event-function (parser location delta) (real?)
(_i Create a fall or doit of pitch interval @var{delta}.)
(make-music 'BendAfterEvent
   'delta-step delta))
@@ -952,7 +952,7 @@ for time signatures of @var{time-signature}.)
(revert-time-signature-setting time-signature))

 rightHandFinger =
-#(define-music-function (parser location finger) (number-or-string?)
+#(define-event-function (parser location finger) (number-or-string?)
(_i Apply @var{finger} as a fingering indication.)

(make-music



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


Re: hideNotes should hide also TabNoteHead (issue 2480). (issue 6105049)

2012-04-23 Thread n . puttock

On 2012/04/23 04:50:21, Keith wrote:


I need an
   \override NoteColumn #'ignore-collision = ##t
here or else I get a warning (either before or after this patch).  I

mention

this only because I broke the doc build not too long ago by causing a

warning

from Lilypond input in the docs. (patchy didn't catch this, at the

time.)

It would make more sense to use \voiceOne for the upper voice.



http://codereview.appspot.com/6105049/

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


Re: hideNotes should hide also TabNoteHead (issue 2480). (issue 6105049)

2012-04-23 Thread dak

On 2012/04/23 12:03:41, Neil Puttock wrote:

On 2012/04/23 04:50:21, Keith wrote:



 I need an
   \override NoteColumn #'ignore-collision = ##t
 here or else I get a warning (either before or after this patch).  I

mention

 this only because I broke the doc build not too long ago by causing

a warning

 from Lilypond input in the docs. (patchy didn't catch this, at the

time.)


It would make more sense to use \voiceOne for the upper voice.


\voiceOne is already used for the upper voice.  The problem is that the
voice settings are totally messed up by the standard grace
synchronization problem.  Remove the graces, and the score typesets
fine.

http://codereview.appspot.com/6105049/

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


Re: hideNotes should hide also TabNoteHead (issue 2480). (issue 6105049)

2012-04-23 Thread n . puttock

On 2012/04/23 12:09:15, dak wrote:


\voiceOne is already used for the upper voice.  The problem is that

the voice

settings are totally messed up by the standard grace synchronization

problem.

Remove the graces, and the score typesets fine.


Ah, I didn't scroll down that far. :) Nevertheless, the voicing should
be fixed even if it means adding explicit \voiceOne commands at
appropriate places.  It looks bad with both voices stem-down.

The glissando overrides are messed up too.  Probably since Mike added
code which avoids accidentals automatically (though this should be
generalized for other side-supports such as fingerings).



http://codereview.appspot.com/6105049/

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


Re: for_UP_and_DOWN

2012-04-23 Thread Łukasz Czerwiński
On 22 April 2012 13:16, Han-Wen Nienhuys hanw...@gmail.com wrote:

 sorry for the delay; I was on holidays

 On Fri, Apr 20, 2012 at 10:45 AM, Łukasz Czerwiński
 milimet...@gmail.com wrote:
  Could you please say, if there was a reason for using
  do {
 
  } while(flip(d));
 
  instead of my macro: if (UP_and_DOWN)

 Macros make code harder to read for people not into the project, so it
 is good to be conservative with applying them.  That said, I think a
 macro for this pattern is justified given its frequency of appearance.


Great! http://codereview.appspot.com/6109046/ :)

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


Re: hideNotes should hide also TabNoteHead (issue 2480). (issue 6105049)

2012-04-23 Thread k-ohara5a5a

On 2012/04/23 12:09:15, dak wrote:

Remove the graces, and the score typesets fine.


Removing the initial acciaccatura seems appropriate here. It is used as
an example of what LilyPond can do; but starting with a grace note is
not yet something LilyPond can do.
Changing the music is no problem because this example does not make
musical sense --it is only a typesetting example.


http://codereview.appspot.com/6105049/diff/1/Documentation/ly-examples/tab-example.ly
File Documentation/ly-examples/tab-example.ly (left):

http://codereview.appspot.com/6105049/diff/1/Documentation/ly-examples/tab-example.ly#oldcode49
Documentation/ly-examples/tab-example.ly:49: \partial 4. s4.
The manual would recommend a synchronizing grace skip here,
   \partial 4. \grace s16 s4.
and that, instead of the override I suggested earlier, clears the
warnings.  But, now the \voiceOne and \voiceTwo settings are reversed.

http://codereview.appspot.com/6105049/

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


GSoC

2012-04-23 Thread Carl Sorensen
Dear Jan,

Congratulations on having your Lyrics project accepted for Google Summer
of Code!

Mike Solomon has been assigned as your mentor, if you're not yet aware of
that.  I believe that I will be serving as your backup mentor.

It's now time to ramp up to speed on your project.  It's great to have you
working on GSoC for LilyPond!  Good job with your perseverance in getting
your project accepted!

Thanks,

Carl


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


Re: GSoC

2012-04-23 Thread Trevor Daniels


Carl Sorensen wrote Monday, April 23, 2012 9:40 PM


Congratulations on having your Lyrics project accepted for Google Summer
of Code!


Wow, congratulations from me too!  You really did put the hours in to
generate a great submission - in the middle of your exams too - so you 
definitely deserve the award!  


Trevor


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


Re: Regarding LSR translation work

2012-04-23 Thread Federico Bruni

Il 21/04/2012 13:09, Graham Percival ha scritto:

   From a very basic-no-progamming skill perspective, why can't we just
  have an extra texidoc entry in the snippet itself and add the
  translation manually, like we would for any updated snippet?

Because then it would be overwritten whenever we do a LSR import.


  In fact, why do we even need a texidoc string*inside*  the snippet? I
  don't use one for @lilypond examples.

Because snippets come from LSR, and that needs a texidoc to
display some text for the snippet.



So it seems that there are only two possible solutions (I'm just 
daydreaming):


1) manage all the docs snippets in Git and say hello to LSR (see bottom 
of my email)


2) ask the LSR author to add the possibility to insert translated titles 
and descriptions (the website itself could benefit from this, since it 
may enable language negotiation). But managing the updates may be a 
problem..




I really don't see any way to rescue the snippet system.  It was a
gamble that hasn't paid off; it was supposed to be a standalone
system that would let normal unprivileged users contribute to the
docs with almost no oversight by anybody with git access.  With
all the developer effort that's gone into build and maintaing it,
we could have made it easier to do stuff in git and/or trained
more doc editors.


Since the gamble hasn't paid off (i.e. it didn't encourage *potential 
contributors*), why keeping this structure that is really annoying 
current translators (i.e. *real contributors*)?


Personally, I'm a bit worried about going on with translating NR when I 
know that keeping it up-to-date will be an hassle.


Let's manage all the doc snippets in Git and say hello to LSR import!
Which are the arguments against this change?

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


Re: GSoC

2012-04-23 Thread Graham Percival
On Mon, Apr 23, 2012 at 08:40:30PM +, Carl Sorensen wrote:
 It's great to have you working on GSoC for LilyPond!  Good job
 with your perseverance in getting your project accepted!

This, especially.  It's great to see that sometimes lots of effort
is rewarded!

Congratulations, Janek!

- Graham

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


Re: Regarding LSR translation work

2012-04-23 Thread Graham Percival
On Tue, Apr 24, 2012 at 12:04:57AM +0200, Federico Bruni wrote:
 Il 21/04/2012 13:09, Graham Percival ha scritto:
 Because snippets come from LSR, and that needs a texidoc to
 display some text for the snippet.
 
 So it seems that there are only two possible solutions (I'm just
 daydreaming):
 
 1) manage all the docs snippets in Git and say hello to LSR (see
 bottom of my email)

Do you mean goodbye instead of hello ?

 2) ask the LSR author to add the possibility to insert translated
 titles and descriptions (the website itself could benefit from this,
 since it may enable language negotiation). But managing the updates
 may be a problem..

You'd be asking him to do about 30 hours of unpaid work.

 I really don't see any way to rescue the snippet system.  It was a
 gamble that hasn't paid off; it was supposed to be a standalone
 
 Since the gamble hasn't paid off (i.e. it didn't encourage
 *potential contributors*), why keeping this structure that is really
 annoying current translators (i.e. *real contributors*)?

Because any change involves work.

 Personally, I'm a bit worried about going on with translating NR
 when I know that keeping it up-to-date will be an hassle.
 
 Let's manage all the doc snippets in Git and say hello to LSR import!
 Which are the arguments against this change?

It involves work.  In particular, horrible build system work,
which always takes an order of magnitude longer than you might
expect.

Any non-trivial change to the current system will take a minimum
of 10 hours of work, and I would not be the slightest bit
surprised if it ends up taking 50 hours.  Are *you* offering to do
all that work?  To spend 50 hours, and at the end of all that
work, have the documentation look exactly the same as it does
right now?

I don't see this as a wise investment right now.  We have much
more urgent problems to tackle.  And even if we didn't, I think we
could get better bang for our buck by putting that amount of
energy a different direction.  Organizing ly/, organizing the
regtests, make Patchy handle automatic countdowns, maybe start
GLISS...?  there's a *ton* of great projects which would be less
work and would produce better rewards.

- Graham

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


Re: Regarding LSR translation work

2012-04-23 Thread Carl Sorensen
On 4/23/12 6:25 PM, Graham Percival gra...@percival-music.ca wrote:

On Tue, Apr 24, 2012 at 12:04:57AM +0200, Federico Bruni wrote:
Personally, I'm a bit worried about going on with translating NR
 when I know that keeping it up-to-date will be an hassle.
 
 Let's manage all the doc snippets in Git and say hello to LSR import!
 Which are the arguments against this change?

It involves work.  In particular, horrible build system work,
which always takes an order of magnitude longer than you might
expect.

If the proposal is to eliminate makelsr.py, and just manage our own
snippets in Documentation/snippets, it seems to me that the primary task
is to eliminate the Do not edit fields from the contents of
Documentation/snippets.  Is there more that I'm not aware of?

Thanks,

Carl


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


Macro for(UP_and_DOWN) and 3 similar. (issue 2491) (issue 6109046)

2012-04-23 Thread k-ohara5a5a

Looks good to me,
but I suggest you also solve the bug you found (issue 2493) in this
patch but preferably as a separate commit.
Then you can convert all the loops.


http://codereview.appspot.com/6109046/diff/1/flower/include/direction.hh
File flower/include/direction.hh (right):

http://codereview.appspot.com/6109046/diff/1/flower/include/direction.hh#newcode63
flower/include/direction.hh:63: // huh?
If you replace *all* the while(flip()) loops, you can remove the flip
function, which is merely object-oriented obfuscation for the unary
minus operator.

http://codereview.appspot.com/6109046/diff/1/lily/ledger-line-spanner.cc
File lily/ledger-line-spanner.cc (right):

http://codereview.appspot.com/6109046/diff/1/lily/ledger-line-spanner.cc#newcode52
lily/ledger-line-spanner.cc:52: + current_extents[d].length ();
This was mentioned as suspicious in the email, but it looks okay to me.

http://codereview.appspot.com/6109046/diff/1/lily/ledger-line-spanner.cc#newcode68
lily/ledger-line-spanner.cc:68: while (flip (d) != DOWN);
Possibly you have found the cause for
http://code.google.com/p/lilypond/issues/detail?id=2493

One nice thing about your macro (or a loop with both conditions in one
place) is that it helps to avoid this type of mistake.

http://codereview.appspot.com/6109046/

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


Re: Macro for(UP_and_DOWN) and 3 similar. (issue 2491) (issue 6109046)

2012-04-23 Thread graham

LGTM


http://codereview.appspot.com/6109046/diff/1/flower/include/direction.hh
File flower/include/direction.hh (right):

http://codereview.appspot.com/6109046/diff/1/flower/include/direction.hh#newcode78
flower/include/direction.hh:78: #define DOWN_and_UP(d) \
I see that our code uses both versions, and I fully support this patch
making a simple substitution for these macros.

After it's accepted, it might be nice to investigate this further: do we
ever depend on the order of DOWN_and_UP, and if not, could we
standardize on UP_and_DOWN (or vice versa).

It might also be nice to standardize on either (d) or (dir); I support
the latter.  However, this is again something which should happen after
this patch is pushed.

http://codereview.appspot.com/6109046/

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


Re: measure counter engraver

2012-04-23 Thread David Kastrup
David Nalesnik david.nales...@gmail.com writes:

 The examples are written to work with the latest versions. (I'm using
 the current release candidate.)

Then one could use make-engraver.

 I'd love for people to try this out, to see if it works in situations
 where you might want such a thing.  (If you have a suggestion, see a
 problem, manage to break it, please do let me know!)

Using define-event-class makes the file unfit for inclusion in
multi-file runs of LilyPond since define-event-class permanently changes
LilyPond.

I am working on a replacement
URL:http://code.google.com/p/lilypond/issues/detail?id=2449, but the
pending patch is just one of several changes needed for changing the
event class hierarchy into a per-parser item instead of a global entity.

-- 
David Kastrup


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