Re: Multiple parts on the same stems

2024-04-17 Thread Gerardo Ballabio
Thank you Knute and Mats.
Removing the "\\" aligns the notes on the same stem, but they also get
the same note head.
Keeping the "\\" and using \voiceTwo aligns the notes and shows
different note heads.

Gerardo

Il giorno mer 17 apr 2024 alle ore 13:19 Mats Bengtsson
 ha scritto:
>
> On 2024-04-16 21:59, Gerardo Ballabio wrote:
> > Hello all,
> > I'm trying to typeset a percussion score with several instruments on
> > the same staff. When they play simultaneous notes I want to line them
> > up all on the same stem, like this (output attached, percussion1.pdf):
> >
> > %%
> > \version "2.24.1"
> >
> > \new Staff \relative {
> >\clef "varpercussion"
> >\stemDown
> >R1 |
> >r2 2\f-> |
> >R1 |
> >r2 q2-> |
> > }
> > %%
> >
> > But I'd like to write down each part separately, so that I may also
> > print the single parts without redoing everything. And I also want to
> > use different note heads for each instrument.
> > This is the best I could come up with:
> >
> > %%
> > \version "2.24.1"
> >
> > bassDrum = \relative {
> >\stemDown
> >s1 |
> >s2 b2-> |
> >s1 |
> >s2 b2-> |
> > }
> >
> > cymbals = \relative {
> >\override NoteHead.style = #'xcircle \stemDown
> >s1 |
> >s2 f'2 |
> >s1 |
> >s2 f2 |
> > }
> >
> > tamTam = \relative {
> >\override NoteHead.style = #'cross \stemDown
> >s1 |
> >s2 e2 |
> >s1 |
> >s2 e2 |
> > }
> >
> > pause = \new Voice {
> >\clef "varpercussion"
> >\time 4/4
> >R1 |
> >r2 s2\f |
> >R1 |
> >r2 s2 |
> > }
> >
> > percussions = \new Voice \relative {
> ><<
> >  \cymbals
> >\\
> >  \tamTam
> >\\
> >  \bassDrum
> >>>
> > }
> >
> > \new Staff
> > <<
> >\pause
> >\percussions
> > %%
> >
> > But as you can see (output attached, percussion2.pdf) the three notes
> > aren't aligned on the same stem, only two of them are.
> >
> > I tried \partCombine, it works nicely with two parts, but if there's a
> > way to combine three or more I didn't find it.
> >
> > Any help is much appreciated.
>
> Just remove the "\\" in your definition of percussions:
>
> percussions = \new Voice \relative {
><<
>  \cymbals
>  \tamTam
>  \bassDrum
>>>
> }
> In that way, all three lines of music will belong to the same Voice.
>
> When you use the construct << ... \\ ... >>, you explicitly ask LilyPond
> to create separate voices with separate stems, for the different lines
> of music, which is not what you want in this particular situation.
>
>  /Mats
>



Re: Can \showStaffSwitch \pageBreak ? Bug?

2024-04-17 Thread Xavier Scheuer
On Wed, 17 Apr 2024 at 21:53, Pierre-Luc Gauthier 
wrote:
>
> Hi there,
>
> Is this a known bug ?
>
> The \showStaffSwitch indication seems uneasy about page breaks.

Hello,

It might be another instance of #6684, which itself is apparently a
duplicate of #6551.
https://gitlab.com/lilypond/lilypond/-/issues/6684
https://gitlab.com/lilypond/lilypond/-/issues/6551

Kind regards,
Xavier


RE: Horizontal note spacing in chant template

2024-04-17 Thread richard
Thanks David, much appreciated.

> and confusing the bass eye

...doesn't take much (says the tenor)  

I was thinking about using a bracket/arpeggio as in the documentation.

-Original Message-
From: lilypond-user-bounces+richard=oneill-griffiths@gnu.org
 On Behalf Of
