Re: change clef inside a grob-callback?

2009-07-17 Thread Mark Polesky

Joe Neeman wrote:
  Is there a way to change the clef from within a grob callback?
 
 Not really. You can change the clef's glyph, but you can't really change
 the clef's influence on the following notes. 

I presume you mean I can change the clef stencil, or do you mean that
it's possible to change the clefGlyph context property? If that were
the case, then couldn't I change clefPosition and middleCPosition and
do it that way?

 ...Reason being, the NoteHead
 grobs are created around the same time as the Clef grob and their
 positions are fixed at that time, so unless you want to somehow iterate
 over and modify all the NoteHeads, it isn't really going to work.
 
 I'd suggest a music function rather than a grob override.

How? I was using a music function before, but I couldn't find a way to
get NoteHead staff-positions without a callback. And I get stuck with a 
music-function because I don't know how to test if I'm in a \relative
block or not. 

I guess the algorithmic idea would be:

*Before* staff-positions are concretely determined...
1. what would the staff-positions be if we stayed in this clef?
2. if they're within this clef's staff-range, do nothing.
3. if another clef is better (according to user), change the clef.
4. determine actual staff-positions with the updated clef info.

I just don't know how to catch the process before the staff-positions
are determined, if all I have is a context and a EventChord. I thought
that if I could at least know whether I'm in a \relative block, I could
then look at the current clef, and figure it out the long way (not that
I'd want to). But I imagine there must be an easier way in. And I can't
test for \relative-ness as far as I can tell anyway.

Do you have any other (slightly more specific) suggestions? (:

Thanks for taking a look at this.
- Mark



  


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


Re: Regression test information

2009-07-17 Thread Graham Percival
On Thu, Jul 16, 2009 at 10:11:50AM -0600, Carl Sorensen wrote:
 I'd like permission to move the information on regression testing from make
 test-baseline and make check from the AU to the CG  (There's a placeholder
 there already; section 7).
 
 Any concerns about doing this?

My concern is that the entire compiling is slated to move to the
CG, so it would make sense to do this at once.  That said, we
might split up the user- and packager-oriented parts of compiling
from the developer-oriented parts.

Cheers,
- Graham


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


Re: proposal for doc+web sources

2009-07-17 Thread Graham Percival
On Thu, Jul 16, 2009 at 04:45:35PM +0200, John Mandereau wrote:
 Le jeudi 16 juillet 2009 à 04:46 -0700, Graham Percival a écrit :
  It's impossible to miss, as is
  INSTALL.txt in the tarball, so the masocists that want to compile
  from source can still find their instructions.
 
 Do you mean that all packagers are masocists? :-)

Package managers are an anomoly.  There's no reason for normal
users to compile from source.

inb4 oh, but I want to run lilypond on my netbsd-powered arm
toaster.  Those aren't normal users.

  I think this is met by my later proposal to keep a separate web/
  repo, but to not edit the texinfo sources on that branch.  That
  way, no lilypond snippet compiling will be necessary to build the
  website, so the hourly build will be fine.
 
 If no Texinfo/ly compilation is done on web branch, then there should be
 no Texinfo/ly source on web. I assume you mean this.

No, I mean:
  master/Documentation/web.texi
  master/Documentation/web/*.itexi
(used in GUB release web versions)

  web.repo/texinfo/*.itexi
(exact copy of the files in master/.  Nobody edits these, apart
from the web person who imports the versions from master/ after
verifying that they still work)
  web.repo/texinfo/cross-references-trickery
(exact copy of whatever is done in master/Documentation)


Hourly build of the website can run just fine from web/ with no ly
compiling.  lilypond.org doesn't even need to have texinfo
installed; texi2html can run by itself.  This way, building web is
a lightweight, self-contained process.

I don't think that having an exact copy of files in master/ in
web.repo/ is a horrible idea.  If you think it is, then we could
go back to the idea of requring master/ to build the website.  I
think that's too much of a requirement.


Basically, we want a bunch of texinfo files to be used in the
documentation tarball compiling, and in the website.  However we
do things, we either need to build everything from master/  (you
and Han-Wen have convinced me that's not the best idea), or
require both repos in order to build the website, or keep copies
of those files in both repos.


  I'm not certain we want to require an active internet connection.
 
 I'm against recording HTML ouptut

I'm against this too.

 and/or a bunch of generated
 PNG/SVG/EPS images of music in web repository: this will clutter history
 a lot.

I think we should have this, though.  Why not?  The current
website does this.  I think site/images/ has about 20 images of
lilypond output. 

The thing is, we definitely *don't* want the images to be built
automatically.  Once in a while -- perhaps once a year -- a
website person should try generating the examples/ and examine the
output carefully.  Are there any flaws?  If so, don't update the
images in Examples.  If there's no flaws, then go ahead an 


In case there's any doubt, we're only talking about the 8-10
images in Introduction-Examples.  No wait; we're doing the zoom
in thing.  16-20 png images.
There's no other lilypond output on the website.  I suppose we
might add some lilypond output for a background image or logo or
something, but that's even more of a don't update this without
lots of careful thought thing.

Cheers,
- Graham


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


Re: PATCH: Improved tablature support

2009-07-17 Thread Marc Hohl

Carl Sorensen schrieb:


On 7/16/09 5:54 PM, Jonathan Kulp jonlancek...@gmail.com wrote:

  

Carl Sorensen wrote:


So, while I asked Marc to provide documentation, I didn't require it.  I
did, however, require regtests.

As soon as we get the patch applied, we can ask one of the people who is
clamoring for improved tab support on -user to get involved in writing the
documentation for it, working with you to get it in proper form.

  

I've been looking more carefully at the regtests and think that
the texidoc headers might be enough to get started on the new
parts of fretted-strings.itely.  Would you like me to prepare a
patch based on these so that it can be applied at the same time as
the program code, or should we just wait?



Let's wait a bit -- I'd like to see if we can get somebody in the tablature
group to do it.  If they don't bite, then we'll have you do it.
  

Of course I can write a documentation, but I had the same idea as Carl -
there is a group of people interested in tablature features, and when the
patch is applied and the features are availabe, I'll ask them if someone
wants to work on the documentation.

Marc

Carl




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

  




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


Re: New format for autobeaming rules

2009-07-17 Thread Graham Percival
On Wed, Jul 15, 2009 at 07:43:56AM -0600, Carl Sorensen wrote:
 
 On 7/14/09 3:57 PM, n.putt...@gmail.com n.putt...@gmail.com wrote:
 
  http://codereview.appspot.com/88155/diff/95/1147#newcode69
  Line 69: section 1.2.4 Beams, for more information.
  Is it possible to use @ruser{} here?
 
 I'm not sure.  I thought NEWS was supposed to be a standalone document.
 Graham, you're the source of all truth about documents; what do you think?

Until now, it's been a standalone document, but perhaps that
should change.  Only after the new unified doc process, unified
macros, etc, though.  So just leave it as-is for now.  :)

  http://codereview.appspot.com/88155/diff/95/1149#newcode1743
  Line 1743: Beam settings can be reverted to get back to default
  behavior.  This
  This looks like it should be an input/new snippet.
 
 I'm not sure I understand why you think it should it be in input/new instead
 of just being in the docs.  It doesn't use \set or \override.  It explains
 the use of a LilyPond command.  That's why I thought it should be an inline
 snippet.

In most doc sections, we'd move tweaking-type stuff (and I think
that \overrideBeamSettings would qualify) into snippets.

HOWEVER, certain NR sections go into more detail... my traditional
example of this is the page about changing automatic beam
settings.  So I definitely think it's ok to have this inline here.

Cheers,
- Graham


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


Re: PATCH: Improved tablature support

2009-07-17 Thread Marc Hohl

Carl Sorensen schrieb:


On 7/16/09 9:56 AM, Carl Sorensen c_soren...@byu.edu wrote:

  

Marc Hohl has completed a patch for improved tablature support.  It is
available for review at:

http://codereview.appspot.com/95059

Please review and comment.

Thanks,



Marc,

Here are some comments.

1) All regression tests should be \version 2.13.4 -- I'll fix that.
  

Thank you!

2) Your regression test for the modernTab clef:
  Doc header should say four- to seven- stringed instruments, which means
instruments having four to seven strings.  four to seven stringed
instruments means four to seven instruments having strings.  Isn't english
fun?
  

Ah, I see. Yeah, english *is* fun, but sometimes I just stumble through
half-finished sentences in despite search of a missing word, but at least,
the work on lilypond seems to improve my english a bit.

  You should demonstrate in the regtest that it works for four strings and
seven strings, and that it works with various staff sizes.  You may want two
different regtests -- one that shows variations in string numbers and one
that shows variation in sizes.
  

Ok, I will provide additional regtests.

3) Is it necessary (or desirable) to have both \deadNote and
\deadNoteOn..\deadNoteOff?  Unless a whole piece is to be written in
DeadNotes, I can't imagine that it's better to write

\deadNoteOn e e deadNoteOff

than

\deadNotes{e e}.

If there's no value to the On..Off pairs, then it's probably best to
eliminate them.  But if there is value, we can keep them.  And I'm not the
judge of value.  I'm just asking the question.
  
Hm, I introduced the ..On/..Off pairs first, because this syntax seemed 
to be
lilypondish  -  and easier to read, especially if there are long 
passages played

palm mute- or dead note-style. The latter construct looks more like a
programming language to me (yes, in fact it is a programming language, but
as there are many users not familiar with computer programming, we should
avoid this in general - but this is rather philosophical here).

On the other hand, for a single dead note
\deadNoteOn e \DeadNoteOff
is way too complicated, and furthermore
 c \deadNoteOn e \deadNoteOff g  won't work, so there is need for the
second syntax.



4) Formatting nit on scm/tablature.scm

line 125-128: I think it would look better to put all the arguments to
ly:stencil-combine-at-edge on line 124.

line 129-131:  I would like it better to have the last three arguments to
the first ly:stencil-combine-at-edge call on line 125, nested to the same
depth as the inner (ly:stencil-combine-at-edge call.

  
I don't want to blame others here, but this piece of code was 1:1 copied 
from Neil's mail.
Shall I reformat it and send a new patch, or are there other 
possibilities to correct it?

Other than that, things look good.

Oh, BTW, Thomas Morgan is currently working on a new Parenthesize markup
command that will be better than the current parentheses; it will draw the
parentheses as slurs.  This may be something you want to use in the future.
  
Great! This opens the possibilitiy of drawing parentheses around chords, 
isn't it?


Thank you.


Marc
  

Carl








  




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


Re: PATCH: Improved tablature support

2009-07-17 Thread Marc Hohl

Carl Sorensen schrieb:

2) Your regression test for the modernTab clef:
  Doc header should say four- to seven- stringed instruments, which means
instruments having four to seven strings.  four to seven stringed
instruments means four to seven instruments having strings.  Isn't english
fun?
  You should demonstrate in the regtest that it works for four strings and
seven strings, and that it works with various staff sizes.  You may want two
different regtests -- one that shows variations in string numbers and one
that shows variation in sizes.
  
Here it is - gzipped for proper line endings. The first file, 
modern-tab-clef.ly
shows tablature for four and seven strings, while the second, 
modern-tab-claf-scaled.ly

demonstrates the scaling.

Marc


additional-regtests.tar.gz
Description: GNU Zip compressed data
___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Implement framework for post-fix text (de)cresc spanners

2009-07-17 Thread Valentin Villenave
2009/5/9 Neil Puttock n.putt...@gmail.com:
 I favour this version since its the least ambiguous; there's no risk
 of a user trying to make e.g. a 'CrescendoEvent with
 'descrescendo-text.

Just for the record (and the mailing list archive): this feature has
now been added to our tracker as
http://code.google.com/p/lilypond/issues/detail?id=817
I certainly hope it will get accepted and merged at some point! :-)

Regards,
Valentin


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


Re: Regression test information

2009-07-17 Thread Carl Sorensen



On 7/17/09 12:57 AM, Graham Percival gra...@percival-music.ca wrote:

 On Thu, Jul 16, 2009 at 10:11:50AM -0600, Carl Sorensen wrote:
 I'd like permission to move the information on regression testing from make
 test-baseline and make check from the AU to the CG  (There's a placeholder
 there already; section 7).
 
 Any concerns about doing this?
 
 My concern is that the entire compiling is slated to move to the
 CG, so it would make sense to do this at once.  That said, we
 might split up the user- and packager-oriented parts of compiling
 from the developer-oriented parts.

I think that the regression testing section doesn't make sense as part of
compiling.  I have never considered running the regression tests to see if
compiling has succeeded.  Once documentation is built, I'm satisfied that
LilyPond is installed properly.

Regression tests are used for testing changes to LilyPond, so separating
this section out makes sense to me.

OK, so now I have a new proposal:

1)  Move AU 1.2.2, 1.2.3, 1.2.4 to CG 2.1
2)  Move AU 1.2.5 to CG 7
3)  Drop AU 1.1 -- it's on the Install page
4)  Move 1.2.6 to CG 2.1
5)  For now, have AU 1 just add a reference to CG.  (But CG 3.3.6 makes no
mention of a macro to reference to CG.  Do we have one?  If we don't, it
will just be ordinary text.)

Does this proposal pass muster?

Carl



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


Re: PATCH: Improved tablature support

2009-07-17 Thread Carl Sorensen



On 7/17/09 2:13 AM, Marc Hohl m...@hohlart.de wrote:

 Carl Sorensen schrieb:
 
 On 7/16/09 9:56 AM, Carl Sorensen c_soren...@byu.edu wrote:
 
  
 3) Is it necessary (or desirable) to have both \deadNote and
 \deadNoteOn..\deadNoteOff?  Unless a whole piece is to be written in
 DeadNotes, I can't imagine that it's better to write
 
 \deadNoteOn e e deadNoteOff
 
 than
 
 \deadNotes{e e}.
 
 If there's no value to the On..Off pairs, then it's probably best to
 eliminate them.  But if there is value, we can keep them.  And I'm not the
 judge of value.  I'm just asking the question.
  
 Hm, I introduced the ..On/..Off pairs first, because this syntax seemed
 to be
 lilypondish  -  and easier to read, especially if there are long
 passages played
 palm mute- or dead note-style. The latter construct looks more like a
 programming language to me (yes, in fact it is a programming language, but
 as there are many users not familiar with computer programming, we should
 avoid this in general - but this is rather philosophical here).

There are actually two different lilypondish constructs.  One is a
setting, the other is a function.

For example, we do \relative c' {...} and \transpose e f { ... } which are
exactly equivalent to \deadNote { ... }.

But we also have lots of settings.

 On the other hand, for a single dead note
 \deadNoteOn e \DeadNoteOff
 is way too complicated, and furthermore
  c \deadNoteOn e \deadNoteOff g  won't work, so there is need for the
 second syntax.

Right, so we *must* have the function mode.  Do we need the setting mode as
well?  I don't feel strongly about eliminating it, but I don't feel strongly
about keeping it either.  I trust your judgment.

However, now that I think about it, for the function call, I would prefer
the name \deadNotes (plural) instead of \deadNote (singular), because it can
take multiple notes in its argument.


  
 
 4) Formatting nit on scm/tablature.scm
 
 line 125-128: I think it would look better to put all the arguments to
 ly:stencil-combine-at-edge on line 124.
 
 line 129-131:  I would like it better to have the last three arguments to
 the first ly:stencil-combine-at-edge call on line 125, nested to the same
 depth as the inner (ly:stencil-combine-at-edge call.
 
  
 I don't want to blame others here, but this piece of code was 1:1 copied
 from Neil's mail.
 Shall I reformat it and send a new patch, or are there other
 possibilities to correct it?

This kind of judgment is somewhat subjective.  You can leave it as is, or
you can reformat it.  If you reformat it, please send a new patch.

 Other than that, things look good.
 
 Oh, BTW, Thomas Morgan is currently working on a new Parenthesize markup
 command that will be better than the current parentheses; it will draw the
 parentheses as slurs.  This may be something you want to use in the future.
  
 Great! This opens the possibilitiy of drawing parentheses around chords,
 isn't it?

It will, but it may yet have its own problems.  It will parenthesize any
stencil.  I don't know if the set of noteheads forms its own stencil
(separate from the stem) or not.  If it does, we'll be home free on
parenthesizing chords.  If not, we'll still have to figure out how to get
the set of noteheads for parenthesizing.

Thanks,

Carl



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


Re: change clef inside a grob-callback?

2009-07-17 Thread Joe Neeman
On Thu, 2009-07-16 at 23:06 -0700, Mark Polesky wrote:
 Joe Neeman wrote:
   Is there a way to change the clef from within a grob callback?
  
  Not really. You can change the clef's glyph, but you can't really change
  the clef's influence on the following notes. 
 
 I presume you mean I can change the clef stencil, or do you mean that
 it's possible to change the clefGlyph context property? If that were
 the case, then couldn't I change clefPosition and middleCPosition and
 do it that way?

I mean that you can change the clef stencil. Context properties are used
when creating grobs, but they disappear before any grob callback is
likely to be called.

 
  ...Reason being, the NoteHead
  grobs are created around the same time as the Clef grob and their
  positions are fixed at that time, so unless you want to somehow iterate
  over and modify all the NoteHeads, it isn't really going to work.
  
  I'd suggest a music function rather than a grob override.
 
 How? I was using a music function before, but I couldn't find a way to
 get NoteHead staff-positions without a callback. And I get stuck with a 
 music-function because I don't know how to test if I'm in a \relative
 block or not. 
 
 I guess the algorithmic idea would be:
 
 *Before* staff-positions are concretely determined...
 1. what would the staff-positions be if we stayed in this clef?
 2. if they're within this clef's staff-range, do nothing.
 3. if another clef is better (according to user), change the clef.
 4. determine actual staff-positions with the updated clef info.
 
 I just don't know how to catch the process before the staff-positions
 are determined, if all I have is a context and a EventChord. I thought
 that if I could at least know whether I'm in a \relative block, I could
 then look at the current clef, and figure it out the long way (not that
 I'd want to). But I imagine there must be an easier way in. And I can't
 test for \relative-ness as far as I can tell anyway.
 
 Do you have any other (slightly more specific) suggestions? (:

I don't know how to deal with \relative, but it's easy to calculate the
staff-position of an absolute note in a music function:
(+ (ly:pitch-steps pitch-of-the-note) middle-C-position)

If you look at note-heads-engraver.cc, you'll see that the
staff-position property is set there using the pitch of the NoteEvent
and the middleCPosition property. So you step 4 of your algorithm above
will be handled by note-heads-engraver, but only if you can figure out
the new clef using only the context and the EventChord. Perhaps a music
function guru can help out with the relative problem?

Joe




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


Re: Implement framework for post-fix text (de)cresc spanners

2009-07-17 Thread Reinhold Kainhofer
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am Freitag, 17. Juli 2009 10:59:35 schrieb Valentin Villenave:
 2009/5/9 Neil Puttock n.putt...@gmail.com:
  I favour this version since its the least ambiguous; there's no risk
  of a user trying to make e.g. a 'CrescendoEvent with
  'descrescendo-text.

 Just for the record (and the mailing list archive): this feature has
 now been added to our tracker as
 http://code.google.com/p/lilypond/issues/detail?id=817
 I certainly hope it will get accepted and merged at some point! :-)

Me too. The main issue is how to implement the upgrade path for old 
scores... Graham said a while ago that he has some ideas, but he hasn't shared 
them yet ;-) 
My idea is to:
- -) rename cresc etc. to deprecatedcresc etc.
- -) write a conversion rule \cresc-\deprecatedcresc
- -) implement the postfix crescendi with the names cresc, dim, decresc

I don't see any other way to change the \cresc from prefix to postfix style in 
existing lilypond code, since you can't rely on a single note following 
immediately after the \cresc...

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

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)

iD8DBQFKYKDXTqjEwhXvPN0RAi0fAKCoeVgzwXiKPZbtpLEtGq8x520MAACgiSYB
dLDRJQ19kMoyTCwi8V3U9Lg=
=Nyzc
-END PGP SIGNATURE-


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


Re: musicxml2ly bug?

2009-07-17 Thread Reinhold Kainhofer
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am Mittwoch, 15. Juli 2009 22:59:45 schrieb ArnoWaschk:
 Dear list,

 while trying to import some scores into lilypond i was given as xml export
 from a finale using collegue, i stumbled across some problems...

 by far the most common one i tried to reduce into the attached files.
 while the xml (correctly) contains a Vivace mark in the first bar, the
 .ly file resulting from musicxml2ly conversion shifts it incorrectly into
 the third bar, where it finds the first pitch...

Yes, that's a known problem. I have had that on my todo list for quite a 
while, but haven't found the time yet to fix it.

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

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)

iD8DBQFKYKDqTqjEwhXvPN0RAi9fAKCzKWVzD/OdFsLNBzPrUB4opfAasQCff3CW
bo4KaQP7RVCDnmPhVT5J6Nk=
=oAE1
-END PGP SIGNATURE-


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


Re: PATCH: Improved tablature support

2009-07-17 Thread Marc Hohl

Carl Sorensen schrieb:


Right, so we *must* have the function mode.  Do we need the setting mode as
well?  I don't feel strongly about eliminating it, but I don't feel strongly
about keeping it either.  I trust your judgment.
  

I prefer to offer both variants.

However, now that I think about it, for the function call, I would prefer
the name \deadNotes (plural) instead of \deadNote (singular), because it can
take multiple notes in its argument.
  

Yes, I had that before, but I decided to remove the plural s, because
in chord constructs, it works only on the next note, and in normal
contexts,
c d \deadNote e f
influences only the e (\deadNotes would imply to influence e and f, in 
my opinion).

When one uses { }, \deadNote works on a group of notes, so the meaning here
is clear. So personnally, I wouldn't change it ...


  

4) Formatting nit on scm/tablature.scm

line 125-128: I think it would look better to put all the arguments to
ly:stencil-combine-at-edge on line 124.

line 129-131:  I would like it better to have the last three arguments to
the first ly:stencil-combine-at-edge call on line 125, nested to the same
depth as the inner (ly:stencil-combine-at-edge call.

 
  

I don't want to blame others here, but this piece of code was 1:1 copied
from Neil's mail.
Shall I reformat it and send a new patch, or are there other
possibilities to correct it?



This kind of judgment is somewhat subjective.  You can leave it as is, or
you can reformat it.  If you reformat it, please send a new patch.
  
If this is the only thing to change, I will leave it as is until I had 
to apply

changes (for parentheses or additional functions) - not because I'm
lasy, but because of my incomplete knowledge of git (it is still a kind
of a fight each time)
  

Other than that, things look good.

Oh, BTW, Thomas Morgan is currently working on a new Parenthesize markup
command that will be better than the current parentheses; it will draw the
parentheses as slurs.  This may be something you want to use in the future.
 
  

Great! This opens the possibilitiy of drawing parentheses around chords,
isn't it?



It will, but it may yet have its own problems.  It will parenthesize any
stencil.  I don't know if the set of noteheads forms its own stencil
(separate from the stem) or not.  If it does, we'll be home free on
parenthesizing chords.  If not, we'll still have to figure out how to get
the set of noteheads for parenthesizing.
  

Ok, let's wait and see.

Marc

Thanks,

Carl


  




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


Re: Regression test information

2009-07-17 Thread Graham Percival
On Fri, Jul 17, 2009 at 07:09:19AM -0600, Carl Sorensen wrote:
 
 On 7/17/09 12:57 AM, Graham Percival gra...@percival-music.ca wrote:
 
  My concern is that the entire compiling is slated to move to the
  CG, so it would make sense to do this at once.  That said, we
  might split up the user- and packager-oriented parts of compiling
  from the developer-oriented parts.
 
 I think that the regression testing section doesn't make sense as part of
 compiling.  I have never considered running the regression tests to see if
 compiling has succeeded.  Once documentation is built, I'm satisfied that
 LilyPond is installed properly.
 
 Regression tests are used for testing changes to LilyPond, so separating
 this section out makes sense to me.
 
 OK, so now I have a new proposal:
 
 1)  Move AU 1.2.2, 1.2.3, 1.2.4 to CG 2.1
 2)  Move AU 1.2.5 to CG 7
 3)  Drop AU 1.1 -- it's on the Install page
 4)  Move 1.2.6 to CG 2.1

Yes, that looks right.

 5)  For now, have AU 1 just add a reference to CG.  (But CG 3.3.6 makes no
 mention of a macro to reference to CG.  Do we have one?  If we don't, it
 will just be ordinary text.)

Ah, I see.  I remember there being some issues when Jonathan added
an @include to the CG, but there wouldn't be any problems if we
just make it a link (especially with ordinary text).

Ok, go ahead.  This doesn't depend on having an essay or the like,
so there's no point waiting like the other doc rearrangements.

Cheers,
- Graham


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


running the regression tests on ubuntu - lilypond-texi2html.init error

2009-07-17 Thread Frédéric Bron
Hi!

I have installed a virtual machine with VirtualBox on my windows
machine. I have installed ubuntu and all stuff for lilypond.
I obtained the sources via git.
I tried to run the regression tests but obtained the following error:

WARNING: Unable to load the map file
Undefined subroutine main:: called at
/home/bronf/lilypond/Documentation/lilypond-texi2html.init line 743.
make[3]: *** [out-test/collated-files.html] Error 25
rm /home/bronf/lilypond/out/xref-maps/collated-files.xref-map
make[3]: Leaving directory `/home/bronf/lilypond/input/regression'
make[2]: *** [local-test] Error 2
make[2]: Leaving directory `/home/bronf/lilypond/input/regression'
make[1]: *** [test] Error 2
make[1]: Leaving directory `/home/bronf/lilypond'
make: *** [test-baseline] Erreur 2

Is it because I have only version 1.78 of texi2html? However this is
the only version proposed by ubuntu!

Frédéric


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


Re: running the regression tests on ubuntu - lilypond-texi2html.init error

2009-07-17 Thread Graham Percival
On Fri, Jul 17, 2009 at 08:39:58PM +0200, Frédéric Bron wrote:
 Is it because I have only version 1.78 of texi2html? However this is
 the only version proposed by ubuntu!

I believe so.  Try download texi2html 1.82
http://www.nongnu.org/texi2html/
then do
  ./configure
  make
  sudo make install

Cheers,
- Graham


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


Re: change clef inside a grob-callback?

2009-07-17 Thread Mark Polesky

Okay, I feel like I could be a lot closer. I rewrote the function using
\applyOutput and a music-function.

Everything is fine except:
  1) using \ottava confuses the function, and
  2) the clef changes one chord too late.

At the moment, the \ottava issue is not a problem (I'll deal with that
later), but obviously the delayed clef change *is* a problem. In the
example below, the 3rd chord should be in the bass clef already because
the average staff-position is below middle C. I'm hoping I can use the
parser argument to get around it, but I don't know how. If there's some
way I could get \applyOutput to see the previous chord...

Can someone help?

Thanks.
- Mark
_

\version 2.13.2

#(define (first-note? note-grob)
   (let* ((note-column (ly:grob-parent note-grob X))
  (note-grob-array (ly:grob-object note-column 'note-heads))
  (first-note  (ly:grob-array-ref note-grob-array 0)))
(eq? note-grob first-note)))

#(define (get-avg-staff-pos note-grob)
   (let* ((note-column (ly:grob-parent note-grob X))
  (note-grob-array (ly:grob-object note-column 'note-heads))
  (note-count  (ly:grob-array-length note-grob-array)))

 ;; maybe there should be a ly:grob-array-map procedure...
 (let loop ((staff-pos-sum 0) (i 0))
   (if (= i note-count)
   (/ staff-pos-sum note-count)
   (loop (+ staff-pos-sum
(ly:grob-staff-position
  (ly:grob-array-ref note-grob-array i)))
 (1+ i))

#(define (ly:context-set-properties! context alist)
  (for-each
(lambda (prop)
  (ly:context-set-property! context (car prop) (cdr prop)))
alist))

#(define (auto-clef grob grob-origin context)
  (if (and (grob::has-interface grob 'note-head-interface)
   (first-note? grob))
  (if ( (get-avg-staff-pos grob)
 (ly:context-property context 'middleCPosition))
  (ly:context-set-properties! context
'((clefGlyph . clefs.F)
  (clefPosition . 2)
  (middleCPosition . 6)))
  (ly:context-set-properties! context
'((clefGlyph . clefs.G)
  (clefPosition . -2)
  (middleCPosition . -6))

#(define (EventChord? music)
  (eq? (ly:music-property music 'name) 'EventChord))

autoClefs =
#(define-music-function (parser location music) (ly:music?)
  (music-map
(lambda (x)
  (if (EventChord? x)
  #{ \applyOutput #'Staff #auto-clef $x #}
  x))
music))

\relative {
  \autoClefs { c e b d a c g b }
}


  


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


Re: running the regression tests on ubuntu - lilypond-texi2html.init error

2009-07-17 Thread Jonathan Kulp

Graham Percival wrote:

On Fri, Jul 17, 2009 at 08:39:58PM +0200, Frédéric Bron wrote:

Is it because I have only version 1.78 of texi2html? However this is
the only version proposed by ubuntu!


I believe so.  Try download texi2html 1.82
http://www.nongnu.org/texi2html/
then do
  ./configure
  make
  sudo make install

Cheers,
- Graham



What Graham proposes should be simple enough, but if you have any 
troubles you can try the lilybuntu remix I made a while back:


http://prodet.hu/bert/lilydev/lilybuntu.iso

I compiled texi2html 1.82 and included it in the remix. It also 
has all of the other build dependencies in place.


Jon

--
Jonathan Kulp
http://www.jonathankulp.com

Having been erased,
The document you're seeking
Must now be retyped.

--a Haiku error message from GNU


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


Re: change clef inside a grob-callback?

2009-07-17 Thread Han-Wen Nienhuys
On Fri, Jul 17, 2009 at 6:58 PM, Mark Poleskymarkpole...@yahoo.com wrote:

 Okay, I feel like I could be a lot closer. I rewrote the function using
 \applyOutput and a music-function.

 Everything is fine except:

This all looks very confused.  There is a mechanism to make voices
switch between staves automatically.  I suggest you piggy-back off
that,  generating a list of clefs with moments when to insert the
clefs, similar to scm/autochange.scm ; then translate that list into a
bunch of \skip and \clef commands.


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


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


(c) does not equal copyright

2009-07-17 Thread Mark Polesky

Is this something to address? A lot of LP source files use (c) and not
Copyright, despite this legal advice from GNU:

Always use the English word “Copyright”; by international convention,
this is used worldwide, even for material in other languages. The
copyright symbol “©” can be included if you wish (and your character set
supports it), but it's not necessary. There is no legal significance to
using the three-character sequence “(C)”, although it does no harm.

http://www.gnu.org/licenses/gpl-howto.html

- Mark






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


changing StreamEvent to stream-event

2009-07-17 Thread Mark Polesky

I noticed this thread from two years ago:
http://lists.gnu.org/archive/html/lilypond-devel/2007-07/msg00020.html

Apparently, StreamEvent should be renamed stream-event. I'm happy to do
that, but is it really as simple as changing these 2 lines (lines 12-13)
in scm/define-event-classes.scm? Or is there a C++ file somewhere that
also needs to be changed (or something else that I wouldn't know about)?

- Mark

11 (define event-classes
12   '((() . (StreamEvent))
13 (StreamEvent .
14  (RemoveContext ChangeParent Override Revert UnsetProperty
15 SetProperty music-event OldMusicEvent 
CreateContext Prepare
16 OneTimeStep Finish)) 



  


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


[PATCH] Docs: IR 3.2 Graphical Object Interfaces: Sort interfaces.

2009-07-17 Thread Mark Polesky
Oops - in my earlier patch...
Auto-sort all-grob-properties alist for docs.
http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=commit;h=062046e74d6995b99bb7669e4cd6490ba8b18656

...I mistakenly removed a sort that I shouldn't have, which affects
IR 3.2 Graphical Object Interfaces -- quite noticeably!
http://kainhofer.com/~lilypond/Documentation/user/lilypond-internals/Graphical-Object-Interfaces.html:

   3.2.1 break-alignable-interface
   3.2.2 tuplet-bracket-interface
   3.2.3 ottava-bracket-interface

should be:

   3.2.1 accidental-interface
   3.2.2 accidental-placement-interface
   3.2.3 accidental-suggestion-interface

I've attached another patch which (I think) restores order to the list.
Can someone check it for me?

Thanks.
- Mark



  

0001-Docs-IR-3.2-Graphical-Object-Interfaces-Sort-interfa.patch
Description: Binary data
___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: changing StreamEvent to stream-event

2009-07-17 Thread Patrick McCarty
On Fri, Jul 17, 2009 at 8:02 PM, Mark Poleskymarkpole...@yahoo.com wrote:

 I noticed this thread from two years ago:
 http://lists.gnu.org/archive/html/lilypond-devel/2007-07/msg00020.html

 Apparently, StreamEvent should be renamed stream-event. I'm happy to do
 that, but is it really as simple as changing these 2 lines (lines 12-13)
 in scm/define-event-classes.scm? Or is there a C++ file somewhere that
 also needs to be changed (or something else that I wouldn't know about)?

 - Mark

 11 (define event-classes
 12   '((() . (StreamEvent))
 13     (StreamEvent .
 14                  (RemoveContext ChangeParent Override Revert UnsetProperty
 15                                 SetProperty music-event OldMusicEvent 
 CreateContext Prepare
 16                                 OneTimeStep Finish))

Yes, this is the only place that needs changing.

But...

event is also used in various places, like in define-music-types.scm:

  (types . (general-music event apply-output-event))

I'm pretty sure these types correspond to the Music, Event, and
ApplyOutputEvent music expressions.  Also, the corresponding classes
are music-event, StreamEvent, apply-output-event.

And there is a comment is stream_event.cc:

  /* TODO: Rename Stream_event - Event */

There are a lot of things to clean up in the Internals Reference; the
question is where to start?

For example, the IR should separate events from music expressions,
but right now everything is bundled together.  All of those other
C++-only events (RemoveContext, ChangeParent, etc.) should be
documented too.  And should they be renamed along with StreamEvent?

***

Sorry for the stream of thought.  This has been bugging me lately too.  :-)

