Re: critical issues

2011-01-01 Thread Werner LEMBERG
> Look, we simply *cannot* offer users anything that would be
> "reasonable" by most standards.  We have "highly embarrassing" bugs
> from 2006 that we're not even *pretending* to be working on.  We've
> been in "release crunch" mode for at least six months.  The only
> glimmer of hope on the horizon is that, under the most strict
> interpretation of "critical regression", almost none of those bugs
> were introduced recently.  So there's a chance that once we "catch
> up" on the old critical regressions, we won't have many new ones,
> and thus we can move forward with a stable foundation.

What we would need is a payed full-time developer.  However, this is
expensive.  Assuming that the programmer has a family with children,
an appartment, etc., and to provide a reasonably good living for him
or her, this would be about 3000 Euros a month here in Austria or
Germany (one third of the amount would immediately vanish as taxes and
social security payments).

But maybe there is a group of LilyPond philanthropists who can afford
this and are willing to do so...


Werner

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


Re: critical issues

2011-01-01 Thread Werner LEMBERG

> What we would need is a payed full-time developer.

I have forgotten to say that such a developer needs certain skills in
addition to C++ and Scheme, namely being a musician...


Werner

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


Re: critical issues

2011-01-01 Thread Graham Percival
On Sat, Jan 01, 2011 at 09:10:49AM +0100, Werner LEMBERG wrote:
> What we would need is a payed full-time developer.

That could help.  Or at least having a sponsorship page up, which
brings us back to the GOP policy list and the current decision not
to begin discussing those until we've gotten 2.14 out the door.

> But maybe there is a group of LilyPond philanthropists who can afford
> this and are willing to do so...

I'm not optimistic about that; I think a more realistic
opportunity would be to get some grant money from some artistic
organization.  Either a music-composition grant (of which a
composer might dedicate x% towards lilypond sponsorship), or an
art history / research grant.  I think the latter is more
likely... for example, if somebody got a grant to typeset 17th
century Norweigan folk songs, and decided to use lilypond, and
spent x% of the grant towards "improving community-oriented tools
for folk music archival", etc.

Of course, writing artistic and research grants is a non-trivial
amount of work, and it's hardly guaranteed to have any results.
But I think that with the right angle -- be that "collaborative
folk music archival", or "high-quality, specialized music
notation", or "educational software for cheap 3rd-world donated
computers", I could imagine getting a grant.

Cheers,
- Graham

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


Re: critical issues

2011-01-01 Thread Werner LEMBERG

> I'm not optimistic about that; I think a more realistic opportunity
> would be to get some grant money from some artistic organization.

Mhmm.  `Programming' in its broadest sense is research, thus getting
grants limits the number of persons enormously.  However, the number
of music researchers (this is, persons who work in the academical
field and who can actually apply for a grant) who can program is very
limited, I believe.  And normally, grants are always too limited to be
shared with external resources...

In particular, grants are not applicable by persons like me who are
musicians and not music researchers.


Werner

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


Re: critical issues

2011-01-01 Thread Trevor Daniels


Graham Percival wrote Saturday, January 01, 2011 7:16 AM



Nope, for precisely the reason you gave earlier: our documentation
generally has zero input from programmers, so it's not at all a
good representation of "what's intended".

We have a set of "intended to be working" examples.  They're
called the regression tests.  No more, no less.  If a patch breaks
those, then we reject the patch.  If we notice in time.

Look, we simply *cannot* offer users anything that would be
"reasonable" by most standards.


[snip persuasive argument]

You're right (as usual :)  In our circumstances we must
be pragmatic.


I think our best bet is:
1. stabilize and release 2.14, using the most restrictive
interpretation of "stabilize" and "critical issue" we can.
2. drastically reduce (or abandon entirely) development for 3
months while we sort out the GOP policy questions (many of which
should ease future development)
3. start picking up the pieces and try to recruit more
contributors.


OK, I can go along with this.

Trevor



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


Re: critical issues

2011-01-01 Thread Jan Warchoł
2011/1/1 Werner LEMBERG :
> What we would need is a payed full-time developer.  However, this is
> expensive.  Assuming that the programmer has a family with children,
> an appartment, etc., and to provide a reasonably good living for him
> or her, this would be about 3000 Euros a month here in Austria or
> Germany (one third of the amount would immediately vanish as taxes and
> social security payments).
>
> But maybe there is a group of LilyPond philanthropists who can afford
> this and are willing to do so...

I'd gladly help with that, however my input would be limited :( Let's
say 15 euro/month.
Now let's find another 200 people like me :-|

yours Pondly,
Janek

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


Re: critical issues

2011-01-01 Thread Graham Percival
On Sat, Jan 01, 2011 at 09:39:37AM +0100, Werner LEMBERG wrote:
> 
> > I'm not optimistic about that; I think a more realistic opportunity
> > would be to get some grant money from some artistic organization.
> 
> Mhmm.  `Programming' in its broadest sense is research, thus getting
> grants limits the number of persons enormously.  However, the number
> of music researchers (this is, persons who work in the academical
> field and who can actually apply for a grant) who can program is very
> limited, I believe.  And normally, grants are always too limited to be
> shared with external resources...

?  Hiring outside talent is not unusual for Canadian and UK
research grants.  A music professor using part of a grant to hire
a programmer (generally to do the "technical side" of an
electroacoustic composition), or an engineering professor using
part of a grant to hire professional musicians to perform
something (which he will then analyze), is entirely normal.

I readily acknowledge that writing grant applications is a very
specific skill -- each granting agency wants to see something
slightly different in its applications; a perfect application for
one agency might be a terrible application for another one.

Cheers,
- Graham

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


Re: critical issues

2011-01-01 Thread David Kastrup
"Keith OHara"  writes:

> On Fri, 31 Dec 2010 16:31:23 -0800, Trevor Daniels
>  wrote:
>> ... the concern I had was this.  Quite a lot of the
>> documentation was written, not by inspecting the code
>> to see what was intended, but by experimenting and
>> writing up what was found.  I certainly worked that
>> way, and I think Mark and Keith did recently in
>> documenting the new spacing stuff.
>
> Pretty much.  If it makes you feel better, I did read a fair bit of
> the code to help build up a mental model of how things worked.

