Re: Makes sure that ledger lines do not overlap with accidentals. (issue 4898060)

2011-08-23 Thread Mike Solomon
Hey all,

My patch did change output (it prevented duplicate ledger lines), although I 
did not spot the result that Janek sees.

The old patch is also flawed, in that it only changes the ledger line directly 
next to the accidental.  The entire bounding box of the accidental should, 
however, be taken into account.
I maintain that the best solution is:

{
 \override Staff.Accidental #'layer = #-100
\override Staff.LedgerLineSpanner #'layer = #-101
\override Staff.Accidental #'whiteout = ##t


}

Which is a trivial change to engravers-init.ly.  I'll post a patch later today 
unless anyone sees a better alternative.

Cheers,
MS

On Aug 22, 2011, at 11:33 PM, Han-Wen Nienhuys wrote:

> 2011/8/22 Janek Warchoł :
>> I wholeheartedly disagree, i think that this issue isn't negligible
>> (or did i misunderstood you, Han-Wen?).
> 
> My impression is that the patch was not actually changing output.
> 
> If it was intended to, I couldn't tell from a read of the patch.
> 
> -- 
> Han-Wen Nienhuys - han...@xs4all.nl - http://www.xs4all.nl/~hanwen
> 
> ___
> lilypond-devel mailing list
> lilypond-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-devel


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


Re: PATCH: 48-hour countdown 22:00 MDT 20110824

2011-08-23 Thread Mike Solomon
On Aug 23, 2011, at 5:31 AM, Colin Campbell wrote:

> For Wednesday August 25th, 22:00
> 
> Issue 1735: modifying default behaviour of tremolo slashes - R 4636081
> Issue 1628: Fingerings collide with slurs when used in <> - R  4876051: Fixes 
> issue 1628. 
> Issue 1328: Slurs collides with fermata - R 4860042
> Issue 1235: Accidental overlays stem - R  4898044: Fixes heights and pure 
> heights of stems. 
> 
> Cheers, Colin
> 

Hey all,

If it's OK with everyone, I'd like to replace:

Issue 1235: Accidental overlays stem - R  4898044: Fixes heights and pure 
heights of stems. 

with

