Re: Issue 4345 in lilypond: Patch: Part combiner: allow a2 chords

2015-04-20 Thread Reinhold Kainhofer

Dear Kristof,

Am 2015-04-20 um 11:16 schrieb Kristof Bastiaensen:

I have a hard time to believe that anyone actually uses the part combiner
seriously, but please prove me wrong.


I'm using the partcombiner with all my orchestral scores. For an example 
see my edition of Schubert's Stabat Mater D.383:

https://gitlab.com/edition-kainhofer/0002_schubert_stabatmater_d383/blob/master/out/Schubert_StabatMater_D383_Score_Full.pdf

Of course, I had to frequently override the partcombiner's decisions 
using \partcombineApart, \partcombineChordsOnce, etc., but that's to be 
expected from any kind of automatic decision system (be it strictly 
rule-based as the current partcombiner, or heuristics-based as your 
version).


Best regards,
Reinhold



--
------
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com/
 * Open Tools, Software Development, http://www.open-tools.net/
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com/


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


Re: Staff ends before \clef, \time and \key

2015-04-07 Thread Reinhold Kainhofer

Dear David,
Thank you for the hint with break-align-symbols, which works much better 
than the suggestion on the user list to simply use "s8" to prolong the 
staff (but introduces other issues, like a \mark "seque Terzetto" 
stretching the staff lines after the final time change)...


So, basically, you are saying that this is not a regression from 2.18 to 
2.19, but rather an intended change? In that case, I will refrain from 
submitting a bug report.


Thanks again and best regards,
Reinhold


Am 2015-04-07 um 18:59 schrieb David Kastrup:

Reinhold Kainhofer  writes:


Hi all,
It's been quite a while since I last used LilyPond, and I finally
decided to wrap up the last, huge edition I was working on for quite a
while.

Here is the first issue I'm running into:
If I end a piece with a \bar "||" and after that only want to indicate
a key/clef/time change, the staff lines stop with the bar line. A
typical use case is in a work with multiple movements to indicate
"attacca" to the next movement, which is written as a separate
\score. Minimal example:

\version "2.19.19"
\relative c'' {
c4 a b c
\bar"||"
\key f \major \time 3/4
}

Output PDF is attached.
I should probably mention that the snippet works just fine in Lilypond
2.18. Only Lilypond 2.19 breaks.

Any idea how to keep the staff lines alive until the key/time/clef change?

That sounds like issue 660
https://code.google.com/p/lilypond/issues/detail?id=660>.

Try
   \override Staff.StaffSymbol.break-align-symbols = #'(time-signature 
key-signature staff-bar break-alignment)

The default is just #'(staff-bar break-alignment) and the staff will
reach to the first encountered element in the list.

This might warrant some better documentation I suppose.




--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com/
 * Open Tools, Software Development, http://www.open-tools.net/
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com/


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


Staff ends before \clef, \time and \key

2015-04-06 Thread Reinhold Kainhofer

Hi all,
It's been quite a while since I last used LilyPond, and I finally 
decided to wrap up the last, huge edition I was working on for quite a 
while.


Here is the first issue I'm running into:
If I end a piece with a \bar "||" and after that only want to indicate a 
key/clef/time change, the staff lines stop with the bar line. A typical 
use case is in a work with multiple movements to indicate "attacca" to 
the next movement, which is written as a separate \score. Minimal example:


\version "2.19.19"
\relative c'' {
   c4 a b c
   \bar"||"
   \key f \major \time 3/4
}

Output PDF is attached.
I should probably mention that the snippet works just fine in Lilypond 
2.18. Only Lilypond 2.19 breaks.


Any idea how to keep the staff lines alive until the key/time/clef change?

Thanks,
Reinhold

--
------
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com/
  * Open Tools, Software Development, http://www.open-tools.net/
  * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com


\version "2.19.19"

\relative c'' {
  c4 a b c 
  \bar"||" 
  \key f \major \time 3/4 \clef "bass" {}
}


staff_end.pdf
Description: Adobe PDF document
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


New Job

2013-04-06 Thread Reinhold Kainhofer

Dear all,
As you might have noticed, I got quiet a while ago. The main reasons 
were that I have recently startet at a new job with the Austrian 
Financial Market Authority, adn that my focus in my spare time has also 
shifted away from creating scores to performing and to developing 
plugins for the VirtueMart webshop.


I have still been following the lists for the past few weeks, but as it 
turns out, my spare time gets even more scarce, so I'll probably also 
unsubscribe from the LilyPond lists.


I wish you all the best. LilyPond is an awesome project, and it was a 
lot of fun to be part of if. But I simply don't have the time any more 
to work on it. I will keep working with it (after all, my SO is a cello 
teacher...) and hope to stay up to date with it.


If there pops up anything where you'd like my input, please CC me and 
I'll try to help as far as I can.


Best regards,
Reinhold

--
------
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * VirtueMart Plugins, http://www.open-tools.net
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: Suggestions for participating institutions?

2013-03-26 Thread Reinhold Kainhofer
Regarding MusicXML support: Michael Good, the creator of MusicXML, is 
now working for MakeMusic (the creators of Finale), and the way I 
understood his comments on the MusicXML mailing list he would be very 
interested in LilyPond having MusicXML export functionality, too.  Maybe 
you can even get him on board.


Reinhold

On 2013-03-26 18:27, David Kastrup wrote:> We would extend LilyPond to 
be able to directly export MusicXML and use

> MusicXML as an input language.  Scores submitted to the "Mutopia 2" in
> LilyPond format would be available in newer versions via convert-ly.
> Verification of proper convert-ly could be done by comparing the
> resulting MusicXML, if the conversion failed, at least delivering the
> MusicXML as proper LilyPond files are, due to the continuing evolution
> of the language, somewhat precarious as a long-term archival format.
>
> Defining standard MusicXML readings of LilyPond files and, if necessary,
> at a later point of time defining convertible newer format versions that
> would be convertable forward (and back?) with a more reliable mechanism
> than convert-ly would also be necessary.
>
> For the whole XML-centric and web-centric workflows we'd have a
> significant amount of convertibility from cash into results (those are
> mainstream frameworks and as such there are capacities on the free
> market).
>
> Getting LilyPond and MusicXML into a closer relation and providing end
> user accessible web entry inputs would be possible by players like
> Scorio.com, and Philomelos, and they have quite a bit to gain by getting
> a larger corpus of LilyPond-friendly MusicXML into their grasp.  If we
> can get something like Steinberg into the same boat (without sinking it)
> for playing a more generally useful MusicXML game, this could also be
> interesting.
>
> This could move to a very big framework of a reliably archivable
> MusicXML version and surrounding free toolchains, with other notesetting
> programs being able to compete on their own merits on the same publicly
> accessible MusicXML database.
>
> One would need to flesh out work flows and dependencies of particular
> milestones and targets in order to arrive at a good distribution of
> tasks and competency.
>


--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: For those who need new features and bug fixes...

2012-12-21 Thread Reinhold Kainhofer

On 2012-12-21 13:33, David Kastrup wrote:

In contrast, grace notes in typesetting are usually _not_ aligned.


Grace notes in one voice may even overlap previous moments of other 
instruments (See Gould, first image p.128): "This facilitates 
score-reading, as it prevents distorted note-spacing of a single 
beat"(Gould).



An appoggiatura comes _on_ the beat, with the main note following it
without additional spacing, acciaccature come _before_ the beat.  We
should really only have one NoteColumn per _main_ time (and not on grace
times), and in the case of appoggiature, it should align on the
appoggiatura itself, whereas for normal grace notes and acciaccature, it
should align on the main note.


Gould: "Grace notes are placed before the position of the beat 
regardless of whether they are prerformed on or before the beat."




 In either case, grace notes and main
notes should be next to each other without doing _any_ NoteColumn kind
of alignment for vertically aligning material within the grace timing.

> Visual grace alignment is really a thing that should be per-voice.  It
> may be nice to have a "Grace_alignment_engraver" which you can call in
> at higher level such as Staff optionally (to synchronize graces for
> potentially multi-voice instruments).  But by default I don't think they
> should be aligned.

Gould: "When there are two parts on one stave, align the grace notes of 
the two parts.

[image]
When two parts with grace notes are on separate staves, it may be more 
helpful visually to close up grace notes to the following measured 
value, regardless of vertical alignment)."


Cheers,
Reinhold

--
------
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: Python hacker emergency on git-cl

2012-12-02 Thread Reinhold Kainhofer

On 2012-12-02 12:50, Thomas Morley wrote:

Trying to upload a new patch set for issue 2966, I ran into said git-cl-issue.
Using LilyDev, I tried to apply Reinholds patch (after storing it in
git-cl.diff), but the terminal returns:

harm@harm-laptop ~/lilypond-git (dev/local_working)$ git apply git-cl.diff
error: git-cl: No such file or directory
error: upload.py: No such file or directory

What's wrong and how to proceed?


Are you trying to apply it to the lilypond source code? It should be 
applied to your git-cl checkout...


Cheers,
Reinhold


--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: Python hacker emergency on git-cl

2012-12-01 Thread Reinhold Kainhofer
On 2012-12-01 17:12, David Kastrup wrote:> My interpretation is that 
Google has set codereview.appspot.com so that

> any http request will automatically get redirected to https, and git-cl
> is unable to deal with that.

Well, git-cl (I would prefer git-cly to indicate this is not the 
standard git-cl, but a modified version for use with lilypond!) uses 
Google's upload.py script, which is able to handle https properly.



> It is unlikely that this is going to change on Google's side, so until
> somebody gets git-cl able to deal with that, our workflow is hosed.

It's actually quite simple:
https://codereview.appspot.com/6864043/

All I did was download the latest upload.py from the rietveld help page 
and adjust the changed command line arguments...


> Any Python hackers willing or able to take this on?

Absolutely no python needed...

Cheers,
Reinhold

--
------
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: Allow music of nominally zero duration to be typeset. (issue 6810087)

2012-11-16 Thread Reinhold Kainhofer

On 2012-11-16 23:57, d...@gnu.org wrote:

I have not actually tried to understand the code.  I just added checks
for existing array elements before access until I could no longer make
LilyPond segfault or produce programming errors.

So this is, indeed, strictly a patch on the "won't make things worse"
basis, except for the one, initial removal of a zero-duration check,
necessary for sane behavior in things like incipits without notes.



But that check was added for exactly that reason: To warn the user that 
no output was produced (apparently, no regtest was added back then). 
With this patch, even for an empty music, lilypond tries to do the 
pagebreaking (and reports 0 pages):


-) With this patch applied

reinhold@zweistein:~$ lilypond empty.ly
GNU LilyPond 2.17.7
»empty.ly« wird verarbeitet
Analysieren...
Interpretation der Musik...
Warnung: keine Musik in der Partitur gefunden
Vorverarbeitung der grafischen Elemente...
Ideale Seitenanzahl wird gefunden...
Musik wird auf 0 Seiten angepasst...
Systeme erstellen...
Kompilation erfolgreich beendet

-) Without that patch:

reinhold@zweistein:~$ lilypond empty.ly
GNU LilyPond 2.17.7
»empty.ly« wird verarbeitet
Analysieren...
Warnung: keine Musik in der Partitur gefunden
Kompilation erfolgreich beendet


So there is a difference (to me, pagebreaking does not make much sense 
if we already know there will be not output). But that doesn't mean that 
I'll veto that patch.



The downside are problems with material that indeed produces no
output.  The basic change is simple and just in
lily/global-context-scheme.cc.  All the rest is attempting to remove
programming errors and warnings occuring for basically empty systems.

The current state is that

\new Staff { }

will segfault,


Really? With lilypond 2.17.7 it didn't crash here...

Cheers,
Reinhold

--
------
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: possibility of merging \override and \set (was: Naming _another_ lacking puzzle piece)

2012-10-14 Thread Reinhold Kainhofer
On 14/10/2012 17:46, Janek Warchoł wrote:
> As for (2), i see that there are three operations that can be
> performed on stack: push, pop and clear. 

Please, can we get away from thinking in terms of implementation details
and instead think of the use cases:

1) Just set a property (grob or context property) to a certain value,
don't worry about previous values
2) Set a property to the defaults
3) Temporarily set a property to a new value, being able to switch back
after a while
4) Switch back to a previous value

To implement those, only 3) and 4) need a stack or some other form of
storing previous values, but even that is not important to the user 
(lilypond users as well as developers simply using the provided API to
modify grob properties).

\set and \unset (for context props) currently do 1) and 2), \override
currently more or less does 1), \revert does 4), and only the scheme
function make-grob-property-override does 3)


The name "override" to me implies that there a value in force, but one
temporarily overrides its effect with something else, so this would
suggest it for use case 3). Also see the documentation string of
make-grob-property-set (which is called by \override):
"Make a @code{Music} expression that sets @var{gprop} to @var{val} in
@var{grob}.  Does a pop first, i.e., this is not an override."

So even the documentation for \override says that it is NOT an override...


My suggestion for the functions performing those four basic operations are:

1) \set(most current uses of \override by users are really meant as
\set)
2) \clear (replaces current \unset, some of the \revert calls)
3) \override  (only needed when you need to switch back to previous value)
4) \restore

Of course, context properties currently don't have any history (i.e. no
stack), except for handling \once\set in the iterator, so this would
need to be implemented.

Cheers,
Reinhold

-- 
------
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com


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


Re: stepping down as project manager

2012-10-13 Thread Reinhold Kainhofer

On 2012-10-14 01:07, Joseph Rushton Wakeling wrote:

On 10/13/2012 11:44 PM, David Kastrup wrote:

\once creates a one-time-step temporary change, \temporary an
unterminated temporary change which can be terminated element-wise with
\revert or, again using a converter, en bloc from the original overrides
with \undo.


Forgive me for coming into this without the background, but what's the
difference between \temporary and the existing \override?


\temporary\override would work the way you probably expect \override to 
work now:
It sets the grob property to a new value and keeps the old value stored 
so that after \revert the property takes the old value it had before the 
\temporary\override.


The actual problem is that \override currently CLEARS (i.e. reverts) the 
current value before setting the new one, so that the old value is not 
stored anywhere any more, and a \revert thus reverts to the default value.


As an example, let's look at the following code. What color would you 
expect the final "b" to have? red? (because the \revert clears the 
previous override to blue, right?)


\version "2.16.0"

\relative c' {
  c4
  \override NoteHead #'color = #red
  f
  \override NoteHead #'color = #blue
  g
  \revert NoteHead #'color
  b
}

In reality, the \revert does not revert the override, but completely 
clear the value to the black default. Currently, there is no way to 
temporarily change a property and then change it back to its previous 
value (except for \once\override, which only works for one timestep).


In fact, \override and \revert are currently misnamed, they work more 
like \set and \unset.


Cheers,
Reinhold

--
------
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: stepping down as project manager

2012-10-13 Thread Reinhold Kainhofer

On 2012-10-13 23:44, David Kastrup wrote:

\once creates a one-time-step temporary change, \temporary an
unterminated temporary change which can be terminated element-wise with
\revert


+1
That's a consistent naming scheme, and \temporary is a perfect match 
with \once, so I'm all for that name. \once changes the value for one 
step, \temporary until it is explicitly \revert'ed (und unfortunately 
\override alone permanantly overwrites rather than overrides).