The problem is that one is documenting the implementation, not the
designed interface.  Which is fixating things at the wrong end of the
stick: the implementation should be free to gravitate towards its best
state without having to change the documentation and/or the interface.

-- 
David Kastrup


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


lilypond too noisy on the cmd line

2011-01-01 Thread Mark Veltzer
Hello all!

First is first: thanks for a great piece of software.

This is a long standing feature request for me which you probably got from
hundreds of other users but I sent it anyway since I see it as a major pain.

When I run lilypond it is too noisy. It prints out lots of stuff (version,
progress and more) to standard error. This has several problems:

- It does not allow me to differentiate between good messages and bad. The basic
idea of standard output and error was to enable such a distinction. Lilypond
does away with this.
- Since I build lots of lily files in a makefile then I do not wish to see any
of the progress, version and standard messages, as I only want to see real
errors if they occur. This forces me to wrap lilypond invocation in a script
which collects it's output, waits for the return code and in the case that the
return code indicates an error with the lilypond process (probably parsing
error) then I print out the output which is still too verbose because it
contains a lot more than the errors.
- Other translators or even huge compilers (gcc to name famous ones) manage to
remain silent even though they do quite a lot under the hood so this is not an
unreasonable request.

Suggestions:
- version, progress and general messages which are not error messages should go
to stdout and NOT stderr.
- a --quiet flag should be added to shut down all of the regular messages which
are not error messages (meaning those going to stdout).
- In the long run I suggest that --quiet become the default since that is how
most compilers/translators behave (do their work quietly unless errors occur or
verbose mode is requested).

Please reply to my email as I am not a subscriber.

Cheers,
 Mark


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


Re: critical issues

2011-01-01 Thread David Kastrup
Graham Percival  writes:

> In my idle moments, I like to discourage myself by trying to
> figure out how long it would take to achieve something
> "reasonable" for users.  Let's play this game now, and start
> making some unrealistic-but-just-possible assumptions:
> 1. "reasonable" means 100 bugs.  Let's also assume that these can
> be the 100 most problematic bugs (i.e. we can fix the easy ones
> first without penalizing this "reasonable" goal).
> 2. with the new lilydev iso, we can gather 10 new programmers.
> Keith, Phil, Janek, etc.
> 3. each of those 10 programmers can fix an average of 1 issue
> every 10 days.  By "fix", I mean "understand the problem, read the
> code, produce patches for review, respond to comments, make new
> drafts, and have somebody push the final fix".
> 4. the existing developers are capable of doing all the reviewing
> for all these patches.
> 5. we continue to get approximately 1 new issue every 3 days.

That's developing logistics for pails in order to deal with an
unfinished roof because nobody remembers where the trapdoor to the attic
was.  The number of bugs is not the problem.  The problem is that the
skills needed to deal with the bugs and other problems are not in a
sensible relation to the complexity of the bugs.

A _sensible_ investment of time would be to move a considerable number
of engravers to Scheme.  And keep them _there_ rather than just doing it
as an example.  Presto, we get a bunch of code (_iff_ the style of
Scheme is not wallowing inscrutably in macros and idiosyncrasies like
some of the C++ code) that can be maintained with more confidence than
"poke with a stick and see what happens".

Then the roof at least leaks in accessible places.

-- 
David Kastrup


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


Re: lilypond too noisy on the cmd line

2011-01-01 Thread Graham Percival
On Sat, Jan 01, 2011 at 09:49:10AM +, Mark Veltzer wrote:
> - version, progress and general messages which are not error messages should 
> go
> to stdout and NOT stderr.

Good point; I've added this as
http://code.google.com/p/lilypond/issues/detail?id=1468

> - a --quiet flag should be added to shut down all of the regular messages 
> which
> are not error messages (meaning those going to stdout).

http://code.google.com/p/lilypond/issues/detail?id=1074
Patches appreciated.  Unfortunately I doubt that anything will
happen unless you personally work on it, but it's "on the books".

Cheers,
- Graham

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


Re: lilypond too noisy on the cmd line

2011-01-01 Thread David Kastrup
Mark Veltzer  writes:

> First is first: thanks for a great piece of software.
>
> This is a long standing feature request for me which you probably got from
> hundreds of other users but I sent it anyway since I see it as a major pain.
>
> When I run lilypond it is too noisy. It prints out lots of stuff (version,
> progress and more) to standard error. This has several problems:
>
> - It does not allow me to differentiate between good messages and
> bad. The basic
> idea of standard output and error was to enable such a distinction.

No.  The basic idea is that standard output contains output for further
processing stages, while standard error contains diagnostic output
intended for human consumption.

> Suggestions:
> - version, progress and general messages which are not error messages should 
> go
> to stdout and NOT stderr.

No, that is nonsense.

> - a --quiet flag should be added to shut down all of the regular
> messages which are not error messages (meaning those going to stdout).

Progress messages don't belong on any output as long as verbose output
has not explicitly been requested.

> - In the long run I suggest that --quiet become the default since that
> is how most compilers/translators behave (do their work quietly unless
> errors occur or verbose mode is requested).

The difference between "quiet" and normal mode should mostly be that
startup and finishing messages are omitted.

"quiet" is for the situation where any console output is an indication
of a problem.  The normal output should not be significantly more
verbose than that.  On a console not in quiet mode, a self-erasing
progress bar or status display that does not take any permanent space is
nice to have.

But all material that remains permanently on-screen (and scrolls off it)
should, apart from startup and finishing messages, be an indication of a
problem.  At least that's the usual stderr philosophy.

-- 
David Kastrup


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


Re: critical issues

