Re: partCombine misinterprets Solo

2022-03-23 Thread Kieren MacMillan
Hi there,

> I use \partCombine quite extensively, and have observed that it's very
> finicky when it comes to dynamics.

Agreed.

> This applies not only to dynamics per se, but also to any additional
> events in the two parts aside from notes

Yes.

> Because of these issues, I have resorted to the hammer-fisted approach
> of using \tag and \removeWithTag to "hide" certain things from
> \partCombine or "inject" "fake" dynamics in certain places to make the
> two parts match where they otherwise wouldn't. In the instrumental parts
> the hacks would be suppressed so that the actual dynamics are printed
> correctly.

This is one of my main use-cases for the edition-engraver — being able to keep 
all of those tweaks and "fixes" out of the content (music code) is a blessing.

— Kieren


Re: partCombine misinterprets Solo

2022-03-23 Thread H. S. Teoh
On Wed, Mar 23, 2022 at 06:34:52AM -0400, David Santamauro wrote:
> I believe this is all related to the dynamics (more to the point, the
> termination: \!. If we forget the misplacement of “Solo” for a moment
> and observe the behavior of \partCombine with just the dynamics, it
> seems to have real difficulties with dynamics termination.

I use \partCombine quite extensively, and have observed that it's very
finicky when it comes to dynamics. Basically, before it can combine two
parts correctly, the dynamics must be identical in both parts. Identical
meaning that any dynamics like \f, \p must fall in exactly the same
beat, and any cresc/decresc must begin and end at the same place.  In
particular, if you have a cresc or decresc ending on a particular beat
in one part but not in the other (e.g., the other is silent or has an
unchanging dynamic like \f or \p), then it will *not* combine the parts
on that beat.

This applies not only to dynamics per se, but also to any additional
events in the two parts aside from notes, such as \set commands (like
\set Staff.midiExpression, and so on). The presence of any such commands
must be identical across the two parts, otherwise \partCombine will
refuse to combine it (and if forced to, is likely to produce incorrect
results).

Because of these issues, I have resorted to the hammer-fisted approach
of using \tag and \removeWithTag to "hide" certain things from
\partCombine or "inject" "fake" dynamics in certain places to make the
two parts match where they otherwise wouldn't. In the instrumental parts
the hacks would be suppressed so that the actual dynamics are printed
correctly.


T

-- 
Answer: Because it breaks the logical sequence of discussion. / Question: Why 
is top posting bad?



Re: partCombine misinterprets Solo

2022-03-23 Thread David Santamauro
I believe this is all related to the dynamics (more to the point, the 
termination: \!. If we forget the misplacement of “Solo” for a moment and 
observe the behavior of \partCombine with just the dynamics, it seems to have 
real difficulties with dynamics termination.

\version "2.22.2"

\include "english.ly"

vOne = \relative {
  c''4 c4 c4 c4
  c1\>
  R1\!
  R1*2
  r2 r4 c4\<
  c1\!
}
vTwo = \relative {
  R1
  R1
  R1
  R1*3
  e'1
}

\score {
  <<
\new Staff \vOne
\new Staff \vTwo
\new Staff \partCombine #'(0 . 0) \vOne \vTwo
  >>
  \layout { }
}

… vOne \> termination in m. 3 is ignored and instead, \partCombine moves on to 
the \< in m. 5 and finally terminates in m.6


> On Mar 23, 2022, at 5:46 AM, David Santamauro  
> wrote:
> 
> From: Aaron Hill 
> 
> 
> On 2022-03-23 1:52 am, David Santamauro wrote:
> > > mm 1- 3 and 3-6 are note-identical. The only difference is the
> > > decrescendo in m. 1, terminated in m. 2. I believe the terminating
> > > decrescendo in vTwo/m. 2 causes the partCombine code to think there's
> > > music in vTwo/m. 2 -- I could be wrong, but the result is wrong
> > > nevertheless.
> 
> > Consider adding...
> > 
> >   \once \partCombineSoloI
> > ...at the beginning of the second measure.
> 
> Thanks …
>  
> %%
> \version "2.22.2"
>  
> \include "english.ly"
>  
> vOne = \relative {
>   c''1\>
>   \once \partCombineSoloI c1\! 
>   c1 \bar "||"
>   c1 c1  c1
> }
> vTwo = \relative {
>   e'1\> R1\!  R1
>   e1 R1  R1
> }
>  
> \score {
>   <<
> \new Staff \vOne
> \new Staff \vTwo
> \new Staff \partCombine #'(0 . 0) \vOne \vTwo
>   >>
>   \layout { }
> }
> %%%
>  
> … yields:
> ./snippet.ly:6:7: warning: unterminated decrescendo
>   c''1
>   \>
> ./snippet.ly:12:6: warning: unterminated decrescendo
>   e'1
>  \> R1\!  R1
>  
> But it did force "Solo" albeit without the specified hairpin.




Re: partCombine misinterprets Solo

2022-03-23 Thread David Santamauro
From: Aaron Hill 

On 2022-03-23 1:52 am, David Santamauro wrote:
> > mm 1- 3 and 3-6 are note-identical. The only difference is the
> > decrescendo in m. 1, terminated in m. 2. I believe the terminating
> > decrescendo in vTwo/m. 2 causes the partCombine code to think there's
> > music in vTwo/m. 2 -- I could be wrong, but the result is wrong
> > nevertheless.

> Consider adding...
>
>   \once \partCombineSoloI
> ...at the beginning of the second measure.

Thanks …

%%
\version "2.22.2"

\include "english.ly"

vOne = \relative {
  c''1\>
  \once \partCombineSoloI c1\!
  c1 \bar "||"
  c1 c1  c1
}
vTwo = \relative {
  e'1\> R1\!  R1
  e1 R1  R1
}

\score {
  <<
\new Staff \vOne
\new Staff \vTwo
\new Staff \partCombine #'(0 . 0) \vOne \vTwo
  >>
  \layout { }
}
%%%

… yields:
./snippet.ly:6:7: warning: unterminated decrescendo
  c''1
  \>
./snippet.ly:12:6: warning: unterminated decrescendo
  e'1
 \> R1\!  R1

But it did force "Solo" albeit without the specified hairpin.


Re: partCombine misinterprets Solo

2022-03-23 Thread Aaron Hill

On 2022-03-23 1:52 am, David Santamauro wrote:

mm 1- 3 and 3-6 are note-identical. The only difference is the
decrescendo in m. 1, terminated in m. 2. I believe the terminating
decrescendo in vTwo/m. 2 causes the partCombine code to think there's
music in vTwo/m. 2 -- I could be wrong, but the result is wrong
nevertheless.


The part combiner sometimes needs hints.

Consider adding...

  \once \partCombineSoloI

...at the beginning of the second measure.


-- Aaron Hill



partCombine misinterprets Solo

2022-03-23 Thread David Santamauro
Hi,

The MWE …

%%
\version "2.22.2"

\include "english.ly"

vOne = \relative {
  c''1\> c1\!  c1 \bar "||"
  c1 c1  c1
}
vTwo = \relative {
  e'1\> R1\!  R1
  e1 R1  R1
}

\score {
  <<
\new Staff \vOne
\new Staff \vTwo
\new Staff \partCombine #'(0 . 0) \vOne \vTwo
  >>
  \layout { }
}
%%

mm 1- 3 and 3-6 are note-identical. The only difference is the decrescendo in 
m. 1, terminated in m. 2. I believe the terminating decrescendo in vTwo/m. 2 
causes the partCombine code to think there's music in vTwo/m. 2 -- I could be 
wrong, but the result is wrong nevertheless. Is this a known issue?

thanks