or, again using a converter, en bloc from the original overrides
with \undo.

Temporary changes are important enough that we have had \once for a long
time already.


Fully agree, \temporary was really missing.

Cheers,
Reinhold

--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: Naming _another_ lacking puzzle piece

2012-10-13 Thread Reinhold Kainhofer

On 2012-10-13 22:48, Joe Neeman wrote:

If you are referring to Werner's and Reinhold's comments, I think you
may not be reading them as the authors intended. In particular, I
believe that Reinhold was merely objecting to the names "push" and "pop"
as being opaque to non-programmers,


Exactly. The names push/pop are stack concepts that require thinking 
like a programmer (and to be honest, I'm still confused: Does "pop" 
popsomething into the stack or pop something out of the stack The 
only way for me is to think that it's the opposite of "push").


I completely agree that we need a function that changes a property in a 
non-destructive way. It is an implementation detail that this internally 
means a pure push on the grob properties' stacks, but I don't think that 
the interface we provide to the users/high-level developers should have 
the API of a stack, as that would require that we describe it to users 
(many of whom have no programming experience, and don't want to) in 
terms of stacks.


The internal handling of property values is via stacks, but for the user 
it is not about a stack, but about changing the value of a property, and 
later reverting it to a previous value (at least, I would expect that; 
currently we always revert to the default), or restoring the default.
That was my main objection to using "push" and "pop" as names: They 
reveal the implementation details (using a stack for the property value 
handling) rather than providing a high-level API that is centered on the 
purpose of the calls rather than the internals.



If we were to completely re-design the lilypond language, I would 
suggest \override, \revert and \clear (as push, pop and clear stack), 
but they currently have a slightly different meaning.



The real problems we currently have are that,
1) We don't have a function that sets a grob proparty non-destructively 
via a simple push,
2) although the name suggests otherwise, \override is a not really a 
temporary override, but a permantent, destructive value setter function.
3) \revert does not revert the effect of an override, but rather reverts 
to the default value...
4) Grop properties and context properties have different setter 
functions and concepts (\override vs. \set), which is not intitive to 
me, and hard to explain to a newcomer.
5) Any change will likely break backward-compatibility and introduce 
subtle problems (like things looking/behaving different without any 
warning).


Cheers,
Reinhold

--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: Naming _another_ lacking puzzle piece

2012-10-13 Thread Reinhold Kainhofer

On 2012-10-13 23:29, David Kastrup wrote:

>If you are referring to Werner's and Reinhold's comments, I think you
>may not be reading them as the authors intended. In particular, I
>believe that Reinhold was merely objecting to the names "push" and
>"pop" as being opaque to non-programmers,

 To me it is not only this inconsitency, but rather that the names
 push/pop come from programming languages and concepts.
 Lately, I have seen many suggestions that would turn lilypond more
  ^
 into a programming language and away from being a description of
^^^
 music. Now, while lilypond really is a programming language, in the
 past we have tried to hide the concepts (e.g. queue theory) from the
 user, with more or less success.

 David's attempts to get rid of the #' in propery names is a great step
 in this direction, but using push/pop would be a huge step in the
 wrong direction, IMO.



Sorry, maybe I wasn't clear enough in that last sentence. It would have 
been clearer if I wrote

 ... but using the names "push" and "pop" ...

The thing about programming languages was intended to give a larger 
picture why I don't like pure programming concepts introduced to 
lilypond users, and using the names "push" and "pop" introduces stack 
concepts to the users, rather than providing a user-friendly (i.e. 
musician-friendly, not programmer-friendly) high-level API to the users.


Cheers,
Reinhold

--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: Naming _another_ lacking puzzle piece

2012-10-13 Thread Reinhold Kainhofer
On 2012-10-13 09:32, Werner LEMBERG wrote:>> Maybe \push\override ... 
but this has the disadvantage that you

>> never actively see a \pop.  Hm.  Maybe we should rename \undo to
>> \pop then?
>
> I think that we either need a consistent use if \push and \pop, or we
> should refrain using it.  Given that the Scheme functions handling the
> stack are not mapped one-to-one to user commands, as you've shown in a
> previous mail, I think we should avoid \push and \pop.

To me it is not only this inconsitency, but rather that the names 
push/pop come from programming languages and concepts.
Lately, I have seen many suggestions that would turn lilypond more into 
a programming language and away from being a description of music. Now, 
while lilypond really is a programming language, in the past we have 
tried to hide the concepts (e.g. queue theory) from the user, with more 
or less success.


David's attempts to get rid of the #' in propery names is a great step 
in this direction, but using push/pop would be a huge step in the wrong 
direction, IMO.


Cheers,
Reinhold


--
------
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: Context.Grob considered as symbol list

2012-10-13 Thread Reinhold Kainhofer

On 2012-10-13 07:30, Keith OHara wrote:

Can anyone reading here (other than David who implemented it) give an
example where he has used the grob-augmented \tweak syntax ?


I had to use it to change the parentheses of \parenthesize, e.g. to use 
square brackets or to use only a left or right parenthesis (to indicate 
longer parenthesized parts, like multiple staccatos).


See:
http://lists.gnu.org/archive/html/lilypond-user/2012-09/msg00707.html

Cheers,
Reinhold


--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: Context.Grob considered as symbol list

2012-10-12 Thread Reinhold Kainhofer
On 2012-10-12 00:25, David Kastrup wrote:> \tweak gets one symbol list, 
\override gets two symbol lists.  The

> symbol list for \tweak may optionally start with a grob name, the first
> symbol list for \override may optionally start with a context name.  I
> can offer \tweak color.Accidental #red cis as the optional form for
> \tweak, but that seem bonkers.

Is there really no way to determine whether a symbol describes a 
context, a grob or a grob property?


We don't neccessarily need this at the parsing stage. We might change 
the internal functions to use a list to describe the full path for grob 
properties, and the functions that handle them could then check whether 
the first entry is a context, a grob or a property.


Cheers,
Reinhold

--
------
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: [proposal] easy triplets and tuplets - Draft 3

2012-10-09 Thread Reinhold Kainhofer
On 2012-10-09 11:14, Francisco Vila wrote:> 2012/10/9 Benkő Pál 
:

>> 2012/10/9 Francisco Vila :
>>> When I learned how to read music, triplets were taught to me as
>>> "always shrinking" groups and you see a "3" but there is an implicit
>>> "2" so we have 3:2. Only the numerator is printed by convention.
>>>
>>> Thus, if you write
>>>
>>>\times 2/3 { b16 b b b b b }
>>>
>>> or
>>>
>>>\times 4/6 { b8 b b }
>>>
>>> this is mathematically perfect but the number you are asking to be
>>> printed is a confusing "3" and a confusing "6" respectively.
>>
>> the first is not confusing:

I think the point here was not that the tuplet notation on paper is 
confusing per se. Actually, both are VERY common (the 6:4 tuplets appear 
e.g. in Schubert's Stabat Mater, in several pieces by Preindl or Eybler, 
etc.)

What is confusing is that "3" is printed, when you actually write 2/3.
Also, Gould explains tuplets m:n as "m in the time of n" and calls m:n 
(i.e. 3:2) the tuplet ratio...



>> it makes sure to read
>> b16[ b] b[ b] b[ b]
>
> Yes, but I think it is more common to print a "6" here with the same
> meaning.

Not that I know.

A triplet (i.e. 3:2) means that there are three beats in the tuplet, the 
first might get a slight accent, while a sextuplet means there are two 
groups of three notes.

Also compare Gould, p. 213, regarding the subdivision of beams:

"A triplet is always a tripartite division, whereas a sextuplet is two 
groups each of three notes, a bipartite division."


Cheers,
Reinhold

--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: [proposal] easy triplets and tuplets - Draft 3

2012-10-07 Thread Reinhold Kainhofer

On 2012-10-08 00:21, Joseph Rushton Wakeling wrote:

On 10/07/2012 11:52 PM, Reinhold Kainhofer wrote:

There is, however, no check whether the fraction with the durations makes
sense and matches the real tuplet (in most cases, itwill not).


Yes, that's what I mean.  I'd like to see something where the fractions
and durations are all derived from the tuplet syntax.


Actually, thinking of it, it would actually be quite simple to calculate 
the displayed fraction with durations from the given durations and the 
tuplet fraction (except that there is no way to distinguish 3:2 and 4:6).


(m*dur1):(n*dur2) = tuplet fraction

can be easily solved as
m/n = (tuplet fraction)*dur2/dur1

and then reduced to minimal m and n. This could then be displayed as
  m{dur1}:n{dur2}

Cheers,
Reinhold


--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: [proposal] easy triplets and tuplets - Draft 3

2012-10-07 Thread Reinhold Kainhofer

On 2012-10-07 23:38, Joseph Rushton Wakeling wrote:

On 10/07/2012 11:29 PM, Reinhold Kainhofer wrote:

http://lsr.dsi.unimi.it/LSR/Item?id=482
http://lsr.dsi.unimi.it/LSR/Item?id=817

I implemented those functions for MusicXML import. Note, however, that
lilypond
does not automatically use those, you have to manually set them as
shown in the
snippets.


Do I understand right that these functions are entirely manual overrides
-- that they specify what to print (either a note-value, or the entire
ratio) without reference to the actual tuplet underneath?


No, the formatter functions that I wrote use the tuplet fraction. The 
override does not contain the values of the tuplet fraction, just the 
note types. E.g.


  \once \override TupletNumber #'text =
#(tuplet-number::append-note-wrapper
  tuplet-number::calc-denominator-text "4")
  \times 2/3  { c8 c8 c8 c8 c8 c8 }

This will print 3{4}, where the 3 comes from the tuplet fraction and 
only the base note duration is set in the override.


Or the more general case:

  \once \override TupletNumber #'text =
#(tuplet-number::fraction-with-notes "4." "8")
  \times 2/3  { c4. c4. c4. c4. }

This will print a tuplet number
  3{4.}:2{8}
where the 3 and the 2 comes from the \times command and only the note 
durations are specified in the override. There is, however, no check 
whether the fraction with the durations makes sense and matches the real 
tuplet (in most cases, it will not).


There are, however, also formatter functions that override also the 
tuplet fraction.



This is what I'm getting at, you see -- I'd like to see a \tuplet
command that takes the information I've given about the tuplet ratio and
units and translates that _automatically_ into the correct notation.


I don't think that fully automatic tuplet notation will work in all cases.
However, there is certainly enough to think about a more general tuplet 
command in lilypond. The formatting functions are already there, what's 
missing is the input syntax.



I'm not trying to dismiss your work, it's just that I'm leery of purely
manual notational overrides because there's always a risk of screwing
things up if you later revise the piece and forget to also revise the
override (there's a similar problem IIRC with the current solution to
customized subsidiary beam-breaking).


It's not purely manual overrides... (But still enough rope to hang 
yourself in the way you describe).


Cheers,
Reinhold


--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: [proposal] easy triplets and tuplets - Draft 3

2012-10-07 Thread Reinhold Kainhofer

On 2012-10-07 23:14, Joseph Rushton Wakeling wrote:

Apologies for coming late with these next remarks, but it's perhaps
worth thinking about quite how flexible a \tuplet command could be, in
respect of some of the various modern notations out there.

Just to give a flavour, besides the standard

 |-- n --|

(i.e. bracket with number), and the almost-as-standard

 |- n : m -|

(i.e. ratio), you also might encounter something like,

 |- 3 : 2 {2} -|
or
 |- 3 {2} : 2 -|

where {2}, {4}, {8} etc. represents a written half, quarter, eighth
note, etc.


http://lsr.dsi.unimi.it/LSR/Item?id=482
http://lsr.dsi.unimi.it/LSR/Item?id=817

I implemented those functions for MusicXML import. Note, however, that 
lilypond does not automatically use those, you have to manually set them 
as shown in the snippets.


Cheers,
Reinhold

--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: lilypond-book: treat iffalse sections in latex as block comments (issue 6584073)

2012-10-06 Thread Reinhold Kainhofer

On 2012-10-06 06:33, lemzw...@googlemail.com wrote:


http://codereview.appspot.com/6584073/diff/1/python/book_latex.py
File python/book_latex.py (right):