Creates a Flag grob (http://codereview.appspot.com/4922042/)

as Han-Wen had requested that this be implemented first before 4898044 was 
pushed.

Sorry for not alerting you about that, Colin, and thanks to all for your 
reviews on both 4922042 and 4898044 so far.

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


Re: Does better polynomial calculations for avoid objects. (issue 4860042)

2011-08-23 Thread Mike Solomon
On Aug 23, 2011, at 6:21 AM, hanw...@gmail.com wrote:

> 
> http://codereview.appspot.com/4860042/diff/8001/flower/polynomial.cc
> File flower/polynomial.cc (right):
> 
> http://codereview.appspot.com/4860042/diff/8001/flower/polynomial.cc#newcode80
> flower/polynomial.cc:80: return ret_max ? sols.back () : sols[0];
> you could return an interval instead;
> 
> Polynomial::range() ?

I'm hesitant to incorporate native Lilypond types into polynomial.cc - I'd like 
to keep the included files as "polynomial.hh" and "warn.hh" so that it could 
work stand-alone with minimal modifications.
Een beter milieu begint bij uzelf. Hergebruik!

> 
> http://codereview.appspot.com/4860042/diff/8001/lily/bezier.cc
> File lily/bezier.cc (right):
> 
> http://codereview.appspot.com/4860042/diff/8001/lily/bezier.cc#newcode223
> lily/bezier.cc:223: Bezier::minmax (Axis ax, Real l, Real r, Direction
> d, vsize lres, vsize rres) const
> you could be less stingy with letters.  "axis".
> 
> what do lres and vres mean?
> 

I've expanded these out.

> http://codereview.appspot.com/4860042/diff/8001/lily/bezier.cc#newcode258
> lily/bezier.cc:258: return p.minmax (sol[LEFT][res[LEFT]],
> sol[RIGHT][res[RIGHT]], d != LEFT);
> could return an interval here too? Bezier::extent ?
> 

It's up to you.  It is more an architecture/style question than anything else.  
If you're OK including interval.hh in polynomial.cc, then I can do this.

New patchset up.

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


Re: Does better polynomial calculations for avoid objects. (issue 4860042)

2011-08-23 Thread Mike Solomon
On Aug 23, 2011, at 6:55 AM, joenee...@gmail.com wrote:

> 
> http://codereview.appspot.com/4860042/diff/1/lily/bezier.cc
> File lily/bezier.cc (right):
> 
> http://codereview.appspot.com/4860042/diff/1/lily/bezier.cc#newcode239
> lily/bezier.cc:239: return p.minmax (sol[LEFT][0], sol[RIGHT][0], d !=
> LEFT);
> On 2011/08/19 07:03:50, MikeSol wrote:
>> On 2011/08/18 21:36:45, joeneeman wrote:
>> > If there are multiple intersections with (say) r, then
> Polynomial::solve
>> doesn't
>> > seem to return them in any useful order. So sol[RIGHT][0] is really
> just an
>> > arbitrary solution, isn't it?
> 
>> True, but this seems no worse than line 81 where ts[0] is returned.
> Not that
>> this is a good excuse...
> 
> Right, but what really bothers me is that you're then using
> sol[RIGHT][0] as though it means something. So what this function seems
> to do (suppose ax=X_AXIS) is to take an arbitrary point where the curve
> intersects x=r and an arbitrary point where the curve intersects x=l and
> then finds the maximum y value of the curve between those two points.

True.
A well-formed slur should never retrograde along the X-axis, and thus, the size 
of sol[LEFT] and sol[RIGHT] should be 1 after filtering out all values less 
than 0 and greater than 1.
I think that the programming errors in the current patch should do the trick.

> But there's no guarantee that that maximum is what you're after.

I'm pretty sure that, in the case of a well-formed slur, the Y maximum or 
minimum is what I'm after.

> For example, if the curve intersects x=r before it intersects x=l then it
> seems to me that Polynomial::minmax will return something weird.

This is true - I've put a programming error in polynomial.cc for this case.

> And if there are multiple intersections with either line, there are a lot of
> different answers that could come out.

True.  In the case of slurs, this should not happen.  The patch passes the 
regtests without ever triggering this warning (it'd be difficult to trigger it, 
as you'd have to make the slur run backwards).

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


Re: modifying default behaviour of tremolo slashes (issue 4636081)

2011-08-23 Thread mtsolo

LGTM

Cheers,
MS


http://codereview.appspot.com/4636081/diff/42001/lily/stem-tremolo.cc
File lily/stem-tremolo.cc (right):

http://codereview.appspot.com/4636081/diff/42001/lily/stem-tremolo.cc#newcode61
lily/stem-tremolo.cc:61: return scm_from_double ((Stem::duration_log
(stem) >= 3 && get_grob_direction (stem) == DOWN && !(beam))
!beam

http://codereview.appspot.com/4636081/diff/42001/lily/stem-tremolo.cc#newcode93
lily/stem-tremolo.cc:93: return ly_symbol2scm (((stemdir == UP && flag)
|| beam) ? "rectangle" : "beam-like");
return ly_symbol2scm (style != ly_symbol2scm ("constant") && ((stemdir
== UP && flag) || beam) ? "rectangle" : "beam-like");

with proper indenting...

http://codereview.appspot.com/4636081/diff/42001/scm/define-grobs.scm
File scm/define-grobs.scm (right):

http://codereview.appspot.com/4636081/diff/42001/scm/define-grobs.scm#newcode1944
scm/define-grobs.scm:1944: (X-extent . ,ly:stem-tremolo::width)
For consistency's sake (I just went through this with flags), keep this
as a style property and document the possible values in the Stem_tremolo
docstring in stem-tremolo.cc (the part with ADD_INTERFACE).

http://codereview.appspot.com/4636081/

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


Re: not all doc "clean-ups" are good

2011-08-23 Thread Janek Warchoł
2011/8/21 Graham Percival :
> On Fri, Aug 19, 2011 at 07:32:20AM +0200, Werner LEMBERG wrote:
>> Please be more specific what I'm missing.  In particular, many
>> locations which I've fixed (at least in my opinion) were talking
>> about, say, `#t' and `#foo' at the same time, which I consider *very*
>> confusing.  There are two possiblities to fix it: Either by saying
>> `#t' and `foo', or by saying `##t' and `#foo'.
>
> Hmm.  I still have no clue about the difference between #t and
> #foo, which certainly emphasizes that there *is* confusion.

Just for the record: i remember being confused by this myself when i
was a beginner.
In general scheme stuff is very confusing for beginners:
#
##
#'
,
and especially
`

:(

cheers,
Janek

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


Re: Make doc is broken

2011-08-23 Thread Phil Holmes
- Original Message - 
From: "Colin Campbell" 


I've just hit what looks like the same problem, after deleting and 
rebuilding lilypond-git:


HTH, and let me know, too, about any tracing I can do; I'm on 64-bit 
Ubuntu Natty



Added as http://code.google.com/p/lilypond/issues/detail?id=1832

--
Phil Holmes



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


Re: Adds a site search to website and improves doc search (issue4894053)

2011-08-23 Thread Phil Holmes
- Original Message - 
From: "Graham Percival" 

To: "Janek Warchoł" 
Cc: ; ; 
; 

Sent: Tuesday, August 23, 2011 12:47 AM
Subject: Re: Adds a site search to website and improves doc search 
(issue4894053)




On Mon, Aug 22, 2011 at 11:06:04PM +0200, Janek Warchoł wrote:

Phil, could you compile the website with your changes and host it
somewhere? (or tell me how to do this properly)


Partial instructions are buried in
http://code.google.com/p/lilypond/issues/detail?id=1663
It would be nice if those instructions could migrate to the CG.

Cheers,
- Graham



As you know, what you get with make website; make doc; and make doc make 
website isn't completely intuitive.  I'll need to start from scratch with 
this to document it properly, but I'm just starting.


--
Phil Holmes



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


Fix uninitialized variables when Source_file::get_counts returns early due to !contains (pos_str0) (issue 4940047)

2011-08-23 Thread reinhold . kainhofer

Reviewers: ,

Message:
Please review to get rid of some uninitialized variables.

Description:
Fix uninitialized variables when Source_file::get_counts returns early
due to !contains (pos_str0)

Most code that called get_counts simply is like:
  int line, chr, col, offset = 0;
  source_file_->get_counts (end_, &line, &chr, &col, &offset);

Now, unfortunately get_counts returns early sometimes (if we don't have
a position), so
only line_number would be initialized to 0, all other variables would
stay uninitialized.
And most code simply passed them on to other guile functions to handle.

This patch moved the initialization of all arguments to the very
beginning of get_counts
and thus never returns uninizialized variables.

This shuts up several valgrind warnings in our regtests.

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

Affected files:
  M lily/source-file.cc


Index: lily/source-file.cc
diff --git a/lily/source-file.cc b/lily/source-file.cc
index  
b42fb7a5b37a508f69ce8d31925ae9478e7972c4..041c046d2bfc2fa4761df56005f2e76692f962f7  
100644

--- a/lily/source-file.cc
+++ b/lily/source-file.cc
@@ -261,7 +261,11 @@ Source_file::get_counts (char const *pos_str0,
  int *column,
  int *byte_offset) const
 {
+  // Initialize arguments to defaults, needed if pos_str0 is not in source
   *line_number = 0;
+  *line_char = 0;
+  *column = 0;
+  *byte_offset = 0;

   if (!contains (pos_str0))
 return;
@@ -276,10 +280,6 @@ Source_file::get_counts (char const *pos_str0,
   string line_begin (line_start, left);
   char const *line_chars = line_begin.c_str ();

-  *line_char = 0;
-  *column = 0;
-  *byte_offset = 0;
-
   while (left > 0)
 {
   size_t thislen = utf8_char_len (*line_chars);



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


scheme system stdout and markup predicates

2011-08-23 Thread Jan-Peter Voigt

Hello List,

I am using the scheme system command (on linux) to generate barcodes to 
include in the PDF:

--snip--
\version "2.14.2"

% use barcode command to produce temporary eps and include it
#(define-markup-command (barcode layout props type str size 
nums)(string-or-symbol? string? number-pair? boolean?)

  (let ((width (car size))
(height (cdr size)))
   ; create temporary file name and empty stencil
   (let ((tmp (format "~A-~2A.eps" (strftime "%Y%m%d%H%M%S" 
(localtime (current-time))) (random 100)))
 (barcode-stencil (interpret-markup layout props (markup 
#:with-color red #:filled-box (cons 0 width) (cons 0 height) 0.7

; if str is a symbol like 'header:ismn get the property
(if (symbol? str)(let ((tmp (chain-assoc-get str props #f)))
 (if tmp (set! str tmp
; execute command
(system (format "barcode ~A -e \"~A\" -g ~Ax~A+0+0 -o 
\"~A\" -E -b \"~A\"" (if nums "" "-n") type (* 100 width) (* 100 height) 
tmp str))

; create EPS stencil
(set! barcode-stencil (eps-file->stencil X (car size) tmp))
; remove temporary file
(system (format "rm -v \"~A\"" tmp))
barcode-stencil
)))

% define stencil cache, to produce it only once, when used several times 
e.g. in footer markup

#(define-public (get-stencil symbol) #f)
#(define-public (put-stencil symbol stencil) #f)
#(define-public (rem-stencil symbol) #f)
#(let ((cache (list)))
 (set! put-stencil (lambda (symbol stencil)
   (set! cache (assoc-set! cache symbol stencil))
   stencil))
 (set! get-stencil (lambda (symbol)
   (assoc-get symbol cache)))
 (set! rem-stencil (lambda (symbol)
   (set! cache (assoc-set! cache symbol #f))
   empty-stencil))
)
#(define-markup-command (cache layout props sym text)(symbol? markup?)
  (let ((stencil (get-stencil sym)))
   (if (not stencil)
   (set! stencil (interpret-markup layout props text)))
   (put-stencil sym stencil)
   stencil)
)
#(define-markup-command (cache-clear layout props sym)(symbol?)
  (rem-stencil sym)
)

% include ISMN barcode
\markup \column {
  \cache #'ismn \barcode #"EAN" #"97900121" #'(30 . 8) ##t
  \cache #'ismn \barcode #"EAN" #"97900122" #'(35 . 8) ##t
  \cache-clear #'ismn
  \cache #'ismn \barcode #"EAN" #"97900123" #'(40 . 8) ##t
}
--snip--

I have two questions:
To (system "...")
1: There are several commands, wich can write the generated EPS to 
stdout. Is there a possibility to catch that and integrate it without 
creating a temporary file?

2: Is there a way to get the result code and see if the command succeded?

Now have fun, playing around with (system "echo Hello World")!

Cheers,
Jan-Peter


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


Re: Lilypond-book: Auto-detect linewidth and exampleindent in texinfo mode (issue 4938044)

2011-08-23 Thread reinhold . kainhofer

On 2011/08/22 23:55:52, Graham Percival wrote:

On 2011/08/22 12:30:15, Reinhold wrote:
> Now, it's clear that lilypond produces .pdf files that are about

0.5-1 mm too

> wide. So we now have the proper way to fix #1816



What does "0.5-1mm" mean?  Is it 0.5 for top/bottom, 1.0 for

left/right?  Or

does it depend on some random factor?  (i.e. whether there's bar

numbers or not)

?


I'm only talking about horizontal extents of the generated pdfs. The bar
numbers on the left are no problem, because we use
"-deps-box-padding=3\\mm" to add an additional 3 mm on the left for the
bar number (and reduce the line-width by the same amount).
What I'm observing is that the pdf is always a bit larger (more than
0.5mm, but usually less than 1mm) than the line-width plus the 3mm left
padding. I have not yet investigated in how far bar lines on the right
end increase it. I suspect that it has an influence.


Or does it depend on the paper size that latex is using ?  (i.e. does

it

still work in a0 and a5 paper)


It should work independent of the paper size, since we only extract the
line-width from texinfo or latex and then simply handle that to lilypond
as a numeric value. LilyPond simply creates a score with this line-width
and then crops the image, leaving a small amount of extra space on the
right, which I think is the cause of this problem.




http://codereview.appspot.com/4938044/

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


Re: scheme system stdout and markup predicates

2011-08-23 Thread David Kastrup
Jan-Peter Voigt  writes:

> Hello List,
>
> I am using the scheme system command (on linux) to generate barcodes
> to include in the PDF:


> I have two questions:
> To (system "...")
> 1: There are several commands, wich can write the generated EPS to
> stdout. Is there a possibility to catch that and integrate it without
> creating a temporary file?

See the guile documentation, node "Pipes".

> 2: Is there a way to get the result code and see if the command succeded?

Uh, have you even looked up "system" in the guile documentation?

-- 
David Kastrup


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


Re: Fix uninitialized variables when Source_file::get_counts returns early due to !contains (pos_str0) (issue 4940047)

2011-08-23 Thread Carl . D . Sorensen

LGTM.

Thanks!

Carl


http://codereview.appspot.com/4940047/

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


Re: scheme system stdout and markup predicates

2011-08-23 Thread Jan-Peter Voigt

Hi David

I have two questions:
To (system "...")
1: There are several commands, wich can write the generated EPS to
stdout. Is there a possibility to catch that and integrate it without
creating a temporary file?

See the guile documentation, node "Pipes".

OK, thanks!

2: Is there a way to get the result code and see if the command succeded?

Uh, have you even looked up "system" in the guile documentation?
Yes I have ... but I typed my question a bit to fast ... the question 
should have been, why does '(if (not (system ...' not act, like I would 
expect. But with '(if (= 0 (system ...' it does.

Sorry for the noise!

Cheers,
Jan-Peter


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


Re: Make doc is broken

2011-08-23 Thread Reinhold Kainhofer
Am Dienstag, 23. August 2011, 05:37:48 schrieb Colin Campbell:
> HTH, and let me know, too, about any tracing I can do; I'm on 64-bit
> Ubuntu Natty

It looks like python in your installations doesn't try to load packages from 
the input/regression/musicxml/ directory (here on my 32 bit Ubuntu natty it 
does). Can you (Phil and Colin) plase add the following debug statements in 
scripts/lilypond-book.py in line 609. The for loop should look like:
for i in global_options.custom_packages:
nr += 1
print "  Loading package %s"  % i
print "  sys.path: %s"  % sys.path
print "  PYTHONPATH: %s"  % os.environ.get ("PYTHONPATH", "(UNSET)")
sys.path.append (os.getcwd ())
print "  sys.path: %s"  % sys.path
print imp.load_source ("book_custom_package%s" % nr, i)

This also includes a possible fix (the sys.path.append, where I append the 
input/regression/musicxml/ dir to the standard search path).

Then please run:
-) "make" (no need to clean before; you also don't have to wait until the C++ 
is compiled, but can kill the make as soon as all python file have been 
processed at the very beginning)
-) "cd input/regression/musicxml"
-) "make doc"; also no need to clean before, you can kill the command as soon 
as lilypond-book has started

The relevant output will be before lilypond gets called, something like (on my 
machine):
==
  Loading package book-musicxml-testsuite.py
 sys.path: ['/home/reinhold/lilypond/lilypond/scripts', 
'/home/reinhold/lilypond/lilypond/python/out', 
'/home/reinhold/lilypond/lilypond/python/auxiliar', 
'/home/reinhold/lilypond/lilypond/input/regression/musicxml', 
'/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', 
'/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-
packages/Numeric', '/usr/lib/python2.7/dist-packages/PIL', 
'/usr/lib/pymodules/python2.7/gtk-2.0', '/usr/lib/python2.7/dist-
packages/gtk-2.0', '/usr/lib/pymodules/python2.7', 
'/usr/lib/pymodules/python2.7/ubuntuone-storage-protocol', 
'/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode']

lilypond-book.py (GNU LilyPond) 2.15.9
Reading out-www/collated-files.tely...
=

Notice the presence of 
'/home/reinhold/lilypond/lilypond/input/regression/musicxml' in the path, 
which is why it works here. Apparently your path doesn't include that, right?

Cheers,
Reinhold
-- 
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://reinhold.kainhofer.com/
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * LilyPond, Music typesetting, http://www.lilypond.org

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


Re: Makes sure that ledger lines do not overlap with accidentals. (issue 4898060)

2011-08-23 Thread Han-Wen Nienhuys
On Tue, Aug 23, 2011 at 3:59 AM, Mike Solomon  wrote:
>  \override Staff.Accidental #'layer = #-100
> \override Staff.LedgerLineSpanner #'layer = #-101
> \override Staff.Accidental #'whiteout = ##t
> 
>
> }
>
> Which is a trivial change to engravers-init.ly.  I'll post a patch later 
> today unless anyone sees a better alternative.

this will generate square endings on the ledgers.

-- 
Han-Wen Nienhuys - han...@xs4all.nl - http://www.xs4all.nl/~hanwen

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


RE: scheme system stdout and markup predicates

2011-08-23 Thread Carl Sorensen
>>> 2: Is there a way to get the result code and see if the command succeded?
>> Uh, have you even looked up "system" in the guile documentation?
> Yes I have ... but I typed my question a bit to fast ... the question
> should have been, why does '(if (not (system ...' not act, like I would
> expect. But with '(if (= 0 (system ...' it does.

Scheme doesn't use 0 for the false value, it's #f.  So a return of 0 is not #t.

HTH,

Carl

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


Re: Makes sure that ledger lines do not overlap with accidentals. (issue 4898060)

2011-08-23 Thread Mike Solomon
On Aug 23, 2011, at 4:03 PM, Han-Wen Nienhuys wrote:

> On Tue, Aug 23, 2011 at 3:59 AM, Mike Solomon  wrote:
>>  \override Staff.Accidental #'layer = #-100
>> \override Staff.LedgerLineSpanner #'layer = #-101
>> \override Staff.Accidental #'whiteout = ##t
>> 
>> 
>> }
>> 
>> Which is a trivial change to engravers-init.ly.  I'll post a patch later 
>> today unless anyone sees a better alternative.
> 
> this will generate square endings on the ledgers.

True.
Question - is there any way to take a glyph from the feta font and make it 
white thru pango?  If so, you could increase the size of the white glyph by a 
factor, set the accidental against it, and then the ledger line changes would 
follow the contour of the accidental.

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


Re: Makes sure that ledger lines do not overlap with accidentals. (issue 4898060)

2011-08-23 Thread Han-Wen Nienhuys
On Tue, Aug 23, 2011 at 11:05 AM, Mike Solomon  wrote:
>>>
>>> Which is a trivial change to engravers-init.ly.  I'll post a patch later 
>>> today unless anyone sees a better alternative.
>>
>> this will generate square endings on the ledgers.
>
> True.
> Question - is there any way to take a glyph from the feta font and make it 
> white thru pango?  If so, you could increase the size of the white glyph by a 
> factor, set the accidental against it, and then the ledger line changes would 
> follow the contour of the accidental.

I think the whole approach of whiting is flawed: what if the
accidental covers a ledger only halfway? The ledgers would look like

a ***
a ***
*
*

(a  = acc, * = ledger)


-- 
Han-Wen Nienhuys - han...@xs4all.nl - http://www.xs4all.nl/~hanwen

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


Re: Makes sure that ledger lines do not overlap with accidentals. (issue 4898060)

2011-08-23 Thread Jan Nieuwenhuizen
Han-Wen Nienhuys writes:

> I think the whole approach of whiting is flawed: what if

To pull that to a meta-level: sometimes it makes sense to program
LilyPond to do that which is obvious.

However, almost always it is Much Better (TM) to use the benchmarking
approach: find how the great masters solved the situation and program
LilyPond to do that.  Is this documented somewhere, by the way?

Jan

-- 
Jan Nieuwenhuizen  | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl

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


Re: Makes sure that ledger lines do not overlap with accidentals. (issue 4898060)

2011-08-23 Thread Keith OHara
Mike Solomon  ufl.edu> writes:

> I maintain that the best solution is:
>  \override Staff.Accidental #'layer = #-100
> \override Staff.LedgerLineSpanner #'layer = #-101
> \override Staff.Accidental #'whiteout = ##t
> 
> Which is a trivial change to engravers-init.ly.  I'll post a patch later 
> today 
unless anyone sees a better alternative.
> 

I wouldn't bother.  It would not really fix issue 706, and makes an 
exception to the general rule that everything is layer 1, except 
the grid of lines is on layer 0.
You could post it as a workaround to issue 706 maybe.


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


Re: Adds a site search to website and improves doc search (issue4894053)

2011-08-23 Thread Phil Holmes
- Original Message - 
From: "Graham Percival" 

To: "Janek Warchoł" 
Cc: ; ; 
; 

Sent: Tuesday, August 23, 2011 12:47 AM
Subject: Re: Adds a site search to website and improves doc search 
(issue4894053)




On Mon, Aug 22, 2011 at 11:06:04PM +0200, Janek Warchoł wrote:

Phil, could you compile the website with your changes and host it
somewhere? (or tell me how to do this properly)


Partial instructions are buried in
http://code.google.com/p/lilypond/issues/detail?id=1663
It would be nice if those instructions could migrate to the CG.


How about this (in a new section - Building the website locally)

Building the website locally

Start by making the binary files with make (typical time - 10
minutes)

Run make website (takes a minute or so).

This creates a number of files, starting with:

lilypond-git/build/out-website/index.html

Following many of the links from this page do work, but there
are no images visible and no stylesheet is loaded, so much of
the formatting is wrong.  However, if you simply want to read
a text change you've made, this can be used.  It also has no
links to the other language versions.  For this reason, it is
better to use:

lilypond-git/build/out-website/website/index.html

for browsing changed text.  This still has no images or
stylesheet, but does include the other language pages.  Note
that links to any of the user/developer documentation will be
broken.

To compile the documentation run make doc.  This typically
takes a couple of hours or so.

After this has been run, we get a number more copies of
index.html, including:

/lilypond-git/build/out-www/offline-
root/Documentation/web/index.html

This is the one that is correctly formatted with all the
pictures, style sheets, etc.

--
Phil Holmes


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


Re: Make doc is broken

2011-08-23 Thread Phil Holmes
- Original Message - 
From: "Reinhold Kainhofer" 

To: "Colin Campbell" 
Cc: "Phil Holmes" ; 
Sent: Tuesday, August 23, 2011 2:59 PM
Subject: Re: Make doc is broken



Am Dienstag, 23. August 2011, 05:37:48 schrieb Colin Campbell:

HTH, and let me know, too, about any tracing I can do; I'm on 64-bit
Ubuntu Natty


It looks like python in your installations doesn't try to load packages 
from
the input/regression/musicxml/ directory (here on my 32 bit Ubuntu natty 
it
does). Can you (Phil and Colin) plase add the following debug statements 
in

scripts/lilypond-book.py in line 609. The for loop should look like:
   for i in global_options.custom_packages:
   nr += 1
   print "  Loading package %s"  % i
   print "  sys.path: %s"  % sys.path
   print "  PYTHONPATH: %s"  % os.environ.get ("PYTHONPATH", 
"(UNSET)")

   sys.path.append (os.getcwd ())
   print "  sys.path: %s"  % sys.path
   print imp.load_source ("book_custom_package%s" % nr, i)

This also includes a possible fix (the sys.path.append, where I append the
input/regression/musicxml/ dir to the standard search path).

Then please run:
-) "make" (no need to clean before; you also don't have to wait until the 
C++

is compiled, but can kill the make as soon as all python file have been
processed at the very beginning)
-) "cd input/regression/musicxml"
-) "make doc"; also no need to clean before, you can kill the command as 
soon

as lilypond-book has started




Following the instructions to the letter, I find that lilypond-book doesn't 
run at all.  Even if I touch one of the source .tely files it doesn't run. 
I'm loathe to experiment since it's your baby - please let me know what else 
I should try.


--
Phil Holmes



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


Re: Fix uninitialized variables when Source_file::get_counts returns early due to !contains (pos_str0) (issue 4940047)

2011-08-23 Thread Graham Percival
On Tue, Aug 23, 2011 at 11:14:06AM +, reinhold.kainho...@gmail.com wrote:
> Fix uninitialized variables when Source_file::get_counts returns early
> due to !contains (pos_str0)

LGTM

Cheers,
- Graham

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


Re: Adds a site search to website and improves doc search (issue4894053)

2011-08-23 Thread Graham Percival
On Tue, Aug 23, 2011 at 03:32:40PM +0100, Phil Holmes wrote:
> - Original Message - From: "Graham Percival"
> 
> >Partial instructions are buried in
> >http://code.google.com/p/lilypond/issues/detail?id=1663
> >It would be nice if those instructions could migrate to the CG.
> 
> How about this (in a new section - Building the website locally)
> 
> Building the website locally
> 
> Start by making the binary files with make (typical time - 10
> minutes)

Not necessary unless you want to regenerate the pictures and
examples.  Hmm, this step kind-of relies on GOP 11 git
repositories, which is delayed for 2 weeks.  Growl.

ok, for now maybe make a separate "generating pictures and
examples" section?

> Run make website (takes a minute or so).
> 
> This creates a number of files, starting with:
> 
> lilypond-git/build/out-website/index.html
...
> lilypond-git/build/out-website/website/index.html

I don't think it's worth pointing out that first one at all.  Just
point directly to the second one, since it's built at the same
time anyway.

> To compile the documentation run make doc.  This typically
> takes a couple of hours or so.
> 
> After this has been run, we get a number more copies of
> index.html, including:
> 
> /lilypond-git/build/out-www/offline-
> root/Documentation/web/index.html

This is **not** the website.  That's a copy of the "web" manual,
but it's built with a completely different mechanism.


Phil, I may be misremembering.  Do you currently have
  ~/lilypond/media/pictures/
  ~/lilypond/media/ly-examples/
directories in your home directory?  I thought that you had that
set up, but if not then we should do that now.  Basically, you
follow the instructions in "initial setup" in CG 6.2, but instead
of uploading those directories to a separate server, you just copy
them on your local computer instead.

Cheers,
- Graham

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


Re: Lilypond-book: Auto-detect linewidth and exampleindent in texinfo mode (issue 4938044)

2011-08-23 Thread Graham Percival
On Tue, Aug 23, 2011 at 11:38:10AM +, reinhold.kainho...@gmail.com wrote:
> On 2011/08/22 23:55:52, Graham Percival wrote:
> >On 2011/08/22 12:30:15, Reinhold wrote:
> >> Now, it's clear that lilypond produces .pdf files that are about
> 0.5-1 mm too
> >> wide. So we now have the proper way to fix #1816
> 
> >What does "0.5-1mm" mean?  Is it 0.5 for top/bottom, 1.0 for
> left/right?  Or
> >does it depend on some random factor?  (i.e. whether there's bar
> numbers or not)
> >?
> 
> I'm only talking about horizontal extents of the generated pdfs.

Oops, sorry.  Yes, that was obvious.  Brain fart on my part.

> What I'm observing is that the pdf is always a bit larger (more than
> 0.5mm, but usually less than 1mm) than the line-width plus the 3mm left
> padding. I have not yet investigated in how far bar lines on the right
> end increase it. I suspect that it has an influence.

ok.

> It should work independent of the paper size, since we only extract the
> line-width from texinfo or latex and then simply handle that to lilypond
> as a numeric value. LilyPond simply creates a score with this line-width
> and then crops the image, leaving a small amount of extra space on the
> right, which I think is the cause of this problem.

ok, sounds good.

Cheers,
- Graham

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


Re: Fix uninitialized variables when Source_file::get_counts returns early due to !contains (pos_str0) (issue 4940047)

2011-08-23 Thread ianhulin44

LGTM

Maybe we should have some GOP rules for C++ about this?
"Only have multiple exit points from routines if you absolutely have to.
Make sure any output parameters are declared and initialized at the top
of a routine so that however a routine exits, they are left in a defined
state"
Ian

http://codereview.appspot.com/4940047/

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


Re: Fix uninitialized variables when Source_file::get_counts returns early due to !contains (pos_str0) (issue 4940047)

2011-08-23 Thread Graham Percival
On Tue, Aug 23, 2011 at 06:21:00PM +, ianhuli...@gmail.com wrote:
> Maybe we should have some GOP rules for C++ about this?
> "Only have multiple exit points from routines if you absolutely have to.
> Make sure any output parameters are declared and initialized at the top
> of a routine so that however a routine exits, they are left in a defined
> state"

I don't think we need to wait that long (i.e. at least a month, if
not 2 or 3 months to get through GOP).  Regardless of the exit
points, any member variables or output parameters should be left
in a defined state.  IMO that's just basic sanity.  :)

Cheers,
- Graham

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


Re: Fix uninitialized variables when Source_file::get_counts returns early due to !contains (pos_str0) (issue 4940047)

2011-08-23 Thread Carl Sorensen
On 8/23/11 12:21 PM, "ianhuli...@gmail.com"  wrote:

> LGTM
> 
> Maybe we should have some GOP rules for C++ about this?
> "Only have multiple exit points from routines if you absolutely have to.

Multiple exit points is a standard idiom of the LilyPond code.  Basically,
the idiom is "If this routine doesn't apply for some reason, leave now",
instead of "If this routine doesn't apply, skip to the end" or "If this
routine applies, do the body".

As imbedded as this idiom is in our code, I don't think it would be wise to
change it.

> Make sure any output parameters are declared and initialized at the top
> of a routine so that however a routine exits, they are left in a defined
> state"

IIRC, we used to have a statement that said to declare variables as close as
possible to where they are used.  I generally agree with that.

However, I think a simple statement that says "variables should be
initialized when they are declared" would be clearly welcome.  And fixes to
the code to ensure this would also be welcome.

Thanks,

Carl


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


Re: Adds a site search to website and improves doc search (issue4894053)

2011-08-23 Thread Phil Holmes
- Original Message - 
From: "Graham Percival" 

To: "Phil Holmes" 
Cc: "Janek Warchol" ; 
; ; 
; 

Sent: Tuesday, August 23, 2011 7:04 PM
Subject: Re: Adds a site search to website and improves doc search 
(issue4894053)




On Tue, Aug 23, 2011 at 03:32:40PM +0100, Phil Holmes wrote:

- Original Message - From: "Graham Percival"

>Partial instructions are buried in
>http://code.google.com/p/lilypond/issues/detail?id=1663
>It would be nice if those instructions could migrate to the CG.

How about this (in a new section - Building the website locally)

Building the website locally

Start by making the binary files with make (typical time - 10
minutes)


Not necessary unless you want to regenerate the pictures and
examples.  Hmm, this step kind-of relies on GOP 11 git
repositories, which is delayed for 2 weeks.  Growl.


Yeah - you're almost certainly right.  I've got so used to the need to run 
this first.  I'll redo and check.



ok, for now maybe make a separate "generating pictures and
examples" section?


Run make website (takes a minute or so).

This creates a number of files, starting with:

lilypond-git/build/out-website/index.html

...

lilypond-git/build/out-website/website/index.html


I don't think it's worth pointing out that first one at all.  Just
point directly to the second one, since it's built at the same
time anyway.


I'd like to state it's necessary to ignore the other, but happy to do in 
that way.



To compile the documentation run make doc.  This typically
takes a couple of hours or so.

After this has been run, we get a number more copies of
index.html, including:

/lilypond-git/build/out-www/offline-
root/Documentation/web/index.html


This is **not** the website.  That's a copy of the "web" manual,
but it's built with a completely different mechanism.


AFAICS it's the only version of the web material that looks like the real 
website - images, css, etc, included.



Phil, I may be misremembering.  Do you currently have
 ~/lilypond/media/pictures/
 ~/lilypond/media/ly-examples/
directories in your home directory?  I thought that you had that
set up, but if not then we should do that now.  Basically, you
follow the instructions in "initial setup" in CG 6.2, but instead
of uploading those directories to a separate server, you just copy
them on your local computer instead.


No - I don't.  But wouldn't this be setting up my system in order to build a 
"correct" website?  What we're trying to do here is write instructions on 
how to check that changes to the website that contributors make can be 
easily checked.


--
Phil Holmes



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


What's the deal with String_convert::reverse?

2011-08-23 Thread David Kastrup

This function in the flower library relies on memrev which is broken
(off-by-one error).

Is this used anywhere?

-- 
David Kastrup


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


Re: Adds a site search to website and improves doc search(issue4894053)

2011-08-23 Thread Phil Holmes
- Original Message - 
From: "Phil Holmes" 

To: "Graham Percival" 
Cc: ; ; 
; 

Sent: Tuesday, August 23, 2011 9:15 PM
Subject: Re: Adds a site search to website and improves doc 
search(issue4894053)



- Original Message - 
From: "Graham Percival" 

To: "Phil Holmes" 



This is **not** the website.  That's a copy of the "web" manual,
but it's built with a completely different mechanism.


AFAICS it's the only version of the web material that looks like the real 
website - images, css, etc, included.


Thinking about this a little further - part of the problem is that make 
website doesn't do anything like make the website.  It just creates the html 
files.  It really ought to put the images and css files in the right place, 
fix up the links etc.  I'm sure this would cause the normal difficulties 
about getting it to work, but a) I don't think doing this would add much to 
the run time of make website and b) it's really what should happen.  You 
agree?


--
Phil Holmes



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


Fix memleak: temporary skyline objects for systems were never deleted (issue 4923048)

2011-08-23 Thread reinhold . kainhofer

Reviewers: ,

Message:
This patch fixes a memleak: Some temporary skylines were never
deleted...
Please review

Description:
Fix memleak: temporary skyline objects for systems were never deleted

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

Affected files:
  M lily/skyline.cc


Index: lily/skyline.cc
diff --git a/lily/skyline.cc b/lily/skyline.cc
index  
b6ea6b791bbbfa09aaa28e91da0a619c33085890..8f62710b0947fa8e48ffcbc7e181cba4709c96de  
100644

--- a/lily/skyline.cc
+++ b/lily/skyline.cc
@@ -514,6 +514,7 @@ Skyline::distance (Skyline const &other, Real  
horizon_padding) const


   Skyline const *padded_this = this;
   Skyline const *padded_other = &other;
+  bool created_tmp_skylines = false;

   /*
 For systems, padding is not added at creation time.  Padding is
@@ -525,6 +526,7 @@ Skyline::distance (Skyline const &other, Real  
horizon_padding) const

 {
   padded_this = new Skyline (*padded_this, horizon_padding, X_AXIS);
   padded_other = new Skyline (*padded_other, horizon_padding, X_AXIS);
+  created_tmp_skylines = true;
 }

   list::const_iterator i = padded_this->buildings_.begin ();
@@ -544,6 +546,13 @@ Skyline::distance (Skyline const &other, Real  
horizon_padding) const

 j++;
   start = end;
 }
+
+  if (created_tmp_skylines)
+{
+  delete padded_this;
+  delete padded_other;
+}
+
   return dist;
 }




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


Re: Adds a site search to website and improves doc search(issue4894053)

2011-08-23 Thread Graham Percival
On Tue, Aug 23, 2011 at 09:32:50PM +0100, Phil Holmes wrote:
> - Original Message - From: "Phil Holmes"
> 
> >- Original Message - From: "Graham Percival"
> >
> >To: "Phil Holmes" 
> 
> >>This is **not** the website.  That's a copy of the "web" manual,
> >>but it's built with a completely different mechanism.
> >
> >AFAICS it's the only version of the web material that looks like
> >the real website - images, css, etc, included.
> 
> Thinking about this a little further - part of the problem is that
> make website doesn't do anything like make the website.  It just
> creates the html files.  It really ought to put the images and css
> files in the right place, fix up the links etc.

It does do this!  -- if you have stuff in $HOME/lilypond/media/

> I'm sure this would cause the normal difficulties about getting
> it to work, but a) I don't think doing this would add much to
> the run time of make website and b) it's really what should
> happen.  You agree?

Problem:
- webserver does not have imagemagick
- webserver does not have lilypond
- webserver certainly cannot compile lilypond

Hence the $HOME/lilypond/media/ stuff.


I would like to put those in a separate git repository, so that it
would be easier to create the website (just point a variable at
your version of that other repository, instead of having to
manually create $HOME/lilypond/media/ yourself).  But that step
will be discussed in GOP-PROP 11, which is still 2 weeks off
(depending on how much time I spend on maintenance and build
issues).

In the short-term, I think it would be extremely helpful if you
could create the $HOME/lilypond/media stuff, then create the
website from a blank build tree -- convince yourself that you
can/will get the full website without running make or make doc.

Cheers,
- Graham

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


Re: Nested context properties -- an implementation sketch

2011-08-23 Thread Janek Warchoł
Once again i'm reviving an old thread, but since i was involved in
discussions with David before i disappeared, i'd like to give my
feedback on this.

2011/8/14 David Kastrup :
> there are the proposed semantics.  At least for the
> latter, I would want to get some sort of feedback.
>
> The semantics can be summarized as follows:
>
> a) a revert will only cancel the last _matching_ override, and the match
>   includes the complete specified property path, _and_ the prospective
>   use of \once.  \revert will not cancel \once\override and vice versa.
> b) At the end of a timestep, all \once\override are reverted.  All
>   non-\once overrides remain in effect and on the stack as if none of
>   the \once\override had ever happened.

2011/8/14 David Kastrup :
> There are likely two contentious changes.  The first is related to
> nested properties: namely that the pairing of override/revert of a
> property x should be independent from override/revert of a nested
> property x.y.  However, if overrides and reverts of x and x.y are not
> acting as if they were issued independently, and if overrides and
> reverts of x and x.z are not acting as if issued independently, then it
> gets quite hard to let overrides and reverts of x.y and x.z act as if
> they were issued independently.  And that would make working with nested
> properties less straightforward in my opinion.
>
> The second is that \once\override will not mix with \override\revert.
> Currently \once\override ... \override will have the second \override
> active just for the current timestep, and revert to the previous value
> afterwards.  \override ... \once \override ... \revert \revert will at
> first revert both overrides, but reinstate the state after the first
> override at the end of the timestep.  If I understand the code
> correctly.

LGTM.
(sorry that i don't have anything more constructive to say)

thanks for your work, David!
Janek

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


Re: What's the deal with String_convert::reverse?

2011-08-23 Thread Reinhold Kainhofer
Am Tuesday, 23. August 2011, 22:30:24 schrieb David Kastrup:
> This function in the flower library relies on memrev which is broken
> (off-by-one error).

hehe, nice catch. It should use
  unsigned char *right = byte + length - 1;
shoudln't it?


> Is this used anywhere?

A git grep didn't show any usage, but maybe I'm missing something.

Cheers,
Reinhold

-- 
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://reinhold.kainhofer.com/
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * LilyPond, Music typesetting, http://www.lilypond.org

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


Re: \once \revert

2011-08-23 Thread Janek Warchoł
2011/8/19 Carl Sorensen :
> On 8/19/11 10:15 AM, "David Kastrup"  wrote:
>>
>> Up to now, \once \revert is not really documented nor used.  I have not
>> yet dug through the existing code in order to figure out what it does if
>> anything (most likely ignoring \once, but not sure).
>
> I would expect that \once \revert would revert an \override for the current
> time step only (meaning events whose start time is the current moment).  For
> any events whose start time is other than the current moment, the \override
> would continue to apply.

+1

>> In order to not have the override/revert stack get into unexpected
>> interactions, I want to change \once\override to be impervious to normal
>> reverts.
>
> This seems to me to be a wise decision.  \once \override is a statement that
> you are creating an override for everything happening at the current moment;
> reverts would not seem to apply.

+1

>> That would mean that \once\revert is an obvious candidate for reverting
>> a \once\override before its time.  However, I have no idea whether there
>> is an actual sensible use for that functionality.
>
> I can see no sensible use for that functionality.  You would have
> conflicting statements about what should happen at this time.

+1

>> \once\revert could also mean to let a current non-once override become
>> inactive just for the current time step.
>
> As I mentioned above, I think this is the logically consistent meaning.

+1

>> IF one wanted to get crazy, one could use \once\revert for one of the
>> two things, and \revert\once for the other.  Which one for which, and
>> would anybody remember that?
>
> I agree that this would be crazy.   But if we were going to do it, \once
> \revert should revert an \override, but only for the current moment, and
> \revert \once should revert a \once \override, IMO.  But I would not be in
> favor of this proposal.

+1

> In fact, I think I would be in favor of removing \once \revert from the
> parser.  The semantics of \once \revert can be confusing, and the same
> behavior could be achieved with a \once \override.  But I would be open to
> arguments from those who see good uses of \once \revert.

+0.5, i'm not sure.

I see that there is more advanced discussion going on, but i cannot
dive into it now.  Maybe later.

cheers,
Janek

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


Re: Fixes heights and pure heights of stems. (issue 4898044)

2011-08-23 Thread Janek Warchoł
2011/8/16 Han-Wen Nienhuys :
> #2) sounds neat, but maybe Janek (who has spent some time messing
> around with flags) wants to weigh in.

As i've said in a private mail to Mike, i don't have anything against doing so.

Mike, i understand that your patch changes some beams.  I'd like to
check what effect does it have on my scores, but i'm not sure if i can
do it now or rather should i wait until flag grob is pushed.  I also
don't understand what '\override Stem #'stencil = #(lambda (grob) ...'
is about.

cheers,
Janek

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


include lines in breve X-extent (issue 1814) (issue 4931043)

2011-08-23 Thread janek . lilypond

http://codereview.appspot.com/4931043/

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


Re: where X-extent of noteheads is set?

2011-08-23 Thread Janek Warchoł
2011/8/9 Janek Warchoł :
> 2011/8/7 Bertrand Bordage :
>>> I've done a very dirty test which showed that a properly set glyph
>>> bounding box solves this perfectly (see in the attachment how the
>>> bounding box should change).
>>> However, there is a problem.  Currently bounding box is set by
>>> procedure draw_outside_ellipse (defined in mf/feta-params.mf) - it is
>>> not set in the definition of the glyph.  How to set glyph bounding box
>>> to something different than outside_ellipse bounding box?
>>
>> You could define it in the "final" definitions of glyphs. Here is an
>> example. Of course, these values have to be define in a clean metafont way.
>> fet_beginchar ("Brevis notehead", "sM1");
>> draw_brevis (1, 1);
>> draw_staff (-2, 2, 0);
>> set_char_box (.1 staff_space#, 2.1 staff_space#, .5 staff_space#, .5
>> staff_space#);
>> fet_endchar;
>
> Yes, it works!
> I'll upload a draft soon.

That wasn't very soon, but a patch addressing this is here:
http://codereview.appspot.com/4931043/
It fixes http://code.google.com/p/lilypond/issues/detail?id=1814
Hopefully a patch fixing
http://code.google.com/p/lilypond/issues/detail?id=1546 will follow.

cheers,
Janek

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


Re: Deprecate \fermataMarkup for full-bar rests. (issue 4672059)

2011-08-23 Thread janek . lilypond

This one is very nice!
I vote for deleting \fermataMarkup altogether.
Will it be also possible to deprecate MultiMeasureRestText?  It's
confusing too.

Added a tracker issue:
http://code.google.com/p/lilypond/issues/detail?id=1833

thanks, Neil!
Janek

http://codereview.appspot.com/4672059/

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


Re: What's the deal with String_convert::reverse?

2011-08-23 Thread Karl Hammar
Reinhold:
> Am Tuesday, 23. August 2011, 22:30:24 schrieb David Kastrup:
...
> > Is this used anywhere?
> A git grep didn't show any usage, but maybe I'm missing something.

Make does not complain about this patch (on my box).

$ git diff |cat
diff --git a/flower/include/string-convert.hh b/flower/include/string-convert.hh
index 55c1486..0675384 100644
--- a/flower/include/string-convert.hh
+++ b/flower/include/string-convert.hh
@@ -49,7 +49,7 @@ public:
   static string i64_string (I64, char const *fmt = 0);
   static string to_lower (string s);
   static string to_upper (string s);
-  static string reverse (string s);
+  static string reverseX (string s);
 };
 
 #endif // __STRING_CONVERT_HH //
diff --git a/flower/string-convert.cc b/flower/string-convert.cc
index d46426e..01cf3e5 100644
--- a/flower/string-convert.cc
+++ b/flower/string-convert.cc
@@ -362,7 +362,7 @@ String_convert::to_lower (string s)
 }
 
 string
-String_convert::reverse (string s)
+String_convert::reverseX (string s)
 {
   return (char *) memrev ((unsigned char *)s.data (), s.length ());
 }

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
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: DOC: Revise CG 3.4 Commit Access (issue 4898058)

2011-08-23 Thread ColinPKCampbell

Pushed as 5f81429c8f8263eef85b4f7881d243cb9722e971

Details of how to push will be in a seperate patch.

http://codereview.appspot.com/4898058/

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


Re: Nested context properties -- an implementation sketch

2011-08-23 Thread David Kastrup
Janek Warchoł  writes:

> LGTM.
> (sorry that i don't have anything more constructive to say)

I am working on the code (in C++) right now.  Since I'll be driving to
an accordionist meeting tomorrow lasting till Sunday and since I am away
work-related for the following three days, this will still take time.  I
also have problems digging through the maze of twisty little passages in
the current code that actually is setting properties.

-- 
David Kastrup

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


Re: What's the deal with String_convert::reverse?

2011-08-23 Thread David Kastrup
k...@aspodata.se (Karl Hammar) writes:

> Reinhold:
>> Am Tuesday, 23. August 2011, 22:30:24 schrieb David Kastrup:
> ...
>> > Is this used anywhere?
>> A git grep didn't show any usage, but maybe I'm missing something.
>
> Make does not complain about this patch (on my box).

> -  static string reverse (string s);
> +  static string reverseX (string s);

> -String_convert::reverse (string s)
> +String_convert::reverseX (string s)

Maybe we should just throw it out.

-- 
David Kastrup


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


Re: Fix memleak: temporary skyline objects for systems were never deleted (issue 4923048)

2011-08-23 Thread David Kastrup
reinhold.kainho...@gmail.com writes:

> Reviewers: ,
>
> Message:
> This patch fixes a memleak: Some temporary skylines were never
> deleted...
> Please review
>
> Description:
> Fix memleak: temporary skyline objects for systems were never deleted
>
> Please review this at http://codereview.appspot.com/4923048/
>
> Affected files:
>M lily/skyline.cc
>
>
> Index: lily/skyline.cc
> diff --git a/lily/skyline.cc b/lily/skyline.cc
> index  
> b6ea6b791bbbfa09aaa28e91da0a619c33085890..8f62710b0947fa8e48ffcbc7e181cba4709c96de
>   
> 100644
> --- a/lily/skyline.cc
> +++ b/lily/skyline.cc
> @@ -514,6 +514,7 @@ Skyline::distance (Skyline const &other, Real  
> horizon_padding) const
>
> Skyline const *padded_this = this;
> Skyline const *padded_other = &other;
> +  bool created_tmp_skylines = false;
>
> /*
>   For systems, padding is not added at creation time.  Padding is
> @@ -525,6 +526,7 @@ Skyline::distance (Skyline const &other, Real  
> horizon_padding) const
>   {
> padded_this = new Skyline (*padded_this, horizon_padding, X_AXIS);
> padded_other = new Skyline (*padded_other, horizon_padding, X_AXIS);
> +  created_tmp_skylines = true;
>   }
>
> list::const_iterator i = padded_this->buildings_.begin ();
> @@ -544,6 +546,13 @@ Skyline::distance (Skyline const &other, Real  
> horizon_padding) const
>   j++;
> start = end;
>   }
> +
> +  if (created_tmp_skylines)
> +{
> +  delete padded_this;
> +  delete padded_other;
> +}
> +
> return dist;
>   }

Skylines are smobs.  The usual way to delete them would be to unprotect
them once they have been registered by some garbage-collectable object
(or a SCM variable that is being used for accessing them).

-- 
David Kastrup


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


Re: Fixes heights and pure heights of stems. (issue 4898044)

2011-08-23 Thread Mike Solomon
On Aug 24, 2011, at 12:09 AM, Janek Warchoł wrote:

> 2011/8/16 Han-Wen Nienhuys :
>> #2) sounds neat, but maybe Janek (who has spent some time messing
>> around with flags) wants to weigh in.
> 
> As i've said in a private mail to Mike, i don't have anything against doing 
> so.
> 
> Mike, i understand that your patch changes some beams.  I'd like to
> check what effect does it have on my scores, but i'm not sure if i can
> do it now or rather should i wait until flag grob is pushed.

You can check it now - the flag grob won't really have an effect, and will 
break the patch until I upload a new set.

> I also
> don't understand what '\override Stem #'stencil = #(lambda (grob) ...'
> is about.

Where was this lambda function talked about?

Cheers,
MS



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