-Patrick


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


Re: changing StreamEvent to stream-event

2009-07-17 Thread Mark Polesky

Patrick McCarty wrote:
 There are a lot of things to clean up in the Internals Reference; the
 question is where to start?

 For example, the IR should separate events from music expressions,
 but right now everything is bundled together.  All of those other
 C++-only events (RemoveContext, ChangeParent, etc.) should be
 documented too.  And should they be renamed along with StreamEvent?

 ***

 Sorry for the stream of thought.  This has been bugging me lately too.  :-)

No problem. I'm happy to help, but I don't claim to understand how the
C++ stuff interacts with the scheme stuff. So I can help clean some
stuff up, but only if I'm given explicit instructions, since I won't
always understand the implications of these types of changes. If that
scares you, then I can look to other places that I can help with, where
I have a better understanding of the changes I'd be making.

- Mark


  


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


Re: [PATCH] Docs: IR 3.2 Graphical Object Interfaces: Sort interfaces.

2009-07-17 Thread Patrick McCarty
On Fri, Jul 17, 2009 at 8:26 PM, Mark Poleskymarkpole...@yahoo.com wrote:
 Oops - in my earlier patch...
 Auto-sort all-grob-properties alist for docs.
 http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=commit;h=062046e74d6995b99bb7669e4cd6490ba8b18656

 ...I mistakenly removed a sort that I shouldn't have, which affects
 IR 3.2 Graphical Object Interfaces -- quite noticeably!
 http://kainhofer.com/~lilypond/Documentation/user/lilypond-internals/Graphical-Object-Interfaces.html:

   3.2.1 break-alignable-interface
   3.2.2 tuplet-bracket-interface
   3.2.3 ottava-bracket-interface

 should be:

   3.2.1 accidental-interface
   3.2.2 accidental-placement-interface
   3.2.3 accidental-suggestion-interface

 I've attached another patch which (I think) restores order to the list.
 Can someone check it for me?