http://codereview.appspot.com/6584073/diff/1/python/book_latex.py#newcode88
python/book_latex.py:88: \\iffalse.*\\fi))''',
On 2012/10/06 02:12:41, Julien Rioux wrote:

.* should be replaced by the non-greedy .*?


Yes :-)


Absolutely, was my mistake.


http://codereview.appspot.com/6584073/diff/1/python/book_latex.py#newcode88
python/book_latex.py:88: \\iffalse.*\\fi))''',
As David has commented on the list, I would prefer if you replaced the
\iffalse ... \fi with a higher-level command, namely \begin{comment} ...
\end{comment} (from the `comment' package).


So, your opinion is that lilypond-book SHOULD process the \lilypond{...} 
code inside the \iffalse  section and spectacularly fail. If users are 
using \iffalse -- I am for example one of those who use \iffalse to 
quickly comment out some parts temporarily -- then lilypond-book would 
still require everything between \iffalse and \fi to be in correct 
lilypond syntax and will create snippet images for all those snippets:


\documentclass[a4paper, 12pt]{article}
\begin{document}
TODO

\iffalse
This is a template for my future snippets:
\lilypond{Code comes here}
\fi

\end{document}



Shall lilypond-book really fail for (and process) snippets that will NOT 
be included by latex???




First of all, this syntax
suits LaTeX better since it resembles normal environments.  Second, it
is a bad idea in general to expose \ifXXX to the top level; in other
words, users should never do that.


But fact is, people ARE using \iffalse to temporarily comment out larger 
parts of latex files. With my colleagues, I have never seen 
\begin{comment} for comments, all the researchers I have worked with so 
far were using \iffalse.


Also, this is not about advocating what latex users should use, but 
handling whare users are using currently. So, I will add \begin{comment} 
to the pattern, too, but I still think that lilypond-book SHOULD ignore 
everything inside \iffalse.



Reason is that \ifXXX is handled
very special in TeX since you can define, say, \ifFoo which also pairs
with the next \fi, making correct balancing of nested \ifXXX commands
quite delicate and very hard to debug.


Sure, it's not the perfect way, but it's the quick-and-dirty way.
I'm also aware that lilypond-book will not be able to handle nested 
\ifXXX correctly. However, in the worst case, it will process some code 
after the first \fi and before the final \fi of the \iffalse. But that's 
still better than the current situation, where it processes everything 
between \iffalse and \fi.


Cheers,
Reinhold
--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: [proposal] easy triplets and tuplets - was [talk] easy tuplets

2012-10-05 Thread Reinhold Kainhofer

On 2012-10-05 09:10, James wrote:

Hello,

On 5 October 2012 00:19, Ian Hulin  wrote:

This is a proposal to move the triplet/tuplet discussion forward.

There will be new commands to supplement (or eventually replace) the
current \times command.

1. \tuplet n/m {}
%  does what \times does, but not so easily confused with \time
%  command.
2. \triplet {} % shorthand for current
%  \times 2/3 command
3. \duplet {

+1


Do we need all these commands?


They are helpful utility functions. We don't need them, but it would be 
nice to have them.




Can't we just have \tupelet and then a qualifier (or whatever it is
called) that then determines if it is 3/2. 2/3, 6/4 etc.

I may be the only one but no one that I play with makes any
distinction from a musical point of view between a 'tupelet' that is
2/3 and one that is, say, 5/3 or 6/4.



A tuplet with 2/3 and one with 4/6 have a different inherent meter (i.e. 
a different accentuation), even though it's notes have the same length 
(just like \time 3/4 and \time 6/8 have a completely different 
accentuation).




They are all 'tupelets.

http://en.wikipedia.org/wiki/Tuplet


In German, they are
2/3: Triole
3/2: Duole
4/5: Quintole
4/6: Sextole
etc.

So in German, each of them has its own name, which would coincide with 
the music function's name...



Cheers,
Reinhold

--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: Issue 2717: Implement \single, \omit and \hide (issue 6495135)

2012-09-26 Thread Reinhold Kainhofer

On 2012-09-26 15:32, d...@gnu.org wrote:

Reinhold Kainhofer  writes:


On 26/09/2012 11:26, d...@gnu.org wrote:

\once does something entirely different.  It does not turn an

override

into a tweak but rather marks it at being active only at the current
timestep.  \once applies at a single time, \single applies on a

single

item.



To me as a user, \once\override is used to change the next note (or
items attached to it) and \single\tweak is used to change the next
item.


Both are only roughly equivalent when there is only one item per
timestep.  \once\override affects _everything_ happening at the same
time.


Ah, thanks for the explanation. I didn't understand that \single is 
meant to fix the case where \once applies to multiple items at the same 
timestep!


Cheers,
Reinhold

--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: [GLISS] non-timed or non-musical events "z" "y"

2012-09-26 Thread Reinhold Kainhofer
On 26/09/2012 14:34, David Kastrup wrote:
> David Kastrup  writes:
>
>> Werner LEMBERG  writes:
>>
>>>>> It would be tremendously helpful if you can show possible syntax
>>>>> *alternatives* instead of just pretending to be a naysayer.
>>>> I've posted actual working definitions for that purpose.
>>> It seems I've missed that, lost in the many examples you've given to
>>> demonstrate what doesn't work.
>>>> They would definitely simplify the kind of entry you are asking for.
>>> Please repeat.
>> Sigh.
>>
>> at =
>> #(define-music-function (parser location time event music)
>>   (ly:duration? ly:music? ly:music?)
>>   "Place @var{event} at a relative duration @var{time} in relation
>> to @var{music}."
>>   #{ << { \skip $time <>$event } $music >> #})
>>
>> {
>>   \at 4 \<
>>   \at 1*2/3 \!
>>   c'1\p
>> }
> [12 days later, and no followup again]
>
> Let's just continue pretending me to be a naysayer then.

You demonstrated that a solution is possible, but quite inconsistent with
the lilypond language: You have to write the dynamic BEFORE the note,
although it should be printed AFTER the note...

In your example, what you want is note with "p", hairpin start, hairpin
end. But what you have to write is hairpin start, hairpin end, note with
"p".

So, yes, such hacks as workarounds are certainly possible, but IMO they
currently don't really fit well with the general concepts of the lilypond
language (i.e. all dynamics are written using postfix notation)...

Cheers,
Reinhold

-- 
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com


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


Re: Issue 2717: Implement \single, \omit and \hide (issue 6495135)

2012-09-26 Thread Reinhold Kainhofer
On 26/09/2012 11:26, d...@gnu.org wrote:
> \once does something entirely different.  It does not turn an override
> into a tweak but rather marks it at being active only at the current
> timestep.  \once applies at a single time, \single applies on a single
> item.

To me as a user, \once\override is used to change the next note (or
items attached to it) and \single\tweak is used to change the next
item.

That \once\override applies to the next timestep, and the
following note incidentally happens at that timestep is an internal
detail when I'm writing a score.

>From a developer's POV there is a different concept involved, but I
doubt that a normal user really cares about this.
To me it's basically the same as the \set / \override distinction. It
might be a different concept to anyone who knows the internals,
but to a user both are used to change the default.

Cheers,
Reinhold

-- 
------
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com


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


Re: Issue 2717: Implement \single, \omit and \hide (issue 6495135)

2012-09-26 Thread reinhold . kainhofer

is there any particular reason why you created a new command (\single)
and didn't reuse \once. IMO, using \once as an indicator that the next
command applies only to the next item would make it more consistent.

http://codereview.appspot.com/6495135/

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


Re: [GLISS] turn xxx.yyy into ("xxx" "yyy")

2012-09-12 Thread Reinhold Kainhofer

On 2012-09-12 10:38, David Kastrup wrote:

if we write xxx in LilyPond, this is considered to be a string.  I want
xxx.yyy.zzz to be a list of strings ("xxx" "yyy" "zzz").  The main
incentive is to be able to have music functions be able to accept both
Stem as well as Staff.TimeSignature as a function argument.


How would this work with lyrics or with markups?


\version "2.17.0"

\markup \line { This is some text. And another sentence. }

\relative c'' <<
  \new Voice = "a" { c1 c1 }
  \new Lyrics \lyricsto "a" { text. text. }
>>

Cheers,
Reinhold

--
------
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: irc and hangouts

2012-09-09 Thread Reinhold Kainhofer

On 2012-09-09 16:50, Graham Percival wrote:

Janek and I had a brief chat on Tuesday night on the irc channel.
Yesterday, we had a voice chat with google hangout about various
recent happenings on -devel.  I think that both options can be
very helpful for understanding each other better.  Is anybody else
interested in chatting, with either text or voice?

I'm not available next Tuesday at 20:00 UTC, but we can easily
pick a different time.  Or, if other people are available, they
could have a chat without me.  The previous "scheduled chat" only
had 2 participants from -devel (plus two people already in the irc
channel), so it's certainly worth rescheduling the time if we
could get 3 participants.


I have my IRC app running on my office machine 24/7, so I can always 
read up what was discussed if I missed any discussion.


Scheduled chats in the (early) evening are a problem with me, because I 
have rehearsals with the Arnold Schoenberg Choir (a professional choir 
in Vienna, see http://en.wikipedia.org/wiki/Arnold_Schoenberg_Chor ) 
basically every night, and I also have several performances at the 
Vienna Volksoper.


If someone wants to chat with me, it's best to ping me in the irc 
channel, and I'll try to respond when I notice it.



Cheers,
Reinhold


--
------
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: Fixes position of mensural c clef (issue 6503091)

2012-09-08 Thread Reinhold Kainhofer

On 2012-09-08 08:11, Werner LEMBERG wrote:

1. reject any offers of help from contributors who do not follow the
existing formatting.

2. educate each contributor individually, go through multiple rounds
of each patch to adjust the formatting, etc.

3. use an automatic formatting tool.

4. combine 2 and 3: use an automatic formatting tool for most of the
code style, but still require some additional manual formatting
(and go through a few rounds of reviews if necessary).

I favor either 3 or 4; we are not in a position to be gratuitously
rejecting patches, and having "finicky" manual formatting will
discourage some contributors.


I fully agree.  Since we have no support for (3) yet, I will do a bit
of (2), and I really hope that Phil can bear with me :-)


Is it really such a big deal if the code formatting is not perfectly 
consistent in every little detail?

In particular, I would favor option

  5. (relax 2 a bit) educate each contributor individually when giving
 feedback about the patch. Don't insist on a new patch for
 formatting alone, but tell the submitter that (s)he should (i.e.
 following the RFC terminology strongly recommended, but not
 absolutely required) fix the indentation before applying.

Cheers,
Reinhold


--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: [GLISS] why the hell all this fuss

2012-09-07 Thread Reinhold Kainhofer
On 06/09/2012 10:05, David Kastrup wrote:
> Janek Warchoł  writes:
>> That's more like it, but i'm not totally sure.
>> What i think of is a general way of attaching objects to another
>> objects.  For example '&' would attach objects:
>> \arpeggio&\<  meaning  a hairpin attached to arpeggio
>> g\fermata&\markup \italic {10 seconds}  meaning  a "10 seconds" markup
>> attached to the fermata.
> You are thinking in ways of PDF.  LilyPond is meant for expressing
> music.  If we build in syntax like that, it should carry musical
> meaning, not just create pretty images.  How do you "attach" things like
> that to MIDI or MusicXML?

That argument also holds for \markup, yet we have the \markup command as
an integral part of lilypond. Just because one concept does not have any
correspondence e.g. in MIDI, this doesn't mean that we should not
provide a way to use it in output formats where it makes sense...

Cheers,
Reinhold

-- 
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com


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


Re: [GLISS] differentiating pre/post/neutral commands

2012-09-05 Thread Reinhold Kainhofer

On 2012-09-03 22:43, Werner LEMBERG wrote:



 From a user's point of view who has to write a lot of piano music,
`q' is *really* valuable.


In a score editor.  Like Emacs' LilyPond-mode.  Or Frescobaldi.
Nobody says that you should not be able to make use of shortcuts,
but that does not mean that the LilyPond language is the right place
for providing them.


No, no, and again no!  I want *readable* lilypond input.  Compare
this:


8\f   \p
   \f \p  |

with this:

   8\f q q q\p
 q \f \p q |

In the first version, have you immediately seen the note change from
`c' to `b' in the fifth chord?  Only in the second version it's clear
that it is not a typo.

Chord repetition is a *central* part of piano music (and not only
there).  It really deserves a proper syntax, and I'm glad that we have
it now.


I can completely second this as a music publisher. I made an edition of 
Schubert's Nachthelle, where the right hand consists entirely of (mostly 
repeated, but also often slightly changed) 16th chords. From this 
experience, I really would not want to miss q as part of the lilypond 
syntax.


The existence of q not only made writing much easier (which could 
admittedly also be achieved by editor shortcuts), but the main advantage 
was that it made proofreading and later editing MUCH easier.


For one, as Werner already noticed, it is immediately obvious where a 
chord changes.
And the other reason is that the repeated chords written out fully hide 
the rhythm, while with the 'q' notation you can see the rhythm as easily 
as with single notes. I had that experience with another score.




q is one of those features that make LilyPond unfeasible as a
storage format for music.


What makes lilypond unfeasiable as a storage format is that its 
internals change so often. In particular, we currently have the 
viewpoint that changes to \overrides are internals, so we don't have to 
care about compatibility. In other words: We care only about trivial 
scores, where absolutely no overrides are required. In reality, however, 
I have not encountered a single score without any overrides for layout 
purposes.
Since we don't guarantee anything about \override, one can never be sure 
that a huge score you are writing today will still work in a few months.


Cheers,
Reinhold

--
------
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: Waltrop meeting outline

2012-08-28 Thread Reinhold Kainhofer

On 2012-08-24 02:25, Han-Wen Nienhuys wrote:

Hey Jan,

could you put the following agenda item up for discussion?

Change font license from GPL to dual licensed OFL / GPL (see
http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL_web)


I'm fine with any relicensing of my lilypond contributions.

Cheers,
Reinhold

--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: Fix 2732: Extract the full page geometry in lilypond-book (issue 6454139)

2012-08-24 Thread reinhold . kainhofer

Reviewers: dak,


http://codereview.appspot.com/6454139/diff/1/python/book_latex.py
File python/book_latex.py (right):

http://codereview.appspot.com/6454139/diff/1/python/book_latex.py#newcode262
python/book_latex.py:262: textwidth = (textwidth + columnsep) / columns
- columnsep
On 2012/08/12 13:24:37, dak wrote:

Why not use the value of \columnwidth in the first place here?


Good idea, I wasn't aware that this length existed. You are right, this
is much better.


Note that this
does not help with full-width figures:
\begin{figure*}
...
\end{figure*}


For those you'll have to specify an explicit line-width parameter to the
snippet anyway.

http://codereview.appspot.com/6454139/diff/1/python/book_snippets.py
File python/book_snippets.py (right):

http://codereview.appspot.com/6454139/diff/1/python/book_snippets.py#newcode128
python/book_snippets.py:128: MARGIN_LEFT: r'''left-margin =
%(left-margin)s''',
On 2012/08/12 13:24:37, dak wrote:

I have a hard time imagining the margins to make any sense since TeX

applies

them to the included material anyway.


Neither do I. I just figured it might not be wrong if the lilypond
snippet uses the exact same position on the paper as the latex document
(i.e. don't center the line-width on the paper, but use the latex
left-/right margins). But then, I can't think of a situation where
lilypond would give a different cropped result for different margins,
but same line-width...

The top-/bottom-margins might have an influence for vertical
stretching/compressing of multi-staff systems in a snippet. If the latex
margins are quite large, without top-/bottom margins lilypond would
create a snippet image that is too high for the latex textheight.

However, I don't think that these margin settings should be documented.
They are not meant to be used as snippet options manually, only for the
auto-extracted page geometry.

Description:
Fix 2732: Extract the full page geometry in lilypond-book

So far, lilypond-book tried to extract the line-width from the latex
settings,
but not the full page geometry (height, width, margins). Instead, it
simply used
the extracted line-with with the default paper size.

If the latex paper size is larger than the lilypond default paper size,
then the
line-width will be larger than the page. Lilypond detects this and
ignores the
wrong line-width.

The proper solution is to extract the full page geometry from the latex
document
and use that for the lilypond snippet, too (unless an explicit papersize
or
line-width was given, of course...)

As a side-effect, we now have some more snippet options:
-) paper-width
-) left-margin

-) paper-height
-) top-margin
-) bottom-margin

The latter options only have an effect on vertical stretching of
multi-staff groups.

This patch also fixes a small mis-calculation of the text-width for
multi-column
texts (the columnsep was subtracted only once rather than once per
separation...)

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

Affected files:
  A input/regression/lilypond-book/tex-papersize-detection.lytex
  M python/book_base.py
  M python/book_latex.py
  M python/book_snippets.py
  M python/book_texinfo.py



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


Re: Interoperability with pdf viewers

2012-08-23 Thread Reinhold Kainhofer

On 2012-08-23 11:56, Colin Hall wrote:

I presume that our GNU project membership dictates what pdf viewers we
can recommend.


Not really. Any free software (I hate that term, it sounds so much like 
Freeware, which has a VERY negative connotation to me) pdf viewer is 
acceptable.




http://blog.kowalczyk.info/software/sumatrapdf/

http://projects.gnome.org/evince/

So would the correct policy be to recommend Evince and SumatraPDF, and
perhaps work out interop problems with them?



I'm using Okular, which is KDE's pdf viewer, and I have never had any 
problems with lilypond scores...


http://okular.kde.org/

Cheers,
Reinhold

--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: Removes popen3 deprecated warning (issue 6471043)

2012-08-18 Thread reinhold . kainhofer

IIRC, the problem was not the Popen wouldn't be working on Windows.
Rather, our GUB installer somehow does not include the msvcrt python
module in its python build, which is needed on Windows to provide the
Popen call. So, running lilypond-book fromself-compiled binaries has
always been working, only the downloads from lilypond.org didn't...

http://codereview.appspot.com/6471043/

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


Re: Time to fork a guile-2 branch?