2011-01-01 Thread Karl Hammar
Graham:
> On Sat, Jan 01, 2011 at 09:10:49AM +0100, Werner LEMBERG wrote:
...
> > But maybe there is a group of LilyPond philanthropists who can afford
> > this and are willing to do so...
> I'm not optimistic about that; I think a more realistic
> opportunity would be to get some grant money from some artistic
> organization.  ...
> 
> Of course, writing artistic and research grants is a non-trivial
> amount of work, and it's hardly guaranteed to have any results.
> But I think that with the right angle -- be that "collaborative
> folk music archival", or "high-quality, specialized music
> notation", or "educational software for cheap 3rd-world donated
> computers", I could imagine getting a grant.

In Uppsala there is one person at the music institution who is
interested in Schenker analysis. Could that be a lead?

Regards,
/Karl Hammar

-
Aspö Data
Lilla Aspö 148
S-742 94 Östhammar
Sweden
+46 173 140 57



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


Re: default .ly file in Windows Install seems to be

2011-01-01 Thread Phil Holmes
- Original Message - 
From: "Jonathan Kulp" 

To: "Graham Percival" 
Cc: "James Lowe" ; 
Sent: Saturday, January 01, 2011 1:33 AM
Subject: Re: default .ly file in Windows Install seems to be



On Fri, Dec 31, 2010 at 5:59 PM, Graham Percival
 wrote:

On Wed, Dec 29, 2010 at 11:30:29AM +, James Lowe wrote:
I have just downloaded and installed the windows version of 2.13.44-1 
and the 'welcome to lilypond' default file seems to have completely 
changed.


I can't reproduce on linux with wine; the initial file looks like
normal to me, and the ly/welcome_to_lilypond.ly file is still
present in the uncompressed exe, and has the contents I expect.



I can test it here if you want me too, but I don't know what it was
supposed to look like in the first place. I don't think I've ever seen
it.

Jon
--



I've got 13.44 installed on native windows (Vista Home Premium, 64 bit). 
When I double click the LilyPond icon on the desktop, I get a "Welcome to 
LilyPond" file displayed in LilyPad.  I think this is the first time I've 
ever done this


--
Phil Holmes



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


Re: lilypond too noisy on the cmd line

2011-01-01 Thread Mark Veltzer
Hello all,

This is in response to David Kastrup.

- startup and shutdown messages. These are not usually omitted to stderr, or at
least 99.99% of the tools out there do not do it. Most tools actually *have no*
startup and shutdown messages. If you have other info then I'd appreciate a list
of famous tools which emit startup and shutdown messages to stderr (and I'm not
talking about daemons but regular command line tools). I doubt that you will
find any and most of the ones which you will find will have bug reports filed
against that behavior.

To prove my point here is gcc:
m...@cantor:~$ gcc -o test.o test.c
m...@cantor:~$

No startup/shutdown messages. No version. No progress. Quiet and nice. This is
the default behavior as no --quiet flag was required to enforce it.
Compare this to the lilypond behavior:

m...@cantor:~/links/lilypond$ lilypond test.ly > out
GNU LilyPond 2.12.3
Processing `test.ly'
Parsing...
Interpreting music... [8][16][24]
Preprocessing graphical objects...
Interpreting music... 
MIDI output to `test.midi'...
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...
Layout output to `test.ps'...
Converting to `./test.pdf'...
m...@cantor:~/links/lilypond$

Wow! This is all standard error messages (as the redirection above proves) and
none of these are errors.

- stderr is called stderr and not stddiag since it is intended for errors. I
agree that stdout is intended for further processing but lilypond *does not*
create any further data for further processing so stdout could be used for
version and other stuff much like other tools. To prove my point here are a
bunch of tools:
m...@cantor:~$ ls --version > out
m...@cantor:~$ grep --version > out
m...@cantor:~$ nm --version > out
m...@cantor:~$ gcc --version > out
m...@cantor:~$ as --version > out
m...@cantor:~$ make --version > out
m...@cantor:~$ ld --version > out
m...@cantor:~$
The list could go on and on. This output proves that version info goes to stdout
and not stderr and that stderr is quiet *all the time* unless errors occur. No
startup message. No shutdown message. No progress reports. No "mighty gcc
version 4.5 was here" messages.

In summary:
stderr is for *errors* and not *diagnostics*. Seeing two pages of data in stderr
(which is the current situation by the way) is absolutely counter productive. It
may be cool for developers who want to understand where a problem occurs but it
is useless to users. If someone has to suffer from supplying an extra flag it
should be the developers and not the users (as a general rule). This is actually
what forces every big project that I saw to wrap the lilypond executable with a
script (which is really bad!).

All that being said I don't really care about version info, startup and shutdown
messages and the rest at all - You can keep directing them to stderr if you feel
like it  - *just as long as they stay out of my way* - meaning that I have an
easy to use option to disable them. The current implementation has no option to
keep them out of my way and this option should actually be the default (as
demonstrated for all the standard tools above). And again, there is also
progress data there so what is the end result? When compiling 20 big lily files
which are perfectly fine I'm getting 10 pages of output which is useless to me
since I have no mental wish to process it instead of 20 lines of compilation.
I'm solving this with a wrapper that hides this useless output from me but I
expect every serious lilypond user has written a wrapper for him/her self.

Cheers,
 Mark


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


Re: lilypond too noisy on the cmd line

2011-01-01 Thread David Santamauro

Hi,

On Sat, 1 Jan 2011 10:19:18 +
Graham Percival  wrote:

> On Sat, Jan 01, 2011 at 09:49:10AM +, Mark Veltzer wrote:
> > - version, progress and general messages which are not error
> > messages should go to stdout and NOT stderr.
> 
> Good point; I've added this as
> http://code.google.com/p/lilypond/issues/detail?id=1468
> 
> > - a --quiet flag should be added to shut down all of the regular
> > messages which are not error messages (meaning those going to
> > stdout).
> 
> http://code.google.com/p/lilypond/issues/detail?id=1074
> Patches appreciated.  Unfortunately I doubt that anything will
> happen unless you personally work on it, but it's "on the books".

This is something I'd be interested in jumping in on. I've more-or-less
already done it in my sandbox.

Question: Should the be_verbose_global variable control this? I'm not
sure a new command line argument is really needed as long as it is
agreed upon what verbose is and isn't.