David Wright
Sent: Wednesday, April 17, 2024 4:04 PM
To: rich...@oneill-griffiths.net
Cc: lilypond-user@gnu.org
Subject: Re: Horizontal note spacing in chant template

On Wed 17 Apr 2024 at 11:45:51 (+0100), rich...@oneill-griffiths.net wrote:
> Hi, I've been using the Anglican chant template to set items for our 
> choir and I've just a note spacing problem with one chant (Walford 
> Davies) last quarter.
>  
> How do I address the note spacing for the B/C clash in the 3rd bar?

voiceThree will provide the offset, and handle the stem correctly.
You can reduce the amount of bracketing too, as attached.

> Now if there's also an easier way to show that voice split in the 
> tenor part, I'd  appreciate it.

Conventionally, one uses an arpeggio bracket to resolve the ambiguity with
semibreves, as shown.

I would advise against abandoning convention, and confusing the bass eye, by
any use of stemDown in the tenor part.

Cheers,
David.




Re: Horizontal note spacing in chant template

2024-04-17 Thread David Wright
On Wed 17 Apr 2024 at 11:45:51 (+0100), rich...@oneill-griffiths.net wrote:
> Hi, I've been using the Anglican chant template to set items for our choir
> and I've just a note spacing problem with one chant (Walford Davies) last
> quarter.
>  
> How do I address the note spacing for the B/C clash in the 3rd bar?

voiceThree will provide the offset, and handle the stem correctly.
You can reduce the amount of bracketing too, as attached.

> Now if there's also an easier way to show that voice split in the tenor
> part, I'd  appreciate it.

Conventionally, one uses an arpeggio bracket to resolve the ambiguity
with semibreves, as shown.

I would advise against abandoning convention, and confusing the bass eye,
by any use of stemDown in the tenor part.

Cheers,
David.
\version "2.24.0"
\language "english"

global = {
  \key c \minor
   s1*4 \bar "|."
}

TenorMusic = \relative {
  g1 af2 c2 c2
  <<
c2
\new Voice = "melody" {
  \voiceThree
  bf4 af4
}
  >>
  \arpeggioBracket < c g >1 \arpeggio
}

BassMusic = \relative {
  af,1 df2 c2 f2 bf,2 ef1
}

\markup {
  \fill-line {
\score {
  <<
\new ChoirStaff <<
  \new Staff <<
\clef "bass"
\global
\new Voice = "Tenor" <<
  \voiceOne
  \TenorMusic
>>
 \new Voice = "Bass" <<
  \voiceTwo
  \BassMusic
>>
  >>
>>
  >>
  \layout {
\context {
  \Score
  fineBarType = "||"
}
\context {
  \Staff
  \remove Time_signature_engraver
}
  }
}
  }
}


RE: Horizontal note spacing in chant template

2024-04-17 Thread richard
Thanks. 

Appreciate the help

-Original Message-
From: lilypond-user-bounces+richard=oneill-griffiths@gnu.org 
 On Behalf Of Mats 
Bengtsson
Sent: Wednesday, April 17, 2024 1:20 PM
To: lilypond-user@gnu.org; rich...@oneill-griffiths.net
Subject: Re: Horizontal note spacing in chant template


