lilypond-devel
[Top][All Lists]
Advanced

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

Re: Grand PartCombine Rewrite Project


From: Anthony W. Youngman
Subject: Re: Grand PartCombine Rewrite Project
Date: Mon, 14 Sep 2009 18:58:15 +0100
User-agent: Turnpike/6.07-M (<sMf6TxpgPTyej1mvc+e+2e9kdp>)

In message <address@hidden>, Kieren MacMillan <address@hidden> writes
Hello all,

I've decided this is going to be my pet project during this, my "Autumn of Lilypond". I've started a separate thread here, and would like to get moving on the project as soon as possible. [n.b. I am not intending to cross- post to -user after this "announcement" email.]

1. Team members. Several people (Wol, etc.) expressed an interest in helping; if you are one of these, please re-confirm your interest here, for thread completeness. If anyone else wants to help, just shout out.

Yes, I'm still interested.

2. Lead(s). I don't mind taking the lead on this if nobody else wants that job; however, if anyone *does* want it, I can guarantee you'll do better than I, and am happy to defer.

3. Programming. In order to get this done before, say, 2020, we'll need at least one lead developer with good Scheme-fu to (1) write most of the heavy-lifting code, and/or (2) vet my/our Froggie work. In either case, my goal is to have "clean" patches to give to Carl/ whomever for final merging, as opposed to banging on his/their door with sketchy code.

Well, I want to learn good Scheme-fu, so I'm quite happy to tackle the heavy lifting, but at the moment my tools are made of balsa wood ... :-)

4. Here's my first, naive attempt at listing the areas where a good partcombine must Do The Right Thing:
 — \relative
 — \transpose
Hopefully, partcombine comes after these two have done their thing (that makes logical sense to me) so if I'm right we can ignore these two.

 — \times
 — lyrics
 — merging/discarding notes & rests
 — merging/discarding text (e.g., markup)
 — merging/discarding articulations, etc.
 — adding "editorial" texts (e.g., "a2")
 — unlimited number of parts

Please note, I think it would be a good idea to control a lot of this with switches. Again, I don't know how it's currently done, and this MAY be a stupid idea, but it seems to me that the basic lifting engine should be capable of combining parts, voices, etc etc.

It feels to me that combining two parts (each a music expression) into one music expression is logically exactly the same thing as converting two voices (each a music expression) into one "music on a staff" which feels like it, too, should be a music expression. Quite how practical this is is entirely another matter ...

5. My 30000-foot plan on how to proceed is to:
— dissect the current implementation to see if anything can be saved/rewritten;
  — plan the implementation revision/rewrite; and;
  — do it.

Count me in. I want to learn. Just be warned, I do tend to get a grand vision, get a good grip of the detail of what needs to be done, then need a shove to actually get it done. I'm very good for bouncing ideas off, just not so good at actually getting them implemented.

Cheers,
Wol
--
Anthony W. Youngman - address@hidden





reply via email to

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