I added a be_quiet_global in my sandbox but reading the thread makes me
think that simplification is needed and not an expansion.

David


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


Re: lilypond too noisy on the cmd line

2011-01-01 Thread David Kastrup
Mark Veltzer  writes:

> - stderr is called stderr and not stddiag since it is intended for errors. I
> agree that stdout is intended for further processing but lilypond *does not*
> create any further data for further processing so stdout could be used for
> version and other stuff much like other tools. To prove my point here are a
> bunch of tools:
> m...@cantor:~$ ls --version > out
> m...@cantor:~$ grep --version > out
> m...@cantor:~$ nm --version > out
> m...@cantor:~$ gcc --version > out
> m...@cantor:~$ as --version > out
> m...@cantor:~$ make --version > out
> m...@cantor:~$ ld --version > out

Uh, the _output_ is defined to be the version info in this case.  In a
similar vein, for all those tools specifying bad options results in a an
error message and a list of all possible options on stderr -- diagnostic
output.  In contrast, calling them with --help tells you all possible
options on stdout -- regular and intended output.

So your contention that "stdout is used for version and other stuff much
like other tools" is just wrong.

stdout is used for the requested output.  If you ask for version info or
help, the version info or help _is_ the requested output.  If you don't
ask for it, it isn't.  And the given tools (namely GNU tools)
consistently distinguish those two cases, contrary to what you claim.

-- 
David Kastrup


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


Re: Updates to bagpipe.ly

2011-01-01 Thread Sven Axelsson
On 31 December 2010 23:53, Graham Percival  wrote:
> On Thu, Dec 30, 2010 at 05:35:43PM +0100, Sven Axelsson wrote:
>> Perhaps a starting point would be if someone could have a look at what
>> I'm doing in https://github.com/svenax/bagpipemusic/. The relevant
>> file is bagpipe_new.ly, and there are lots of examples on how to use
>> it in the repo as well.
>>
>> The new mode is not backwards compatible with the old one, so I would
>> have to include some convert-ly rules if approved.
>
> Are there any parts of your new file that can be added without
> tweaking the score and layout?  If so, why not prepare a patch for
> those "un-controversial" parts, and get those accepted first?
>
> Are your layout tweaks any less severe than stuff we do for
> gregorian?  If so, that could be a good reason to accept them.  If
> not, you could just make a few macros which do the tweaks, so that
> users only have to do
> \include "bagpipe.ly"
> \paper {
>  \bagpipeSpacing
> }

Quite correct. Here's a patch that only introduces the improved
gracenote spacing and adds a few more complex grace notes. That should
be fairly uncontroversial I believe.

http://codereview.appspot.com/3825043

-- 
Sven Axelsson
++[>++>+++>++>++
><-]>.+..>+.>+.<<-.>>+.>.<<.
+++.>-.<<++.>>.<++.>>>++..>>.<.

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


issue 1464 (was: a plea to new contributors)

2011-01-01 Thread Matthias Kilian
On Sat, Jan 01, 2011 at 06:51:49AM +, Graham Percival wrote:
> The next step in issue 1464 is just to create a backtrace. 

See the blurb below this mail (no, I'm not going to sign up at google
for adding it there).

I don't know why gdb doesn't find paper-column.hh, but anyaway...
it looks like Item::get_column() returns NULL, because its parent's
get_column() returns NULL (I checked that the parent on the X_AXIS
itself is not NULL).

{ = {_vptr$Grob = 0x7e75b0, static smob_name_ = 0x7e4af3
"Grob", static smob_tag_ = 16767, self_scm_ = 0x214b69740,
protection_cons_ = 0x404, dim_cache_ = {{extent_ = 0x0, offset_ =
0x0, parent_ = 0x210133500}, {extent_ = 0x0, offset_ = 0x0, parent_
= 0x210133000}}, layout_ = 0x20f3c7880, original_ = 0x0,
immutable_property_alist_ = 0x21504cf40, mutable_property_alist_ =
0x214b64db0, object_alist_ = 0x214b60600, interfaces_ = 0x214fcdfc0,
static x_parent_positioning_proc = 0x20f176600, static
y_parent_positioning_proc = 0x20f175a10, static stencil_height_proc
= 0x20f174960, static stencil_width_proc = 0x20f177520, static
interface_symbol_ = 0x210c36d40}, broken_to_drul_ = {array_ =
{0x210124900, 0x210124d00}}, static interface_symbol_ = 0x210c3a560,
cached_pure_height_valid_ = false, cached_pure_height_ =
{> = {array_ = {0, -0}}, }}

And here's the parent in question (*this->dim_cache_[0].parent_):

{_vptr$Grob = 0x804c90, static smob_name_ = 0x7e4af3 "Grob", static
smob_tag_ = 16767, self_scm_ = 0x214b69fd0, protection_cons_ =
0x404, dim_cache_ = {{extent_ = 0x0, offset_ = 0x0, parent_ =
0x207824b00}, {extent_ = 0x0, offset_ = 0x2075ae240, parent_ =
0x210133000}}, layout_ = 0x20f3c7880, original_ = 0x0,
immutable_property_alist_ = 0x21504d310, mutable_property_alist_ =
0x2149c7540, object_alist_ = 0x214b63410, interfaces_ = 0x214fcb720,
static x_parent_positioning_proc = 0x20f176600, static
y_parent_positioning_proc = 0x20f175a10, static stencil_height_proc
= 0x20f174960, static stencil_width_proc = 0x20f177520, static
interface_symbol_ = 0x210c36d40}

It could be possible to check the result of get_column() in
Item::spanned_rank_interval(), but I'm not sure wether this is the
*proper* bug fix (nor what interval should be returned in this
case).

Ciao,
Kili