On 2024-04-17 12:45, rich...@oneill-griffiths.net wrote:
>
> Hi, I’ve been using the Anglican chant template to set items for our 
> choir and I’ve just a note spacing problem with one chant (Walford
> Davies) last quarter.
>
> How do I address the note spacing for the B/C clash in the 3^rd bar?
>
> Now if there’s also an easier way to show that voice split in the 
> tenor part, I’d appreciate it.
>
> Thanks
>
> Richard Griffiths
>
> \version "2.24.0"
>
> \language "english"
>
> global = {
>
> \key c \minor
>
> s1*4 \bar "|."
>
> }
>
> TenorMusic = \relative {
>
> g1 af2 c2 c2
>
> \new Voice = "melody" {
>
> <<
>
> \new Voice {
>
> \voiceTwo
>
> \stemUp
>
> bf4 af4 g1
>
> }
>
> {
>
> \voiceOne
>
> c2 c1
>
> }
>
> >>
>
> }
>
> }
>
> BassMusic= \relative {
>
> af,1 df2 c2 f2 bf,2 ef1
>
> }
>
> \markup {
>
> \fill-line {
>
> \score {
>
> <<
>
> \new ChoirStaff <<
>
> \new Staff <<
>
> \clef "bass"
>
> \global
>
> \new Voice = "Tenor" <<
>
> \voiceOne
>
> \TenorMusic
>
> >>
>
> \new Voice = "Bass" <<
>
> \voiceTwo
>
> \BassMusic
>
> >>
>
> >>
>
> >>
>
> >>
>
> \layout {
>
> \context {
>
> \Score
>
> fineBarType = "||"
>
> }
>
> \context {
>
> \Staff
>
> \remove Time_signature_engraver
>
> }
>
> }
>
> }
>
> }
>
> }
>
Why not use \voiceThree and/or \voiceFour, see 
https://lilypond.org/doc/v2.24/Documentation/learning/i_0027m-hearing-voices. 
In other words, replace your definition of TenorMusic by

TenorMusic = \relative {
   g1 af2 c2 c2
   \new Voice = "melody" {
 <<
   \new Voice {
 \voiceThree
 bf4 af4 g1
   }
   {
 \voiceOne
 c2 c1
   }
 >>
   }
}

 /Mats





Re: Horizontal note spacing in chant template

2024-04-17 Thread Mats Bengtsson



On 2024-04-17 12:45, rich...@oneill-griffiths.net wrote:


Hi, I’ve been using the Anglican chant template to set items for our 
choir and I’ve just a note spacing problem with one chant (Walford 
Davies) last quarter.


How do I address the note spacing for the B/C clash in the 3^rd bar?

Now if there’s also an easier way to show that voice split in the 
tenor part, I’d appreciate it.


Thanks

Richard Griffiths

\version "2.24.0"

\language "english"

global = {

\key c \minor

s1*4 \bar "|."

}

TenorMusic = \relative {

g1 af2 c2 c2

\new Voice = "melody" {

<<

\new Voice {

\voiceTwo

\stemUp

bf4 af4 g1

}

{

\voiceOne

c2 c1

}

>>

}

}

BassMusic= \relative {

af,1 df2 c2 f2 bf,2 ef1

}

\markup {

\fill-line {

\score {

<<

\new ChoirStaff <<

\new Staff <<

\clef "bass"

\global

\new Voice = "Tenor" <<

\voiceOne

\TenorMusic

>>

\new Voice = "Bass" <<

\voiceTwo

\BassMusic

>>

>>

>>

>>

\layout {

\context {

\Score

fineBarType = "||"

}

\context {

\Staff

\remove Time_signature_engraver

}

}

}

}

}

Why not use \voiceThree and/or \voiceFour, see 
https://lilypond.org/doc/v2.24/Documentation/learning/i_0027m-hearing-voices. 
In other words, replace your definition of TenorMusic by


TenorMusic = \relative {
  g1 af2 c2 c2
  \new Voice = "melody" {
    <<
  \new Voice {
    \voiceThree
    bf4 af4 g1
  }
  {
    \voiceOne
    c2 c1
  }
    >>
  }
}

    /Mats




RE: Horizontal note spacing in chant template

2024-04-17 Thread richard
Thank you so much.
 
From: Michael Werner  
Sent: Wednesday, April 17, 2024 12:55 PM
To: rich...@oneill-griffiths.net; lilypond-user@gnu.org
Subject: Re: Horizontal note spacing in chant template
 
Hi Richard,
On 2024-Apr-17 06:45, rich...@oneill-griffiths.net 
  wrote:
Hi, I’ve been using the Anglican chant template to set items for our choir and 
I’ve just a note spacing problem with one chant (Walford Davies) last quarter.
 
How do I address the note spacing for the B/C clash in the 3rd bar?
 
Now if there’s also an easier way to show that voice split in the tenor part, 
I’d  appreciate it.
 
Probably better ways to go about this, but what I came up with is to change the 
tenor part to:
TenorMusic = \relative {
  g1 af2 c2 c2
  \new Voice = "melody" {
<<
  \new Voice {
\voiceFour
\once \override NoteColumn.force-hshift = 1.2 bf4 af4 g1
  }
  {
\voiceOne
c2 c1
  }
>>
  }
}
This results in:



-- 
Michael


Re: Horizontal note spacing in chant template

2024-04-17 Thread Michael Werner

Hi Richard,

On 2024-Apr-17 06:45, rich...@oneill-griffiths.net wrote:


Hi, I’ve been using the Anglican chant template to set items for our choir and 
I’ve just a note spacing problem with one chant (Walford Davies) last quarter.

How do I address the note spacing for the B/C clash in the 3^rd bar?

Now if there’s also an easier way to show that voice split in the tenor part, 
I’d appreciate it.



Probably better ways to go about this, but what I came up with is to change the 
tenor part to:

TenorMusic = \relative { g1 af2 c2 c2 \new Voice = "melody" { << \new Voice { 
\voiceFour \once \override NoteColumn.force-hshift = 1.2 bf4 af4 g1 } { \voiceOne c2 c1 } >> } }

This results in:

--

Michael



OpenPGP_signature.asc
Description: OpenPGP digital signature


Re: Multiple parts on the same stems

2024-04-17 Thread Mats Bengtsson

On 2024-04-16 21:59, Gerardo Ballabio wrote:

Hello all,
I'm trying to typeset a percussion score with several instruments on
the same staff. When they play simultaneous notes I want to line them
up all on the same stem, like this (output attached, percussion1.pdf):

%%
\version "2.24.1"

\new Staff \relative {
   \clef "varpercussion"
   \stemDown
   R1 |
   r2 2\f-> |
   R1 |
   r2 q2-> |
}
%%

But I'd like to write down each part separately, so that I may also
print the single parts without redoing everything. And I also want to
use different note heads for each instrument.
This is the best I could come up with:

%%
\version "2.24.1"

bassDrum = \relative {
   \stemDown
   s1 |
   s2 b2-> |
   s1 |
   s2 b2-> |
}

cymbals = \relative {
   \override NoteHead.style = #'xcircle \stemDown
   s1 |
   s2 f'2 |
   s1 |
   s2 f2 |
}

tamTam = \relative {
   \override NoteHead.style = #'cross \stemDown
   s1 |
   s2 e2 |
   s1 |
   s2 e2 |
}

pause = \new Voice {
   \clef "varpercussion"
   \time 4/4
   R1 |
   r2 s2\f |
   R1 |
   r2 s2 |
}

percussions = \new Voice \relative {
   <<
 \cymbals
   \\
 \tamTam
   \\
 \bassDrum
   >>
}

\new Staff
<<
   \pause
   \percussions
%%

But as you can see (output attached, percussion2.pdf) the three notes
aren't aligned on the same stem, only two of them are.

I tried \partCombine, it works nicely with two parts, but if there's a
way to combine three or more I didn't find it.

Any help is much appreciated.


Just remove the "\\" in your definition of percussions:

percussions = \new Voice \relative {
  <<
    \cymbals
    \tamTam
    \bassDrum
  >>
}
In that way, all three lines of music will belong to the same Voice.

When you use the construct << ... \\ ... >>, you explicitly ask LilyPond 
to create separate voices with separate stems, for the different lines 
of music, which is not what you want in this particular situation.


    /Mats




Horizontal note spacing in chant template

