Re: sponsorship offer: \lyricsto with \partcombine

2006-09-14 Thread Erik Sandberg
Citerar Ted Walther [EMAIL PROTECTED]:

 To typeset hymns with the same high quality that lilypond brings to
 other areas of music typesetting, I need to be able to use \lyricsto
 with \partcombine.

What exactly do you want to do?

If you want to align one lyric line to one voice, and another lyric line to
another voice, then you can do something like:

\partcombine \sopNotes \altoNotes
\new Devnull=sop \sopNotes
\lyricsto sop \sopLyrics
\new Devnull=alto \altoNotes
\lyricsto alto \altoLyrics


 Also, what would it cost to make the chord-threshold variable in
 part-combiner.scm/dtermine-split-list be settable inside a .ly file?

A rewrite of partcombiner is on the todo.

You can copy all the code from part-combiner.scm into your ly file, all you need
to do is to add a # before each toplevel expression to make lily understand it.
(you'll also have to re-define \partcombine etc. to make them use the new
definitions)

Erik



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


Re: sponsorship offer: \lyricsto with \partcombine

2006-09-14 Thread Mats Bengtsson

The problem is the alignment (centered or not) of syllables to note heads.
Compare the 2nd and 4th line of lyrics in the following example:


textI = \lyricmode {a4 bb ccc ddd }
textII = \lyricmode {eee fff gg h }

music = \relative c'{c d e f}

\score{

 \new Voice = m \music
 \new Lyrics \lyricsto m \textI
 \new Lyrics \lyricsto m \textII
 \new Devnull = dn \music
 \new Lyrics \lyricsto dn \textI
 \new Lyrics \lyricsto dn \textII
%  \new Lyrics \textI
%  \new Lyrics \textII
%  \new Lyrics {\set associatedVoice = m \textI }
%  \new Lyrics {\set associatedVoice = m \textII }

}

