lilypond-devel
[Top][All Lists]

## Re: \oneVoice and \voiceXX commands having the wrong scope

 From: Yuval Harel Subject: Re: \oneVoice and \voiceXX commands having the wrong scope Date: Wed, 23 Feb 2005 15:38:00 +0200 User-agent: Opera M2/7.54 (Win32, build 3865)

On Sat, 29 Jan 2005 17:17:38 -0800, Graham Percival <address@hidden> wrote:
```
On 28-Jan-05, at 8:28 AM, Yuval Harel wrote:
```
This example is a very useful. Until now I didn't understand why the two different syntaxes
```<< {} {} >> and << {} \\ {} >> were necessary.
```
I think it should appear in the documentation (with the addition of \voiceOne and \voiceTwo to avoid collisions and the "Too many clashing notecolumns." warning), along with explanation that the << \\ >> approach produces separate voices, and some examples showing
```how voice flow in and out of such constructs (perhaps using slurs).
```
I'm willing to write this (and send it to the development list? to Graham?)
```
Great!  Please send it to lilypond-devel.

```
I've updated the polyphony docs somewhat in 2.5.x; please have a look at them
```and suggest changes / additions.

Cheers,
- Graham

```
```

Hi,

```
I'm working on updating the polyphony documentation. However, there are some things I want to write about, but don't understand well enough, so here are some questions:
```
```
1) What is the meaning of \shiftXXX commands (i.e. the meaning of the #'horizontal-shift property), and how does Lilypond resolve collisions between voices? The best guess I have at how this work is this cumbersome description:
```When two notes appear in two different voices simultaneously:
```
- If both voices have the same shift and stem direction, the two notes are vertically alligned, no collision resolution is not attempted, and a warning is produced. - If the voices have the same shift in different stem directions, the notes are vertically alligned, unless collision resolution shifts them horizontally. - If the voices have different shift, they will never be alligned. If possible, only the note with the greater horizontal-shift will be shifted, in the direction clockwise to the stem direction. I tried experimenting a bit to verify that, but it appears to be wrong, e.g. in:
```\new Staff \transpose c c' { <<
{\stemUp a'}
\new Voice {\stemUp c}
\new Voice {\shiftOn \stemUp a}
```
```
```
all voices are alligned horizontally. Removing the {c} makes the two {a}s not be alligned. Also, why do shifts exist at all, instead of being a part of the collision-resolution mechanism? The only use I see for the seperation is to bypass the collision-resolution by defining both voices with the same shift and stem direction (the same \voiceXXX command}. But I suspect this is not the reason, since doing so produces a warning.
```
```
2) What is the exact meaning of "\\". For example, what is the meaning of constructs only partially divided by "\\", such as:
```<< {..} {..} \\ {..} >>
and why?

```
3) The current documentation notes that voices in << {...} \\ {...} >> constructs are named "1","2" etc. What is the name of the main voice (outside of these constructs)?
```
Thanks,
Yuval

```