2024-04-17 Thread richard
Hi, I've been using the Anglican chant template to set items for our choir
and I've just a note spacing problem with one chant (Walford Davies) last
quarter.
 
How do I address the note spacing for the B/C clash in the 3rd bar?
 
Now if there's also an easier way to show that voice split in the tenor
part, I'd  appreciate it.
 
Thanks
 
Richard Griffiths
 
\version "2.24.0"
\language "english"
 
global = {
  \key c \minor
   s1*4 \bar "|."
}
TenorMusic = \relative {
  g1 af2 c2 c2
  \new Voice = "melody" {
<<
  \new Voice {
\voiceTwo
\stemUp
bf4 af4 g1
  }
  {
\voiceOne
c2 c1
  }
>>
  }
}
BassMusic = \relative {
  af,1 df2 c2 f2 bf,2 ef1
}
\markup {
  \fill-line {
\score {
  <<
\new ChoirStaff <<
  \new Staff <<
\clef "bass"
\global
\new Voice = "Tenor" <<
  \voiceOne
  \TenorMusic
>>
 \new Voice = "Bass" <<
  \voiceTwo
  \BassMusic
>>
  >>
>>
  >>
  \layout {
\context {
  \Score
  fineBarType = "||"
}
\context {
  \Staff
  \remove Time_signature_engraver
}
  }
}
  }
}


Re: Delayed turns etc

2024-04-17 Thread Robin Bannister

Peter Mayes wrote:

On 16/04/2024 23:33, Knute Snortum wrote:


3. How to stop the second line being justified out to the right?
In the fuller score, something like this is followed by a page
break and more music, but there is a natural break at this double
bar, and it looks very "stretched out". I tried various "ragged"
keywords, but none of them just operated on the one line.


Is this not what you want?

\paper {
  ragged-last = ##t
}

That works for the last line of the whole score. The line I want to be
"ragged" is the last line of a page. with more music on the next page.



A similar question last year got several answers:
https://lists.gnu.org/archive/html/lilypond-user/2023-06/msg00148.html

If you want to try pseudoIndent, I have appended the latest version.


Cheers,
Robin
 PSEUDOINDENT FUNCTIONS 

% these two functions are for indenting individual systems
% - to left-indent a system, apply \pseudoIndent before the music continues
% - \pseudoIndents is similar, but lets you also indent on the right
% - both provide an option for changing that system's instrument names

% N.B. these functions 
% - assume application to non-ragged lines (generally the default)
% - include a manual \break to ensure application at line start 
% - misbehave if called more than once at the same line start

% the parameters of the (full) pseudoIndents function are:
% 1: name-tweaks
%  usually omitted; accepts replacement \markup for instrument names 
%  as an ordered list; starred elements leave their i-names unchanged.
% 2: left-indent 
%  additional left-indentation, in staff-space units; can be negative, 
%  but avoid a total indentation which implies (unsupported) stretching. 
% 3: right-indent 
%  amount of right-indentation, in staff-space units; can be negative. 
%  - not offered by the (reduced) pseudoIndent function