2012-08-13 Thread Reinhold Kainhofer
On 13/08/2012 15:54, David Kastrup wrote:
> Reinhold Kainhofer  writes:
>> I haven't checked,
> That's the rub.

See below...

> This only works for existing branches/tags.  Otherwise, git will not
> know how to disambiguate the reference.

It seems to work here:

reinhold@curie:~/lilypond/lilypond$ git checkout -b dev/kainhofer-test
Switched to a new branch 'dev/kainhofer-test'
reinhold@curie:~/lilypond/lilypond$ git push origin dev/kainhofer-test
Total 0 (delta 0), reused 0 (delta 0)
To git+ssh://kainho...@git.savannah.gnu.org/srv/git/lilypond
 * [new branch]  dev/kainhofer-test -> dev/kainhofer-test


Cheers,
Reinhold

-- 
------
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com


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


Re: Time to fork a guile-2 branch?

2012-08-13 Thread Reinhold Kainhofer

On 2012-08-13 02:44, Ian Hulin wrote:

Given that these patches will be quite extensive, is now a good time
to set up a guile-2 branch in git, forking off from the start of the
V2.17.0 development?


Setting up a dev/guile-2 branch on our git server is a good idea any 
time you want your changes to be tested by others...

You can also rebase your branch later on to the latest master at any time.

