lilypond-user
[Top][All Lists]
Advanced

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

Re: Changing voice order...


From: David Kastrup
Subject: Re: Changing voice order...
Date: Wed, 02 Nov 2016 10:29:50 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux)

"Trevor Daniels" <address@hidden> writes:

> David Kastrup wrote Tuesday, November 01, 2016 4:11 PM
>
>>  I want to rename the \voiceXXX constructs
>> as well.  The old ones will be available still but no longer promoted
>> and/or documented prominently, instead using something like \voiceUp,
>> \voiceDown, \inner \voiceUp, \inner \VoiceDown ...  
>
> I definitely object to this.  The meaning and use of the \voicexxx
> predefs is engrained in the habits and memory of many, most?, of the
> long-standing LP users, as well as pretty well all existing code.

So?  "The old ones will be available still".

So do you want

<< a \\ b \\ c \\ d >>

to correspond to

<< \context Voice = "1" { \voiceOne a }
   \context Voice = "2" { \voiceThree a }
   \context Voice = "3" { \voiceFour a }
   \context Voice = "4" { \voiceTwo a }
>>

or to

<< \context Voice = "1" { \voiceOne a }
   \context Voice = "3" { \voiceThree a }
   \context Voice = "4" { \voiceFour a }
   \context Voice = "2" { \voiceTwo a }
>>

?

Either one will be a real joy to explain.  That's why I want the
documented version to make more sense than that.

And even explicit stuff like

<< \new Voice = "sopranoI" \with { \voiceOne } ...
   \new Voice = "sopranoII" \with { \voiceThree } ...
   \new Voice = "alto" \with { \voiceTwo } ...
>>

or

<< \new Voice = "soprano" \with { \voiceOne } ...
   \new Voice = "altoI" \with { \voiceFour } ...
   \new Voice = "altoII" \with { \voiceTwo } ...
>>

just reads awfully and is really embarrassing to show in talk slides.

It also has absolutely no connection to \voiceOneStyle, \voiceTwoStyle,
\voiceThreeStyle ... which you'd more likely apply from top to bottom.

Take a look at our example for voice styles:

    Voice styles
    ............

    Voices may be given distinct colors and shapes, allowing them to be
    easily identified:

         <<
           \relative { \voiceOneStyle d''4 c2 b4 }
           \\
           \relative { \voiceTwoStyle e'2 e }
           \\
           \relative { \voiceThreeStyle b2. c4 }
           \\
           \relative { \voiceFourStyle g'2 g }
         >>

    [image]

       The ‘\voiceNeutralStyle’ command is used to revert to the standard
    presentation.

Order is

<< \voiceOne (1st voice from top) in \voiceOneStyle \\
   \voiceTwo (3rd voice from top) in \voiceTwoStyle \\
   \voiceThree (4th voice from top) in \voiceThreeStyle \\
   \voiceFour (2nd voice from top) in \voiceFourStyle
>>

This became a four-voice example with

    commit 213025779c233a52b4b56583926d2fe3335ce06b
    Author: Graham Percival <address@hidden>
    Date:   Mon Jul 14 19:52:37 2008 -0700

        Update from Francisco.

It took me some back and forth to finally come to the conclusion that
this example is indeed as correct as it gets and shows \voiceTwo as
corresponding to \voiceTwoStyle .  But do you want to explain the entry
order to a beginner?

Ah, I see Mark did:

commit a52dc416eb5264c67a8b278207f372ed527a870d
Author: Mark Polesky <address@hidden>
Date:   Fri Sep 24 07:51:09 2010 -0700

    Doc: NR 1.5.2: Clarify voice order; \shiftOn etc.


    Voice order
    ...........

    When entering multiple voices in the input file, use the following
    order:

         Voice 1: highest
         Voice 2: lowest
         Voice 3: second highest
         Voice 4: second lowest
         Voice 5: third highest
         Voice 6: third lowest
         etc.

       Though this may seem counterintuitive, it simplifies the automatic
    layout process.


"It simplifies the automatic layout process"?  Nope, that's absolutely
not a valid excuse.  Either we can sell this as a great user-level
feature for note entry.  Or not.  The layout process could not care less
about our decision so we should not try hiding behind it.  I am not
suggesting that Mark did this: he probably operated with the "somebody
must have had a reason for this" assumption and made a guess what it
might have been (and, well, it passed review).  If so, he apparently
ruled out "because it is a useful thing to do".

It's a valiant effort.  The Learning Manual also introduces this voice
order early on.  We also have

       The commands ‘\voiceXXXStyle’ are mainly intended for use in
    educational documents such as this one.  They modify the color of the
    note head, the stem and the beams, and the style of the note head, so
    that the voices may be easily distinguished.  Voice one is set to red
    diamonds, voice two to blue triangles, voice three to green crossed
    circles, and voice four (not used here) to magenta crosses;

already in the LM.

With regard to selling this as a great user-level feature: I can see the
order of << \\ \\ \\ >> make some sense for ad-hoc polyphony where you
use just as many voices as you need for representing the current
harmonic context, and then you'll generally try making do with a top and
bottom voice and, if necessary, fill in stuff in the middle.  I think
that's more or less what Mark (Stephen Mrotek) described as his manner
of operation.

Such an entry concept would be feasible for solo violin pieces, some
other stuff like guitar music, some ratio of semi-chorded (rather than
rigidly voiced) keyboard music.  Basically whenever voices are a
somewhat artificial way of expressing usually single-instrument music in
terms of LilyPond's input rather than an inherent musical entity.

Somewhat related are splitting an instrument group into multiple voices
for short passages.

The behavior of << \\ \\ >> may be argued to match the sequence of
codification processes of experienced LilyPond writers.  And as a
non-cosmetic consideration, there is a chance that ties and slurs will
be better matched to voices when switching between two- and three-voice
polyphony when the _outer_ voices retain their names and identity.

I think it is a bad idea to rely on the linkup of the implicit contexts
of multiple << ... >> << ... >> constructs in sequence, particularly so
when they contain a different number of contexts.  But I have no data
how often people might actually do this kind of thing.

However, in the contexts of explicit and permanent voices, the explicit
names \voiceOne...\voiceFour are less than helpful in my opinion because
the sequence One/Two/Three/Four does not bear any useful relation to the
actual ordering of voices.  And in the context of explicit and permanent
voices, one would not organize the source in order soprano, bass, alto,
tenor.  It might even correspond to the order of _composition_, but as a
reading order, it is unpleasant.

-- 
David Kastrup



reply via email to

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