Re: [PATCH] Make some local functions public (was: Re: lily-library.scm question)

2009-06-22 Thread Mark Polesky

Jay Anderson wrote:

> Actually, I like this much better. A couple things:
> - It doesn't handle an empty list as input. Or is an error the correct 
> behavior?
> - I'm not the biggest fan of multiple return values. You could do
> (cons (take lst (1+ i)) (drop lst (1+ i))) instead (unless there are
> efficiencies in the split-at approach).
> - I think (list lst) is clearer than `(,lst).

Thanks Jay,

take/drop seems clearer (and somehow more appropriate) than
call-with-values/split-at. Also thanks for testing '() -- it
slipped my mind during all the srfi excitement. The original
function handles empty lists so we need to keep it in.

Maybe at some point I'll make yet another patch!
- Mark
___

(use-modules (srfi srfi-1))

(define-public (split-at-predicate predicate lst)
  "Split a list into 2 lists at the first element that returns #f for
  (PREDICATE previous_element element). Return the two parts as a pair.
  Example: (split-at-predicate < '(1 2 3 2 1)) ==> ((1 2 3) . (2 1))"
  (if (null? lst)
  (list lst)
  (let ((i (list-index predicate (cdr lst) lst)))
(if i
(cons (take lst (1+ i)) (drop lst (1+ i)))
(list lst)



  


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


2.14 release plans

2009-06-22 Thread Graham Percival
Progress has been slow for the past month.  I'd like to be able to
claim that I'll be getting more done in the next few weeks, but in
all honesty I doubt it.  If anything, I'll be engaged in *more*
household projects, not less.

With that in mind, I think we're looking at 2.14 being at the end
of July at the earliest.  Therefore, I'd like to invite Joe to
merge the new vertical spacing code in the next week or so (or
whenever he feels ready).

I'm also tentatively thinking about pushing to get the website
ready for 2.14.  I still think the English version can be finished
in the next week, which would give the translators a month.  Yes,
the website doesn't need to be introduced at the same time as a
new major version, but I think it'd be cute to do it that way.


Including both these "features" would fit better with the overall
release plan, too: add stuff for the 2.even release, then spend
the next few months fixing issues.  If we don't include the new
vertical spacing in 2.14, then we'll have a lot of pressure to
open up 2.15 as soon as possible, which will result in a 2.14.1,
.2, and *maybe* .3.  Ideally, we'd like to keep 2.14 around for
longer.

After a few days of discussion about this, I'll make a list of
2.14 release issues on the google tracker.

Cheers,
- Graham


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


Re: [PATCH] Make some local functions public (was: Re: lily-library.scm question)

2009-06-22 Thread Jay Anderson
On Mon, Jun 22, 2009 at 6:03 PM, Mark Polesky wrote:
> I know, I know, I just won't let this die. I rewrote this silly
> function yet again (by now it's more of a programming exercise
> than anything else). But the things I've learned from everyone so
> far have found their way into my other LilyPond work, so I don't
> think it's a waste of time.
>
> I discovered 2 procedures from srfi-1 that can work in tandem for
> this: list-index and split-at. I'm left wondering if this is an
> improvement or not. I don't know the implications of use-modules;
> perhaps there's some overhead that I don't know about that isn't
> worth it. Or maybe list-index and split-at are less optimal than
> than Jay's loop-and-reverse solution.
>
> Just wanting to learn...
>
> Thanks,
> Mark
> ___
>
> (use-modules (srfi srfi-1))
>
> (define-public (split-at-predicate predicate lst)
>  "Split a list into 2 lists at the first element that returns #f for
>  (PREDICATE previous_element element). Return the two parts as a pair.
>  Example: (split-at-predicate < '(1 2 3 2 1)) ==> ((1 2 3) . (2 1))"
>  (let ((i (list-index predicate(cdr lst) lst)))
>    (if i
>        (call-with-values (lambda () (split-at lst (1+ i)))
>                          cons)
>        `(,lst
> ___
>

Actually, I like this much better. A couple things:
- It doesn't handle an empty list as input. Or is an error the correct behavior?
- I'm not the biggest fan of multiple return values. You could do
(cons (take lst (1+ i)) (drop lst (1+ i))) instead (unless there are
efficiencies in the split-at approach).
- I think (list lst) is clearer than `(,lst).

-Jay


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


Re: [PATCH] Make some local functions public (was: Re: lily-library.scm question)

2009-06-22 Thread Mark Polesky

Jay Anderson wrote:

> > last-pair is an O(n) operation, since it has to traverse the whole list,
> > making split-at-predicate O(n^2) instead of O(n), as it should be. You'd be
> > better off building L0 backwards and reversing it at the end, so that the
> > element you need is always at the beginning of a list.
>
> Also it should avoid length when a null? check will do. Here's the
> function with those changes:
> 
> (define-public (split-at-predicate predicate lst)
>   "Split a list into 2 lists at the first element that returns #f for
>   (predicate previous_element element). Return the two parts as a pair.
>   Example: (split-at-predicate < '(1 2 3 2 1)) ==> ((1 2 3) . (2 1))"
>   (if (or (null? lst) (null? (cdr lst)))
> (list lst)
> (let loop ((lst-a (list (car lst))) (lst-b (cdr lst)))
>   (cond ((null? lst-b) (list lst))
> ((predicate (car lst-a) (car lst-b))
>   (loop (cons (car lst-b) lst-a) (cdr lst-b)))
> (else (cons (reverse lst-a) lst-b))


I know, I know, I just won't let this die. I rewrote this silly
function yet again (by now it's more of a programming exercise
than anything else). But the things I've learned from everyone so
far have found their way into my other LilyPond work, so I don't
think it's a waste of time.

I discovered 2 procedures from srfi-1 that can work in tandem for
this: list-index and split-at. I'm left wondering if this is an
improvement or not. I don't know the implications of use-modules;
perhaps there's some overhead that I don't know about that isn't
worth it. Or maybe list-index and split-at are less optimal than
than Jay's loop-and-reverse solution.

Just wanting to learn...

Thanks,
Mark
___

(use-modules (srfi srfi-1))

(define-public (split-at-predicate predicate lst)
  "Split a list into 2 lists at the first element that returns #f for
  (PREDICATE previous_element element). Return the two parts as a pair.
  Example: (split-at-predicate < '(1 2 3 2 1)) ==> ((1 2 3) . (2 1))"
  (let ((i (list-index predicate(cdr lst) lst)))
(if i
(call-with-values (lambda () (split-at lst (1+ i)))
  cons)
`(,lst
___

p.s. see the current version for comparison in this post:
http://lists.gnu.org/archive/html/lilypond-devel/2009-06/msg00226.html


  


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


Re: GUB / autoconf out-of-tree builds

2009-06-22 Thread Graham Percival
On Mon, Jun 22, 2009 at 11:23:09AM +0200, Jan Nieuwenhuizen wrote:
> Op woensdag 17-06-2009 om 13:24 uur [tijdzone -0700], schreef Graham
> Percival:
> 
> > I've tracked down the srcdir vs. builddir problem to autoconf.
> 
> Is this now fixed?  It seems that
> 
> > The $(TOPDOC_TXT_FILES) includes RELEASE-COMMIT, which is only
> > created in the builddir, not the srcdir.
> 
> RELEASE-COMMIT is not included in TOPDOC_TXT_FILES in master?

That's what I don't get!  TOPDOC_TXT_FILES is defined as

TOPDOC_TXT_FILES = $(addprefix 
$(top-build-dir)/Documentation/topdocs/$(outdir)/,$(addsuffix 
.txt,$(TOPDOC_FILES)))

and yet a fresh "make lilypond" in gub produces this line:

ln 
/home/lilypond/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-master/ChangeLog
 
/home/lilypond/gub/target/linux-x86/src/lilypond-git.sv.gnu.org--lilypond.git-master/RELEASE-COMMIT
 ...
  (it's a whole screenful of files to be ln'd)

but, as expected, ChangeLog and RELEASE-COMMIT don't exist in the
../src/.. dir.


I've attached the log file.  I just don't know where this "ln"
command is coming from!

Cheers,
- Graham
make -f lilypond.make
make[1]: Entering directory `/home/lilypond/gub'
python bin/gub --platform=linux-x86 
'git://git.sv.gnu.org/lilypond.git?branch=master' 
darwin-ppc::'git://git.sv.gnu.org/lilypond.git?branch=master' 
darwin-x86::'git://git.sv.gnu.org/lilypond.git?branch=master' 
mingw::'git://git.sv.gnu.org/lilypond.git?branch=master' 
linux-64::'git://git.sv.gnu.org/lilypond.git?branch=master' 
linux-ppc::'git://git.sv.gnu.org/lilypond.git?branch=master' 
freebsd-x86::'git://git.sv.gnu.org/lilypond.git?branch=master' 
freebsd-64::'git://git.sv.gnu.org/lilypond.git?branch=master'
calculating dependencies
must rebuild[linux-x86]: linux-ppc::lilypond darwin-x86::lilypond
 *** Stage: pkg_install (cross/gcc-core, linux-x86)

 *** Stage: pkg_install (glibc-core, linux-x86)

 *** Stage: pkg_install (cross/gcc-core, linux-ppc)

 *** Stage: pkg_install (glibc-core, linux-ppc)

 *** Stage: pkg_install (cross/gcc-core, linux-64)

 *** Stage: pkg_install (glibc-core, linux-64)

building package: linux-ppc::lilypond
 *** Stage: compile (lilypond, linux-ppc)
 *** Stage: install (lilypond, linux-ppc)
 *** Stage: package (lilypond, linux-ppc)
 *** Stage: clean (lilypond, linux-ppc)
 *** Stage: pkg_install (lilypond, linux-ppc)

building package: darwin-x86::lilypond
 *** Stage: untar (lilypond, darwin-x86)
 *** Stage: patch (lilypond, darwin-x86)
 *** Stage: autoupdate (lilypond, darwin-x86)
 *** Stage: configure (lilypond, darwin-x86)
 *** Stage: compile (lilypond, darwin-x86)
 *** Stage: install (lilypond, darwin-x86)
 *** Stage: package (lilypond, darwin-x86)
 *** Stage: clean (lilypond, darwin-x86)
 *** Stage: pkg_install (lilypond, darwin-x86)

done
  cross/gcc conflicts with cross/gcc-core
non-core cross/gcc already installed
  skipping request to install cross/gcc-core
  cross/gcc-doc conflicts with cross/gcc-core
non-core cross/gcc already installed
  skipping request to install cross/gcc-core
  cross/gcc-runtime conflicts with cross/gcc-core
non-core cross/gcc already installed
  skipping request to install cross/gcc-core
  glibc conflicts with glibc-core
non-core glibc already installed
  skipping request to install glibc-core
  glibc-doc conflicts with glibc-core
non-core glibc already installed
  skipping request to install glibc-core
  cross/gcc conflicts with cross/gcc-core
non-core cross/gcc already installed
  skipping request to install cross/gcc-core
  cross/gcc-doc conflicts with cross/gcc-core
non-core cross/gcc already installed
  skipping request to install cross/gcc-core
  cross/gcc-runtime conflicts with cross/gcc-core
non-core cross/gcc already installed
  skipping request to install cross/gcc-core
  glibc conflicts with glibc-core
non-core glibc already installed
  skipping request to install glibc-core
  glibc-doc conflicts with glibc-core
non-core glibc already installed
  skipping request to install glibc-core
  cross/gcc conflicts with cross/gcc-core
non-core cross/gcc already installed
  skipping request to install cross/gcc-core
  cross/gcc-doc conflicts with cross/gcc-core
non-core cross/gcc already installed
  skipping request to install cross/gcc-core
  cross/gcc-runtime conflicts with cross/gcc-core
non-core cross/gcc already installed
  skipping request to install cross/gcc-core
  glibc conflicts with glibc-core
non-core glibc already installed
  skipping request to install glibc-core
  glibc-doc conflicts with glibc-core
non-core glibc already installed
  skipping request to install glibc-core
python bin/gib --platform=linux-x86  
--branch=lilypond=git.sv.gnu.org--lilypond.git-master  lilypond &&  python 
bin/gib --platform=darwin-ppc  
--branch=lilypond=git.sv.gnu.org--lilypond.git-master  lilypond &&  python 
bin/gib --platform=darwin-x86  
--branch=lilypo

Re: guile sandbox without guile

2009-06-22 Thread Graham Percival
On Mon, Jun 22, 2009 at 08:58:31AM +0100, Trevor Daniels wrote:
>
> Graham, should these be in the CG too?  They are
> helpful to Windows users developing Scheme code.

If they are going to be in the LM B, then merely put a @ref{} in
the CG.


I'd like to claim that the iambic pentameter was unintentional,
but I was still two syllabels short in the second clause when I
was about to post it.  So I spent a minute revising it.  :)

Cheers,
- Graham


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


Re: development on windows

2009-06-22 Thread T. Wilkinson

Graham,

Yes, I have used VMWare before, but only very very briefly.  I'm 
downloading the `lilybuntu' iso at the moment, and will get back to you 
after I have managed to run it  (I'll keep a note of all my steps in 
case anyone wants to repeat after me...).


Tim W.



Graham Percival wrote:

On Fri, Jun 05, 2009 at 05:20:55PM -0500, Jonathan Kulp wrote:
  

Thanks Graham. There was a ton of stuff owned by root in the lybook-db/
directory. I tried your command to xarg rm -rf but it said permission denied
(even though I did it as sudo and typed the password).



Oh yeah... IIRC if you do
  sudo fidn . blah | xargs
then the xargs is evaluated as your normal user account.  I'd have
done a sudo bash, but changing the permissions with chown is also
fine.

  

What I don't understand is how the permissions got jacked up in
the first place. I didn't do anything different this time than I
usually do.  I've never had the permissions problem before.
Maybe I put a "sudo" in there inadvertently but I don't recall
doing any sudos until "sudo make install." Do you think that was
the problem?



Yes, I'm sure that's it.  It's just possible that "make" failed on
some file(s), and when you tried "sudo make install" it
successfully built those files.

  

Re: the lilybuntu remix, I've removed a ton of applications but
I can't get the .iso image below 853 MB. I'll try it with the
xfce desktop and if that doesn't help I'll try it with
ubuntu-lite, which does not yet have a stable release but is
only 356 MB on the live CD, leaving plenty of room to add the
lilypond build dependencies.



It would be nice if it were 500 megs or so, but until/unless
somebody is actually using it, I'm not certain it's worth the
effort to reduce the 853 MB further.


Tim, have you used VMware before?  This should allow you to
compile LilyPond inside a virtual machine.  I'm not certain what
the best way is to transfer the iso from Jonathan to you, though.

Cheers,
- Graham


  




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


Re: is Score.LyricText really a bad syntax?

2009-06-22 Thread Mark Polesky

James E. Bailey wrote:
> I don't know where in the documentation this is...

It's in Trevor's patch from 9 hours ago:
http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=blobdiff;f=Documentation/user/input.itely;h=2bf35cf51d0bc7c938bf148ae271f9acc341b075;hp=b20cc4ebf33679d5fe13165e64dc2c9c3e8a7a7f;hb=0d1d63151f21a3b3af3ec01aad3908562fba11e0;hpb=d511b69c1cb8836bc0b7b49b9f396cf06fef19ac

> ...but Lyrics Explained (2.1.2) explains why this particular
> (i.e., LyricText) example is necessary.
> Incidentally, just trying it shows that it's necessary...

I see my mistake... it's only in \lyricmode. Trevor's patch is
actually clearly worded; I'm just not used to reading texinfo.
If I had carefully observed the hierarchy of @item commands,
I would have understood.

+...@item Around every opening and closing curly bracket.
+...@item After every command or variable, i.e. every item that
+begins with a @code{\} sign.
+...@item After every item that is to be interpreted as a Scheme
+expression, i.e. every item that begins with a @code{#} sign.
+...@item To separate all elements of a Scheme expression.
+...@item In @code{lyricmode} to separate all the terms in both
+...@code{\override} and @code{\set} commands.  In particular, spaces
+must be used around the dot and the equals sign in commands like
+...@code{\override Score . LyricText #'font-size = #5} and before and
+after the entire command.

Sorry for the noise.
- Mark



  


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


Re: is Score.LyricText really a bad syntax?

2009-06-22 Thread James E. Bailey


On 22.06.2009, at 19:17, Mark Polesky wrote:



In particular, spaces
must be used around the dot and the equals sign in commands like
@code{\override Score . LyricText #'font-size = #5} and before and
after the entire command.

Really? What's the risk of doing Score.LyricText? Non-spaced
context.grob dots are all over the docs; do we need to change
them?
http://kainhofer.com/~lilypond/Documentation/user/lilypond/Overview- 
of-modifying-properties.html


- Mark




I don't know where in the documentation this is, but Lyrics Explained  
(2.1.2) explains why this particular (i.e., LyricText) example is  
necessary.

Incidentally, just trying it shows that it's necessary:

\version "2.12.2"

Melody = \new Voice = melody { b a g b }

Words = \new Lyrics \lyricmode { \override Score . LyricText #'font- 
shape = #'italic These are the words }


badWords = \new Lyrics \lyricmode { \override Score.LyricText #'font- 
shape = #'italic These are the words }


\score { << \Melody \lyricsto melody \Words >> }
\score { << \Melody \lyricsto melody << \badWords >> >> }

James E. Bailey



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


is Score.LyricText really a bad syntax?

2009-06-22 Thread Mark Polesky

In particular, spaces
must be used around the dot and the equals sign in commands like
@code{\override Score . LyricText #'font-size = #5} and before and
after the entire command.

Really? What's the risk of doing Score.LyricText? Non-spaced
context.grob dots are all over the docs; do we need to change
them?
http://kainhofer.com/~lilypond/Documentation/user/lilypond/Overview-of-modifying-properties.html

- Mark



  


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


Re: I want to develop automatic lyric contraction

2009-06-22 Thread Bertalan Fodor (LilyPondTool)

Han-Wen Nienhuys wrote:

On Mon, Jun 22, 2009 at 9:25 AM, Bertalan Fodor
(LilyPondTool) wrote:
  

I'd like to dig myself into the C++ source of LilyPond.
I have a long-wished feature, for support automatic lyric contraction.
That means the following:
When there is not enough space for a hyphen to appear, the hyphen is
removed. Like instead of "yeah - yeah - yeah", "yeah yeah yeah". In these
cases I would like LilyPond to automatically contract it to "yeahyeah -
yeah", moving the syllables, taking kerning into account.

Do you think it is feasible without major rewrite? I do see some callback to
the lyric syllable in the hyphen engraver, but I'm not sure about it.



I think it would be a difficult to implement.  You'd have to replace
the hyphen code and write code that checks the distance between this
syllable and the next; if that distance is too small, it would remove
or make transparent the following syllable, and change the text of the
1st to be the contracted version.

There are some other hairy issues: in general, any contraction can
change the spelling of a word, so what happens if you have


   a -  b - c - d - e

and it is set very tightly?  Any contraction change the spelling of
any syllable (and the space it takes up), so how do you decide between
contracting

  aB - c - d - e

and

  a - b - Cd - e

first?

the changed spelling may alter the size of the word, and may trigger
another round of contractions.

  
I'd go one syllable by one. Also, I would not allow automatic change of 
spelling - that is generally impossible without a full hyphenation 
engine with dictionary (even in those cases it often mistakes), so the 
user would have to explicitly set spell-changing upon contraction. I can 
hardly imagine cases when the respelling results in more space, but 
certainly that would call for some handling - but that could be solved 
by the user by setting the minimum-distance in those places.


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


Re: I want to develop automatic lyric contraction

2009-06-22 Thread Han-Wen Nienhuys
On Mon, Jun 22, 2009 at 9:25 AM, Bertalan Fodor
(LilyPondTool) wrote:
> I'd like to dig myself into the C++ source of LilyPond.
> I have a long-wished feature, for support automatic lyric contraction.
> That means the following:
> When there is not enough space for a hyphen to appear, the hyphen is
> removed. Like instead of "yeah - yeah - yeah", "yeah yeah yeah". In these
> cases I would like LilyPond to automatically contract it to "yeahyeah -
> yeah", moving the syllables, taking kerning into account.
>
> Do you think it is feasible without major rewrite? I do see some callback to
> the lyric syllable in the hyphen engraver, but I'm not sure about it.

I think it would be a difficult to implement.  You'd have to replace
the hyphen code and write code that checks the distance between this
syllable and the next; if that distance is too small, it would remove
or make transparent the following syllable, and change the text of the
1st to be the contracted version.

There are some other hairy issues: in general, any contraction can
change the spelling of a word, so what happens if you have


   a -  b - c - d - e

and it is set very tightly?  Any contraction change the spelling of
any syllable (and the space it takes up), so how do you decide between
contracting

  aB - c - d - e

and

  a - b - Cd - e

first?

the changed spelling may alter the size of the word, and may trigger
another round of contractions.

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


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


Re: I want to develop automatic lyric contraction

2009-06-22 Thread Bertalan Fodor (LilyPondTool)
Generally I would fix the first syllable's position (leaving it as it 
is), and then move the following ones closer to the first. I believe 
this would always produce pleasant results, as if one of the last 
syllables would go too early, then it would be still long enough to 
remain under the corresponding note (because if it weren't long, then it 
wouldn't make the hyphen disappear in normal spacing.)
However, there should be a way to change the first syllable's position, 
because in the hand-engraved scores I looked at, they often follow 
special rules: generally a syllable has 3 letters, it is centered under 
the note, but a 2 letter syllable is aligned to the left side of the 
note. So if you have a word with 2 syllables, like money, then in 
contraction ney will still be centered under its note, but mo will be 
moved to the right. But this is not general rule, so I think it would be 
enought to make sure there is a property, which in contraction 
situations would allow me to override the default spacing.


Bert

Mats Bengtsson wrote:



Bertalan Fodor (LilyPondTool) wrote:

Hi,

I'd like to dig myself into the C++ source of LilyPond.
I have a long-wished feature, for support automatic lyric contraction.
That means the following:
When there is not enough space for a hyphen to appear, the hyphen is 
removed. Like instead of "yeah - yeah - yeah", "yeah yeah yeah". In 
these cases I would like LilyPond to automatically contract it to 
"yeahyeah - yeah", moving the syllables, taking kerning into account.

How would this contracted syllable be aligned to the two note heads?

  /Mats






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


Re: I want to develop automatic lyric contraction

2009-06-22 Thread Mats Bengtsson



Bertalan Fodor (LilyPondTool) wrote:

Hi,

I'd like to dig myself into the C++ source of LilyPond.
I have a long-wished feature, for support automatic lyric contraction.
That means the following:
When there is not enough space for a hyphen to appear, the hyphen is 
removed. Like instead of "yeah - yeah - yeah", "yeah yeah yeah". In 
these cases I would like LilyPond to automatically contract it to 
"yeahyeah - yeah", moving the syllables, taking kerning into account.

How would this contracted syllable be aligned to the two note heads?

  /Mats


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


Re: RFC: new vertical layout engine

2009-06-22 Thread Joe Neeman
A quick update on the new vertical spacing: the version now in dev/jneeman
has most of the features that I had planned (although there are still lots
of loose ends to tie up). In particular, you can

- space staves in groups using
\override StaffGroup.StaffGrouper #'after-last-staff-spacing = #'((space .
50) (stretchability . 2))

- change the alignment of lyrics (for example) with
\override Lyrics.VerticalAxisGroup #'staff-affinity = #DOWN

- adjust the position of the top staff using first-system-spacing in the
paper block

I haven't yet done Andrew's request to stretch the last page with the same
force as the previous page.

Anything I've missed?

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


Re: FW: [frogs] Re: Patching the output file naming code (Was: thanks to whomever put this in the LSR...)

2009-06-22 Thread Ian Hulin

Thanks, Mats, for some useful input.

Mats Bengtsson wrote:
For PDF output, please remember that you get a single PDF for each 
\book{} block, so

in that case there's no reason to do the setting per \score or \bookpart.
However, for MIDI the situation is different, since you get a separate 
MIDI file for each
\score block, so for this reason it makes to allow for separate settings 
in \paper and \midi.
However, it would also make sense that the setting done for the PDF file 
name also is used

as the default prefix for the MIDI files, right?

Not quite, the base name and the output-prefix setting are two different 
things.

I'd like to be able to do this:
In source file mozk165.ly
\paper{
%% or this could be specified in the --output command-line 		 
  %%argument

output-base="Exsultate"
%%
}
\bookpart
{
\header {
   subtitle = "I. Allegro"
}
\score {
\layout {
}
\midi {
output-suffix = "Allegro"
}
... the actual music
}
}
\bookpart
{
\header {
   subtitle = "II. Andante"
}
\score {
\layout {
}
\midi {
output-suffix = "Andante"
}
... the actual music
}
}
\bookpart
{
\header {
   subtitle = "III. Vivace"
}
\score {
\layout {
}
\midi {
output-suffix = "Vivace"
}
... the actual music
}
}

Would give Exsultate.pdf, and
Exsultate-Allegro.mid(i)
Exsultate-Andante.mid(i)
Exsultate-Vivace.mid(i)

Without the \paper{output-base="Exsultate"} or --outfile=Exsultate 
command-line option it

Would give mozk165.pdf, and
mozk165-Allegro.mid(i)
mozk165-Andante.mid(i)
mozk165-Vivace.mid(i)


However, until someone gives me a steer as to how to pick up and set the 
properties in the relevant block I'm stuck.  Here's why.


I know the Scheme code supporting \fromproperty does

define-builtin-markup-command (fromproperty layout props symbol)
  (symbol?)
  other
  ()
 ...
  (let ((m (chain-assoc-get symbol props)))
;...;
(if (markup? m)
(interpret-markup layout props m)
empty-stencil)))
.
.
.


but I've got this available
(define (print-book-with parser book process-procedure)
  (let*
  ((paper (ly:parser-lookup parser '$defaultpaper))
   (layout (ly:parser-lookup parser '$defaultlayout))
   (base (ly:parser-output-name parser))

I can pass in the paper, layout blocks (or even the midi if I add the 
call to get the '$defaultmidi value )  to my procedure to generate the 
output name, but how do I get hold of a properties block

so I could do something like this in my get-output-name code.
(let* ((pfile chain-assoc-get paper:output-base  props base ))
  ((mfile chain-assoc-get midi:output-suffix props pfile)))

Hmmm... looks like I need to maintain two alists, one for the "main" 
output filename and one for the midi files.


Do we have any other entities in lily that are liable to produce an 
output file for each \score block in the source file?



Apologies for the lousy Scheme but I'm still learning.

If anyone can help out I'll buy you a virtual pint :=).

Cheers,
Ian Hulin


   /Mats

Carl D. Sorensen wrote:

And here's Graham's reply about where the filenames should go.

I second his opinion that it ought to be in \paper for the printed 
output.


By symmetry, it would seem that that drives us to needing to include 
it in

\midi for the midi output.

Declaring the file name twice seems to be unseemly, but I can't think 
of a

better way to do it.

Carl


-- Forwarded Message
From: Graham Percival 
Reply-To: 
Date: Sun, 21 Jun 2009 00:25:45 -0600
To: 
Cc: Reinhold Kainhofer 
Conversation: [frogs] Re: Patching the output file naming code (Was: 
thanks

to whomever  put this in the LSR...)
Subject: Re: [frogs] Re: Patching the output file naming code (Was: 
thanks

to whomever  put this in the LSR...)

On Sun, Jun 21, 2009 at 12:25:42AM +0100, Ian Hulin wrote:
 

Is \paper the right place to put properties relating to output
filenames, or should it be property of \score itself?



IMO it should be in \paper, but I suppose that it could be useful
in \midi as well.  It doesn't feel right to have this in \score.

Cheers,
- Graham

---


Join the Frogs!


-- End of Forwarded Message



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






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


Re: lilypond vs. GNU/LilyPond

2009-06-22 Thread Han-Wen Nienhuys
On Mon, Jun 22, 2009 at 2:12 AM, Graham
Percival wrote:
> On the new website, I'm following the previous website which
> simply wrote "LilyPond".  Does anybody want to make a strong case
> in favor of replacing this with "GNU/LilyPond" everywhere?

If you want that, write GNU LilyPond, without the slash.  I am not
very fond of the moniker though, and think just 'LilyPond' is easier
to read and looks.

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


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


I want to develop automatic lyric contraction

2009-06-22 Thread Bertalan Fodor (LilyPondTool)

Hi,

I'd like to dig myself into the C++ source of LilyPond.
I have a long-wished feature, for support automatic lyric contraction.
That means the following:
When there is not enough space for a hyphen to appear, the hyphen is 
removed. Like instead of "yeah - yeah - yeah", "yeah yeah yeah". In 
these cases I would like LilyPond to automatically contract it to 
"yeahyeah - yeah", moving the syllables, taking kerning into account.


Do you think it is feasible without major rewrite? I do see some 
callback to the lyric syllable in the hyphen engraver, but I'm not sure 
about it.


(Also, for some languages contraction would change the spelling, e.g. in 
German c-k may become kk, Hungarian sz-sz becomes ssz.  But that's 
another story.)


Bert



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


Re: GUB / autoconf out-of-tree builds

2009-06-22 Thread Jan Nieuwenhuizen
Op woensdag 17-06-2009 om 13:24 uur [tijdzone -0700], schreef Graham
Percival:

> I've tracked down the srcdir vs. builddir problem to autoconf.

Is this now fixed?  It seems that

> The $(TOPDOC_TXT_FILES) includes RELEASE-COMMIT, which is only
> created in the builddir, not the srcdir.

RELEASE-COMMIT is not included in TOPDOC_TXT_FILES in master?

Greetings,
Jan.

-- 
Jan Nieuwenhuizen  | GNU LilyPond - The music typesetter
Avatar®: http://AvatarAcademy.nl| http://lilypond.org



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


Re: GUB test-lily/dist-check.py looking at src/ instead of build/ ?

2009-06-22 Thread Jan Nieuwenhuizen
Op maandag 15-06-2009 om 09:59 uur [tijdzone -0300], schreef Han-Wen
Nienhuys:

> correct. I think RELEASE-COMMIT is a new feature and has not been
> debugged properly.

That's right.

Jan.

-- 
Jan Nieuwenhuizen  | GNU LilyPond - The music typesetter
Avatar®: http://AvatarAcademy.nl| http://lilypond.org



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


Re: ppppp but no fffff

2009-06-22 Thread Mats Bengtsson



Graham Percival wrote:



 on the last page of book 2 of the Ligeti etudes.



Sweet Mao...!

  

Not that I condone that sort of ridiculous notation.



Yeah, me neither.  And if somebody really wants that, they can
look at dynamic-init.ly and figure out how to force lilypond to do
that themselves.  :)
  

Why not refer to the Notation Reference?   ;-)
http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Attached-to-notes#New-dynamic-marks

  /Mats




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


Re: [trivial patch] GUB avoid warning message

2009-06-22 Thread Jan Nieuwenhuizen
Op vrijdag 12-06-2009 om 00:44 uur [tijdzone -0300], schreef Han-Wen
Nienhuys:

[I am top posting :-) ]

Applied.

> LGTM.
> 
> On Thu, Jun 11, 2009 at 2:31 PM, Graham
> Percival wrote:
> > Trivial patch to avoid so much clutter in the log files.
> >
> > Cheers,
> > - Graham
> >
> >
> >
> > ___
> > lilypond-devel mailing list
> > lilypond-devel@gnu.org
> > http://lists.gnu.org/mailman/listinfo/lilypond-devel
> >
> >
> 
> 
> 
-- 
Jan Nieuwenhuizen  | GNU LilyPond - The music typesetter
Avatar®: http://AvatarAcademy.nl| http://lilypond.org



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


Re: FW: [frogs] Re: Patching the output file naming code (Was: thanks to whomever put this in the LSR...)

2009-06-22 Thread Mats Bengtsson
For PDF output, please remember that you get a single PDF for each 
\book{} block, so

in that case there's no reason to do the setting per \score or \bookpart.
However, for MIDI the situation is different, since you get a separate 
MIDI file for each
\score block, so for this reason it makes to allow for separate settings 
in \paper and \midi.
However, it would also make sense that the setting done for the PDF file 
name also is used

as the default prefix for the MIDI files, right?

   /Mats

Carl D. Sorensen wrote:

And here's Graham's reply about where the filenames should go.

I second his opinion that it ought to be in \paper for the printed output.

By symmetry, it would seem that that drives us to needing to include it in
\midi for the midi output.

Declaring the file name twice seems to be unseemly, but I can't think of a
better way to do it.

Carl


-- Forwarded Message
From: Graham Percival 
Reply-To: 
Date: Sun, 21 Jun 2009 00:25:45 -0600
To: 
Cc: Reinhold Kainhofer 
Conversation: [frogs] Re: Patching the output file naming code (Was: thanks
to whomever  put this in the LSR...)
Subject: Re: [frogs] Re: Patching the output file naming code (Was: thanks
to whomever  put this in the LSR...)

On Sun, Jun 21, 2009 at 12:25:42AM +0100, Ian Hulin wrote:
  

Is \paper the right place to put properties relating to output
filenames, or should it be property of \score itself?



IMO it should be in \paper, but I suppose that it could be useful
in \midi as well.  It doesn't feel right to have this in \score.

Cheers,
- Graham

---


Join the Frogs!


-- End of Forwarded Message



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


--
=
Mats Bengtsson
Signal Processing
School of Electrical Engineering
Royal Institute of Technology (KTH)
SE-100 44  STOCKHOLM
Sweden
Phone: (+46) 8 790 8463 
   Fax:   (+46) 8 790 7260
Email: mats.bengts...@ee.kth.se
WWW: http://www.s3.kth.se/~mabe
=



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


Re: guile sandbox without guile

2009-06-22 Thread Mark Polesky

Trevor Daniels wrote:

> Mark, do you want to make a patch for the changes
> to LM B which you want to see, or shall I extract
> some changes from your note and the various comments?
> If you do it, I think we should document both of
> these methods for Windows (or three, if we mention
> git bash).

You know, I don't what's come over me recently. I've
been doing so much LilyPonding. I have so many different
lily-projects going on at the same time, I don't know
how I'll get all of them done! I'll get around to this
eventually, of course, but if you're in the mood to
offer, I'm in the mood to accept! Should be pretty easy,
I think the devcom was pretty clear this time.

I'll try to help out however I can.
- Mark



  


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


Re: guile sandbox without guile

2009-06-22 Thread Bertalan Fodor (LilyPondTool)

I played a bit with jEdit's console:

In jEdit Console plugin you need to add

%set GUILE_LOAD_PATH "g:\program files\lilypond\usr\share\guile\1.8"

and then you can start guile from the System Shell.
Unfortunately the LilyPond shell doesn't support the #(top-repl) 
discussed in 
http://lilypond.org/doc/v2.13/Documentation/devel/contrib-guide/Debugging-LilyPond#Debugging-LilyPond


So if you want the guile prompt you need to start LilyPond from the 
system shell, but not from the bin directory (I don't why it happens, 
that when you start lilypond.exe from its directory, it doesn't start):


G:\> "g:\Program Files\LilyPond\usr\bin\lilypond" ${f}

(${f} is substituted automatically with the current buffer's path)


Trevor Daniels wrote:


Henning Plumeyer Sunday, June 21, 2009 8:53 PM



Am 21.06.2009, 02:31 Uhr, schrieb Neil Puttock :

I also tried that with no success.  Having read the Guile manual, I
thought adding the environment variable GUILE_LOAD_PATH=C:\Program
Files\LilyPond might work, but it doesn't have any effect.


I have an environment variable

GUILE_LOAD_PATH=D:\Programme\LilyPond\usr\share\guile\1.8

and guile works from inside the command prompt and from "Run"


Yes, this (or rather the equivalent location on
my system) works fine on Vista too.  Seems like
we have two reliable ways of making guile work
under Windows now.

Mark, do you want to make a patch for the changes
to LM B which you want to see, or shall I extract
some changes from your note and the various comments?
If you do it, I think we should document both of
these methods for Windows (or three, if we mention
git bash).

Graham, should these be in the CG too?  They are
helpful to Windows users developing Scheme code.

Trevor



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






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


Re: lilypond vs. GNU/LilyPond

2009-06-22 Thread Mark Polesky

Bertalan Fodor wrote:

> > On the new website, I'm following the previous website
> > which simply wrote "LilyPond".  Does anybody want to make
> > a strong case in favor of replacing this with "GNU/LilyPond"
> > everywhere?
> >
> > (or maybe just once or twice, in the intro or something like
> > that?)
>
> I hope nobody. For a potential user, the term GNU is
> incomprehensible.

I think that's exaggerated. It's kind of like the D.C. in
Washington, D.C. Most people don't know what it stands for, and
nobody *ever* guesses correctly. On the surface, it seems
completely unrelated to the city, the country, the capital, 
anything. You either know it or you don't. And if you don't, you
look it up and say, "huh". All the same, it's the official name.

GNU is what it is. It's not Unix, and if putting GNU on our
homepage gets a tiny fraction of people a tiny bit more curious
about free software, that's not a bad thing, IMO. Perhaps some
people will be turned by a strangely pronounced word, but they'll
eventually come back when their friends and colleagues eventually
convince them that GNU LilyPond is not just an anachronistic
image. We shouldn't be ashamed of our GNU heritage.

I don't think GNU is incomprehensible, it's just self-referential,
programmer style. PHP is another good example, it used to stand 
for something reasonable, but then they *officially* changed it to
stand for PHP Hypertext Preprocessor. It's like foo and bar, and
hello world, and counting from 0. Programmers have a culture of
quirks, and self-referential acronyms are par for the course. 

Some GNU-friendly GNU-package webpages:

http://www.gnu.org/software/3dldf/LDF.html
http://www.gnu.org/software/anubis/
http://aspell.net/

Plenty of GNU projects unabashedly keep the GNU in their title.

GCC - GNU Compiler Collection
GCL - GNU Common Lisp
GIFT - GNU Image Finding Tool
GIMP - GNU image manipulation program
GLPK - GNU Linear Programming Kit
GLUE - GNU Links Users Everywhere
GLib - GNU library

etc.

Maybe we should start calling it GnilyPond... or maybe we should
put a picture of a gnu cooling off at a lily pond.

By the way, do you know what most people guess D.C. to stand for?
Da Capital. Seriously. We either know it or we're hopeless.

- Mark



  


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


Re: guile sandbox without guile

2009-06-22 Thread Trevor Daniels


Henning Plumeyer Sunday, June 21, 2009 8:53 PM


Am 21.06.2009, 02:31 Uhr, schrieb Neil Puttock 
:
I also tried that with no success.  Having read the Guile manual, 
I
thought adding the environment variable 
GUILE_LOAD_PATH=C:\Program

Files\LilyPond might work, but it doesn't have any effect.


I have an environment variable

GUILE_LOAD_PATH=D:\Programme\LilyPond\usr\share\guile\1.8

and guile works from inside the command prompt and from "Run"


Yes, this (or rather the equivalent location on
my system) works fine on Vista too.  Seems like
we have two reliable ways of making guile work
under Windows now.

Mark, do you want to make a patch for the changes
to LM B which you want to see, or shall I extract
some changes from your note and the various comments?
If you do it, I think we should document both of
these methods for Windows (or three, if we mention
git bash).

Graham, should these be in the CG too?  They are
helpful to Windows users developing Scheme code.

Trevor



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


Re: new lilypond repos

2009-06-22 Thread Francisco Vila
2009/6/22 Patrick McCarty :
>> That would be nice, but I have no clue where the windows lilypad
>> code is.  Until/unless they get merged, I favor keeping "macos" in
>> the name, since it *is* specifically for osx.
>
> I have found 4 different LilyPad sources: 3 for Mac and 1 for Windows.
> The URLs are below.
>
> Windows:
> http://lilypond.org/download/gub-sources/lilypad/


There are open bugs asking for improving Windows Lilypad. Whatever
surprising it is a source tarball and not a git tree, to ease its
developing I suggest to put it in git. I vaguely remember to have
submitted patches against it, in a further date to that of the
aforementioned link.
-- 
Francisco Vila. Badajoz (Spain)
www.paconet.org


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


Re: lilypond vs. GNU/LilyPond

2009-06-22 Thread Francisco Vila
2009/6/22 Graham Percival :
> On the new website, I'm following the previous website which
> simply wrote "LilyPond".  Does anybody want to make a strong case
> in favor of replacing this with "GNU/LilyPond" everywhere?

If you are talking by similarness with GNU/Linux against Linux, it's
not the same case. GNU is an operative system and Linux is its kernel.
The complete system with its kernel included is GNU/Linux. But Linux
is not GNU software.

An example of the GNU operative system with a different kernel was the
GNU/Hurd project. If any among you think that the kernel makes the
operative system and GNU plays no role in a Linux system, think again.
Linux is _nothing_ without the GNU system around it (well maybe
embedded systems like smartphones and the like do not have GNU into
them, I'm not sure).

LilyPond is GNU software. The first times we talk about it we should
name it as GNU[space]LilyPond, then LilyPond for short.

> (or maybe just once or twice, in the intro or something like that?)

Yes, IMO

-- 
Francisco Vila. Badajoz (Spain)
www.paconet.org


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