Git is a distributed system, which means you can simply upload your 
local branch (you are working in a temporary development branch, right?) 
to the server, no need for an admin to create a branch. If you look at 
the repository with a view like qgit, you'll see that there are 
currently 19 dev/* branches on the server, which are temporary 
development branches from some developer (janek has 6 at the moment)



Branches in git are very simple and very useful. E.g. I have 12 local 
development branches for various bugfixes (most are only unsuccessfull 
attempts) on my laptop and 8 devel branches on my office machine. I 
regularly pull branches off the other machine, just like I would do from 
the server (



If the answer is yes, I may need some hand-holding/support to make
sure I don't do any damage to the main git repository.



Mike already told you the commands:

> To fork a branch, assuming that your git branch is called "guile-2"
> and forked off current master, you can do:
>
> git checkout guile-2
> git push origin HEAD:refs/heads/dev/guile-2
>
> This will create a remote branch called guile-2 w/o touching master
> or staging.

I haven't checked, but I think the push command could also simply be:
git push origin dev/guile-2
(i.e. simply push the currently checked out branch to the 
server(=origin) as branch dev/guile-2)



Also, don't worry about messing up: The server repository is nothing 
special, every developer has a full copy (from the time he last 
pulled/fetched) on his harddrive. If you mess something up, any 
developer can push his repo to the server again and nothing is lost.



Cheers,
Reinhold

--
------
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: Allow all papersizes to be specified with a trailing "papersize" or "landscape" string. (issue 6461071)

2012-08-12 Thread reinhold . kainhofer

Not tested, either, but LGTM from reading the patch.

http://codereview.appspot.com/6461071/

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


Re: landscape mode in lilypond-book doesn't calculate line length correctly

2012-08-12 Thread Reinhold Kainhofer

On 2012-08-11 21:57, David Kastrup wrote:

Laura Conrad  writes:


"Laura" == Laura Conrad  writes:


 Laura> When run on the attached file, lilypond-book sets the line
 Laura> length of the music to be much less than the actual width of
 Laura> the page that latex is using (which you can see by where it
 Laura> puts the footers.)

I think I have a clue as to the source of this problem.  I did
some investigation, since this is a blocking bug for a project with a
tight deadline in early September.

I looked at the lilypond-book python code, and it does indeed seem to be
setting the width wider for a landscape page than for a portrait page.
However, at some point when lilypond-book is running lilypond, I get the
following warning:

warning: systems run off the page due to improper paper settings,
setting default values

It looks like whatever code writes this warning thinks that no page
should ever be more than about 9 inches wide.  This might be good enough
for my purposes, although I was thinking about using smaller than 1 inch
margins, and certainly there are some purposes for which you would
definitely want minimal margins.

So can someone who understands where that message comes from check
whether there's some inappropriate hard coding of the maximum width of a
page which is too small for a letter paper in landscape?


No such luck, it is in LilyPond itself that you have

   if (to_boolean (c_variable ("check-consistency")))
 {
   // Consistency checks. If values don't match, set defaults.
   if (abs (paper_width - line_width - left_margin - right_margin) > 1e-6)
 {
   line_width = line_width_default;
   left_margin = left_margin_default;
   right_margin = right_margin_default;
   warning (_ ("margins do not fit with line-width, setting default 
values"));
 }
   else if ((left_margin < 0) || (right_margin < 0))
 {
   line_width = line_width_default;
   left_margin = left_margin_default;
   right_margin = right_margin_default;
   warning (_ ("systems run off the page due to improper paper settings, 
setting default values"));
 }
 }

Have you tried setting the paper type in your lilypond-book snippets?
LilyPond-book only siphons off

 # Retrieve dimensions from LaTeX
 LATEX_INSPECTION_DOCUMENT = r'''
 \nonstopmode
 %(preamble)s
 \begin{document}
 \typeout{textwidth=\the\textwidth}
 \typeout{columnsep=\the\columnsep}
 \makeatletter\if@twocolumn\typeout{columns=2}\fi\makeatother
 \end{document}

so it does not bother getting/setting paper info.



Ah, good point. It actually took me a while to see what you mean: This 
snippet correctly extracts the actual line width for the snippet, but 
the snippet uses the default lilypond paper size rather than the paper 
size implied by the latex document... Nice Catch!


When I worked on these parts of lilypond-book, I tested with various 
page settings, but apparently forgot to check with larger page sizes 
than A4 portrait...


The apparent solution is to also print out the paper page width/height 
and all the margins (to avoid e.g. too much vertical stretching of staff 
groups)...


I'll try to come up with a patch.

Cheers,
Reinhold


Fragments may use the


`papersize=STRING'
  Where STRING is a paper size defined in `scm/paper.scm' i.e.
  `a5', `quarto', `11x17' etc.

  Values not defined in `scm/paper.scm' will be ignored, a warning
  will be posted and the snippet will be printed using the default
  `a4' size.

option.  Embarrassingly, there is no way to get a4 landscape in
LilyPond-book right now, but a3 should do the trick I guess, at some
loss of performance.

Inside of LilyPond, #(set-default-paper-size "a4" 'landscape) would
work.


Hmm, to make life for .ly file generators easier, maybe it would be a 
good idea to additionally define paper sizes a4landscape and the like...


Cheers,
Reinhold


--
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

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


Re: GOP2-3 - GLISS or not

2012-08-10 Thread Reinhold Kainhofer
On 01/08/2012 00:29, Joseph Rushton Wakeling wrote:
> You get a similar error with the following:
>
>   \compoundMeter #'((4 2/3 4))
>
>   c'4 c'4 c'4 c'4 \times 2/3 { 4 } |
>   c'4 c'4 c'4 c'4 \times 2/3 { 4 } |
>
> That is,
>
>   Parsing...ERROR: In procedure ly:make-moment:
>   ERROR: Wrong type argument in position 1 (expecting integer): 14/3
>
> ... which can again be avoided by using the equivalent time signature
> of 7/6.
>
> This is probably actually quite easy to fix, but _as things stand_ it
> seems to me that compound time signatures probably need some careful
> consideration with respect to the styles and use-cases out there.
>
> Based on the above it's _probably_ just an internals issue and not a
> syntax problem (I can make bug reports accordingly), but it's another
> contemporary music issue to throw into the mix regarding syntax.

When I implemented \compoundMeter, I only had the classical meters in
mind (i.e. denominators are powers of 2, all enumerators are (possibly
sums of) integers, and there are no double fractions).

I haven't looked at the code, but I don't see a reason why it wouldn't
be possible to extend that to non-power-of-2 denominators.
Double fractions and real numbers in the enumerator pose more problems,
because in these cases I have no idea how to determine the beat
structure... (e.g. in #'(1 4 3 8), eights are automatically beamed as c8
c[ c c c] c[ c c]. How would you beam #'(3.2 8)? )

Cheers,
Reinhold

-- 
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com


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


Re: Patchy's built docs on the web

2012-08-10 Thread Reinhold Kainhofer
On 31/07/2012 17:18, John Mandereau wrote:
> When lilypond-patchy-staging.py a.k.a. Patchy succesfully builds on MSH
> Paris Nord server, it now puts the docs on
>
> http://194.254.171.80/lilypond-web/master/
>
> This is intended for use by all developers and contributors; I'm not
> sure whether it duplicates docs on kainhofer.com/~lilypond/, it depends
> on how Reinhold builds them.

I let a cronjob build origin/master from scratch every night at 01:30 am
CEST (UTC+2) and upload the docs to my server.

The main difference to all the other documentation copies on various
servers is that I enable the AJAX quick search box in the manuals (which
basically just greps through the index and displays the hits from the
index). To be honest, I couldn't work with the docs any more without
that search box.

Cheers,
Reinhold


-- 
------
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com


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


Fwd: abc2ly Patch

2012-08-09 Thread Reinhold Kainhofer
Arne has sent me a patch for abc2ly, which improves e.g. the handling of
chords (previously converted as annotation, now as chordmode)...

I haven't looked at or tested this patch.

Cheers,
Reinhold

 Original Message 
Subject: abc2ly Patch
Date: Thu, 09 Aug 2012 16:47:52 +0200
From: Arne Rempke 
To: Reinhold Kainhofer 

Hallo,

ich schlage mich grade mit der Konvertierung von abc-Daten nach lilypond
herum und habe dazu das Skript abc2ly von lilypond etwas erweitert.
Wesentlichste Änderung dürfte die Behandlung von Akkorden sein, die nun
als \chordmode und nicht mehr als hochgestellte Anmerkung verarbeitet
werden. Außerdem wird die Taktzählung wieder lilypond überlassen und
Auftakte versucht zu erkennen. Tatsächlich sind auch ein paar Änderungen
drin, die zumindest diskussionwürdig sind (z.B. Silbenmatching
Lyrics/Melodie bei Slur/Tie-Konstruktionen), aber die bei meinen Daten
so die besseren Ergebnisse erzielt haben.

Ich dachte mir, bevor die Änderungen nur auf meiner Platte verkümmern
versuch ich sie doch noch zu teilen -- hab aber zugegeben grad nicht den
Nerv mich mit dem Repository/Ticketsystem zu beschäftigen und schick
daher einfach mal nen Patch an einen mir geeignet erscheinenden
Entwickler. Evtl. kann man das (oder Teile) ja verwenden, ansonsten bin
ich da auch nicht bös drum. Der Patch ist gegen das Skript einer
Lilypond 2.14.2-Installation erstellt worden.

Danke und viele Grüße aus dem Harz,
Arne



--- /usr/bin/abc2ly	2011-10-22 15:48:20.0 +0200
+++ abc2ly2	2012-08-09 15:50:38.138219097 +0200
@@ -91,6 +91,8 @@
 import sys
 import re
 import os
+from fractions import Fraction
+import math
 
 program_name = sys.argv[0]
 
@@ -132,11 +134,15 @@
 header['footnotes'] = ''
 lyrics = []
 slyrics = []
+slyrics_num_syl = []
 voices = []
+chords = ['']
 state_list = []
 repeat_state = [0] * 8
 current_voice_idx = -1
 current_lyric_idx = -1
+chord_length = 0
+chord_name = ''
 lyric_idx = -1
 part_names = 0
 default_len = 8
@@ -148,7 +154,6 @@
 HSPACE=' \t'
 midi_specs = ''
 
-
 def error (msg):
 sys.stderr.write (msg)
 if global_options.strict:
@@ -205,6 +210,7 @@
 state_list.append(Parser_state())
 voices.append ('')
 slyrics.append ([])
+slyrics_num_syl.append([])
 voice_idx_dict[name] = len (voices) -1
 __main__.current_voice_idx =  voice_idx_dict[name]
 __main__.state = state_list[current_voice_idx]
@@ -241,18 +247,18 @@
 
 def dump_lyrics (outf):
 if (len(lyrics)):
-outf.write("\n\\score\n{\n \\lyrics\n <<\n")
+outf.write("\n\\markup { \\column {\n")
 for i in range (len (lyrics)):
-outf.write ( lyrics [i])
-outf.write ("\n")
-outf.write(">>\n\\layout{}\n}\n")
+l = re.sub('^[ \t]*\}\}', '', lyrics [i])
+outf.write ( l + "}}\n")
+outf.write ( "} }\n")
 
 def dump_default_bar (outf):
 """
 Nowadays abc2ly outputs explicits barlines (?)
 """
 ## < 2.2
-outf.write ("\n\\set Score.defaultBarType = \"empty\"\n")
+#outf.write ("\n\\set Score.defaultBarType = \"empty\"\n")
 
 
 def dump_slyrics (outf):
@@ -280,9 +286,11 @@
 m = k
 outf.write ("\nvoice%s =  {" % m)
 dump_default_bar(outf)
+if state_list[voice_idx_dict[k]].partial:
+outf.write("\n \\partial %s" % state_list[voice_idx_dict[k]].partial)
 if repeat_state[voice_idx_dict[k]]:
 outf.write("\n\\repeat volta 2 {")
-outf.write ("\n" + voices [voice_idx_dict[k]])
+outf.write (voices [voice_idx_dict[k]])
 if not using_old:
 if doing_alternative[voice_idx_dict[k]]:
 outf.write("}")
@@ -290,6 +298,14 @@
 outf.write("}")
 outf.write ("\n}")
 
+def dump_chords (outf):
+chord_flush()
+if (len(chords[0])):
+outf.write ("\nharmonies = \\chordmode {")
+outf.write ("\n" + chords[0])
+outf.write ("\n}")
+
+
 def try_parse_q(a):
 #assume that Q takes the form "Q:'opt. description' 1/4=120"
 #There are other possibilities, but they are deprecated
@@ -314,6 +330,7 @@
 
 ks = voice_idx_dict.keys ();
 ks.sort ()
+outf.write ("\n\t\\context ChordNames\n\t{\n\t\t\\set chordChanges = ##t\n\t\t\\germanChords \\harmonies\n\t}\n" )
 for k in  ks:
 if re.match('[1-9]', k):
 m = alphabet (int (k))
@@ -596,6 +613,8 @@
 if not stuff:
 stuff.append (a)
 else:
+if (a == '\n' and stuff[idx] and stuff[idx][-2] == a):
+return
 

Re: Properly implement fromproperty markup handing in the pdftitle header field (issue 6447052)

2012-08-05 Thread Reinhold Kainhofer

On 2012-08-06 00:44, d...@gnu.org wrote:


http://codereview.appspot.com/6447052/diff/4001/scm/markup.scm
File scm/markup.scm (right):

http://codereview.appspot.com/6447052/diff/4001/scm/markup.scm#newcode109
scm/markup.scm:109: (define (markup-cons->string-cons c props)
"props" seems like a total misnomer: that is usually used for a list of
alists, while it here is a list of modules/scopes.


Do you have any better suggestion?

Thanks,
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: Issue 1650: merge multiple header specifications. (issue 6445053)

2012-07-30 Thread reinhold . kainhofer

LGTM, seems to work correctly on all my (reg)tests.

I actually like David's idea of changing the header field values to
include correctness information. Still I like comments inside sample
code to make the reasons for a particular block clearer.


http://codereview.appspot.com/6445053/

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


Re: Fwd: Using MSH Paris Nord server

2012-07-30 Thread Reinhold Kainhofer
On 30/07/2012 16:21, Graham Percival wrote:
> oh, logins just occurred to me.  Can gerrit let people log in with
> their google accounts (IIRC there's an api for that), or would we
> all need to make new accounts on the gerrit server?


IIRC, gerrit works with any openID service...
A while ago I set up gerrit on my server to evaluate it (I even posted
it here), but I have meanwhile removed the installation again, as it
seemed no one was really interested.

Cheers,
Reinhold

-- 
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com


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


Re: scheme spanner in input/regression/scheme-text-spanner.ly not quote-proof

2012-07-30 Thread Reinhold Kainhofer
On 28/07/2012 07:32, David Kastrup wrote:
> Reinhold Kainhofer  writes:
>
>> The text spanner implemented in scheme (which is also used as a basis
>> for David's measure counter engraver) seems to work fine in the regtest,
>> but apparently it is not quote-proof.
>>
>> In particular, if you try call \addQuote on some music that contains
>> \schemeTextSpannerStart or \schemeTextSpannerEnd, then you get the
>> following warnings and the text spanner is not quoted:
> Well, scheme-text-spanner changes the \Global context, and quote
> environments uses the layout definition partCombineListener in
> ly/declarations-init.ly with an unchanged Global context.
>
> Change its Global context similarly, and you should be set.

How can a user, who wants to use e.g. the measure counter engraver,
change the partCombineListener' s Global context without messing with
the original lilypond sources? Am I missing something?
The whole point of scheme engravers and scheme text spanners is that
users can now also implement things in scheme without messing with the
lilypond sources...
If I understand you right, then the user cannot add new grobs in an
include file without messing with the lilypond sources.

Would a proper solution be to change the partCombineListener to a
context mod and construct the real listener when we need it (i.e.
replace the current (ly:parser-lookup parser 'partCombineListener) by
the actual creation of the listener from the context in effect when
add-quotable or recording-group-emulate is called?
However, I don't really have enough knowledge about how to create the
actual listener in scheme and insert a given context mod in scheme...

Cheers,
Reinhold

-- 
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com


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


Re: Issue 1650: Multiple header blocks shall be merged rather than replace a previous one (issue 6441058)

2012-07-27 Thread reinhold . kainhofer

Reviewers: dak,

Message:
On 2012/07/27 05:10:50, dak wrote:

> I think this is the wrong way to do things since you can't refer to

old header

> values when defining the new one.  Instead, you should start with

the

definition
> you are adding things to, like LAYOUT and similar do.  So that

likely means

that
> you need to change the definition of lilypond_header (or create

several

versions
> of it) to make it not start from an empty slate.



Actually, it looks like it just doing that: taking the old value and

adding to

it.



Apparently, it doesn't do it properly:

\book {
 \header { title = "Title" }
 \header { composer = "Composer"  }
 \score { \new Staff { c'4 } }
}

or

\version "2.15.42"
\score {
  \new Staff { c'4 }
  \header {  piece = "Piece"  opus = "Opus" }
  % This should NOT clear the piece from above:
  \header { opus = "New Opus" }
}

In both cases the assignments of the first header block are lost,
because when parsing the second header block, it starts from an empty
block and replaces the whole header block rather than adding to the
existing assignments...

The hierarchy works correctly (i.e. top-level header blocks are used as
base for book-level blocks, which are used as base for bookpart-level
blocks, which are used as base for score-level blocks), mainly because
in score.cc and book.cc the parent's header block is copied when
inserting a book or score into its parent.


Description:
Issue 1650: Multiple header blocks shall be merged rather than replace a
previous one

If there are two or more header blocks at top-, book-, bookpart- or
score-level,
the settings of all header blocks are merged. If a value appears in
multiple
blocks, the last assigment wins.

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

Affected files:
  A input/regression/header-book-multiple.ly
  A input/regression/header-book-multiplescores.ly
  A input/regression/header-bookpart-multiple.ly
  A input/regression/header-score-multiple.ly
  A input/regression/header-toplevel-multiple.ly
  M lily/parser.yy



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


scheme spanner in input/regression/scheme-text-spanner.ly not quote-proof

2012-07-26 Thread Reinhold Kainhofer
The text spanner implemented in scheme (which is also used as a basis
for David's measure counter engraver) seems to work fine in the regtest,
but apparently it is not quote-proof.

In particular, if you try call \addQuote on some music that contains
\schemeTextSpannerStart or \schemeTextSpannerEnd, then you get the
following warnings and the text spanner is not quoted:

scheme-text-spanner.ly:210:5: warning: Event class should be a list
  a4
 b\schemeTextSpannerStart c d |
scheme-text-spanner.ly:212:7: warning: Event class should be a list
  a4 b
   c\schemeTextSpannerEnd d |

So apparently the scheme way to add new event classes is not entirely
correct...
Sample file (regtest adapted to quote the music) is attached.

Any idea about the correct fix to this?

Thanks,
Reinhold

-- 
--
Reinhold Kainhofer, reinh...@kainhofer.com, http://www.kainhofer.com
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * Edition Kainhofer, Music Publisher, http://www.edition-kainhofer.com

\version "2.15.31"

\header {
  texidoc = "Use @code{define-event-class}, scheme engraver methods,
and grob creation methods to create a fully functional text spanner
in scheme."
}

#(define my-grob-descriptions '())

#(define my-event-classes (ly:make-context-mod))

defineEventClass =
#(define-void-function (parser location class parent)
   (symbol? symbol?)
   (ly:add-context-mod
my-event-classes
`(apply
  ,(lambda (context class parent)
	 (ly:context-set-property!
	  context
	  'EventClasses
	  (event-class-cons
	   class
	   parent
	   (ly:context-property context 'EventClasses '()
  ,class ,parent)))

\defineEventClass #'scheme-text-span-event #'span-event

#(define (add-grob-definition grob-name grob-entry)
   (let* ((meta-entry   (assoc-get 'meta grob-entry))
  (class(assoc-get 'class meta-entry))
  (ifaces-entry (assoc-get 'interfaces meta-entry)))
 (set-object-property! grob-name 'translation-type? list?)
 (set-object-property! grob-name 'is-grob? #t)
 (set! ifaces-entry (append (case class
  ((Item) '(item-interface))
  ((Spanner) '(spanner-interface))
  ((Paper_column) '((item-interface
 paper-column-interface)))
  ((System) '((system-interface
   spanner-interface)))
  (else '(unknown-interface)))
ifaces-entry))
 (set! ifaces-entry (uniq-list (sort ifaces-entry symbol>
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: GOP-PROP 2-1: LilyPond is part of GNU

2012-06-20 Thread Reinhold Kainhofer

On 2012-06-20 05:51, Graham Percival wrote:

>  "do not recommend any non-Free programs"
>  
>  We have a list of non-free ones on the easier editing page - e.g.

>  Noteworthy and my converter.  However, it seems daft to me to remove
>  these.  I would think for the long list we could disclaim with
>  "we're not recommending these, but noting that they exist".

Thanks, that seems reasonable.


Actually, to me there is a big difference between "recommending" a 
program for use and listing alternatives that are compatible (which is 
the case for the applications in question). I actually don't like the 
phrasing, because I understand "we're not recommending these" as a nice 
formulation of "We strongly discourage you from using these".


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: Issue 2584 (redo 1967): please make partcombine merge slurs (issue 6294047)

2012-06-08 Thread reinhold . kainhofer

The partcombiner does not really bother about keeping the number of
generated start and end slur events matched, so this attempts to cope
by implementing the following behavior:



a) multiple slur starts on the same moment are not an error but the
same as one.


I actually did NOT implement it like this on purpose: If you start a
slur and a phrasing slur and forget the backslash in the phrasing slur
start (which happened to me quite frequently!), you'll have to manually
find out where the phrasing slur should start (which is typically
several lines before), while on the other hand two concurrent slurs are
not supported, anyway. So to me it seemed reasonable to warn the user
about the double slur start, which typically indicates a missing
backslash for a phrasing slur.

http://codereview.appspot.com/6294047/

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


Re: LoMuS

2012-04-27 Thread Reinhold Kainhofer
On 27/04/2012 07:09, m...@apollinemike.com wrote:
> Hey all,
>
> I've received a couple e-mails from colleagues and one nudge from
> Valentin about:
>
> http://concours.afim-asso.org/
>
> I've been reticent about applying because the development community is
> rather diffuse and there isn't any good way to accept the prize money
> if we win.  However, after having received now two e-mails from people
> who I respect a lot in the French computer music community, I think
> it'd be a good idea and that we should let institutional barriers stop
> us from applying.

I strongly support applying.

> 1) Use it internally on projects (i.e. we'd all agree that person X
> would get paid Z euros to do thing Y) in which case there'd have to be
> a money shepherd.  I'd rather not do this, but I can if no one else
> wants to.

YES! I would suggest that if you do all the application bureaucracy,
then you should also be the one to distribute the possible prize money.

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: musicxml2ly

2012-04-08 Thread Reinhold Kainhofer

On 2012-04-08 20:15, pls wrote:
yes, we are currently working on the musicxml2ly scripts and we have 
solved e.g. the issue concerning the chord symbols you mentioned. I 
haven't had time to work on the patch James pointed to but it works as 
it is. We use it on www.philomelos.net <http://www.philomelos.net>. 
Philomelos is a new community site for free and editable sheet music. 
The private beta version includes the ability to read and share 
MusicXML files that are displayed online using LilyPond technology. If 
someone wants to be invited: drop me a line offlist.


We will share all improvements on musicxml2ly but we could also need 
some help! We are planning to add a blog/wiki to our website so that 
philomelos can be used to test MusicXML files and to share music 
sheets and knowledge concerning MusicXML, conversions between musical 
notation codes...


I was the last one to extensively work on musicxml2ly, so if you have 
any questions, drop me a mail. I must add, though, that I have beeen 
really busy the last few weeks and I'm not sure if this will change in 
the near future, so expect some days of response time.


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: new lilypond-auto mailing list

2012-03-20 Thread Reinhold Kainhofer

On 2012-03-20 00:28, Graham Percival wrote:

On Tue, Mar 20, 2012 at 12:11:46AM +0100, David Kastrup wrote:

So instead of surprising volunteers by giving them more information than
expected we give them less information than expected?

Bug squad members shouldn't be reading tracker messages anyway.


It's not about bug squad, but about all developers. The comment of the 
lilypond users to the bug reports are *extremely* important for 
development. On the other hand, all those hundreds of automated comments 
to the bug reports are totally unnecessary.


To me the main problem is that we have so many automated comments to a  
bug report that the bug-lilypond list is swamped with those 
notifications and the relevant human responses are hard to detect (I now 
typically ignore all bug mails, since it simply takes to long to find 
out which of the ~50-70 mails per day are automated and which are relevant).


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: Sets lilypond-id message to type progress (issue 5848056)

2012-03-18 Thread reinhold . kainhofer

LGTM

http://codereview.appspot.com/5848056/

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


Re: My own Figured Bass number set, where do I start?

2012-02-20 Thread Reinhold Kainhofer
On 20/02/2012 14:44, Reinhold Kainhofer wrote:
> On 20/02/2012 14:18, Nils wrote:
>> my pusblisher wants baroque figured bass gylphs. They have the strokes in 
>> different places than the Lilypond versions.
>> I guess nobobdy did this so far, so I have to do it myself. 
> Yes, we have a feature request
> (http://code.google.com/p/lilypond/issues/detail?id=2042 ), but no one
> has done any work on it.
>
>> Where is the point in the code where I have to start? I want to do it right 
>> and use the same lilypond syntax like 4\+ or 6\\.
> I suppose that the proper way would be to create new glyphs in our fonts
> (using metafont, source file mf/feta-numbers.mf) and then adjust the
> format-bass-figure function (in scm/translation-functions.scm) to use
> those glyphs for the slashed figures.

Despite my lack of metafont knowledge, I have started tweaking some of
the glyphs:
http://codereview.appspot.com/5683051

That patch simply takes the digits 2, 4 and 5 of the feta font,
stretches the one line that will be slashed, and adds a vertical box as
a slash through it. These glyphs are not yet used by the figured bass
formatting functions, but you can already use them via the musicglyph
markup function. Attached is a simple test file showing the glyphs.


Some issues:
-) I have no idea how to properly implement the 6+ (the upper arc should
have much less curvature and the slash is drawn through it. I would like
the flare to have less turning angle, but with beta != +-90 it is no
circle any more).
-) Currently I place the slashes at more or less hardcoded positions and
they are straight vertical. In particular for the 2 it might make sense
to calculate the real intersection of the slash with the lower wavy
line, so the slash is vertically centered. It might also be slanted to
be perpendicular to the line it slashes through. Similarly, I'm not sure
if the 5 should get a slightly slanted slash...
-) I have no idea whether I should adjust the height of the boxes to
include the slash.
-) etc.

It would be great if someone with more metafont knowledge could improve
those issues.

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



figured-bass-slashed-figures-test.preview.pdf
Description: Adobe PDF document
\version "2.15.31"

\header {

  texidoc = "Examples of dedicated slashed bass figure glyphs."

}


\paper { ragged-right = ##t }

<<
  \context Voice {
c'4 c' c' c'
  }
  \figures {
\bassFigureExtendersOn
<2\+ \markup { \fontsize #-2 \musicglyph #"twoplus" } 2 > 
<4\+ \markup { \fontsize #-2 \musicglyph #"fourplus" } 4 > 
<5\+ \markup { \fontsize #-2 \musicglyph #"fiveplus" } 5 > 
% <6\+ 6\\ 6/ \markup { \fontsize #-2 \musicglyph #"sixplus" 6} > 
  }
>>
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Gets vertical skylines from grob stencils (issue 5626052)

2012-02-17 Thread Reinhold Kainhofer
On Fr., 17. Feb. 2012 08:47:19 CET, m...@apollinemike.com 
 wrote:
> Note that this whole "slow down" thing is much less relevant now that it
> was before.   My current benchmarks show a 0.2-2 second per minute
> slowdown depending on the file.

Most important: is the slow down linear in the score length, polynomial or 
exponential? I particular, is there any danger of making really huge sores 
impossible to run through lilypond?

Cheers,
Reinhold


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


Allow multiple identical slurs (issue 1967). (issue 5671053)

2012-02-15 Thread reinhold . kainhofer

LGTM

http://codereview.appspot.com/5671053/

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


Re: Unbound variable GUILE error when no whitespace before closing brace

2012-02-15 Thread Reinhold Kainhofer
On 15/02/2012 15:30, David Kastrup wrote:
> Reinhold Kainhofer  writes:
>
>> Actually, LilyPond's parser decides which chars are part of the scheme
>> expression and which are part of lilypond's syntax.
> No, it doesn't.  It fires up the Scheme reader at the current position
> in the input, and picks up again wherever the Scheme reader leaves the
> input position.

Yes, but it's our parsers decision to give the scheme reader everything
it might want, even if that means chunking away from the lilypond code...

A scheme expression is embedded into lilypond syntax, so why can the
embedded expression decide where it ends, rather than the surrounding
LilyPond syntax?

This leads to situations like:
relative c'' {
  {\override NoteHead #'X-offset = #(+ 1 2)} c % works
  {\override NoteHead #'X-offset = #3} c   % doesn't work
}

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: google summer of code

2012-02-15 Thread Reinhold Kainhofer
On 11/02/2012 14:00, Graham Percival wrote:
> I believe that one of the major things that GSoC looks are is "how
> good is the list of tasks suggested by that project".

Yes, most applicants (who are not yet involved with a project) will
simply look at the list and select one of the suggested projects.
Students, who are already developers for a project, tend to have their
own suggestions.

At least that's my experience a while ago as a SoC mentor for KDE.

> Except that the mentor needs to (IIRC) sign an agreement
> specifying that they *will* continue to do that.  And it needs to
> be a single mentor.

I can't remember any formal agreement. But anyway, Google was not that
strict, and my students didn't need any help (I was co-mentoring with
someone else, but I can't remember any time-consuming problems with the
students)

> It's sounding as though lilypond is a bad fit for GSoC, so perhaps
> we should just drop it.

Don't worry. The lilypond developer community consists of many brilliant
heads, who can and probably will help out, if a mentor is tied up with
something else. No one says that a student must only communicate with
the mentor.

My feeling was also that Google gave the project a loot of freedom to
decide on the accepted projects, how to administer them and how to
decide on the success of the students.

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: Google Summer of Code - Ideas List, please discuss

2012-02-15 Thread Reinhold Kainhofer
On 12/02/2012 12:51, m...@apollinemike.com wrote:
>> 2) Adding comprehensive MusicXML import and export features, together
>> > with test suites for it.  Requirements: ? (no idea in which language
>> > this would be written), MusicXML, basic LilyPond and music notation
>> > knowledge; familiarity with other scorewriters would be a nice bonus
>> > (for cross-testing).  The goal would be considered achieved when a
>> > (previously chosen) not-so-complicated score could be imported from
>> > MusicXML and exported back with no (unintentional) loss of data.
>> > 
> I worked on this a little bit - it is totally possible and would likely weigh 
> in @ 500-1000 lines of Scheme.  I'd recommend not worrying about placement 
> data and stopping at the engraver level.  This is more or less the same thing 
> as a MIDI plus stuff like articulations, slurs, etc..  Placement data would 
> be doable but hard: it'd be better to just get the info from engravers first.

It is much easier to export just the music contents (in scheme, just
using the output of the iterators), but that solves only part of the
problem. To be able to provide solutions for composers in the
professional music publishing world, layout information is essential in
the MusicXML export.

Currently, if you are using LilyPond, you are locked in to LilyPond. If
any composer writes a piece in lilypond, it's practically impossible to
find a publisher. The publishers usually only accept finished (i.e.
layout done!) Finale/Sibelius/SCORE files, and probably MusicXML. But if
the LilyPond users sends them the MusicXML of the finished LilyPond
file, the publisher will have just the raw data and needs to do all the
layout themselves again (and proably reject the files)...

So, just a basic MusicMXL export functionality is not able to fulfill
all the needs of the users. To be able to compete in the professional
market, LilyPond also needs to export the positioning (and MusicXML is
moving more and more into that direction, now also including full audio
support). MusicXML 1.0 was just about the musical contents, MusicXML 2.0
added mainly layout information, and MusicXML 3.0 adds lots of audio
information.

Also notice that many MusicXML viewer are not able to lay out the
musical contents themselves, but depend on the positioning information
in the MusicXML file.



My suggestion would be to implement MusicXML export with the following
steps:
-) Handle basic musical content export like the MIDI export (i.e. using
dedicated exporter classes, derived from the translator class)
-) Build the XML tree of the basic musical content, add a connection
from music event to XML tag
-) Let all engravers do their jost
-) add ability to link each output object (basically each stencil /
group of stencils) to the music cause (and thus to the XML tag in the
XML tree)
-) Add a XML output backend, which can then add the layout information
for each output object to the XML tags

This would probably be the most generic and extensible solution
(although it is definitely not the easiest road). Basic export could
already be implemented using some translator-derived classes collecting
all interesting events.

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: Google Summer of Code - Ideas List, please discuss

2012-02-15 Thread Reinhold Kainhofer
On 12/02/2012 15:13, Graham Percival wrote:
> On Sun, Feb 12, 2012 at 12:03:48PM +0100, Janek Warchoł wrote:
>> 2) Adding comprehensive MusicXML import and export features, together
>> with test suites for it.  Requirements: ? (no idea in which language
>> this would be written), MusicXML, basic LilyPond and music notation
>> knowledge; familiarity with other scorewriters would be a nice bonus
>> (for cross-testing).  The goal would be considered achieved when a
>> (previously chosen) not-so-complicated score could be imported from
>> MusicXML and exported back with no (unintentional) loss of data.
> umm, you know that we already have musicxml2ly import, right?
>
> I agree with having this on the ideas list, but it should
> definitely mention musicxml2ly.py and basic familiarity with
> python.  The export would most likely be in scheme, although it's
> not impossible to imagine that somebody might write a relatively
> simple scheme exporter to an intermediate format (or just use
> \displaymusic{} ), then use python to construct the actual
> musicxml file.

That's bound to fail. LilyPond has so much processing going on in the
engravers, that the MusicXML exporter would have to duplicate most of
that. To me it makes much more sense to build on the result of the
iterators and engravers, rather than having to duplicate most of them in
custom code.

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: Fw: GDP Docs compilation FAILED (2012.02.14-01:39)

2012-02-15 Thread Reinhold Kainhofer
On 14/02/2012 15:48, Julien Rioux wrote:
> Reinhold Kainhofer  kainhofer.com> writes:
>>> Dissecting...
>>> Converting MusicXML file `./out-www/suffix-lyxml.xml'...
>>>
>>> lilypond-book.py: error: `musicxml2ly   --out=- - ' failed (0)
>>> lilypond-book.py: error: The error log is as follows:
>>> musicxml2ly: Reading MusicXML from Standard input ...
> I've pushed a potential fix to staging.

The cronjob successfully finished last night.

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: Fw: GDP Docs compilation FAILED (2012.02.14-01:39)

2012-02-15 Thread Reinhold Kainhofer
On 14/02/2012 08:01, David Kastrup wrote:
> Reinhold Kainhofer  writes:
>
> [...]
>
> It is not clear where this mail hails from, which commands were used to
> get this error under which circumstances.
>

Nightly cron job building lilypond and the documentation
(http://kainhofer.com/~lilypond/ ) from scratch.

Graham said some months ago, that I should forward those error mails to
the mailing list rather than waiting for someone else to spot a problem
building master.

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: Google Summer of Code - Ideas List, please discuss

2012-02-15 Thread Reinhold Kainhofer
On 12/02/2012 15:43, Janek Warchoł wrote:
> W dniu 12 lutego 2012 15:13 użytkownik Graham Percival
>  napisał:
>> umm, you know that we already have musicxml2ly import, right?
> Yes.  I had some issues with it - dynamics got attached to wrong
> notes.  

The problem is that in LilyPond, each dynamic is attached to a note,
while in MusicXML it is attached to a staff and placed via x-offsets.
It's mostly not so trivial to find the proper note to attach the
dynamics to (and even if you do, you'll need to obtain a proper x-offset
to override LilyPond's default placement).

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: Google Summer of Code - Ideas List, please discuss

2012-02-15 Thread Reinhold Kainhofer
On 12/02/2012 12:03, Janek Warchoł wrote:
> Hi all,
>
> SUMMARY: in order to participate in Google Summer of Code ($$$), we
> need an Ideas List.
>
> (to learn more about GSoC, go here
> http://www.google-melange.com/gsoc/homepage/google/gsoc2012)
>
> An Ideas List should be a list of suggested student projects.  This
> list is meant to introduce contributors to the project's needs and to
> provide inspiration to would-be student applicants.
>
> For an example, go here:
> http://community.kde.org/GSoC/2011/Ideas#Project:_KStars:_Improve_the_observation_planner_and_logging_feature
>
> Below are my suggestions for our Ideas List.  Please comment on them
> and give your suggested projects.
>
>
>
> General student prerequisites: (basic?) git knowledge
>
> 1) Fixing problems with synchronization of grace notes, together with
> all underlying architecture (issue 34). Requirements: C++, MIDI;
> familiarity with basic music notation recommended

I think for this problem, a basic understanding of the lilypond code is
really necessary. It goes straight into the timing code. Also, it's hard
to judge the real effort required to solve it, so I don't think this is
a very good candidate for a project.

> 2) Adding comprehensive MusicXML import and export features, together
> with test suites for it.  Requirements: ? (no idea in which language
> this would be written), MusicXML, basic LilyPond and music notation
> knowledge; familiarity with other scorewriters would be a nice bonus
> (for cross-testing).  The goal would be considered achieved when a
> (previously chosen) not-so-complicated score could be imported from
> MusicXML and exported back with no (unintentional) loss of data.

That is definitely a good project. It is self-contained, and there is
not a success-or-fail outcome, but the possible outcomes vary from
"basic support" to "full support" in a continuous range.

> 5) Build System Improvement: if we want to ever move away from make,
> this would be a good opportunity.  Issues like thousands of errors and
> warnings during compilation should be removed, all dependancies fixed
> (so that one doesn't need to remove fonts folder to have fonts
> rebuilt).  Requirements: Python, Make and (optionally) another build
> system.

Janitor work sounds very boring to me for a summer job...

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: Thinking about putting together a grant to support development on LilyPond

2012-02-15 Thread Reinhold Kainhofer
On 09/02/2012 12:08, Han-Wen Nienhuys wrote:
> I have tried getting grants from different EU and national bodies with
> various partner institutions (including the one where Graham now
> works, IIRC). My impression is that you need people (preferably many)
> with lots of academic clout that can sign off on the proposal, since
> LilyPond itself has little formal recognition. Also, for EU research
> grants specifically, they were focused a lot on partnerships with and
> things that helped small and medium enterprises, and we couldn't
> invent a story around that.

Just in case it helps proposals: I have a small music publishing company
(http://www.edition-kainhofer.com/ ), and I exclusively use LilyPond, so
you don't have to invent a story about that.

> A) Development of ly2xml

Reviewers would probably argue that this is not really scientific
research and should be funded by an industry partner instead.

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: Gets vertical skylines from grob stencils (issue 5626052)

2012-02-15 Thread Reinhold Kainhofer
On 06/02/2012 18:50, m...@apollinemike.com wrote:
>>> I'm fixing all of the regtest issues, but what I need most from other
>>> people who have a few minutes are benchmarks.
>> L'Isle joyeuse:
>> [...]
> Thanks!
> In my opinion, these times are too high to justify the gain that one gets 
> from using fine-tuned vertical skylines.  

Agreed.


> In the final version of the patch, I'll limit them to slurs, ties, 
> tuplet-brackets, volta repeats, and treble clefs.  

What about hairpins? They are one of the main problem areas in my scores
(and they are even worse in a piano staff).

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: Unbound variable GUILE error when no whitespace before closing brace

2012-02-15 Thread Reinhold Kainhofer
On 05/02/2012 08:30, David Kastrup wrote:
> The variable is not } but 0.9} instead.  Anything that can't be parsed
> as a constant in Scheme is a variable.
>
> This has nothing to do with Lilypond:
>
> dak@lola:/usr/local/tmp/lilypond$ guile
> guile> 0.9}
> ERROR: Unbound variable: 0.9}
> ABORT: (unbound-variable)
> guile> dak@lola:/usr/local/tmp/lilypond$ 
>
>
> You could likely say
>
> #(define 0.9} 0.9)
>
> and have the above work except for the missing closing brace.  There is
> absolutely nothing that LilyPond could, or even _should_ be trying to
> fix here.  Scheme is Scheme and outside of LilyPond's responsibility
> regarding syntax and semantics.

Actually, LilyPond's parser decides which chars are part of the scheme
expression and which are part of lilypond's syntax. The lilypond parser
decides that the scheme expression includes the }, which from a user's
POV doesn't make sense, as the } is LilyPond's delimiter and should thus
definitely end the scheme expression (even though 0.9} would be a valid
guile variable).

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


Fw: GDP Docs compilation FAILED (2012.02.14-01:39)

2012-02-13 Thread Reinhold Kainhofer
- Ursprüngliche Mitteilung -
Von: LilyPond Development 
Gesendet : Di., 14. Feb. 2012 01:39:05 CET
An: reinh...@fam.tuwien.ac.at
Betreff: GDP Docs compilation FAILED (2012.02.14-01:39)

> Preprocessing graphical objects...
> Calculating line breaks... 
> Drawing systems... 
> Writing header field `texidoc' to
> `/home/lilypond/build/out/lybook-db/25/lily-87ced4d9.texidoc'... Writing
> /home/lilypond/build/out/lybook-db/25/lily-87ced4d9-1.signature Layout output 
> to
> `/home/lilypond/build/out/lybook-db/25/lily-87ced4d9.eps'... Converting to
> `/home/lilypond/build/out/lybook-db/25/lily-87ced4d9.pdf'... Converting to 
> PNG...
> Layout output to 
> `/home/lilypond/build/out/lybook-db/25/lily-87ced4d9-1.eps'...
> Converting to `/home/lilypond/build/out/lybook-db/25/lily-87ced4d9-1.pdf'...
> Writing /home/lilypond/build/out/lybook-db/25/lily-87ced4d9-systems.texi...
> Writing /home/lilypond/build/out/lybook-db/25/lily-87ced4d9-systems.tex...
> Writing /home/lilypond/build/out/lybook-db/25/lily-87ced4d9-systems.count...
> Success: compilation successfully completed
> Compiling
> /home/lilypond/build/input/regression/lilypond-book/out-www/tex-musicxml-file.tex...
> Writing
> `/home/lilypond/build/input/regression/lilypond-book/out-www/tex-musicxml-file.tex'...
> lilypond-book.py (GNU LilyPond) 2.15.30 LILYPOND_VERSION=2.15.30 
> /usr/bin/python
> /home/lilypond/lilypond/scripts/lilypond-book.py -I
> /home/lilypond/lilypond/input/regression/lilypond-book/ -I ./out-www -I
> /home/lilypond/lilypond/input -I /home/lilypond/lilypond/Documentation -I
> /home/lilypond/lilypond/Documentation/snippets -I
> /home/lilypond/lilypond/input/regression/ -I
> /home/lilypond/lilypond/Documentation/included/ -I 
> /home/lilypond/build/mf/out/
> -I /home/lilypond/build/mf/out/ -I
> /home/lilypond/lilypond/Documentation/pictures -I
> /home/lilypond/build/Documentation/pictures/./out-www
> --process='/home/lilypond/build/out/bin/lilypond -dbackend=eps
> --formats=ps,png,pdf -djob-count=4 -dinclude-eps-fonts -dgs-load-fonts
> --header=doctitle --header=doctitlecs --header=doctitlede --header=doctitlees
> --header=doctitlefr --header=doctitlehu --header=doctitleit 
> --header=doctitleja
> --header=doctitlenl --header=doctitlezh --header=texidoc --header=texidoccs
> --header=texidocde --header=texidoces --header=texidocfr --header=tex idochu
> --header=texidocit --header=texidocja --header=texidocnl --header=texidoczh
> -dcheck-internal-types -ddump-signatures -danti-alias-factor=2'
> --output=./out-www --loglevel=NONE   --lily-output-dir
> /home/lilypond/build/out/lybook-db --pdf -o ./out-www
> /home/lilypond/lilypond/input/regression/lilypond-book/tex-paragraphs.lytex
> langdefs.py: warning: lilypond-doc gettext domain not found. lilypond-book.py:
> error: Unknown or invalid loglevel 'NONE' Reading
> /home/lilypond/lilypond/input/regression/lilypond-book/tex-paragraphs.lytex...
> Running `pdflatex' on file `/tmp/tmprdFEfM.tex' to detect default page 
> settings.
> 
> Dissecting...
> Writing snippets...
> Processing...
> Running lilypond...
> Processing
> `/home/lilypond/build/out/lybook-db/snippet-map--8367446982699564671.ly'
> Parsing... Processing `/home/lilypond/build/out/lybook-db/67/lily-ff28cae4.ly'
> Parsing...
> Interpreting music... 
> Preprocessing graphical objects...
> Calculating line breaks... 
> Drawing systems... 
> Writing /home/lilypond/build/out/lybook-db/67/lily-ff28cae4-1.signature
> Layout output to `/home/lilypond/build/out/lybook-db/67/lily-ff28cae4.eps'...
> Converting to `/home/lilypond/build/out/lybook-db/67/lily-ff28cae4.pdf'...
> Converting to PNG...
> Layout output to 
> `/home/lilypond/build/out/lybook-db/67/lily-ff28cae4-1.eps'...
> Converting to `/home/lilypond/build/out/lybook-db/67/lily-ff28cae4-1.pdf'...
> Writing /home/lilypond/build/out/lybook-db/67/lily-ff28cae4-systems.texi...
> Writing /home/lilypond/build/out/lybook-db/67/lily-ff28cae4-systems.tex...
> Writing /home/lilypond/build/out/lybook-db/67/lily-ff28cae4-systems.count...
> Success: compilation successfully completed
> Compiling
> /home/lilypond/build/input/regression/lilypond-book/out-www/tex-paragraphs.tex...
> Writing
> `/home/lilypond/build/input/regression/lilypond-book/out-www/tex-paragraphs.tex'...
> lilypond-book.py (GNU LilyPond) 2.15.30 LILYPOND_VERSION=2.15.30 
> /usr/bin/python
> /home/lilypond/lilypond/scripts/lilypond-book.py -I
> /home/lilypond/lilypond/input/regression/lilypond-book/ -I ./out-www -I
> /home/lilypond/lilypond/input -I /home/lilypond/lilypond/Documentation -I
> /home/lilypond/lilypond/Documentation/snippets -I
> /home/lilypond/lilypond/input/regression/ -I
> /home/lilypond/lilypond/Documentation/included/ -I 
> /home/lilypond/build/mf/out/
> -I /home/lilypond/build/mf/out/ -I
> /home/lilypond/lilypond/Documentation/pictures -I
> /home/lilypond/build/Documentation/pictures/./out-www
> --process='/home/lilypond/build/out/bin/lilypond -dbackend=eps
> --formats=ps,png,pdf -djob-count=4 -dinclude-eps

Re: Cheat sheet

2012-02-07 Thread Reinhold Kainhofer
On 07/02/2012 10:02, Francisco Vila wrote:
> Hello Reinhold,
>
> Here is my work in progress with a Spanish version of the Cheat sheet
> you posted some time ago.
>
> http://paconet.org/lilypond/lilypond-cheat-sheet-es.pdf (source attached)
>
> If you don't want to give away your source code, which I understand, I
> would like nevertheless to ask you a few questions or clues about the
> implementation. Some tricks look very clever from your PDF.

The complete code is available at:
https://gitorious.org/lilypond-cheatsheet/

Please use the new-baposter branch, which builds on a customized version
of the baposter package (included in the git repo). I haven't yet tried
it with the latest official baposter release, which includes all my
changes (but might add some other things that break the cheatsheet).

> If you decide to send me even fractional, incomplete chunks of the
> source file, you'd be credited in the sheet as the author and myself
> as translator with the same license you used and in the same way you
> did. I do not plan to sell it.

No problem, I realized that you cannot make money off lilypond, so I'm
putting also the source code under the creative commons license.

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: Staging->Master

2012-02-02 Thread Reinhold Kainhofer

On 2012-02-02 18:11, Phil Holmes wrote:

- Original Message - From: "David Kastrup" 
To: "Phil Holmes" 



I believe James indicated his big machine was on 24x7 - hence my
instructions if he has some time to look at this.


I think that this would be the preferable solution.  Even though patchy
is quite less painful on my current machine than on the one I had been
using a few days ago, it takes its time.


My box runs it quite quickly and is not used for anything else.  It 
has to be turned on to run patchy though.  Suggest you leave it to me 
for now unless you're experimenting.


My new office machine (on 24/7) is quite a powerful beast, and I usually 
don't to any expensive calculations. So, I can certainly set up a 
cronjob to run patchy regularly.



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: somebody needs to run staging before 29 Jan

2012-01-30 Thread Reinhold Kainhofer

On 2012-01-30 12:59, David Kastrup wrote:

Graham Percival  writes:


On Mon, Jan 30, 2012 at 12:47:11PM +0100, David Kastrup wrote:

The test-patches.py script can likely make use of the techniques in
lilypond-patchy-staging.ly with regard to doing an offside build with a
defined starting point not relying on whatever happens to be checked out
in the main repository.

Don't get confused here.  Don't scare people away from doing the
staging-merge by talking about test-patches.py.

test-patches.py is a completely different problem than the staging
merge.  I agree that a solution for test-patches.py should be
found, but that's not as urgent, nor as TRIVIALLY easy to fix, as
the fact that you are the only person running the staging-merge at
the moment.

I am not sure what the problem is with anybody else running it.  You
call it, and it complains about LILYPOND_GIT not being set.  Then you
call
LILYPOND_GIT=/usr/local/tmp/lilypond 
/usr/local/tmp/lilypond-extra/patches/lilypond-patchy-staging.py
(assuming that your full repository copy is in /usr/local/tmp/lilypond)
and it complains that the configuration in ~/.lilypond-patchy-config is
wrong.  You call a text editor and insert directories and paths suitable
to your system in that file, and that is about it.


I can run it regularly (i.e. a cron job) on my office machine (recently 
got a really fast quad-core system), which is up 24/7 and doesn't have 
too much load otherwise. I don't know how much time I'll have to set it 
up, though.


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: make doc problem

2012-01-26 Thread Reinhold Kainhofer

On 2012-01-27 00:00, Julien Rioux wrote:

On 26/01/2012 11:13 AM, Reinhold Kainhofer wrote:

On 22/01/2012 20:58, Julien Rioux wrote:

Thanks, you're quite right CPU is not the limiting factor for the
build. Disk access and usage of swap when compiling
input/regression/collated-files slows down the build to a crawl for me.


The problem here is that lilypond builds up memory from 400MB to ~1GB
without releasing...
Most of these allocations don't seem to be memory leaks, but rather due
to guile.

Cheers,
Reinhold



Is it a bug? We're talking about lilypond running with the 
-dread-input-files flag here. Once a snippet has been processed and 
lilypond moves on to the next one, there is no reason to hold onto the 
memory used by the previous snippet, right?




Please check the -devel mailing list (e.g. thread "Memleaks or not" last 
August/September), where I already observed this. I fully agree that 
after one file is processed, lilypond should reset to its initial state 
and not need more memory than before.


I have no idea why the memory is going up like it does. To me it doesn't 
look like a classical memleak, but rather somthing with the Guile 
garbage collection...


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: make doc problem

2012-01-26 Thread Reinhold Kainhofer
On 22/01/2012 20:58, Julien Rioux wrote:
> Thanks, you're quite right CPU is not the limiting factor for the
> build. Disk access and usage of swap when compiling
> input/regression/collated-files slows down the build to a crawl for me.

The problem here is that lilypond builds up memory from 400MB to ~1GB
without releasing...
Most of these allocations don't seem to be memory leaks, but rather due
to guile.

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: lilypond-book: Group line-width settings together (issue 2222). (issue 5553056)

2012-01-24 Thread reinhold . kainhofer


http://codereview.appspot.com/5553056/diff/1/python/book_snippets.py
File python/book_snippets.py (left):

http://codereview.appspot.com/5553056/diff/1/python/book_snippets.py#oldcode806
python/book_snippets.py:806: self.ext = os.path.splitext
(os.path.basename (self.filename))[1]
On 2012/01/22 00:08:45, Julien Rioux wrote:

The '.ly' is hardcoded elsewhere already, so that when you
include a .ily, lilypond-book actually writes a lily-.ly file for

it, and

this is what we link to. On the other hand leaving the current code in

leads to

broken links to a lily-.ily file.


What about --use-source-file-names?

http://codereview.appspot.com/5553056/diff/1/python/book_snippets.py
File python/book_snippets.py (right):

http://codereview.appspot.com/5553056/diff/1/python/book_snippets.py#newcode124
python/book_snippets.py:124: line-width = #(- line-width (* mm
%(padding_mm)f) (* mm 1))''',
On 2012/01/22 00:08:45, Julien Rioux wrote:

On 2012/01/21 23:54:36, Reinhold wrote:
> Aren't there cases when neither LINE_WIDTH nor QUOTE is used?



Yes, that's the case for html-inline-no-option.html


I was rather talking about e.g. when the papersize=... snippet option is
used in a texi file... (I think that doesn't work currently, either,
though).


> In that case we don't subtract the padding...



Why would a padding be relevant when there is no specified line width?


The line width is implicitly specified by the paper size.

http://codereview.appspot.com/5553056/

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


Re: lilypond-book: Group line-width settings together (issue 2222). (issue 5553056)

2012-01-21 Thread reinhold . kainhofer

LGTM in general. Some comments though.

Plus: The example in the comment above will now compile, but it will be
missing the additional padding...

Another thing about the hard-coded .ly extension: I would leave the
extension extraction in the file snippet class, so that the base class
sets a default of .ly, but for file snippets the extension will be
extracted from the file name.


http://codereview.appspot.com/5553056/diff/1/python/book_snippets.py
File python/book_snippets.py (left):

http://codereview.appspot.com/5553056/diff/1/python/book_snippets.py#oldcode184
python/book_snippets.py:184: line-width = #(- line-width (* mm
%(padding_mm)f) (* mm 1))
On 2012/01/21 21:18:00, janek wrote:

Ah, so the problem was that sometimes line-width wasn't defined and

thus trying

to adjust it failed?


Yes, the problem is that I don't know of any way to get the default
line-width, because there are cases where line-width is not explicitly
defined in the snippets. In those cases we also need to subtract the
padding...

http://codereview.appspot.com/5553056/diff/1/python/book_snippets.py#oldcode806
python/book_snippets.py:806: self.ext = os.path.splitext
(os.path.basename (self.filename))[1]
Why are you removing a generic statement and hardcoding .ly above? This
will break e.g. if you try to include a .ily file as a snippet!

http://codereview.appspot.com/5553056/diff/1/python/book_snippets.py#oldcode890
python/book_snippets.py:890: return result
On 2012/01/21 19:14:15, Julien Rioux wrote:

...this part.


Yeah, appending the original extension makes more sense (and also works
when you have a compressed .xml file where you explicitly specify
--compress).

http://codereview.appspot.com/5553056/diff/1/python/book_snippets.py
File python/book_snippets.py (right):

http://codereview.appspot.com/5553056/diff/1/python/book_snippets.py#newcode124
python/book_snippets.py:124: line-width = #(- line-width (* mm
%(padding_mm)f) (* mm 1))''',
On 2012/01/21 19:14:15, Julien Rioux wrote:

This fixes the first problem by adjusting line-width directly where it

is

defined.


Aren't there cases when neither LINE_WIDTH nor QUOTE is used? In that
case we don't subtract the padding...

http://codereview.appspot.com/5553056/

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


Re: Add a node prefix to snippets, preventing duplicate node errors (issue 2221). (issue 5541050)

2012-01-13 Thread reinhold . kainhofer

I had tried this very approach a while ago, but there were some
problems. Unfortunately, I can't remember which problems I encountered.

One issue might be that all links to one particular snippet will be
broken with that patch.

If you don't encounter any problems with broken links etc., then I'm
fine with the patch.

http://codereview.appspot.com/5541050/

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


Re: lilypond-book on windows

2012-01-12 Thread Reinhold Kainhofer
On 12/01/2012 09:06, David Kastrup wrote:
> "Trevor Daniels"  writes:
>
>> Trevor Daniels wrote Wednesday, January 11, 2012 6:49 PM
>>
>>> To carry things to their logical conclusion I'm installing MikTeX to
>>> see if it is possible to make Reinhold's code work as intended on
>>> Windows.  Even if it does, I could not recommend downloading
>>> 167Mbytes of MikTeX just to pick up these values automatically.
>> Well, MikTex contains texi2dvi.exe, so I renamed this to texi2pdf.exe
>> and added its directory to the MinGW path.
> You need a TeX distribution anyway to create PDF from lytex files.  And
> if you are not creating print copy there is no point in figuring out a
> line width as it would deliver a result without any meaning (except if
> for some reason you want notes in HTML use the same line breaks as in
> print).  So if lilypond-book fails when creating HTML documentation
> without a TeX distribution, this is a deficiency not just in Windows.

Exactly, and as I said, it is supposed to work without texi2pdf (and/or
a working TeX installation) available.

However, even for HTML we need some kind of line width so that we can
line-break all lilypond snippets. The default fallback value (which
roughly corresponds to A4 with some margins) is an acceptable default
value, so things should look okay in any case.

The problem is just that the subprocess module needs msvcrt on Windows,
but that python as provided by lilypond does not ship that module. I
would rather see this as a packaging problem, or am I seeing something
wrong?

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: lilypond-book on windows

2012-01-11 Thread Reinhold Kainhofer

On 2012-01-11 15:12, Julien Rioux wrote:
One problem that exists here for sure for windows is the definition of 
cmd which include "LC_ALL=C texi2pdf ...". LC_ALL is an environment 
variable that sets the locale. I think this is here to ensure that the 
output from texi2pdf is in English and can be parsed easily.
No, texi2dvi has a nasty bug that will show in certain locales (e.g. in 
German), where any call to texi2dvi will fail, because one regexp is 
incorrect in that case. For that reason, we need to forc texi2dvi to use 
C locale. Search the mailing list a few months back for a short discussion.



Setting environment variables in this way does not work on windows. 
Instead one might add env=something as an argument to the 
subprocess.Popen call.


Okay, if you find a way that works in Linux, too, feel free 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


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


Re: Let \footnote do the job of \footnote, \footnoteGrob, \autoFootnote and \autoFootnoteGrob (issue 5527058)

2012-01-10 Thread reinhold . kainhofer

LGTM.

From a lazy user's POV, I don't like that I now have to use \default for
auto-numbering (which is th typical case)...
But then, one can always define one's own music function that takes care
of that. So no objection from my side.


http://codereview.appspot.com/5527058/diff/1/Documentation/notation/input.itely
File Documentation/notation/input.itely (right):

http://codereview.appspot.com/5527058/diff/1/Documentation/notation/input.itely#newcode1141
Documentation/notation/input.itely:1141: @funindex \footnote
Remove duplicate...

http://codereview.appspot.com/5527058/

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


Re: VirtualBox help

2012-01-04 Thread Reinhold Kainhofer

On 2012-01-04 12:05, m...@apollinemike.com wrote:
Alternatively, if that doesn't work, does anyone know how to recover 
files from a virtual hard drive?
I think you simply want to enlarge the file system to the full 
virtual harddisk size, right?
There's that nice gparted live ISO image, from which you can boot 
your virtual machine (download the iso (~100MB), set it as the 
virtual box's CD drive, change boot order to boot from CD and run 
your virtualbox) and then resize the file system to the full 
available space.


Opens up like a charm, but it seems that my drive is blocked @ 19.42 
gigs (see screen shot) and that I can only fiddle with the swap space. 
 Is this the right thing to do?


You'll have to move (remove) the swap space so that you can enlarge your 
real data partition...


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: VirtualBox help

2012-01-04 Thread Reinhold Kainhofer

On 2012-01-04 09:11, m...@apollinemike.com wrote:

In my GUB installation, my VirtualBox ran out of space and peetered out.
So, I closed my VirtualBox down, resized the hard drive, and tried to boot 
again.


You know, resizing the harddrive (i.e. partition) does not resize the 
filesystem itself.

So your filesystem is still just as full as it was before.

However, it cannot restart (some message about GNOME power something something) 
and I think it's because the disk space is full.  It's not even recognizing my 
root password :-/

Yes, that's a typical sign...


Does anyone know how to do delete files on a VBox from the outside so that I 
can free up space? I know this question is more appropriate for a VirtualBox 
forum, but I figured that one of you may know...


There is a virtualbox-fuse file system, so you can mount a virtual 
harddrive and then delete files there

Alternatively, if that doesn't work, does anyone know how to recover files from 
a virtual hard drive?
I think you simply want to enlarge the file system to the full virtual 
harddisk size, right?
There's that nice gparted live ISO image, from which you can boot your 
virtual machine (download the iso (~100MB), set it as the virtual box's 
CD drive, change boot order to boot from CD and run your virtualbox) and 
then resize the file system to the full available space.


I did exactly that with my WinXP virtual machine and it worked just fine.


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: Give slurs skylines in outside-staff-priority calculations. (issue 5504055)

2011-12-28 Thread Reinhold Kainhofer
On 28/12/2011 11:40, m...@apollinemike.com wrote:
> On Dec 25, 2011, at 10:50 PM, Janek Warchoł wrote:
> Vertical skylines are useful for any object whose height changes appreciably 
> over its horizontal span.  Slurs (sometimes) fall into this category.  
> Accidentals fall into this category as well and have been dealt with 
> similarly (I don't know who wrote the code, but there is code in 
> accidental.cc to get a boxed approximation of an accidental's form).
>
> I am not sure that dynamics and lyrics have subtleties in their shape that 
> could be better approximated by the use of boxes (perhaps dynamics more than 
> lyrics as they are slanted, but I'm dubious of this).
>
> To fix the problem, it'll be necessary to cook up a few minimal examples 
> showing each problem (ideally with lines that can be commented out to trigger 
> the problem).  Once you have this, we'll be able to find the cause rather 
> quickly.  I suspect that the issue arises from too-generous pure height 
> approximations and/or oddities in inter-staff vertical spacing, so boxes are 
> likely not the solution.

Another situation is that center-aligned barnumbers (right-aligned
barnumers simply look ugly for >100 bars) are shifted upwards by the
rectangular box of the treble clef, even though no collision would occur
at all. Simple example is attached.

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

\version "2.15.24"

\relative c'' {
  \override Score.BarNumber #'self-alignment-X = #CENTER
  \repeat unfold 5 { c1 c1 c1 | \break }
}


treble_clef_barnumber.pdf
Description: Adobe PDF document
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Tie LilyPond, lexer and parser together more type-safely. (issue 5501056)

2011-12-21 Thread reinhold . kainhofer

LGTM (looks very much like a code simplification)

http://codereview.appspot.com/5501056/

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


Re: Changes to allow compiling with -Werror using gcc 4.6.2 on i386. (issue 5489092)

2011-12-20 Thread reinhold . kainhofer

Is anyone here using a 64-bit OS? There are ~150 compiler warnings when
compiling lilypond currently (see bug 1890), so -Werror can't be enabled
on 64-bit systems.


http://codereview.appspot.com/5489092/

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


Re: Don't blindly issue the warning (issue 5477087)

2011-12-14 Thread reinhold . kainhofer

LGTM.
In particular, it's a good idea to call communicate() before checking
the returncode, because communicate ensures that the returncode is
set...

http://codereview.appspot.com/5477087/

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


Re: How to add measure counters?

2011-12-09 Thread Reinhold Kainhofer
On Sa., 10. Dez. 2011 00:32:48 CET, Xavier Scheuer  wrote:

> On 12 September 2011 21:03, Reinhold Kainhofer 
> wrote:
> > I'm currently investigating how to implement measure counters (Bug
> > 146): http://code.google.com/p/lilypond/issues/detail?id=146
> 
> Plop, I need a measure counter for the score I'm currently typesetting
> and found this thread again.
> 
> I am just wondering: Reinhold, are you still working on this?

No, I'm currently so short on time that I don't have any time for lilypond.

Cheers,
Reinhold


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


Adds parenthesized measure numbers at mid-bar breaks. (issue 5452057)

2011-12-06 Thread reinhold . kainhofer


http://codereview.appspot.com/5452057/diff/1/lily/bar-number-engraver.cc
File lily/bar-number-engraver.cc (right):

http://codereview.appspot.com/5452057/diff/1/lily/bar-number-engraver.cc#newcode107
lily/bar-number-engraver.cc:107: if (mp.main_part_ != Rational (0))
So, we now always print out the barnumber in parenthesis for mid-measure
breaks. The user has no chance to turn that off?

http://codereview.appspot.com/5452057/diff/1/lily/bar-number-engraver.cc#newcode110
lily/bar-number-engraver.cc:110: maybe_close_paren = ")";
Don't hardcode formatting settings, use a property instead.

http://codereview.appspot.com/5452057/

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


Re: GOP-PROP 13: patch management tools

2011-11-30 Thread Reinhold Kainhofer

On 2011-11-30 23:27, olafbuddenha...@gmx.net wrote:

Having participated in or followed a number of free software projects
(both GNU and other) over the years, I don't know of *any* besides
LilyPond that uses a dedicated patch review tool. (Including the very
largest ones, such as Linux or GCC.) Reviews are done almost exclusively
by email -- and quite frankly, I don't see why anything else would be
preferred for the actual review. The only problem is tracking the status
of patches *afterwards*...


KDE uses reviewboard... Until a few years ago, patch reviews were only 
done for patches by newcomers, and that went over the mailing lists. But 
now more and more features are reviewed on reviewboard.


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: Thinking about another disruptive change

2011-11-15 Thread Reinhold Kainhofer
Am 2011-11-15 10:49, schrieb David Kastrup:
> The "principle of lazy complication" would keep material as simple as
> feasible until a more complicated version is asked for.
>
> That is, when a music function asks for a "scheme?" argument and the
> input is just c', it gets a pitch.  If it asks for a "ly:music?" event,
> it gets a NoteEvent (not an EventChord).  If it asks for an EventChord,
> it gets one.
> [...]
>
> All in all, such a change should make programming and inspecting data
> structures much more straightforward, and particularly save the
> programmer from the "let's see what complex structures Lilypond creates
> from simple input and devise a scheme how to get at the simple things we
> actually wanted" phenomenon.
>
> But it is definitely not going to be an upwards-compatible change.

What will be different for a normal user? I.e. What basic lilypond
notation will change? And what advanced notation will break with that
change?

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: Fixes footnote automatic numbering. (issue 4877041)

2011-11-14 Thread Reinhold Kainhofer

On 2011-11-14 14:24, m...@apollinemike.com wrote:
Reinhold - how did you do the memory profiling on all of the regtests? 
I can figure out how to do it for a single file, but not the regtests 
in succession. This'd help me figure out where/why lilypond is 
fizzling out. 


cd input/regression/
lilypond *.ly

(and then get the values in a separate shell by "ps aux|grep 
lilypond|grep -v grep")


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: Nonfastforwarding push to staging

2011-11-13 Thread Reinhold Kainhofer

On 2011-11-13 20:10, David Kastrup wrote:

It would look somewhat like the following (untested)

#!/bin/sh
case "$1" in refs/heads/dev/*)
exit 0;;
 refs/heads/staging)
if [ $3 == "" ]
then echo "Deleting $1 not permitted.";exit 1
fi
exit 0;;
 *)
if [ $3 == "" ]
then echo "Deleting $1 not permitted.";exit 1
elif [ $2 == "" ]
then echo "Creating $1 not permitted.";exit 1
elif [ "`git rev-list --count $3..$2`" -ne 0 ]
then echo "Only fast forwards allowed on $1";exit 1
fi
exit 0;;
esac


AFAIK, Graham needs to create branches origin/stable/2.xx for each release.
I also don't know whether origin/release/unstable will be 
deleted/recreated by Graham's scripts.


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: 2.15.18 regtests

2011-11-13 Thread Reinhold Kainhofer
On So., 13. Nov. 2011 14:43:28 CET, Peekay Ex  wrote:
> > I seem to recall Reinhold saying something about one of the reg test
> > results I posted in the last two or three days for one of David's more
> > complex checkins about this (I think - I cannot find that post).
> 
> 
> http://code.google.com/p/lilypond/issues/detail?id=2024#c11
> 
> Found it. Is this the same thing Reinhold as what was supposed to be
> fixed in http://code.google.com/p/lilypond/issues/detail?id=1529

Yes, issue 1529 was this very issue. Apparently something doesn't work in this 
case. I'll have to investigate a bit more. But I moved into a new appartement 
last week, so (1) I don't have internet at home yet and (2) I have so many more 
important things to do right now, like unpacking, cleaning etc...

Maybe we should reopen 1529 (assign to me) and link to that discussion.

Cheers,
Reinhold

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


Re: Keep yaffut from attempting to demangle. (issue 5375051)

2011-11-11 Thread Reinhold Kainhofer

On 2011-11-11 09:31, d...@gnu.org wrote:

Remember that yaffut is a cross platform test suite, are things
like c++filt available for MSVC, for example?


Huh?  What concern are the platforms yaffut runs on?  Don't tell me that
Lilypond is one of its main distribution points.  If it is, so much the
better that I added a notice about the change.

The point of importance are the platforms _Lilypond_ runs on.  And it is
not like the test suite will fail without demangling: it just has less
readable output.


If it tries to call an external binary that fails, that's a problem, 
because then make check will fail...
Now, I haven't looked at the patch, so I don't know if the test suite 
will still work if c++filt is not available... In the worst case, we 
need to add a configure check for it.a) don't use demangle but a neutral 
name like "typeformat".


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: Patch series (available at branch dev/syntax) for more argument list power. (issue 5333051)

2011-11-04 Thread reinhold . kainhofer

On 2011/11/03 22:59:52, J_lowe wrote:

Passes make and make check, No reg test diffs.


Is Patch Set 3 the final version, or are the three patch sets
independent patches that need to be applied one after the other??? It
seems that the patch set 3 does not contain many changes from the first
two patch sets.

http://codereview.appspot.com/5333051/

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


Re: Implement \once as music function able to operate on complex stuff. (issue 5322065)

2011-11-03 Thread reinhold . kainhofer


http://codereview.appspot.com/5322065/diff/3001/input/regression/complex-once.ly
File input/regression/complex-once.ly (right):

http://codereview.appspot.com/5322065/diff/3001/input/regression/complex-once.ly#newcode11
input/regression/complex-once.ly:11: \unHideNotes  g a  \once\hideNotes
b c |
While this is the easy approach, it builds on the fact that hideNotes is
internally implemented as a music expression with several \override
commands. If that internal representation ever changes, we won't have a
proper regtest any more...
I would prefer to define the multiple property operations command
explicitly in the regtest, so we have complete control and no risk that
a totally unrelated change might break a regtest (without us even
noticing).

I.e. I would explicitly do
multipleOperations = {
  \override #'NoteHead #'color = #red
  \override #'Stem #'color = #blue
}

and then \once\multipleOperations.

http://codereview.appspot.com/5322065/

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


Implement \once as music function able to operate on complex stuff. (issue 5322065)

2011-11-03 Thread reinhold . kainhofer

LGTM, although regtests are missing (for \once applied to multiple
settings at one, stored in a variable).


http://codereview.appspot.com/5322065/

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


Re: lybook-db etc etc.

2011-10-27 Thread Reinhold Kainhofer

Am 2011-10-26 17:13, schrieb David Kastrup:

Well, I am currently in the process of running make info (similar to
make doc), and this is totally silly.

In my opinion, the whole lybook-db stuff needs to go.  Instead, Lilypond
is run _once_ for all snippets of a lybook source,


Lilypond is currently run _once_ for all snippets. In particular, it is 
called by lilypond-book with snippet-names.* as input file, listing all 
files to process.



generating _one_
PostScript file.  Then GhostScript is run _once_ to generate a bunch of
eps files, or a multi-page PDF file with all graphics in them which get
referenced as needed.


This is a fundamental deviation from how lilypond works currently, and 
it's probably hard to get it right.
Currently, lilypond processes one file after the other in a loop, 
properly cleaning up after each file, and the corresponding backend does 
its job one file at a time.


You are proposing that all backends should be split into two stages, one 
to create the ps files (for the (|e)ps backend at least) and one to 
convert them to pdf/pngs. This does not affect only lilypond-book, but 
lilypond being run on multiple files in general.


What if one file fails to compile? Imagine you are running multiple 
files at once, i.e.

  lilypond file1.ly file2.ly file3.ly file4.ly
and file4.ly contains a syntax error. So far, file1, file2 and file3 
will have been properly processed and finished (i.e. their 
*.pdf/svg/eps/ps/scm output files have been created), only file4 failed.


With your proposal, all already compiles files will have only half of 
the work done, but no PDF created. So basically you will have NO pdf 
output at all for any of the files.



Bleedover of variables/fonts/whatever is not all that crucial since we
are talking about a single document source rather than an immaculate
database.


How does your proposal work with files that e.g. change the scheme 
options, like resolution? (Well, I think this case doesn't work properly 
right now, either, because the option might not be reset after the file 
that sets it, but at least each file can be compiled with different 
settings).



And would definitely simplify the build system.


Actually, it will not simplify the build system that much. All the work 
you are describing is done by lilypond-book, and the build system only 
calls lilypond-book on the list of snippets (with some copying of output 
files, of course, which complicates things; that will be simplified).


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: musicexp.py: Fix for issue 1985 (issue 5303063)

2011-10-24 Thread reinhold . kainhofer

LGTM.

http://codereview.appspot.com/5303063/

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


  1   2   3   4   5   6   7   8   9   10   >