pseudoIndents = % inline alternative to a new \score, also with right-indent
#(define-music-function (name-tweaks left-indent right-indent) 
  ((markup-list? '()) number? number?)
  (define (warn-stretched p1 p2) (ly:input-warning (*location*) (G_
" pseudoIndents ~s ~s is stretching staff; expect distorted layout") p1 p2))
  (let* ( 
(narrowing (+ left-indent right-indent)) ; of staff implied by args

(set-staffsymbol! (lambda (staffsymbol-grob) ; change staff to new width 
  (let* (
(left-bound (ly:spanner-bound staffsymbol-grob LEFT))
(left-moment (ly:grob-property left-bound 'when))
(capo? (moment<=? left-moment ZERO-MOMENT)) ; in first system of score
(layout (ly:grob-layout staffsymbol-grob))
(lw (ly:output-def-lookup layout 'line-width)) ; debugging info
(indent (ly:output-def-lookup layout (if capo? 'indent 'short-indent)))
(old-stil (ly:staff-symbol::print staffsymbol-grob))
(staffsymbol-x-ext (ly:stencil-extent old-stil X))
;; >=2.19.16's first system has old-stil already narrowed [2]
;; compensate for this (ie being not pristine) when calculating 
;; - old leftmost-x (its value is needed when setting so-called 'width) 
;; - the new width and position (via local variable narrowing_) 
(ss-t (ly:staff-symbol-line-thickness staffsymbol-grob))
(pristine? (<= 0 (car staffsymbol-x-ext) ss-t)) ; would expect half
(leftmost-x (+ indent (if pristine? 0 narrowing))) 
(narrowing_ (if pristine? narrowing 0)) ; uses 0 if already narrowed
(old-width (+ (interval-length staffsymbol-x-ext) ss-t))
(new-width (- old-width narrowing_))
(new-rightmost-x (+ leftmost-x new-width)) ; and set! this immediately
(junk (ly:grob-set-property! staffsymbol-grob 'width new-rightmost-x))
(in-situ-stil (ly:staff-symbol::print staffsymbol-grob))
(new-stil (ly:stencil-translate-axis in-situ-stil narrowing_ X))
   ;(new-stil (stencil-with-color new-stil red)) ; for when debugging
(new-x-ext (ly:stencil-extent new-stil X)))
  (ly:grob-set-property! staffsymbol-grob 'stencil new-stil)
  (ly:grob-set-property! staffsymbol-grob 'X-extent new-x-ext)
  )))

(set-X-offset! (lambda (margin-grob) ; move grob across to line start 
  (let* (
(old (ly:grob-property-data margin-grob 'X-offset)) 
(new (lambda (grob) (+ (if (procedure? old) (old grob) old) narrowing
  (ly:grob-set-property! margin-grob 'X-offset new

(tweak-text! (lambda (i-name-grob mkup) ; tweak both instrumentname texts   
  (if (and (markup? mkup) (not (string=? (markup->string mkup) "*")))
  (begin 
(ly:grob-set-property! i-name-grob 'long-text mkup)
(ly:grob-set-property! i-name-grob 'text mkup)
 ; else retain existing text 

(install-narrowing (lambda (leftedge-grob) ; on staves, + adapt left margin
  (define (grob-name x) (assq-ref (ly:grob-property x 'meta) 

Re: Delayed turns etc

2024-04-17 Thread Thomas Morley
Am Mi., 17. Apr. 2024 um 11:13 Uhr schrieb Jean Abou Samra :
>
> That works for the last line of the whole score. The line I want to be 
> "ragged" is the last line of a page. with more music on the next page.
>
>
> There is no way to make just one system ragged except the last one in the 
> score. I'm afraid you need a second \score block if you want to do this.

I'd vote for a second score as well, though there is
https://lsr.di.unimi.it/LSR/Item?id=1098
(Not tested with 2.25.xx)

Cheers,
  Harm



Re: Delayed turns etc

2024-04-17 Thread Jean Abou Samra
> That works for the last line of the whole score. The line I want to be
> "ragged" is the last line of a page. with more music on the next page.

There is no way to make just one system ragged except the last one in the score.
I'm afraid you need a second \score block if you want to do this.


signature.asc
Description: This is a digitally signed message part


Re: Delayed turns etc

2024-04-17 Thread Peter Mayes

On 16/04/2024 23:33, Knute Snortum wrote:


3. How to stop the second line being justified out to the right?
In the fuller score, something like this is followed by a page
break and more music, but there is a natural break at this double
bar, and it looks very "stretched out". I tried various "ragged"
keywords, but none of them just operated on the one line.


Is this not what you want?

\paper {
  ragged-last = ##t
}
That works for the last line of the whole score. The line I want to be 
"ragged" is the last line of a page. with more music on the next page.


--
Best wishes -- Peter
--
Peter Mayes