Looks fine, Mark.  The order is restored.

Go ahead and push.

Thanks,
Patrick


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


GUB3: Infinite loop in patch stage for linux-x86::linux-headers

2009-07-17 Thread Patrick McCarty
Hello,

Building darwin-ppc::lilypond-installer from scratch, I'm experiencing
what appears to be an infinite loop while in the patch stage for
linux-x86::linux-headers.

I have no idea what's going on, but the build.log is attached.

The repeating text at the tail end of the log is where the infinite
loop occurs.

Thanks,
Patrick
 *** Stage: patch (linux-headers, linux-x86)
invoking cd /home/pnorcks/git/gub/target/linux-x86/src/linux-headers-2.4.34  
yes yes | make ARCH=i386 oldconfig symlinks include/linux/version.h
rm -f include/asm
( cd include ; ln -sf asm-i386 asm)
/bin/sh scripts/Configure -d arch/i386/config.in
#
# Using defaults found in arch/i386/defconfig
#
scripts/Configure: line 551: .: .config-is-not.12306: file not found
*
* Code maturity level options
*
Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) 
[N/y/?] (NEW) *
* Loadable module support
*
Enable loadable module support (CONFIG_MODULES) [Y/n/?] 
  Set version information on all module symbols (CONFIG_MODVERSIONS) [Y/n/?] 
  Kernel module loader (CONFIG_KMOD) [Y/n/?] 
