lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: sponsorship offer: \lyricsto with \partcombine


From: Ted Walther
Subject: Re: sponsorship offer: \lyricsto with \partcombine
Date: Thu, 14 Sep 2006 11:23:07 -0700
User-agent: mutt-ng/devel-r804 (Debian)

On Thu, Sep 14, 2006 at 10:08:42AM +0200, Erik Sandberg wrote:
Citerar Ted Walther <address@hidden>:

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]