#0  0x0041a7b0 in Paper_column::get_rank (this=0x0) at 
paper-column.hh:47
47  paper-column.hh: No such file or directory.
in paper-column.hh
(gdb) bt
#0  0x0041a7b0 in Paper_column::get_rank (this=0x0) at 
paper-column.hh:47
#1  0x004ff7b4 in Item::spanned_rank_interval (this=0x210133600) at 
item.cc:199
#2  0x0043813b in Axis_group_interface::adjacent_pure_heights 
(smob=0x214b64d80) at axis-group-interface.cc:197
#3  0x0002047115cf in scm_dapply () from /usr/local/lib/libguile.so.20.0
#4  0x004e326f in Grob::try_callback_on_alist (this=0x210133000, 
alist=0x210133060, sym=0x211eb9b00, proc=0x20f0d13e0) at grob-property.cc:231
#5  0x004e3e9c in Grob::internal_get_property (this=0x210133000, 
sym=0x211eb9b00) at grob-property.cc:188
#6  0x00438a04 in Axis_group_interface::begin_of_line_pure_height 
(me=0x210133000, start=0) at axis-group-interface.cc:116
#7  0x00438be6 in Axis_group_interface::cached_pure_height 
(me=0x210133000, start=0, end=2147483647) at axis-group-interface.cc:95
#8  0x00438ce5 in Axis_group_interface::relative_pure_height 
(me=0x210133000, start=0, end=2147483647) at axis-group-interface.cc:263
#9  0x004390c9 in Axis_group_interface::pure_group_height 
(me=0x210133000, start=0, end=2147483647) at axis-group-interface.cc:494
#10 0x004f45c1 in Hara_kiri_group_spanner::pure_height 
(smob=0x214b64d80, start_scm=0x2, end_scm=0x1fffe) at 
hara-kiri-group-spanner.cc:58
#11 0x000204711ca3 in scm_dapply () from /usr/local/lib/libguile.so.20.0
#12 0x000204716c84 in deval () from /usr/local/lib/libguile.so.20.0
#13 0x000204711cbf in scm_dapply () from /usr/local/lib/libguile.so.20.0
#14 0x004e2cd8 in call_pure_function (unpure=0x20f17ab30, 
args=0x2149c2960, start=0, end=2147483647) at grob-property.cc:331
#15 0x004e2ff6 in Grob::internal_get_pure_property (this=0x210133000, 
sym=0x211ec4be0, start=0, end=2147483647) at grob-property.cc:200
#16 0x004ee4e4 in Grob::pure_height (this=0x210133000, 
refp=0x210133000, start=0, end=2147483647) at grob.cc:464
#17 0x0041b49d in get_skylines (me=0x210133f00, 
elements=0x7f7e7350, a=Y_AXIS, pure=true, start=0, end=2147483647, 
ret=0x7f7e7330) at align-interface.cc:102
#18 0x0041b9c9 in Align_interface::internal_get_minimum_translations 
(me=0x210133f00, all_gro...@0x2046169e0, a=Y_AXIS, include_fixed_spacing=true, 
pure=true, start=0, end=2147483647)
at align-interface.cc:191
#19 0x0041c25b in Align_interface::get_pure_minimum_translations 
(me=0x210133f00, all_gro...@0x2046169e0, a=Y_AXIS, start=0, end=2147483647) at 
align-interface.cc:159
#20 0x0041c2f7 in Align_inter

Re: Issue 1268 in lilypond: [PATCH] span-bar problem

2011-01-01 Thread Benkő Pál
hi Joe,

>> do you think my patch is a good start?
>
> Yes, but you need to be careful about what happens when bar-size is set.
> Currently, your patch will break (for example) input/regression/drums.ly
> because it ignores bar-size.

well, I admit I haven't run regtests, but I did now and (having found and
fixed an unrelated error) I can see no unintended change (i.e. drums.ly
works as before).

actually I don't know what to expect with changed bar-size - I attached
two more tests: spantest1 is a modification of my original spantest, and
the result looks the same;
spantest3 is a modification of spantest2, and it's consistent,
perhaps even good.

>> I removed the center setting code and that
>> (with my patch still active) made my example perfect;
>> however, the attached complementary test (with bar
>> lines only within staff, not between them) failed,
>> but it's perfect with current center setting
>> (independently whether my original patch is active or not).
>
> Since Bar_line::compound_barline is used in both BarLine and SpanBar, you
> will need to find some solution that works for both cases. It won't be as
> simple as just enabling or disabling the centering code.

oh, uh.  thanks for this hint as well; I'll investigate.
p


spantest1.ly
Description: Binary data


spantest3.ly
Description: Binary data
___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: issue 1464 (was: a plea to new contributors)

2011-01-01 Thread Matthias Kilian
On Sat, Jan 01, 2011 at 02:10:04PM +0100, Matthias Kilian wrote:
> I don't know why gdb doesn't find paper-column.hh, but anyaway...
> it looks like Item::get_column() returns NULL, because its parent's
> get_column() returns NULL (I checked that the parent on the X_AXIS
> itself is not NULL).

Bisected to this one (cc'd Neil):


commit 6d28aebbaaab1be9961a00bf15a1ef93acb91e30
Author: Neil Puttock 
Date:   Mon Sep 6 22:49:28 2010 +0100

Fix metronome alignment.

Don't align on KeySignature unless explicitly requested via
'break-align-symbols and make order of 'break-align-symbols
significant.

* remove `key-signature' from 'break-align-symbols

* acknowledge break_alignment, and set this as X-parent
  instead of break_aligned, but only if found break_aligned
  is visible

* add regression test to test ordering

* tweak existing test to reflect change in default for
  'break-align-symbols

[...]


I tried the diff below, which `fixed' the segfault, but it may be
completely wrong (I'm currently not familiar with the LilyPond code
at all). Unfortunately, I don't have a new enough ImageMagick on my
system, so I can't run the regression tests.

diff --git a/lily/metronome-engraver.cc b/lily/metronome-engraver.cc
index 0a41fc9..e34c0ad 100644
--- a/lily/metronome-engraver.cc
+++ b/lily/metronome-engraver.cc
@@ -95,7 +95,10 @@ Metronome_mark_engraver::acknowledge_break_aligned 
(Grob_info info)
   && safe_is_member (g->get_property ("break-align-symbol"),
  text_->get_property ("break-align-symbols"))
   && Item::break_visible (g))