*
* Processor type and features
*
Processor family (386, 486, 586/K5/5x86/6x86/6x86MX, Pentium-Classic, 
Pentium-MMX, Pentium-Pro/Celeron/Pentium-II, Pentium-III/Celeron(Coppermine), 
Pentium-4, K6/K6-II/K6-III, Athlon/Duron/K7, Opteron/Athlon64/Hammer/K8, Elan, 
Crusoe, Winchip-C6, Winchip-2, Winchip-2A/Winchip-3, CyrixIII/VIA-C3, VIA-C3-2) 
[Pentium-III/Celeron(Coppermine)] 
  defined CONFIG_MPENTIUMIII
Machine Check Exception (CONFIG_X86_MCE) [Y/n/?] 
Toshiba Laptop support (CONFIG_TOSHIBA) [N/y/m/?] (NEW) Dell laptop support 
(CONFIG_I8K) [N/y/m/?] (NEW) /dev/cpu/microcode - Intel IA32 CPU microcode 
support (CONFIG_MICROCODE) [N/y/m/?] (NEW) /dev/cpu/*/msr - Model-specific 
register support (CONFIG_X86_MSR) [N/y/m/?] (NEW) /dev/cpu/*/cpuid - CPU 
information support (CONFIG_X86_CPUID) [N/y/m/?] (NEW) BIOS Enhanced Disk Drive 
calls determine boot disk (EXPERIMENTAL) (CONFIG_EDD) [N/y/m/?] (NEW) High 
Memory Support (off, 4GB, 64GB) [off] 
  defined CONFIG_NOHIGHMEM
