Yes, I did try \partCombineChords, but it doesn't seem what I expect.
Expectation is 2 notes on same stem, one upper, one lower, not on separate
stems.

Below is the test and attached result (2 notes have separate stems)

\version "2.22.1"
localFontSize =
#(define-music-function (font-size music) (number? ly:music?)
   (for-some-music
     (lambda (m)
       (if (music-is-of-type? m 'rhythmic-event)
           (begin
             (set! (ly:music-property m 'tweaks)
                   (cons `(font-size . ,font-size)
                         (ly:music-property m 'tweaks)))
             #t)
           #f))
     music)
   music)

soprano = { f'4 g'4 a'4 b'4 c''2 }
basso = { d'4 e' f'' g' a'2 }
alto = { d'4 e' \stemUp f'' g' a'2 }
tenor = { d'4 e' f'' g' a'2 }
\new Score { \new Staff << \partCombineChords \soprano \basso >> }
\new Score { \new Staff << \partCombineChords \soprano \alto >> }
\new Score { \new Staff << \partCombineChords \soprano \localFontSize -3
\tenor >> }

Please advice if any mistake or missing.

Thanks!

On Thu, 1 Jul 2021 at 23:05, Leo Correia de Verdier <
leo.correia.de.verd...@gmail.com> wrote:

> If you use the \partCombineChords command in one of the voices (as in the
> snippet I sent with last mail) it should override the default behavior of
> partCombine and work without tricks or problems. Did you try it?
>
> 1 juli 2021 kl. 17:44 skrev Dinh Hoang Tu <dhoan...@gmail.com>:
>
> Hello Leo,
>
> Thanks for your explanation. Got your point, totally agree it should not
> combine when 2 voices are identical, otherwise it's confusing: cannot
> distinguish 2 voices.
> But when I use different font-sizes to distinguish 2 voices, I can only
> combine them when 2 voices are on same side of one another.
> If 2nd voice goes both upper and lower than 1st one, I cannot combine them.
>
> I found a trick, not nice, but at least works for this case: skip
> exceptional note of 2nd voice, and render it on 1st voice with tweak
> (I know this won't work if baritone has a separate lyrics, and here midi
> is not correct either. Fortunately these are not my case ^^)
>
> \version "2.22.1"
> localFontSize =
> #(define-music-function (font-size music) (number? ly:music?)
>    (for-some-music
>      (lambda (m)
>        (if (music-is-of-type? m 'rhythmic-event)
>            (begin
>              (set! (ly:music-property m 'tweaks)
>                    (cons `(font-size . ,font-size)
>                          (ly:music-property m 'tweaks)))
>              #t)
>            #f))
>      music)
>    music)
>
> soprano = { f'4 g'4 a'4 b'4 c''2 }
> basso = { d'4 e' f'' g' a'2 }
> alto = { d'4 e' \stemUp f'' g' a'2 }
> tenor = { d'4 e' f'' g' a'2 }
> \new Score { \new Staff << \partCombine \soprano \basso >> } % correct but
> not expected
> \new Score { \new Staff << \partCombine \soprano \alto >> } % expected,
> without tweak, can combine but cannot confusing
> \new Score { \new Staff << \partCombine \soprano \localFontSize -3 \tenor
> >> } % distinguish 2 voices, but not combined
>
> mezzo = { f'4 g'4 <a' \tweak font-size #-3 f''>4 b'4 c''2 }
> baritone = { d'4 e' \skip 4 g' a'2 }
> \new Score { \new Staff << \partCombine \mezzo \localFontSize -3 \baritone
> >> } % trick
>
> Thanks to all.
> Have a good day.
>
> Tu'
>
> On Thu, 1 Jul 2021 at 16:07, Leo Correia de Verdier <
> leo.correia.de.verd...@gmail.com> wrote:
>
>> As a more general tip: if you want all stems to be pointing up you can
>> specify that on document or score level in a layout block, like
>>
>> %%%%
>> \layout {
>>   \context {
>>     \Voice
>>     \override Stem.direction = #UP
>> }}
>> %%%%
>>
>> Or on a staff level in \with statements, like
>>
>> %%%%
>>   \new Staff
>>              \with { \stemUp }
>>                 ### music goes here
>> %%%%
>>
>> > 1 juli 2021 kl. 10:54 skrev Leo Correia de Verdier <
>> leo.correia.de.verd...@gmail.com>:
>> >
>> > This is the intended behavior of partCombine. In the usual use case,
>> with the same notehead size you still want to be able to follow each voice,
>> so partCombine doesn’t merge them into chords when they’re crossed. (This
>> is obscured in your first example because you are using \stemUp there,
>> otherwise you would see the stems indicating the voicing).
>> >
>> > Anyway you can easily override this behavior by using
>> partCombineChords, like
>> > …
>> > %%%%
>> > basso = { \partCombineChords d'4 e' \stemUp f'' g' a'2 }
>> > %%%%
>> > …
>> > HTH
>> > /Leo
>> >
>> >> 1 juli 2021 kl. 06:52 skrev Dinh Hoang Tu <dhoan...@gmail.com>:
>> >>
>> >> Sorry for short description in my last email.
>> >> I mean when 2nd voice has notes going upper and lower than 1st voice,
>> \partCombine won't combine 2 notes.
>> >> There is a gap between 2 stems, as in attached image.
>> >>
>> >> Many thanks,
>> >> Tu'
>> >>
>> >> On Thu, 1 Jul 2021 at 09:35, Dinh Hoang Tu <dhoan...@gmail.com> wrote:
>> >> Hello Jean and all,
>> >>
>> >> I would love to contribute if I can :)
>> >>
>> >> Using this in one music sheet, if 2nd voice has notes going upper and
>> lower than 1st voice, \partCombine will not work.
>> >>
>> >> \version "2.22.1"
>> >> localFontSize =
>> >> #(define-music-function (font-size music) (number? ly:music?)
>> >>   (for-some-music
>> >>     (lambda (m)
>> >>       (if (music-is-of-type? m 'rhythmic-event)
>> >>           (begin
>> >>             (set! (ly:music-property m 'tweaks)
>> >>                   (cons `(font-size . ,font-size)
>> >>                         (ly:music-property m 'tweaks)))
>> >>             #t)
>> >>           #f))
>> >>     music)
>> >>   music)
>> >> soprano = { f'4 g'4 a'4 b'4 c''2 }
>> >> alto = { d'4 e' \stemUp f'' g' a'2 }
>> >> basso = { d'4 e' \stemUp f'' g' a'2 }
>> >> tenor = { d'4 e' \stemUp \tweak font-size #-3 f'' g' a'2 }
>> >> \new Score { \new Staff << \partCombine \soprano \alto >> }
>> >> \new Score { \new Staff << \partCombine \soprano \localFontSize -3
>> \basso >> }
>> >> \new Score { \new Staff << \partCombine \soprano \tenor >> }
>> >>
>> >> Many thanks again to any help.
>> >>
>> >> Best,
>> >> Tu'
>> >>
>> >> On Thu, 1 Jul 2021 at 04:00, Jean Abou Samra <j...@abou-samra.fr>
>> wrote:
>> >>> Le 30/06/2021 16:47, Dinh Hoang Tu <dhoan...@gmail.com> a écrit :
>> >>>
>> >>>
>> >>> Hello Jean, Xavier,
>> >>>
>> >>> I think these music functions are useful enough to be integrated into
>> Lilypond itself.
>> >>> I put them in my local music-functions-init.ly for personal use.
>> >>> But it will be helpful for Lilypond users, including myself, to have
>> these handy features by default.
>> >>>
>> >>> Thank you and have a good day.
>> >>>
>> >>> Tu'
>> >>
>> >> Hello,
>> >>
>> >> Actually this particular music function is rather hacky. It only
>> applies to notes and rests (not articulations or dynamics) and would fail
>> with things like quoted music or events inserted via the edition engraver.
>> In summary: it is not mature enough to be integrated in the core right
>> away.
>> >>
>> >> As described in my previous email, one of the projects on my stack
>> would make \override just work as expected, so I would prioritize working
>> on this.
>> >>
>> >> Best regards,
>> >> Jean
>> >
>>
>> <partcombine-tweak-trick.png>
>
>

Reply via email to