\layout{ragged-right = ##t }

  /Mats
Erik Sandberg wrote:

Citerar Ted Walther [EMAIL PROTECTED]:

  

To typeset hymns with the same high quality that lilypond brings to
other areas of music typesetting, I need to be able to use \lyricsto
with \partcombine.



What exactly do you want to do?

If you want to align one lyric line to one voice, and another lyric line to
another voice, then you can do something like:

\partcombine \sopNotes \altoNotes
\new Devnull=sop \sopNotes
\lyricsto sop \sopLyrics
\new Devnull=alto \altoNotes
\lyricsto alto \altoLyrics
  




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


Re: sponsorship offer: \lyricsto with \partcombine

2006-09-14 Thread Han-Wen Nienhuys

Erik Sandberg wrote:

Citerar Ted Walther [EMAIL PROTECTED]:


To typeset hymns with the same high quality that lilypond brings to
other areas of music typesetting, I need to be able to use \lyricsto
with \partcombine.


What exactly do you want to do?

If you want to align one lyric line to one voice, and another lyric line to
another voice, then you can do something like:

\partcombine \sopNotes \altoNotes
\new Devnull=sop \sopNotes
\lyricsto sop \sopLyrics
\new Devnull=alto \altoNotes
\lyricsto alto \altoLyrics


I think the proper thing to do is allow a new property to override 
associatedVoice, by eg. associatedVoices, a list of strings. The lyric 
engraver/iterator combo could then try a second context if the first one 
is inactive.


--

Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwen

LilyPond Software Design
 -- Code for Music Notation
http://www.lilypond-design.com



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


Re: sponsorship offer: \lyricsto with \partcombine

2006-09-14 Thread Ted Walther

On Thu, Sep 14, 2006 at 10:08:42AM +0200, Erik Sandberg wrote:

Citerar Ted Walther [EMAIL PROTECTED]:


To typeset hymns with the same high quality that lilypond brings to
other areas of music typesetting, I need to be able to use \lyricsto
with \partcombine.


What exactly do you want to do?

If you want to align one lyric line to one voice, and another lyric line to
another voice, then you can do something like:

\partcombine \sopNotes \altoNotes
\new Devnull=sop \sopNotes
\lyricsto sop \sopLyrics
\new Devnull=alto \altoNotes
\lyricsto alto \altoLyrics





Also, what would it cost to make the chord-threshold variable in
part-combiner.scm/dtermine-split-list be settable inside a .ly file?


A rewrite of partcombiner is on the todo.


What incentive would be needed to get the partcombiner rewrite bumped up
in the todo?  I've got four hymns I'd like to get into Mutopia, but I
want to get them right first.  And I have a lot more hymns I plan to do.
My goal is to do at least one a week, but yesterday I did two.  At one a
day, I'll be bopping along pretty quickly.


You can copy all the code from part-combiner.scm into your ly file, all
you need to do is to add a # before each toplevel expression to make
lily understand it.  (you'll also have to re-define \partcombine etc.
to make them use the new definitions)


That is icky, especially if \partcombine is going to be rewritten.  I'd
just like to do something like \set chord-threshold = 12 at the top
level.

Too bad Scheme doesn't have a facility like Common Lisp for adding
default arguments where a variable is nil or undefined.

Maybe a change to the function like this:

(define-public (determine-split-list evl1 evl2)
(let* ((chord-threshold (or global:chord-threshhold 12)) ... )))

Changing the (chord-threshold 12) to (or global:chord-threshold 12)
should do what I want.

I use global:chord-threshold as a shorthand for snagging the version of
chord-threshold that is defined at the top-level; I don't know the
proper way in lilypond scheme to do this.  I'm also assuming that or
in Scheme will work the way it does in Common Lisp.

Someone correct this if it is wrong?

Ted

--
  It's not true unless it makes you laugh,   
 but you don't understand it until it makes you weep.


Eukleia: Ted Walther
Address: 2459 E 41 Ave, Vancouver, BC  V5R2W2 (Canada)
Contact: 604-435-5787


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


Re: sponsorship offer: \lyricsto with \partcombine

2006-09-14 Thread Han-Wen Nienhuys

Ted Walther wrote:

On Thu, Sep 14, 2006 at 10:08:42AM +0200, Erik Sandberg wrote:

Citerar Ted Walther [EMAIL PROTECTED]:


To typeset hymns with the same high quality that lilypond brings to
other areas of music typesetting, I need to be able to use \lyricsto
with \partcombine.


What exactly do you want to do?

If you want to align one lyric line to one voice, and another lyric 
line to

another voice, then you can do something like:

\partcombine \sopNotes \altoNotes
\new Devnull=sop \sopNotes
\lyricsto sop \sopLyrics
\new Devnull=alto \altoNotes
\lyricsto alto \altoLyrics





Also, what would it cost to make the chord-threshold variable in
part-combiner.scm/dtermine-split-list be settable inside a .ly file?


A rewrite of partcombiner is on the todo.


What incentive would be needed to get the partcombiner rewrite bumped up
in the todo?  I've got four hymns I'd like to get into Mutopia, but I
want to get them right first.  And I have a lot more hymns I plan to do.
My goal is to do at least one a week, but yesterday I did two.  At one a
day, I'll be bopping along pretty quickly.


You can copy all the code from part-combiner.scm into your ly file, all
you need to do is to add a # before each toplevel expression to make
lily understand it.  (you'll also have to re-define \partcombine etc.
to make them use the new definitions)


That is icky, especially if \partcombine is going to be rewritten.  I'd
just like to do something like \set chord-threshold = 12 at the top
level.

Too bad Scheme doesn't have a facility like Common Lisp for adding
default arguments where a variable is nil or undefined.

Maybe a change to the function like this:

(define-public (determine-split-list evl1 evl2)
(let* ((chord-threshold (or global:chord-threshhold 12)) ... )))

Changing the (chord-threshold 12) to (or global:chord-threshold 12)
should do what I want.

I use global:chord-threshold as a shorthand for snagging the version of
chord-threshold that is defined at the top-level; I don't know the
proper way in lilypond scheme to do this.  I'm also assuming that or
in Scheme will work the way it does in Common Lisp.

Someone correct this if it is wrong?


You need to get the value out of the parser (use ly:parser-lookup), 
which is supplied as an argument to the \partcombine function. Then you 
can set the default in ly/declarations-init.ly


--

Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwen

LilyPond Software Design
 -- Code for Music Notation
http://www.lilypond-design.com



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


sponsorship offer: \lyricsto with \partcombine

2006-09-13 Thread Ted Walther

To typeset hymns with the same high quality that lilypond brings to
other areas of music typesetting, I need to be able to use \lyricsto
with \partcombine.

If you think you can make these two functions play together, please let
me know what you estimate it would cost.  I'm not rich, but this is
important to me.

Also, what would it cost to make the chord-threshold variable in
part-combiner.scm/dtermine-split-list be settable inside a .ly file?

As Bret Whissle found out 2 years ago, the threshold of 8 is too small
for hymn typesetting, but 12 works very nicely.

Ted

--
  It's not true unless it makes you laugh,   
 but you don't understand it until it makes you weep.


Eukleia: Ted Walther
Address: 2459 E 41 Ave, Vancouver, BC  V5R2W2 (Canada)
Contact: 604-435-5787


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