Math emulation (CONFIG_MATH_EMULATION) [N/y/?] (NEW) MTRR (Memory Type Range 
Register) support (CONFIG_MTRR) [N/y/?] (NEW) Symmetric multi-processing 
support (CONFIG_SMP) [Y/n/?] 
Maximum number of CPUs (2-32) (CONFIG_NR_CPUS) [32] 
Multi-node NUMA system support (CONFIG_X86_NUMA) [N/y/?] (NEW)  Multiquad 
(IBM/Sequent) NUMAQ support (CONFIG_X86_NUMAQ) [N/y/?] (NEW)  IBM x440 
(Summit/EXA) support (CONFIG_X86_SUMMIT) [N/y/?] (NEW) *
* General setup
*
Networking support (CONFIG_NET) [Y/n/?] 
PCI support (CONFIG_PCI) [Y/n/?] 
  PCI access mode (BIOS, Direct, Any) [Any] 
  defined CONFIG_PCI_GOANY
ISA bus support (CONFIG_ISA) [Y/n/?] 
PCI device name database (CONFIG_PCI_NAMES) [Y/n/?] 
EISA support (CONFIG_EISA) [N/y/?] (NEW) MCA support (CONFIG_MCA) [N/y/?] (NEW) 
Support for hot-pluggable devices (CONFIG_HOTPLUG) [Y/n/?] 
*
* PCMCIA/CardBus support
*
PCMCIA/CardBus support (CONFIG_PCMCIA) [Y/m/n/?] 
  CardBus support (CONFIG_CARDBUS) [Y/n/?] 
  Databook TCIC host bridge support (CONFIG_TCIC) [N/y/?] (NEW)   i82092 