-support_ = g;
+{
+  support_ = g;
+  text_->set_parent (g, X_AXIS);
+}
 }
 
 void

Ciao,
Kili

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


Updates to bagpipe.ly (issue3825043)

2011-01-01 Thread percival . music . ca

looks mostly ok, but I don't know what's up with those beaming rules.


http://codereview.appspot.com/3825043/diff/1/ly/bagpipe.ly
File ly/bagpipe.ly (right):

http://codereview.appspot.com/3825043/diff/1/ly/bagpipe.ly#newcode72
ly/bagpipe.ly:72: #(override-auto-beam-setting '(end * * * *) 1 2
'Staff)
err, why are you removing the good beaming rules, and replacing them
with old beaming rules?

http://codereview.appspot.com/3825043/

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


Re: PDF hyperlinks

2011-01-01 Thread Dan Eble
On 2010-12-27, at 15:14 , Dan Eble wrote:

> Here's some prototype code which works for me in 2.13.9.

Correction: 2.13.18.
-- 
Dan


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



Fix 1464 (segfault with R1 and metronome) (issue3858041)

2011-01-01 Thread percival . music . ca

Reviewers: ,

Message:
Fixes a segfault, passes the regtest comparison, code by Matthias
Kilian.

Description:
Fix 1464 (segfault with R1 and metronome)

This code came from Mathias Kilian.

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

Affected files:
  A input/regression/metronome-multimeasure-rest-no-segfault.ly
  M lily/metronome-engraver.cc


Index: input/regression/metronome-multimeasure-rest-no-segfault.ly
diff --git a/input/regression/metronome-multimeasure-rest-no-segfault.ly  
b/input/regression/metronome-multimeasure-rest-no-segfault.ly

new file mode 100644
index  
..b3def2a59146f56bca113f878a55779dae790641

--- /dev/null
+++ b/input/regression/metronome-multimeasure-rest-no-segfault.ly
@@ -0,0 +1,28 @@
+\version "2.13.44"
+\header {
+  texidoc = "
+A metronome marking can be added to a multimeasure rest whose
+engraver was moved to the Staff, without segfaulting.
+"
+}
+
+
+\score {
+   \new Staff {
+   \tempo 4=150
+   R1 |
+   }
+   \layout {
+   \context {
+   \Score
+   \remove "Metronome_mark_engraver"
+   \remove "Staff_collecting_engraver"
+   }
+   \context {
+   \Staff
+   \consists "Metronome_mark_engraver"
+   \consists "Staff_collecting_engraver"
+   }
+   }
+}
+
Index: lily/metronome-engraver.cc
diff --git a/lily/metronome-engraver.cc b/lily/metronome-engraver.cc
index  
0a41fc97abdb61fb1dde875722a7a565716b55a6..e34c0add2e7aefdd174323483967ddf777241990  
100644

--- a/lily/metronome-engraver.cc
+++ b/lily/metronome-engraver.cc
@@ -95,7 +95,10 @@ Metronome_mark_engraver::acknowledge_break_aligned  
(Grob_info info)

   && safe_is_member (g->get_property ("break-align-symbol"),
  text_->get_property ("break-align-symbols"))
   && Item::break_visible (g))
-support_ = g;
+{
+  support_ = g;
+  text_->set_parent (g, X_AXIS);
+}
 }

 void



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


Re: issue 1464 (was: a plea to new contributors)

