lilypond-user
[Top][All Lists]
Advanced

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

Re: Sponsored feature request--cross-staff chords, ties


From: Han-Wen Nienhuys
Subject: Re: Sponsored feature request--cross-staff chords, ties
Date: Tue, 22 Aug 2006 18:41:34 +0200
User-agent: Thunderbird 1.5.0.5 (X11/20060803)


Hello,

I once made an estimate for doing x-staff chords, for 400 EUR. I think that would be the most difficult task. If the stems + noteheads work correctly, adding arpeggios and ties should be relatively easy.

For reference, I insert what I wrote to Hans Forbrich:

**
Hello Hans,

I've had another look at X-staff chords. I've put the price at 400 euro. It might be on the pricey side, but the stem is pretty central to the layout engine, and I expect that drastic changes will touch a lot of code, which would require a lot debugging and tweaking. It's also the reason why I don't want to do it for the 2.8 release.

FYI, the todo list is below:

CONCEPT

  - a Voice still is in a single Staff context

  - isolated noteheads may be tagged to be on another staff

  - in this case, stem directions are determined by the staff
  configuration: if voice is in bottom staff,  extra note heads in
  the top staff always make the stem direction go up.

  - Caveat: this doesn't handle the case where the beam is vertically
  centered between note heads in both staves.

  - Caveat: Since the x-staff note heads are not broadcast in a Voice
  context, they are not caught by Voice context engravers.  They won't
  participate in arpeggios, or have private fingering/articulation
  symbols.



IMPLEMENTATION


Create

  Stem::staff_head_positions - positions of heads in the stem's staff.

  Stem::all_head_positions - positions of all heads relative to stem's
  staff.

Revise all use of Stem::head_positions().

- stem.cc: direction calculations use staff_head_positions,
- stem.cc: length calculations use all_head_positions
- note-collision use staff_head_positions
- spacing uses staff_head_positions
- tie uses all_head_positions
- tuplet-bracket uses staff_head_positions

Revise the stem direction code to handle the x-staff case
especially.

Make Note_heads_engraver broadcast x-staff note heads in the right
Staff context. This puts the note heads in the right staff.

Add a music function to tag chord notes appropriately.
**

Steve D wrote:
I know that cross-staff beaming has been mentioned periodically on the
LilyPond lists.

It would be great, for the sake of piano and other polyphonic instrument
scores, for there to exist in LilyPond some mechanism that would allow
for chords to change staff, perhaps like single-note melodies already
can do (with \change Staff = staff-name), and which includes all of the
tie functionality.

For an example in piano music-- an arpeggiated chord played with both
hands across both staves, tied to a following chord that crosses the
staves. I recently wrote a piece in which there is a grace-note
descending arpeggio played with both hands (sequentially, first the
right then the left), that crosses from the treble to the bass staff,
and is tied to every note but the lowest note of the following chord
(see attached GIF graphic).

To do so required some "inventive" LilyPond code, hidden notes, etc.,
and in this case, the chord following the cross-staff grace-note
arpeggio was not itself a cross-staff chord. However, it would be great,
if it can be implemented, for the following to exist in LilyPond:

* chords that cross staves (perhaps like <f c \change Staff = bass g d>)

* cross-staff chords that can be tied to cross-staff chords (using
   automatic and manual tie formatting)

* cross-staff arpeggios that can be tied to cross-staff chords
   (with auto and manual tie formatting)

* grace-note arpeggios that can be tied to cross-staff chords
   (with auto and manual tie formatting)

I would be happy to sponsor such functionality.

Best wishes,

Steve

Stephen Doonan
Portales, New Mexico US
http://www.xscd.com/pub/


------------------------------------------------------------------------


------------------------------------------------------------------------

_______________________________________________
lilypond-user mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/lilypond-user


--

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

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





reply via email to

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