compatible bridge support (CONFIG_I82092) [N/y/?] (NEW)   i82365 compatible 
bridge support (CONFIG_I82365) [N/y/?] (NEW) *
* PCI Hotplug Support
*
Support for PCI Hotplug (EXPERIMENTAL) (CONFIG_HOTPLUG_PCI) [N/y/m/?] (NEW)   
Compaq PCI Hotplug driver (CONFIG_HOTPLUG_PCI_COMPAQ) [N/y/m/?] (NEW) Save 
configuration into NVRAM on Compaq servers (CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM) 
[N/y/?] (NEW)   IBM PCI Hotplug driver (CONFIG_HOTPLUG_PCI_IBM) [N/y/m/?] (NEW) 
  SHPC PCI Hotplug driver (CONFIG_HOTPLUG_PCI_SHPC) [N/y/m/?] (NEW) Use 
polling mechanism for hot-plug events (for testing purpose) 
(CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE) [N/y/?] (NEW)   PCI Express Hotplug 
driver (CONFIG_HOTPLUG_PCI_PCIE) [N/y/m/?] (NEW) Use polling mechanism for 
hot-plug events (for testing purpose) (CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE) 
[N/y/?] (NEW) System V IPC (CONFIG_SYSVIPC) [Y/n/?] 
BSD Process Accounting (CONFIG_BSD_PROCESS_ACCT) [N/y/?] (NEW) Sysctl support 
(CONFIG_SYSCTL) [Y/n/?] 
Kernel core (/proc/kcore) format (ELF, A.OUT) [ELF] 
  defined CONFIG_KCORE_ELF
