[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: \autochange for chords
From: |
address@hidden |
Subject: |
Re: \autochange for chords |
Date: |
Thu, 22 Sep 2011 07:45:06 +0200 |
On Sep 22, 2011, at 7:34 AM, Bernardo Barros wrote:
> It would be possible to make \autochange work for big chords that cross
> staffs?
>
> For example:
>
> \score {
> \new PianoStaff {
> \autochange {
> < gis d, fih' disih'' ais'' dih''' fis'' cih''' eih''' gih'''
> aisih''' c'''' >
> }
> }
> }
>
Bernardo,
It is not doable in lilypond for the moment
I wrote a proof-of-concept patch to do this a while back, and I'm laying some
groundwork in the source to make this sorta thing possible.
It takes a severe gutting of several engravers in LilyPond (Stem, Note_heads,
Rhythmic_column) to meddle with contexts (you have to do context assignment
manually, like Auto_beam_engraver). If you copy the logic in
Change_iterator::process to Event_chord_iterator::process, that does it.
The big problem that comes up is not the implementation of making it happen,
but:
(1) The collisions that arise when the stem crosses staffs (this is what I'm
working on now via something called Span_bar_stub_engraver and
Pure_from_neighbor_interface...to be released soon).
(2) The coordination of multiple NoteCollision and NoteColumn grobs across
staffs (I briefly worked on this and then gave up - it requires a PhD in rocket
science).
So, if you are interested in helping out on some of the coding, yes, it could
be possible! Lemme know :)
Cheers,
MS