[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Mostly unisono multi-voice staff also merging whole notes together
From: |
Knute Snortum |
Subject: |
Re: Mostly unisono multi-voice staff also merging whole notes together |
Date: |
Sat, 11 Sep 2021 15:13:27 -0700 |
On Sat, Sep 11, 2021 at 12:03 PM Hans Aikema <hans.aikema@aikebah.net> wrote:
>
> Hi all,
>
> In a score I have two parts (Alto I and II) that’s for most of the score
> unisono.
>
> In order to be able to also generate rehearsal midis by voice (with the
> concerned voice highlighted by diminishing the volume of other voices) I
> would like to retain the full individual voices.
> This rules out
> … << { \voiceOne … } \new Voice { \voiceTwo … } >> \oneVoice ...
> pattern for temporal polyphonic music as it introduces the problem that the
> two voices displayed in the staff are now split in a way that would at least
> not allow me to create a rehearsal miditrack with voice that takes its
> polyphony notes from the \voiceTwo section highlighted.
>
> For easier readability of the unisono part however I would like (visually
> more condensed) the whole notes to join up like all the
> identically-headed-and-pitched stemmed notes do.
>
> So what I’m trying to achieve is the notation effects of
> <<
> { \once\override NoteColumn.ignore-collision = ##t f'1 | \once\override
> NoteColumn.ignore-collision = ##t f'1~ | f'1 | f'2( g'4 a'4) } \\ { f'1 |
> f'1~ | f'4( e' d' c') | f'4( e' g' a') }
> >>
>
> % rather than the fully proper from notational perspective default rendering
> <<
> { f'1 | f'1~ | f'1 | f'2( g'4 a'4) } \\ { f'1 | f'1~ | f'4( e' d' c') |
> f'4( e' g' a') }
> >>
>
> % or the completely broken
> <<
> \override NoteColumn.ignore-collision = ##t
> { f'1 | f'1~ | f'1 | f'2( g'4 a'4) } \\ { f'1 | f'1~ | f'4( e' d' c') |
> f'4( e' g' a') }
> >>
>
> without having to sift through the score looking for the colliding whole
> notes in order to add a \once\override NoteColumn.ignore-collision = ##t to
> them
>
> Wondering if there would be a good solution that I’m somehow overlooking
>
> kind regards,
> Hans Aikema
Well, I don't think you can avoid "sifting through the score",
otherwise how would LilyPond know when you want to ignore collisions?
But you can make it easier to do:
%%%
\version "2.22.1"
ignoreCollision =
#(define-music-function (bool) (boolean?)
#{
\override NoteColumn.ignore-collision = #bool
#})
altoI = {
\ignoreCollision ##t
f'1 | f'1~ |
\ignoreCollision ##f
f'1 | f'2( g'4 a'4)
}
altoII = {
f'1 | f'1~ | f'4( e' d' c') | f'4( e' g' a')
}
\score {
<< { \altoI } \\ { \altoII } >>
\layout {}
\midi {}
}
%%%
I've just created a little music function that gets some of the
verbosity down. You could even change the name of the function to
something like "ic" if you wanted to. Note that \ignoreCollision ##t
stays in force until you tell it not to.
--
Knute Snortum