Kernel support for a.out binaries (CONFIG_BINFMT_AOUT) [Y/m/n/?] 
Kernel support for ELF binaries (CONFIG_BINFMT_ELF) [Y/n/?] 
Kernel support for MISC binaries (CONFIG_BINFMT_MISC) [Y/m/n/?] 
Select task to kill on out of memory condition (CONFIG_OOM_KILLER) [N/y/?] 
(NEW) Power Management support (CONFIG_PM) [Y/n/?] 
  Advanced Power Management BIOS support (CONFIG_APM) [N/y/m/?] (NEW) 
Ignore USER SUSPEND (CONFIG_APM_IGNORE_USER_SUSPEND) [N/y/?] (NEW) Enable 
PM at boot time (CONFIG_APM_DO_ENABLE) [N/y/?] (NEW) Make CPU Idle calls 
when idle (CONFIG_APM_CPU_IDLE) [N/y/?] (NEW) Enable console blanking using 
APM (CONFIG_APM_DISPLAY_BLANK) [N/y/?] (NEW) RTC stores time in GMT 
(CONFIG_APM_RTC_IS_GMT) [N/y/?] (NEW) Allow interrupts during APM BIOS 
calls (CONFIG_APM_ALLOW_INTS) 

Re: changing StreamEvent to stream-event

2009-07-17 Thread Patrick McCarty
On Fri, Jul 17, 2009 at 8:43 PM, Mark Poleskymarkpole...@yahoo.com wrote:

 Patrick McCarty wrote:
 There are a lot of things to clean up in the Internals Reference; the
 question is where to start?

 For example, the IR should separate events from music expressions,
 but right now everything is bundled together.  All of those other
 C++-only events (RemoveContext, ChangeParent, etc.) should be
 documented too.  And should they be renamed along with StreamEvent?

 ***

 Sorry for the stream of thought.  This has been bugging me lately too.  :-)

 No problem. I'm happy to help, but I don't claim to understand how the
 C++ stuff interacts with the scheme stuff. So I can help clean some
 stuff up, but only if I'm given explicit instructions, since I won't
 always understand the implications of these types of changes. If that
 scares you, then I can look to other places that I can help with, where
 I have a better understanding of the changes I'd be making.

I think it would be better to work on other things right now.  :-)
Unless someone else jumps in and explains exactly how event classes
work, that is.

I'll put it on my TODO list.  The IR really needs to be cleaned up wrt
StreamEvents and related items.

Thanks,
Patrick


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