lilypond-user
[Top][All Lists]
Advanced

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

Re: piano music with lilypond


From: address@hidden
Subject: Re: piano music with lilypond
Date: Tue, 25 Sep 2012 12:21:34 +0200

Hey Michael,

You've managed to list several of what I think are the biggest areas for improvement for LilyPond.  LilyPond being an open source project written mostly in C++, we are always looking for help in improving any of these things.  As you are a C++ developer, if you wanted to help us with this, the entire community would be very grateful.  Below, I outline the current state of each issue you identify below with the work it would take to get it done.

On 25 sept. 2012, at 12:00, address@hidden wrote:

Hi,

I want to share some thoughts about piano music with you.

For many years I have been using Score/WinScore for writing music. Since my main interest is the piano I wrote a lot of piano scores.

The learning curve of Score is steep but once you get used to it, it will enable you to produce really beautiful and perfect piano scores with .. lets say, medium effort, regardless if the score is easy, or complex or even very complex.

As most of you may be aware, piano music can be very very complex. Im not talking about contemporary music, but if you look into piano music from Schumann, Brahms, Liszt, Scrijabin etc. you can see that the requirements of this music in the view of notation are extremely high.

I list here some of these complexities and I do not pretend for completeness, just to give you an impression what a piano-score-writer has to struggle with

-       Multiple voices (up to 4 in 1 staff), either temporary or consistent via the entire score, voices can also contain cords up to 6 notes and a lot of accidentals.


LilyPond already handles this fairly well - the syntax may be elaborate, but it has an algorithm contained in lily/note-collision.cc that is rather thorough.  However, there is a lot of hard-coded behavior in this algorithm that could be opened up to allow user overrides.

-       Cross staff beaming



LilyPond does cross staff beams and stems, but it cannot draw them until it figures out how far apart systems must be spaced, which is very late in the compilation process.  This means that it is difficult to place objects aligned above or below them and it is difficult to account for them in vertical spacing.  This usually does not cause a problem but sometimes can in tight scores.  I am currently working on a solution to this as well as other cross staff objects and would be happy to talk about my work off-list.

-       Cross staff ties



LilyPond doesn't do these at all in any native way that I know of.  Someone else can chime in if they know a hack for these.

-       Cross staff slurs



Same problem as ties, with the added problem that LilyPond does not know how to make complex slurs that do anything other than arch around notes.  Check out the passage around the 1-minute mark of http://www.youtube.com/watch?v=yCcqkFTvwAI.  LilyPond cannot do this, for example, but it's possible - it'd just require making the range of slur possibilities larger in slur-scoring.cc and slur-configuration.cc.

-       Multiple slurs beginning on one note



This is an easier fix than the other ones - it'd just require work in Slur_engraver and Phrasing_slur engraver.
You can already do something like this via :

a \( ( b ) c \)

-       Ties from one voice to another



\layout {
  \context {
    \Voice
    \remove "Tie_engraver"
   }
   \context {
     \Staff
     \consists "Tie_engraver"
   }
}

but it's not perfect.

-       Temporary staffs ( piano music may be notated temporary on 3 staffs or even 4 staffs -> look Rachmaninovs famous c#minor prelude )



This is doable - check out the documentation on ossia staves.  In order to un-ossia-fy them, you can just make them the same size and normal staves.

-       


Of course I’m aware that most ( not all! ) of these issues can be realized with lilypond


They all can, but as this is an open source project where developers work on it during their free time, they can only be realized and improved if we have new people helping out or if we have more free time.  The latter is difficult, but the former would be great.  Lemme know if you're interested in doing some LilyPond development on any of this issues and I can get you started off on the right foot.

Cheers,
MS

reply via email to

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