2011-01-01 Thread Graham Percival
On Sat, Jan 01, 2011 at 08:14:36PM +0100, Matthias Kilian wrote:
> On Sat, Jan 01, 2011 at 02:10:04PM +0100, Matthias Kilian wrote:
> > I don't know why gdb doesn't find paper-column.hh, but anyaway...
> > it looks like Item::get_column() returns NULL, because its parent's
> > get_column() returns NULL (I checked that the parent on the X_AXIS
> > itself is not NULL).
> 
> Bisected to this one (cc'd Neil):

Fantastic!  Bisecting is one of the most useful, yet also
time-consuming, parts of fixing regressions.

> I tried the diff below, which `fixed' the segfault, but it may be
> completely wrong (I'm currently not familiar with the LilyPond code
> at all). Unfortunately, I don't have a new enough ImageMagick on my
> system, so I can't run the regression tests.

Sorry, my fault.  You can run the regtest comparison is you revert
49dc60e9 , or just remove "-dissimilarity-threshold" from
scripts/build/output-distance.py


Anyway, this patch works fine in the regtest comparison, so I've
uploaded it to reitveld for wider review.

Cheers,
- Graham

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


Issue 1290

2011-01-01 Thread Carl Sorensen
I have a patch for Issue 1290 that fixes the improper spacing.

I am currently doing a regression test.

Thanks,

Carl


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


Re: a plea to new contributors

2011-01-01 Thread Graham Percival
On Sat, Jan 01, 2011 at 12:21:24PM +0100, m...@apollinemike.com wrote:
> 
> I have a flight on January 4th from London to New York.  I would be happy to 
> devote the entire flight to solving two issues, but I do not want to 
> duplicate the work of someone else.

These are the current Critical issues:
http://code.google.com/p/lilypond/issues/list?can=2&q=Priority%3DCritical
but Matthias has created a patch for 1464, and Carl is testing a
patch for 1290.  So the only remaining issue at the moment is
1465:
http://code.google.com/p/lilypond/issues/detail?id=1465

I will release the next beta test as soon as I know what's
happening with the patches for 1464 and 1290.  When people start
testing that version, they might discover additional problems, so
we might have extra Critical issues before your flight.  But at
the moment, 1465 looks like the best bet to work on.

Cheers,
- Graham

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


Re: issue 1464 (was: a plea to new contributors)

2011-01-01 Thread Joe Neeman
On Sun, Jan 2, 2011 at 2:14 AM, Matthias Kilian wrote:

> On Sat, Jan 01, 2011 at 02:10:04PM +0100, Matthias Kilian wrote:
> > I don't know why gdb doesn't find paper-column.hh, but anyaway...
> > it looks like Item::get_column() returns NULL, because its parent's
> > get_column() returns NULL (I checked that the parent on the X_AXIS
> > itself is not NULL).
>
> Bisected to this one (cc'd Neil):
>
>
> commit 6d28aebbaaab1be9961a00bf15a1ef93acb91e30
> Author: Neil Puttock 
> Date:   Mon Sep 6 22:49:28 2010 +0100
>
>Fix metronome alignment.
>
>Don't align on KeySignature unless explicitly requested via
>'break-align-symbols and make order of 'break-align-symbols
>significant.
>
>* remove `key-signature' from 'break-align-symbols
>
>* acknowledge break_alignment, and set this as X-parent
>  instead of break_aligned, but only if found break_aligned
>  is visible
>
>* add regression test to test ordering
>
>* tweak existing test to reflect change in default for
>  'break-align-symbols
>
> [...]
>
>
> I tried the diff below, which `fixed' the segfault, but it may be
> completely wrong (I'm currently not familiar with the LilyPond code
> at all). Unfortunately, I don't have a new enough ImageMagick on my
> system, so I can't run the regression tests.
>
> diff --git a/lily/metronome-engraver.cc b/lily/metronome-engraver.cc
> index 0a41fc9..e34c0ad 100644
> --- a/lily/metronome-engraver.cc
> +++ b/lily/metronome-engraver.cc
> @@ -95,7 +95,10 @@ Metronome_mark_engraver::acknowledge_break_aligned
> (Grob_info info)
>   && safe_is_member (g->get_property ("break-align-symbol"),
>  text_->get_property ("break-align-symbols"))
>   && Item::break_visible (g))
> -support_ = g;
> +{
> +  support_ = g;
> +  text_->set_parent (g, X_AXIS);
> +}
>  }
>

In your original backtrace, is the X_AXIS parent of the Item in frame #2
0x0? If so, I'm fine with the patch.

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


Re: lilypond too noisy on the cmd line

2011-01-01 Thread Graham Percival
On Sat, Jan 01, 2011 at 02:25:57AM -0500, David Santamauro wrote:
> 
> On Sat, 1 Jan 2011 10:19:18 +
> Graham Percival  wrote:
> 
> > http://code.google.com/p/lilypond/issues/detail?id=1074
> > Patches appreciated.  Unfortunately I doubt that anything will
> > happen unless you personally work on it, but it's "on the books".
> 
> Question: Should the be_verbose_global variable control this? I'm not
> sure a new command line argument is really needed as long as it is
> agreed upon what verbose is and isn't.

> I added a be_quiet_global in my sandbox but reading the thread makes me
> think that simplification is needed and not an expansion.

Since we already have a be_verbose_global variable, I can't
imagine much serious objection to having a be_quiet_global.  My
initial guess would be that we want three different types of
output:
- verbose
- normal
- quiet

However, this is definitely outside my depth.

Cheers,
- Graham

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


Re: Broken Link in CG to http://kainhofer.com/~lilypond/linkdoc/

2011-01-01 Thread Graham Percival
On Fri, Dec 31, 2010 at 03:38:47PM +, James Lowe wrote:
> In CG 5.4.3 Checking Cross References there is a para that refers to

Thanks, added as
http://code.google.com/p/lilypond/issues/detail?id=1469

Cheers,
- Graham

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


Re: critical issues

2011-01-01 Thread Graham Percival
On Sat, Jan 01, 2011 at 01:06:04PM +0100, Karl Hammar wrote:
> Graham:
> > Of course, writing artistic and research grants is a non-trivial
> > amount of work, and it's hardly guaranteed to have any results.
> > But I think that with the right angle -- be that "collaborative
> > folk music archival", or "high-quality, specialized music
> > notation", or "educational software for cheap 3rd-world donated
> > computers", I could imagine getting a grant.
> 
> In Uppsala there is one person at the music institution who is
> interested in Schenker analysis. Could that be a lead?

I'm not certain that it's worth approaching somebody who doesn't
already use lilypond.  Also, I don't think it's worth discussing
this on the -devel list.  If you're interested in organizing this
kind of thing, I'd recommend asking on -user.

Cheers,
- Graham

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


Fix Issue 1290 (issue3832046)

2011-01-01 Thread Carl . D . Sorensen

Reviewers: ,

Message:
Here is a patch to fix issue 1290.

It works, but it may need to be cleaned up.  I'm not sure the code is as
elegant as it could be.  I'm not really comfortable with all of the C++
syntax used in lilypond.

Please review it carefully, and let me know how it can be improved.

Thanks,

Carl


Description:
Fix Issue 1290

Create an optional horizontal-padding parameter to Skyline::distance
When horizontal-padding is not zero, padding is added to both systems
when calculating the distance.

Get the System's skyline-horizontal-padding property, and pass
it to distance () in page-layout-problem.cc

Add regression test for this feature.

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

Affected files:
  A input/regression/skyline-horizontal-padding.ly
  M lily/include/skyline.hh
  M lily/page-layout-problem.cc
  M lily/skyline.cc


Index: input/regression/skyline-horizontal-padding.ly
diff --git a/input/regression/skyline-horizontal-padding.ly  
b/input/regression/skyline-horizontal-padding.ly

new file mode 100644
index  
..c3e96211304a824c5d8304c2faf43d1b638aa24d

--- /dev/null
+++ b/input/regression/skyline-horizontal-padding.ly
@@ -0,0 +1,20 @@
+\version "2.13.45"
+
+\header {
+  texidoc = "
+The skyline-horizontal-padding property can be set for System
+in order to keep systems from being spaced too closely together.
+In this example, the low notes from a system should not be
+interleaved with the high notes from the next system.
+"
+}
+
+\score {
+\repeat unfold 80 {  c'  c' }
+  \layout {
+\context {
+  \Score
+  \override System #'skyline-horizontal-padding = #2
+}
+  }
+}
Index: lily/include/skyline.hh
diff --git a/lily/include/skyline.hh b/lily/include/skyline.hh
index  
a11b21dde6ce27d06a3e54b177e32940da779589..93b6e1155605d4c03fb8d8b566c40bf8ce80bd6e  
100644

--- a/lily/include/skyline.hh
+++ b/lily/include/skyline.hh
@@ -53,7 +53,7 @@ class Skyline
 private:
   list buildings_;
   Direction sky_;
-
+
   void internal_merge_skyline (list*, list*,
   list *const result);
   list internal_build_skyline (list*, Real, Axis,  
Direction);

@@ -63,10 +63,11 @@ private:
 public:
   Skyline ();
   Skyline (Skyline const &src);
+  Skyline (Skyline const &src, Real horizon_padding, Axis a);
   Skyline (Direction sky);
   Skyline (vector const &bldgs, Real horizon_padding, Axis a,  
Direction sky);

   Skyline (Box const &b, Real horizon_padding, Axis a, Direction sky);
-
+
   vector to_points (Axis) const;
   void merge (Skyline const &);
   void insert (Box const &, Real horizon_padding, Axis);
@@ -74,7 +75,7 @@ public:
   void print_points () const;
   void raise (Real);
   void shift (Real);
-  Real distance (Skyline const &) const;
+  Real distance (Skyline const &, Real horizon_padding = 0) const;
   Real height (Real airplane) const;
   Real max_height () const;
   void set_minimum_height (Real height);
Index: lily/page-layout-problem.cc
diff --git a/lily/page-layout-problem.cc b/lily/page-layout-problem.cc
index  
673278f69c6fc9490ab118d406610531064b6d9e..c30f43d84a40464278e078313fe34ae0b3d89a9d  
100644

--- a/lily/page-layout-problem.cc
+++ b/lily/page-layout-problem.cc
@@ -271,7 +271,7 @@ Page_layout_problem::append_prob (Prob *prob, Spring  
const& spring, Real padding


   if (sky)
 {
-  minimum_distance = (*sky)[UP].distance (bottom_skyline_);
+  minimum_distance = (*sky)[UP].distance (bottom_skyline_,  
scm_to_double (prob->get_property ("skyline-horizontal-padding")));

   bottom_skyline_ = (*sky)[DOWN];
 }
   else if (Stencil *sten = unsmob_stencil (prob->get_property ("stencil")))
Index: lily/skyline.cc
diff --git a/lily/skyline.cc b/lily/skyline.cc
index  
d8105e669b910eaadc3fe8e34286ae9d613c8e50..5283cd25cee6f1bce634269eb0b5fa33e48acd90  
100644

--- a/lily/skyline.cc
+++ b/lily/skyline.cc
@@ -119,7 +119,7 @@ Building::precompute (Real start, Real start_height,  
Real end_height, Real end)

 y_intercept_ = start_height - slope_ * start;
 }

-Real
+Real
 Building::height (Real x) const
 {
   return isinf (x) ? y_intercept_ : slope_*x + y_intercept_;
@@ -248,7 +248,7 @@ single_skyline (Building b, Real start, Real  
horizon_padding, list *co

   -infinity_f, infinity_f));
   if (sloped_neighbours)
 ret->push_front (b.sloped_neighbour (start, horizon_padding, RIGHT));
-
+
   if (b.end_ > start + EPS)
 ret->push_front (b);

@@ -367,7 +367,7 @@ Skyline::Skyline ()
 Skyline::Skyline (Skyline const &src)
 {
   sky_ = src.sky_;
-
+
   /* doesn't a list's copy constructor do this? -- jneem */
   for (list::const_iterator i = src.buildings_.begin ();
i != src.buildings_.end (); i++)
@@ -383,6 +383,26 @@ Skyline::Skyline (Direction sky)
 }

 /*
+  build padded skyline from an existing skyline with padding
+  added to it.
+*/
+
+Skyline::Skyline (Skyline const &src, Real horizon_padding, Axis a)
+{
+  Real start = -in

Re: Fix Issue 1290 (issue3832046)

2011-01-01 Thread joeneeman

I don't know if it's important, but it may be worth mentioning somewhere
that skyline-horizontal-padding works differently for VerticalAxisGroup
and System. (Because in VerticalAxisGroup, skyline-horizontal-padding
takes effect while the outside-staff-grobs are being placed).


http://codereview.appspot.com/3832046/diff/2001/lily/page-layout-problem.cc
File lily/page-layout-problem.cc (right):

http://codereview.appspot.com/3832046/diff/2001/lily/page-layout-problem.cc#newcode274
lily/page-layout-problem.cc:274: minimum_distance = (*sky)[UP].distance
(bottom_skyline_, scm_to_double (prob->get_property
("skyline-horizontal-padding")));
robust_scm2double is probably better

http://codereview.appspot.com/3832046/diff/2001/lily/skyline.cc
File lily/skyline.cc (right):

http://codereview.appspot.com/3832046/diff/2001/lily/skyline.cc#newcode396
lily/skyline.cc:396: if ((i->slope_ == 0) && !isinf (i->y_intercept_) &&
i->y_intercept_ >= 0)
Why restrict to y_intercept_ < 0?

http://codereview.appspot.com/3832046/diff/2001/lily/skyline.cc#newcode398
lily/skyline.cc:398: Interval (i->y_intercept_ < 0 ? i->y_intercept_ : 0
, i->y_intercept_)));
...and if you do restrict to y_intercept_ < 0, then this is redundant.

http://codereview.appspot.com/3832046/diff/2001/lily/skyline.cc#newcode399
lily/skyline.cc:399: Skyline padSky = Skyline (boxes, horizon_padding,
a, (Direction) 1);
pad_sky instead of padSky
UP instead of (Direction) 1
and perhaps a comment about why you need to use UP instead of sky_
(which would seem intuitive)

http://codereview.appspot.com/3832046/diff/2001/lily/skyline.cc#newcode498
lily/skyline.cc:498: const Skyline *padded_other = &other;
I'm not sure, but I think "Skyline const *" is more consistent with the
rest of the code.

http://codereview.appspot.com/3832046/

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