[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Three voices in same staff, from two variables
From: |
David Kastrup |
Subject: |
Re: Three voices in same staff, from two variables |
Date: |
Thu, 19 Mar 2020 22:30:08 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
Ben Rosen <address@hidden> writes:
> Hi all,
>
> I'm new here, so hopefully this isn't too basic of a question...
>
> I'm trying to write out harmonizations for standard melodies, so my initial
> thought was to keep the melody in its own variable and the harmonies in
> another and then combine them using the "<< \\ >>" syntax (see below). This
> way, not only does it keep them conceptually separate in the file, but it
> would allow for multiple reharms that could be easily swapped out under the
> same melody. This seems to work fine when the harmony part is a single
> voice, but occasionally I want to break out into multiple voices to allow
> for moving inner parts. If I repeat the "<< \\ >>" syntax within the
> harmony part itself, then everything gets confused and it tries to draw a
> stem between parts that ought to be separate. Perhaps I should use
> something more explicit involving "\new Voice"? Is there a way to do this
> that preserves the variable structure I've laid out or is there a better
> approach for this situation?
>
> Here is a simplified example of when things get confused:
>
> \version "2.20.0"
> \language "english"
>
> melody = {
> af'2. af4 |
> af c g4. f8 |
> }
>
> harm = {
> << { <ef c>1 } \\ { bf2 af} >> |
> <df f> s |
> }
>
> \score {
> \relative c'
> <<
> \melody
> \\
> \harm
> >>
> }
In your case, you could probably write this as
\version "2.20.0"
\language "english"
melody = {
af'2. af4 |
af c g4. f8 |
}
harm = {
\voices 4,2 << { <ef c>1 } \\ { bf2 af} >> |
<df f> s |
}
\score {
\relative c'
<<
\melody
\\
\harm
>>
}
This relies on the knowledge that the harmony will take the lower voices
(and thus even voice numbers).
--
David Kastrup