Re: Bar line check is wrong with partial note and voltas

2020-10-12 Thread David Wright
On Mon 12 Oct 2020 at 14:46:43 (-0700), Knute Snortum wrote:
> On Mon, Oct 12, 2020 at 10:03 AM Aaron Hill  wrote:
> > On 2020-10-12 9:56 am, Knute Snortum wrote:
> > >
> > > I think I've run into a bug.  It's hard to explain so I will post the
> > > MWE (it's as minimal as I could make it):
> > >
> > > %%% Start
> > > \version "2.20.0"
> > >
> > > rightHand = \relative c' {
> > >   \partial 4 c4
> > >   c4 c c
> > >
> > >   \repeat volta 2 {
> > > c4 |
> > > c4 c c c |
> > >   }
> > >   \alternative {
> > > { c4 c c }
> > > { c4 c c c }
> > >   }
> > >
> > >   c1 |
> > > }
> > >
> > > \score {
> > >   \new Staff \rightHand
> > >   \midi {
> > >   }
> > > }
> > > %%% End
> > >
> > > The c1 at the end of the music produces a bar line check warning.  It
> > > only happens when creating a MIDI file. It only happens when the volta
> > > is in the middle of the measure.  It only happens when an alternate
> > > ending doesn't contain a full measure of notes.
> > >
> > > Any thoughts?  I really appreciate you guys.
> >
> > Don't you need to \unfoldRepeats when doing MIDI output?
> >
> > 
> > \score {
> >\new Staff \unfoldRepeats \rightHand
> >\midi { }
> > }
> > 
> 
> Thanks, Aaron Hill.  The only problem is this messes up my \barNumberChecks
> 
> %%% Start
> \version "2.20.0"
> 
> rightHand = \relative c' {
>   \partial 4 c4
>   c4 c c
> 
>   \repeat volta 2 {
> c4 |
> c4 c c c |
>   }
>   \alternative {
> { c4 c c }
> { c4 c c c }
>   }
> 
>   \barNumberCheck 5
>   c1 |
> }
> 
> \score {
>   \new Staff \rightHand
> }
> 
> \score {
>   \new Staff \unfoldRepeats \rightHand
>   \midi {
>   }
> }
> %%% End

Your \barNumberCheck, as you placed it, should be expecting 4 or 6,
as in the attached, but not 5. A \barNumberCheck placed at the
barline should be set to the number of the next measure, not the
previous one.

However, I agree that LP's a bit messy when you generate MIDI with
folded repeats, which is something I regularly do in order to
proof-read by ear. In this case, you get the barcheck shown by
your version at the top of the quote above.

My workaround is the same as previously: generate the MIDI first,
then the score. My \barNumberChecks are naturally set to agree with
the printed/folded bar numbers, so all the noise goes into the
MIDI part of the console log, and the \layout part should be clean.

Cheers,
David.
rightHand = \relative c' {
  \partial 4 a4
  b4 c d

  \repeat volta 2 {
e4 |
f4 g a b |
  }
  \alternative {
{ c4 d e }
{ f4 g a b }
  }
  \barNumberCheck #4 \barNumberCheck #6
  c1 |
}

\layout {
  \context {
\Score
\override BarNumber.break-visibility = #end-of-line-invisible
barNumberVisibility = #(every-nth-bar-number-visible 1)
  }
}

\score {
  \new Staff \unfoldRepeats \rightHand
  \layout { }
}

\score {
  \new Staff \rightHand
  \layout { }
}

\score {
  \new Staff \rightHand
  \midi { }
}

\score {
  \new Staff \unfoldRepeats \rightHand
  \midi { }
}


Re: repeat volta and \barNumberCheck

2020-10-12 Thread David Wright
On Sun 04 Oct 2020 at 17:06:48 (-0700), Knute Snortum wrote:
> 
> It seems that repeat volta and \barNumberCheck don't work well
> together when you use the \alternative function.  If you put a
> \barNumberCheck inside of a repeat volta, the \braNumberCheck fails
> all the time.  I think it's because when you go through the music a
> second time, the numbering is off.
> 
> This may not be a bug, but it's pretty inconvenient. Here's my MWE:
> 
> %%% Start
> \version "2.20.0"
> 
> rightHand = \relative c' {
>   \repeat volta 2 {
> \partial 4 f4
> \barNumberCheck 2
> c4 d e
>   }
> 
>   \repeat volta 2 {
> f4 |
> \barNumberCheck 3
> c4 d e f |
>   }
> }
> 
> \include "articulate.ly"
> 
> \score {
>   \articulate {
> \new Staff \rightHand
>   }
> }
> %%%End

I rewrote your MWE in three respects: I "corrected" the bar numbers
for conventional numbering (as already pointed out), I made the
pitches less ambiguous, and I replaced \articulate by \unfoldRepeats,
which shows more clearly where the problem lies. (AIUI \articulate
implicitly unfolds the repeats.¹)

Now you can see where the barchecks and barnumberchecks come from
more clearly. The former is a "composition" error, the latter is
as you thought: the second pass of the source has a different
counting origin.

My way of dealing with the snag is to generate the MIDI (and the
like) first. When the run is completed, the console log with be
left displaying the clean \layout run *after* the dirty run:

  […]
  Interpreting music...
  knute1.ly:4:5: warning: Barcheck failed got 2 expect 1
  
  \barNumberCheck 1 % corrected
  knute1.ly:10:5: warning: Barcheck failed got 3 expect 2
  
  \barNumberCheck 2 % corrected
  knute1.ly:9:8: warning: barcheck failed at: 1/4
  g4 
 |
  knute1.ly:10:5: warning: Barcheck failed got 4 expect 2
  
  \barNumberCheck 2 % corrected
  Preprocessing graphical objects...
  Interpreting music...
  Preprocessing graphical objects...
  […]

On Sun 04 Oct 2020 at 17:18:49 (-0700), Knute Snortum wrote:
> Here's another way that "articulate.ly"  messes with bar line checks.
> If you put a \repeat volta in the middle of a measure, you cannot get
> reliable bar line checks (|) after that.  Here's my MWE:
> 
> %%%Start
> \version "2.20.0"
> 
> rightHand = \relative c' {
>   \repeat volta 2 {
> \partial 4 f4
> c4 d e f |
> c4 d e
>   }
> 
>   \repeat volta 2 {
> f4 |
> c4 d e f |
>   }
> }
> 
> \include "articulate.ly"
> 
> \score {
>   \articulate { % Remove articulate and all is well!
> \new Staff \rightHand
>   }
> }
> %%%End

Much the same "compositional" problem: it's not clear on which beat of
the bar the upper d lies, 4th or 1st.

¹ I haven't read articulate.ly in any detail, but there are hints:

  "% Totally unfold repeats, so that the non-obvious sequencing doesn't
   % confuse us.  This is necessary for time stealing to work, because
   % that relies on the sequence in which we see events matching their
   % audible sequence.  Also unfold multi-measure rests to equivalent
   % skips, with preceding and following bar checks, so that time stealing
   % can change the length of the pause without falling foul of the
   % implicit bar checks."

Cheers,
David.
rightHand = \relative c' {
  \repeat volta 2 {
\partial 4 c4
\barNumberCheck 1 % corrected
d4 e f
  }

  \repeat volta 2 {
g4 |
\barNumberCheck 2 % corrected
a4 b c d |
  }
}

%%\include "articulate.ly"

\score {
  %%\articulate {
\new Staff \unfoldRepeats \rightHand
  %%}
}

%%\include "articulate.ly"

\score {
  %%\articulate {
\new Staff \rightHand
  %%}
}
rightHand = \relative c' {
  \repeat volta 2 {
\partial 4 c4
d4 e f g |
a4 b c
  }

  \repeat volta 2 {
d4 |
e4 f g a |
  }
}

%%\include "articulate.ly"

\score {
  %%\articulate { % Remove articulate and all is well!
\new Staff \unfoldRepeats \rightHand
  %%}
}

%%\include "articulate.ly"

\score {
  %%\articulate { % Remove articulate and all is well!
\new Staff \rightHand
  %%}
}


Re: Gregorian chant/Mensural notation: No ledger for custodes beyond 5-line staff

2020-10-12 Thread Matthew Fong
Hi everyone,

I posted this to bug-lilyp...@gnu.org.

I tried the code snippet at lilybin.com, and both versions there produce
the same result as the latest stable version 2.20.


Many thanks,
mattfong

On Sat, Oct 10, 2020 at 9:50 AM Matthew Fong  wrote:

> Hello fellow LilyPonders,
>
> I was engraving a piece of chant in modern notation recently, and
> discovered that none of the custodes will draw a ledger for middle C (C4)
> or A5, notes beyond the 5-line staff. These notes do occur in chant and
> polyphony.
>
> Is there a workaround for this? Or have I missed something fundamental?
>
> \layout { ragged-right = ##t }
>
> \new Staff \with { \consists "Custos_engraver" } \relative c' {
>   \override Staff.Custos.neutral-position = #4
>
>   \override Staff.Custos.style = #'vaticana
>   c'1^"vaticana" \break
>   c,1 \break
>   a''1
> }
>
>
> Many thanks,
> mattfong
>
>
>


Re: Rest is in the wrong place

2020-10-12 Thread Aaron Hill

On 2020-10-12 3:39 pm, Knute Snortum wrote:

Hi again.

I have a piece that I'm engraving and I have run into this problem:
the 16th note rest is too high:

%%% Start
\version "2.20.0"

\relative c'' {
  << { c8[ r16 c] d4 b } \\ { g4 fis f } >>
}
%%% End

I know that I can tweak the position of the rest, but I have many bars
with this problem and I don't want to tweak them all. Is here a better
way to go about this?  Am I doing something wrong, or a lease not in
an optimum way?


Looks like RestCollision is shifting the rest upward to avoid the g4 in 
the lower voice.  Why the g4 is being considered might be a bug.


Try this for comparison:


\version "2.20.0"

\fixed c'' { \time 3/4
  % Works.  Nothing to avoid.
  { \voiceOne c8[ r16 c] d4 b, }
  % Does not work.  g4 is "too close".
  << { c8[ r16 c] d4 b, } \\ { g,4 fis, f, } >>
  % Works.  g4*1/2 is not considered for collision.
  << { c8[ r16 c] d4 b, } \\ { g,4*1/2 s fis,4 f, } >>
  % Works.  Reduced constraint allows original position.
  \override Staff.RestCollision.minimum-distance = #0.4
  << { c8[ r16 c] d4 b, } \\ { g,4 fis, f, } >>
}


Changing minimum-distance might be your best option to avoid needing to 
manually adjust and/or specify the staff-position for rests.



-- Aaron Hill

Rest is in the wrong place

2020-10-12 Thread Knute Snortum
Hi again.

I have a piece that I'm engraving and I have run into this problem:
the 16th note rest is too high:

%%% Start
\version "2.20.0"

\relative c'' {
  << { c8[ r16 c] d4 b } \\ { g4 fis f } >>
}
%%% End

I know that I can tweak the position of the rest, but I have many bars
with this problem and I don't want to tweak them all. Is here a better
way to go about this?  Am I doing something wrong, or a lease not in
an optimum way?

---
Knute Snortum
(via Gmail)



Re: Bar line check is wrong with partial note and voltas

2020-10-12 Thread Knute Snortum
Thanks, Aaron Hill.  The only problem is this messes up my \barNumberChecks

%%% Start
\version "2.20.0"

rightHand = \relative c' {
  \partial 4 c4
  c4 c c

  \repeat volta 2 {
c4 |
c4 c c c |
  }
  \alternative {
{ c4 c c }
{ c4 c c c }
  }

  \barNumberCheck 5
  c1 |
}

\score {
  \new Staff \rightHand
}

\score {
  \new Staff \unfoldRepeats \rightHand
  \midi {
  }
}
%%% End

---
Knute Snortum
(via Gmail)

On Mon, Oct 12, 2020 at 10:03 AM Aaron Hill  wrote:
>
> On 2020-10-12 9:56 am, Knute Snortum wrote:
> > Hi everyone.
> >
> > I think I've run into a bug.  It's hard to explain so I will post the
> > MWE (it's as minimal as I could make it):
> >
> > %%% Start
> > \version "2.20.0"
> >
> > rightHand = \relative c' {
> >   \partial 4 c4
> >   c4 c c
> >
> >   \repeat volta 2 {
> > c4 |
> > c4 c c c |
> >   }
> >   \alternative {
> > { c4 c c }
> > { c4 c c c }
> >   }
> >
> >   c1 |
> > }
> >
> > \score {
> >   \new Staff \rightHand
> >   \midi {
> >   }
> > }
> > %%% End
> >
> > The c1 at the end of the music produces a bar line check warning.  It
> > only happens when creating a MIDI file. It only happens when the volta
> > is in the middle of the measure.  It only happens when an alternate
> > ending doesn't contain a full measure of notes.
> >
> > Any thoughts?  I really appreciate you guys.
>
> Don't you need to \unfoldRepeats when doing MIDI output?
>
> 
> \score {
>\new Staff \unfoldRepeats \rightHand
>\midi { }
> }
> 
>
>
> -- Aaron Hill
>



Re: Markup Between Systems

2020-10-12 Thread Jean Abou Samra

Hi Xavier,

>/One lead would be to "hack" the system-separator-markup./
>/See NR 1.6.1 Displaying staves > Separating systems/
>/https://lilypond.org/doc/v2.21/Documentation/notation/displaying-staves.html#separating-systems/

I was considering that… but can one change the separator mid-score?
I thought you could only change it in the \paper variable?

Cheers,
Kieren.


Hi,

You can make it depend on the page, but not more, as this test evidences:

#(define counter 1)
#(define (next layout props arg)
   (display counter) (newline)
   (set! counter (1+ counter))
   (interpret-markup layout props #{ \markup "A" #}))
\paper {
  system-separator-markup = \markup \on-the-fly #next \null
}
\repeat unfold 500 c'1

This prints
1
2
3

because there are three pages, but the markup is evaluated just once per 
page.


No clue wether there is a way to replace make-page-stencil from page.scm 
(https://gitlab.com/lilypond/lilypond/-/blob/master/scm/page.scm#L229) 
to override this behavior.


Best,
Jean



Re: grace notes spacing

2020-10-12 Thread Jean Abou Samra

I would be a happy man if the notorious Issue 34 could be resolved. I
spend a lot of time having to put grace note spacers in complex scores
to get the vertical alignment working. Each one I do, I wish I knew
enough about lilypond internals to contribute a fix. It's not clear to
me why this one is so immensely difficult to solve, but I trust the
developers that it's a real doozy.

Andrew


Even when you are not knowledgeable enough to contribute in advanced areas,
undertaking tasks that require less skills helps other developers focus on
the most difficult challenges, as mentioned at
http://lilypond.org/doc/v2.21/Documentation/contributor-big-page.html#help-us
(I think an earlier version of this text pointed to issue 34, precisely).

Get me right: maintaining openLilyLib for example is of great value.

FWIW, MuseScore seems to get this right. Perhaps its corresponding 
part of the code (wherever it might hide) could serve as inspiration 
for a fix for Lilypond? —Please excuse my ignorance if this is 
technically nonsense! :-). 


Apart from the fact that LilyPond's and MuseScore's inner workings
have nothing in common, it seems that MuseScore merely aligns grace
notes at the right of regular notes, without a notion of synchronization
of grace timing across voices and staves. LilyPond has one, hence the
increased complexity of the problem (see screenshots attached to 
understand).


I think the engines are completely different, but at least it shows 
that other programs can do it. Not that this means anything.


Actually it would be interesting to hear from the advanced developers 
exactly why, in a nutshell, this presents apparently insurmountable 
difficulties. That may help me reconcile myself to it!


Andrew


I am no advanced developer, but I remember this thread:

https://lists.gnu.org/archive/html/lilypond-devel/2020-02/msg00420.html

especially

https://lists.gnu.org/archive/html/lilypond-devel/2020-02/msg00545.html

There is also a bit of brainstorming between Reinhold and David in the 
issue.

I think Reinhold explained the problem well:

https://gitlab.com/lilypond/lilypond/-/issues/34#note_339729615

Best,
Jean



Re: grace notes spacing

2020-10-12 Thread Jean Abou Samra

Le 12/10/2020 à 08:46, Martín Rincón Botero a écrit :


Thanks for the link Jean. 8 years old issue? Ouch!


We work hard to fix all bugs found in LilyPond. Sometimes that's just 
difficult, and sometimes we just have too many of them. Also, LilyPond 
is so complex that nobody understands all of its code.


If you want a fix for that one, I encourage you to join development. At 
least, realizing that there were long-standing issues like this one 
(including my own pet peeves) and not enough people to address them is 
part of the reasons why I did!


Best,
Jean



Re: Bar line check is wrong with partial note and voltas

2020-10-12 Thread Kenneth Wolcott
Thank you Aaron! I learned today, thanks to you, why my repeats fail
when creating midi files with Lilypond!

On Mon, Oct 12, 2020 at 10:03 AM Aaron Hill  wrote:
>
> On 2020-10-12 9:56 am, Knute Snortum wrote:
> > Hi everyone.
> >
> > I think I've run into a bug.  It's hard to explain so I will post the
> > MWE (it's as minimal as I could make it):
> >
> > %%% Start
> > \version "2.20.0"
> >
> > rightHand = \relative c' {
> >   \partial 4 c4
> >   c4 c c
> >
> >   \repeat volta 2 {
> > c4 |
> > c4 c c c |
> >   }
> >   \alternative {
> > { c4 c c }
> > { c4 c c c }
> >   }
> >
> >   c1 |
> > }
> >
> > \score {
> >   \new Staff \rightHand
> >   \midi {
> >   }
> > }
> > %%% End
> >
> > The c1 at the end of the music produces a bar line check warning.  It
> > only happens when creating a MIDI file. It only happens when the volta
> > is in the middle of the measure.  It only happens when an alternate
> > ending doesn't contain a full measure of notes.
> >
> > Any thoughts?  I really appreciate you guys.
>
> Don't you need to \unfoldRepeats when doing MIDI output?
>
> 
> \score {
>\new Staff \unfoldRepeats \rightHand
>\midi { }
> }
> 
>
>
> -- Aaron Hill
>



Re: Bar line check is wrong with partial note and voltas

2020-10-12 Thread Aaron Hill

On 2020-10-12 9:56 am, Knute Snortum wrote:

Hi everyone.

I think I've run into a bug.  It's hard to explain so I will post the
MWE (it's as minimal as I could make it):

%%% Start
\version "2.20.0"

rightHand = \relative c' {
  \partial 4 c4
  c4 c c

  \repeat volta 2 {
c4 |
c4 c c c |
  }
  \alternative {
{ c4 c c }
{ c4 c c c }
  }

  c1 |
}

\score {
  \new Staff \rightHand
  \midi {
  }
}
%%% End

The c1 at the end of the music produces a bar line check warning.  It
only happens when creating a MIDI file. It only happens when the volta
is in the middle of the measure.  It only happens when an alternate
ending doesn't contain a full measure of notes.

Any thoughts?  I really appreciate you guys.


Don't you need to \unfoldRepeats when doing MIDI output?


\score {
  \new Staff \unfoldRepeats \rightHand
  \midi { }
}



-- Aaron Hill



Bar line check is wrong with partial note and voltas

2020-10-12 Thread Knute Snortum
Hi everyone.

I think I've run into a bug.  It's hard to explain so I will post the
MWE (it's as minimal as I could make it):

%%% Start
\version "2.20.0"

rightHand = \relative c' {
  \partial 4 c4
  c4 c c

  \repeat volta 2 {
c4 |
c4 c c c |
  }
  \alternative {
{ c4 c c }
{ c4 c c c }
  }

  c1 |
}

\score {
  \new Staff \rightHand
  \midi {
  }
}
%%% End

The c1 at the end of the music produces a bar line check warning.  It
only happens when creating a MIDI file. It only happens when the volta
is in the middle of the measure.  It only happens when an alternate
ending doesn't contain a full measure of notes.

Any thoughts?  I really appreciate you guys.

---
Knute Snortum
(via Gmail)



Re: OLL and git

2020-10-12 Thread Jan-Peter Voigt
Thank you, Andrew!
Of course I can assist especially with the edition-engraver and the
lalily-templates ;-)

Jan-Peter

Am 11.10.20 um 11:19 schrieb Andrew Bernard:
> To all interested in OLL. as I am starting this anew, in effect, I am
> at the moment considering moving to Gitlab instead of Github. There is
> precedent for this - lilypond is there! (not that that is directly
> related to OLL). The current github organisation has been orphaned as
> far as I can see, and for me to do the work and make the improvements
> I see I prefer to move to Gitlab, so I can have complete management
> control. Likewise, openlilylib.org has been removed, and I have
> registered openlilylib.space and I am building a new website today,
> which will have documentation, a blog, and support material and so on,
> and anything else people may want.
>
> My career has been in UNIX software development and IT Enterprise
> Architecture. I am critically aware of the impact that changes can
> have on people and existing code. However, I have been unhappy, as an
> end user, with OLL git being fragmented into a number of repos. This
> makes it harder than need be for beginners and people, and part of the
> whole reason I am taking this on is to enhance the uptake and utility
> for lilypond users, so I want to unify the work into one repo. There's
> no criticism of what is there, but I think it 'just grew'. Now, making
> a change like this would mean people will have to re-org their code a
> bit, but on reflection I don't think this is a big deal or a big job,
> and to move forward sometimes breaking changes need to be made.
>
> I will of course keep all the very valuable existing code modules -
> nothing will change there, except I will complete the move to make all
> the snippets package compliant modules.
>
> Changes like this often cause an uproar, but the existing github will
> still be around, and people can move as and when they see fit, and all
> new development and contributions should occur on the new Gitlab repo.
> [It's not ready yet - I only started in on this with definite intent
> today.]
>
> Andrew
>




Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
> Sorry to hear that… I guess there’s always my hand-crafted method. =)

Nothing else seems to do the job :-).

www.martinrinconbotero.com
On 12. Oct 2020, 16:03 +0200, Kieren MacMillan , 
wrote:
>
> Sorry to hear that… I guess there’s always my hand-crafted method. =)


Re: OLL redux

2020-10-12 Thread Peter Crighton
On Mon, 12 Oct 2020 at 15:25, Kieren MacMillan <
kieren_macmil...@sympatico.ca> wrote:

> Hi Andrew,
>
> Thanks for doing all this!
>
> One "branding" note: I believe Urs capitalized the name as openLilyLib.
> Whether you want to continue that "brand" is, of course, up to you… but I
> wanted to make sure you knew.
>

I’ll second that. Both the thanks for taking over (and equally thanks to
Urs for bringing OLL up to this point) and the branding note. The logo,
which is used on the new website, uses that capitalization, so for the long
term consistency would be good … either with adapting the text or having a
new logo. But it’s obviously early days with the new website, just to keep
it in mind.

--
Peter Crighton | Musician & Music Engraver based in Mainz, Germany
http://www.petercrighton.de


Re: grace notes spacing

2020-10-12 Thread Kieren MacMillan
Hi Martín,

> I guess a MWE doesn't always point you in the right direction. The MWE works 
> great. This is how Harm's solution looks in its real context:

Sorry to hear that… I guess there’s always my hand-crafted method.  =)

Cheers,
Kieren.


Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: kie...@kierenmacmillan.info




Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
I guess a MWE doesn't always point you in the right direction. The MWE
works great. This is how Harm's solution looks in its real context:

[image: image.png]
Adding or deleting \temporary and playing with different values for
Score.SpacingSpanner.common-shortest-duration and
Score.GraceSpacing.common-shortest-duration didn't solve the problem.

Am Mo., 12. Okt. 2020 um 15:53 Uhr schrieb Kieren MacMillan <
kieren_macmil...@sympatico.ca>:

> Hi all,
>
> Here’s what looks best to me:
>
> %%%
> \version "2.21.2"
>
> foo = {
>  \newSpacingSection
>  \temporary \override Score.SpacingSpanner.strict-note-spacing = ##t
>  \temporary \override Score.SpacingSpanner.common-shortest-duration =
> #(ly:make-moment 1/20)
>  \temporary \override Score.GraceSpacing.common-shortest-duration =
> #(ly:make-moment 1/64)
> }
>
> unfoo = {
>  \revert Score.SpacingSpanner.strict-note-spacing
>  \revert Score.SpacingSpanner.common-shortest-duration
>  \revert Score.GraceSpacing.common-shortest-duration
>  \newSpacingSection
> }
>
> <<
>  {
>\relative c''' { \foo r4 \appoggiatura { cis32 b ais } b4 gis' e
> \unfoo  }
>\relative c''' { r4 \appoggiatura { cis32 b ais } b4 gis' e }
>  }
>  \repeat unfold 2 { \relative c'' \repeat unfold 2 { gis8 b gis b } }
> >>
> %%%
>
> [Again: Well done, Harm!]
>
> Cheers,
> Kieren.
> 
>
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: kie...@kierenmacmillan.info
>
>

-- 
www.martinrinconbotero.com


Re: grace notes spacing

2020-10-12 Thread Kieren MacMillan
Hi all,

Here’s what looks best to me:

%%%
\version "2.21.2"

foo = {
 \newSpacingSection
 \temporary \override Score.SpacingSpanner.strict-note-spacing = ##t
 \temporary \override Score.SpacingSpanner.common-shortest-duration = 
#(ly:make-moment 1/20)
 \temporary \override Score.GraceSpacing.common-shortest-duration = 
#(ly:make-moment 1/64)
}

unfoo = {
 \revert Score.SpacingSpanner.strict-note-spacing
 \revert Score.SpacingSpanner.common-shortest-duration
 \revert Score.GraceSpacing.common-shortest-duration
 \newSpacingSection
}

<<
 {
   \relative c''' { \foo r4 \appoggiatura { cis32 b ais } b4 gis' e \unfoo  }
   \relative c''' { r4 \appoggiatura { cis32 b ais } b4 gis' e }
 }
 \repeat unfold 2 { \relative c'' \repeat unfold 2 { gis8 b gis b } }
>>
%%%

[Again: Well done, Harm!]

Cheers,
Kieren.


Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: kie...@kierenmacmillan.info




Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
No matter what value I try, the accidental of the grace note collides in
the score :-(.

[image: image.png]


Am Mo., 12. Okt. 2020 um 15:44 Uhr schrieb Martín Rincón Botero <
martinrinconbot...@gmail.com>:

> ah, \newSpacingSection was missing :-).
>
> www.martinrinconbotero.com
> On 12. Oct 2020, 15:43 +0200, Thomas Morley ,
> wrote:
>
> Am Mo., 12. Okt. 2020 um 15:40 Uhr schrieb Martín Rincón Botero
> :
>
>
> Oh, because uniform-stretching can be only can only be changed for the
> whole score, I believed it’s the same for strict-note-spacing. I’ll try
> that.
>
> www.martinrinconbotero.com
> On 12. Oct 2020, 15:37 +0200, Kieren MacMillan <
> kieren_macmil...@sympatico.ca>, wrote:
>
> Hi Martín,
>
> Thanks for the idea, but strict-note-spacing causes all types of
> collisions in my score (although it works perfectly for my MWE).
>
>
> So why not just override it for that measure? ;)
>
> Cheers,
> Kieren.
> 
>
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: kie...@kierenmacmillan.info
>
>
> foo = {
> \newSpacingSection
> \override Score.SpacingSpanner.strict-note-spacing = ##t
> \override Score.SpacingSpanner.common-shortest-duration =
> #(ly:make-moment 1/20)
> \override Score.GraceSpacing.common-shortest-duration = #(ly:make-moment
> 1/64)
> }
>
> unfoo = {
> \revert Score.SpacingSpanner.strict-note-spacing
> %\revert Score.SpacingSpanner.common-shortest-duration
> \revert Score.GraceSpacing.common-shortest-duration
> \newSpacingSection
> }
>
> <<
> \relative c''' { \foo r4 \appoggiatura { cis32 b ais } b4 \unfoo gis' e }
> \relative c'' \repeat unfold 2 { gis8 b gis b }
>
>
>
> Works here.
>
> Cheers,
> Harm
>
>

-- 
www.martinrinconbotero.com


Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
yep, that doesn’t work for one measure

www.martinrinconbotero.com
On 12. Oct 2020, 15:37 +0200, Kieren MacMillan , 
wrote:
> Hi Martín,
>
> > Thanks for the idea, but strict-note-spacing causes all types of collisions 
> > in my score (although it works perfectly for my MWE).
>
> So why not just override it for that measure? ;)
>
> Cheers,
> Kieren.
> 
>
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: kie...@kierenmacmillan.info
>


Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
Oh, because uniform-stretching can be only can only be changed for the whole 
score, I believed it’s the same for strict-note-spacing. I’ll try that.

www.martinrinconbotero.com
On 12. Oct 2020, 15:37 +0200, Kieren MacMillan , 
wrote:
> Hi Martín,
>
> > Thanks for the idea, but strict-note-spacing causes all types of collisions 
> > in my score (although it works perfectly for my MWE).
>
> So why not just override it for that measure? ;)
>
> Cheers,
> Kieren.
> 
>
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: kie...@kierenmacmillan.info
>


Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
ah, \newSpacingSection was missing :-).

www.martinrinconbotero.com
On 12. Oct 2020, 15:43 +0200, Thomas Morley , wrote:
> Am Mo., 12. Okt. 2020 um 15:40 Uhr schrieb Martín Rincón Botero
> :
> >
> > Oh, because uniform-stretching can be only can only be changed for the 
> > whole score, I believed it’s the same for strict-note-spacing. I’ll try 
> > that.
> >
> > www.martinrinconbotero.com
> > On 12. Oct 2020, 15:37 +0200, Kieren MacMillan 
> > , wrote:
> >
> > Hi Martín,
> >
> > Thanks for the idea, but strict-note-spacing causes all types of collisions 
> > in my score (although it works perfectly for my MWE).
> >
> >
> > So why not just override it for that measure? ;)
> >
> > Cheers,
> > Kieren.
> > 
> >
> > Kieren MacMillan, composer (he/him/his)
> > ‣ website: www.kierenmacmillan.info
> > ‣ email: kie...@kierenmacmillan.info
> >
>
> foo = {
> \newSpacingSection
> \override Score.SpacingSpanner.strict-note-spacing = ##t
> \override Score.SpacingSpanner.common-shortest-duration =
> #(ly:make-moment 1/20)
> \override Score.GraceSpacing.common-shortest-duration = #(ly:make-moment 1/64)
> }
>
> unfoo = {
> \revert Score.SpacingSpanner.strict-note-spacing
> %\revert Score.SpacingSpanner.common-shortest-duration
> \revert Score.GraceSpacing.common-shortest-duration
> \newSpacingSection
> }
>
> <<
> \relative c''' { \foo r4 \appoggiatura { cis32 b ais } b4 \unfoo gis' e }
> \relative c'' \repeat unfold 2 { gis8 b gis b }
> > >
>
> Works here.
>
> Cheers,
> Harm


Re: grace notes spacing

2020-10-12 Thread Thomas Morley
Am Mo., 12. Okt. 2020 um 15:40 Uhr schrieb Martín Rincón Botero
:
>
> Oh, because uniform-stretching can be only can only be changed for the whole 
> score, I believed it’s the same for strict-note-spacing. I’ll try that.
>
> www.martinrinconbotero.com
> On 12. Oct 2020, 15:37 +0200, Kieren MacMillan 
> , wrote:
>
> Hi Martín,
>
> Thanks for the idea, but strict-note-spacing causes all types of collisions 
> in my score (although it works perfectly for my MWE).
>
>
> So why not just override it for that measure? ;)
>
> Cheers,
> Kieren.
> 
>
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: kie...@kierenmacmillan.info
>

foo = {
  \newSpacingSection
  \override Score.SpacingSpanner.strict-note-spacing = ##t
  \override Score.SpacingSpanner.common-shortest-duration =
#(ly:make-moment 1/20)
  \override Score.GraceSpacing.common-shortest-duration = #(ly:make-moment 1/64)
}

unfoo = {
  \revert Score.SpacingSpanner.strict-note-spacing
  %\revert Score.SpacingSpanner.common-shortest-duration
  \revert Score.GraceSpacing.common-shortest-duration
  \newSpacingSection
}

<<
  \relative c''' { \foo r4 \appoggiatura { cis32 b ais } b4 \unfoo gis' e }
  \relative c'' \repeat unfold 2 { gis8 b gis b }
>>

Works here.

Cheers,
  Harm



Re: grace notes spacing

2020-10-12 Thread Kieren MacMillan
Hi Martín,

> Thanks for the idea, but strict-note-spacing causes all types of collisions 
> in my score (although it works perfectly for my MWE).

So why not just override it for that measure?  ;)

Cheers,
Kieren.


Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: kie...@kierenmacmillan.info




Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
>
> How about:
>
> \layout {
>   \context {
> \Score
> \override SpacingSpanner.strict-note-spacing = ##t
> \override SpacingSpanner.common-shortest-duration = #(ly:make-moment
> 1/20)
> \override GraceSpacing.common-shortest-duration = #(ly:make-moment
> 1/64)
>   }
> }
>
> <<
>   \relative c''' { r4 \appoggiatura { cis32 b ais } b4 gis' e }
>   \relative c'' \repeat unfold 2 { gis8 b gis b }
> >>
>
> Cheers,
>   Harm
>

Thanks for the idea, but strict-note-spacing causes all types of collisions
in my score (although it works perfectly for my MWE). The problems of
strict-note-spacing seem to be the same for strict-grace-spacing. Both
spacing modes are pretty much useless.

[image: image.png][image: image.png]  [image:
image.png]







Am Mo., 12. Okt. 2020 um 15:22 Uhr schrieb Thomas Morley <
thomasmorle...@gmail.com>:

> Am Mo., 12. Okt. 2020 um 12:13 Uhr schrieb Martín Rincón Botero
> :
> >
> > Dear Kieren,
> >
> > thank you for that suggestion. Albeit tedious having to fix each note
> manually like this, it works!
> >
> > Am So., 11. Okt. 2020 um 21:26 Uhr schrieb Kieren MacMillan <
> kieren_macmil...@sympatico.ca>:
> >>
> >> Hi Martín,
> >>
> >> > Anyways, I couldn't make use of any of your suggestions. I couldn't
> figure out how to apply the mentioned tweaks.
> >>
> >> Here’s one possibility:
> >>
> >> 
> >> \version "2.20.0"
> >>
> >> fixa = \tweak NoteColumn.X-offset #-3 \etc
> >> fixb = \tweak NoteColumn.X-offset #-2 \etc
> >> fixc = \tweak Accidental.X-extent #'(1 . -0.5) \tweak
> NoteHead.extra-spacing-width #'(-1 . -1) \etc
> >> fixd = \tweak NoteColumn.X-offset #0.875 \etc
> >>
> >> {
> >>   <<
> >> \relative c''' { r4 \appoggiatura { \fixa cis32 \fixb b \fixc ais }
> b4 gis' e }
> >> \relative c'' { gis8 \fixd b gis b gis b gis b }
> >>   >>
> >> }
> >> 
> >>
> >> Note that I had to unfold the \repeat in the lower staff, in order to
> easily apply the tweak to the correct moment. This is one of the [many!]
> reasons I use the edition-engraver: you can inject the tweak at an exact
> moment, regardless of how the musical elements in that moment were
> generated.
> >>
> >> Hope this helps!
> >> Kieren.
> >> 
> >>
> >> Kieren MacMillan, composer (he/him/his)
> >> ‣ website: www.kierenmacmillan.info
> >> ‣ email: kie...@kierenmacmillan.info
> >>
> >
> >
> > --
> > www.martinrinconbotero.com
>
> How about:
>
> \layout {
>   \context {
> \Score
> \override SpacingSpanner.strict-note-spacing = ##t
> \override SpacingSpanner.common-shortest-duration = #(ly:make-moment
> 1/20)
> \override GraceSpacing.common-shortest-duration = #(ly:make-moment
> 1/64)
>   }
> }
>
> <<
>   \relative c''' { r4 \appoggiatura { cis32 b ais } b4 gis' e }
>   \relative c'' \repeat unfold 2 { gis8 b gis b }
> >>
>
> Cheers,
>   Harm
>


-- 
www.martinrinconbotero.com


Re: Markup Between Systems

2020-10-12 Thread Kieren MacMillan
Hi Xavier,

> One lead would be to "hack" the system-separator-markup.
> See NR 1.6.1 Displaying staves > Separating systems
> https://lilypond.org/doc/v2.21/Documentation/notation/displaying-staves.html#separating-systems

I was considering that… but can one change the separator mid-score?
I thought you could only change it in the \paper variable?

Cheers,
Kieren.


Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: kie...@kierenmacmillan.info




Re: grace notes spacing

2020-10-12 Thread Kieren MacMillan
Harm,

> How about:

WOW! Nicely done.

Kieren.


Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: kie...@kierenmacmillan.info




Re: grace notes spacing

2020-10-12 Thread Thomas Morley
Am Mo., 12. Okt. 2020 um 12:13 Uhr schrieb Martín Rincón Botero
:
>
> Dear Kieren,
>
> thank you for that suggestion. Albeit tedious having to fix each note 
> manually like this, it works!
>
> Am So., 11. Okt. 2020 um 21:26 Uhr schrieb Kieren MacMillan 
> :
>>
>> Hi Martín,
>>
>> > Anyways, I couldn't make use of any of your suggestions. I couldn't figure 
>> > out how to apply the mentioned tweaks.
>>
>> Here’s one possibility:
>>
>> 
>> \version "2.20.0"
>>
>> fixa = \tweak NoteColumn.X-offset #-3 \etc
>> fixb = \tweak NoteColumn.X-offset #-2 \etc
>> fixc = \tweak Accidental.X-extent #'(1 . -0.5) \tweak 
>> NoteHead.extra-spacing-width #'(-1 . -1) \etc
>> fixd = \tweak NoteColumn.X-offset #0.875 \etc
>>
>> {
>>   <<
>> \relative c''' { r4 \appoggiatura { \fixa cis32 \fixb b \fixc ais } b4 
>> gis' e }
>> \relative c'' { gis8 \fixd b gis b gis b gis b }
>>   >>
>> }
>> 
>>
>> Note that I had to unfold the \repeat in the lower staff, in order to easily 
>> apply the tweak to the correct moment. This is one of the [many!] reasons I 
>> use the edition-engraver: you can inject the tweak at an exact moment, 
>> regardless of how the musical elements in that moment were generated.
>>
>> Hope this helps!
>> Kieren.
>> 
>>
>> Kieren MacMillan, composer (he/him/his)
>> ‣ website: www.kierenmacmillan.info
>> ‣ email: kie...@kierenmacmillan.info
>>
>
>
> --
> www.martinrinconbotero.com

How about:

\layout {
  \context {
\Score
\override SpacingSpanner.strict-note-spacing = ##t
\override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/20)
\override GraceSpacing.common-shortest-duration = #(ly:make-moment 1/64)
  }
}

<<
  \relative c''' { r4 \appoggiatura { cis32 b ais } b4 gis' e }
  \relative c'' \repeat unfold 2 { gis8 b gis b }
>>

Cheers,
  Harm



Re: OLL redux

2020-10-12 Thread Kieren MacMillan
Hi Andrew,

Thanks for doing all this!

One "branding" note: I believe Urs capitalized the name as openLilyLib. Whether 
you want to continue that "brand" is, of course, up to you… but I wanted to 
make sure you knew.

Cheers,
Kieren.


Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: kie...@kierenmacmillan.info




Re: Markup Between Systems

2020-10-12 Thread Andrew Bernard
What's wrong with hanging it off a note or rest? I do this all the
time for long sloping lines for accel. and rall. indicators. Works for
me.

Can you send a sketch or image of your use case?

Andrew



On Mon, 12 Oct 2020 at 07:40, Marc Shepherd  wrote:
>
>
> I want markup that is within a score (above a system), but not attached to a 
> staff or note.



Re: Markup Between Systems

2020-10-12 Thread Pierre Perol-Schneider
Le lun. 12 oct. 2020 à 12:18, Xavier Scheuer  a écrit :


> One lead would be to "hack" the system-separator-markup.
>

Smart!
Cheers,
Pierre


Re: Markup Between Systems

2020-10-12 Thread Xavier Scheuer
On Sun, 11 Oct 2020 at 22:40, Marc Shepherd  wrote:
>
> Is there a way to print markup that occupies the full width of the page,
and resides between two systems?
>
> I know that if there are multiple scores within the same book, a markup
block can reside between two scores (or above or below any of them).
>
> I want markup that is within a score (above a system), but not attached
to a staff or note.

Hello,

One lead would be to "hack" the system-separator-markup.
See NR 1.6.1 Displaying staves > Separating systems
https://lilypond.org/doc/v2.21/Documentation/notation/displaying-staves.html#separating-systems

Cheers,
Xavier

-- 
Xavier Scheuer 


Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
Dear Kieren,

thank you for that suggestion. Albeit tedious having to fix each note
manually like this, it works!

Am So., 11. Okt. 2020 um 21:26 Uhr schrieb Kieren MacMillan <
kieren_macmil...@sympatico.ca>:

> Hi Martín,
>
> > Anyways, I couldn't make use of any of your suggestions. I couldn't
> figure out how to apply the mentioned tweaks.
>
> Here’s one possibility:
>
> 
> \version "2.20.0"
>
> fixa = \tweak NoteColumn.X-offset #-3 \etc
> fixb = \tweak NoteColumn.X-offset #-2 \etc
> fixc = \tweak Accidental.X-extent #'(1 . -0.5) \tweak
> NoteHead.extra-spacing-width #'(-1 . -1) \etc
> fixd = \tweak NoteColumn.X-offset #0.875 \etc
>
> {
>   <<
> \relative c''' { r4 \appoggiatura { \fixa cis32 \fixb b \fixc ais } b4
> gis' e }
> \relative c'' { gis8 \fixd b gis b gis b gis b }
>   >>
> }
> 
>
> Note that I had to unfold the \repeat in the lower staff, in order to
> easily apply the tweak to the correct moment. This is one of the [many!]
> reasons I use the edition-engraver: you can inject the tweak at an exact
> moment, regardless of how the musical elements in that moment were
> generated.
>
> Hope this helps!
> Kieren.
> 
>
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: kie...@kierenmacmillan.info
>
>

-- 
www.martinrinconbotero.com


Re: feature requests: scalable \shape values; (stem) for \shapeII

2020-10-12 Thread Thomas Morley
Hi Andrew,

I'll put up a MR to add the improved \shape to lilypond proper, as
soon as I find the time to do so.
At least it will be an improvement.

Though, I did not look into shapeII, maybe it could be improved similarly?

Cheers,
  Harm

Am Mo., 12. Okt. 2020 um 09:55 Uhr schrieb Andrew Bernard
:
>
> Stay tuned, and will add the improvement to the OLL repository, once I
> have it all set up.
>
> Andrew
>
> On Mon, 12 Oct 2020 at 17:44, Martín Rincón Botero
>  wrote:
> >
> >
> > I have to run more tests, but your \shape-h function is simply excellent. 
> > Thank you! I wish this could be the default behavior of a new \reshape 
> > function. Perhaps the open issue shouldn’t be fixed for \shape: that way 
> > the folks who carefully used small values for small staves to fix their 
> > slurs don’t see their work destroyed by a fixed \shape function in a next 
> > update.



Re: grace notes spacing

2020-10-12 Thread Andrew Bernard
I think the engines are completely different, but at least it shows that 
other programs can do it. Not that this means anything.


Actually it would be interesting to hear from the advanced developers 
exactly why, in a nutshell, this presents apparently insurmountable 
difficulties. That may help me reconcile myself to it!



Andrew


On 12/10/2020 6:55 pm, Martín Rincón Botero wrote:
FWIW, MuseScore seems to get this right. Perhaps its corresponding 
part of the code (wherever it might hide) could serve as inspiration 
for a fix for Lilypond? —Please excuse my ignorance if this is 
technically nonsense! :-).




Re: Markup Between Systems

2020-10-12 Thread Kevin Barry
Hi Marc,

I don't think there's a good way to do what you want, but there are a
couple of things that you could try:
- you could add a dynamics context above the staff, and add the markup
there at the appropriate time (anchored to a spacer rest)
- you could stop your staff, linebreak, add your markup, then another
linebreak, and then start your staff again
- (I know you said you don't want to do this but it's the simplest
option) attach the markup to some element in the staff underneath (you
can use \mark to get it left aligned with the system or over the bar
line)
- have two scores with a markup in between them

Someone else might think of something else, but those are some of the
evils on offer.

Kevin

On Sun, 11 Oct 2020 at 21:41, Marc Shepherd  wrote:
>
> Is there a way to print markup that occupies the full width of the page, and 
> resides between two systems?
>
> I know that if there are multiple scores within the same book, a markup block 
> can reside between two scores (or above or below any of them).
>
> I want markup that is within a score (above a system), but not attached to a 
> staff or note.
>
> --
> Marc Shepherd



Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
FWIW, MuseScore seems to get this right. Perhaps its corresponding part of the 
code (wherever it might hide) could serve as inspiration for a fix for 
Lilypond? —Please excuse my ignorance if this is technically nonsense! :-).

www.martinrinconbotero.com
On 12. Oct 2020, 09:04 +0200, Andrew Bernard , wrote:
> I would be a happy man if the notorious Issue 34 could be resolved. I
> spend a lot of time having to put grace note spacers in complex scores
> to get the vertical alignment working. Each one I do, I wish I knew
> enough about lilypond internals to contribute a fix. It's not clear to
> me why this one is so immensely difficult to solve, but I trust the
> developers that it's a real doozy.
>
> Andrew
>
> On Mon, 12 Oct 2020 at 17:48, Martín Rincón Botero
>  wrote:
> >
> > Thanks for the link Jean. 8 years old issue? Ouch!
> >
>


Re: feature requests: scalable \shape values; (stem) for \shapeII

2020-10-12 Thread Andrew Bernard
Stay tuned, and will add the improvement to the OLL repository, once I
have it all set up.

Andrew

On Mon, 12 Oct 2020 at 17:44, Martín Rincón Botero
 wrote:
>
>
> I have to run more tests, but your \shape-h function is simply excellent. 
> Thank you! I wish this could be the default behavior of a new \reshape 
> function. Perhaps the open issue shouldn’t be fixed for \shape: that way the 
> folks who carefully used small values for small staves to fix their slurs 
> don’t see their work destroyed by a fixed \shape function in a next update.



Re: grace notes spacing

2020-10-12 Thread Andrew Bernard
I would be a happy man if the notorious Issue 34 could be resolved. I
spend a lot of time having to put grace note spacers in complex scores
to get the vertical alignment working. Each one I do, I wish I knew
enough about lilypond internals to contribute a fix. It's not clear to
me why this one is so immensely difficult to solve, but I trust the
developers that it's a real doozy.

Andrew

On Mon, 12 Oct 2020 at 17:48, Martín Rincón Botero
 wrote:
>
> Thanks for the link Jean. 8 years old issue? Ouch!
>



OLL redux

2020-10-12 Thread Andrew Bernard
Hello All,

Having made the decision that OLL is worth preserving (thank you all
for your feedback), I have thrown my efforts in to setting it all up
anew, with a principal aim of making it easier to use and better well
known. OLL has languished somewhat in obscurity for a while, only
really utilized by those in the know. I know both Urs and myself want
to see it more widely appreciated and further developed.

As mentioned in an earlier post I will be starting afresh with a new
git project at Gitlab. I will do that over the next few days.

I have created a website for OLL with Wordpress running on my own
virtual Linux Server in Singapore (or is it New York? !) This I
envision as a central hub for OLL activities and information,
especially documentation and tutorial material. Here's the site, in
initial release, with much to do.

https://openlilylib.space/

Please observe the TLD is .space and not .org.

As a further comment., I do a lot of work making websites and mailing
lists as well as engraving 300 page string quartets in lilypond, so I
am contemplating setting up a Discouse server as a forum for OLL
discussion. Discourse supports 95% of what traditional email lists do
in parallel to being a very widely used web forum platform now. I
myself am the one very wary of balkanisation of lilypond development
effort, and I am not entirely happy with setting up a separate world
for OLL, but presently with no sign of OLL becoming integrated into
Lilypond core, I think having an OLL ecosystem independent of the
lilypond-user mailing list is worthwhile. I may be wrong! In any case,
we need it for the documentation.

I am providing the resources at my own expense, but there are costs
such as domain name registration, server hosting. Wordpress bits and
bobs and so on. Not right now, but I may make a polite request on the
OLL website for donations in the future to run the system. Very small
beer amounts.This I only mention as I have complex health issues (a
very rare incurable blood cancer) that forced me out the workforce
some time ago and I no longer have a salary, else I would happily pay
for all this myself. To that extent also, although I don't need
technical help presently with the OLL move, and I do appreciate people
having made kind offers, I will be looking in the medium term to hand
over to other people. Speaking as an IT Enterprise Architect (my
former work) this I term Succession Planning - and it's just as
important as coding and debugging.

Andrew



Re: grace notes spacing

2020-10-12 Thread Martín Rincón Botero
Thanks for the link Jean. 8 years old issue? Ouch!

www.martinrinconbotero.com
On 11. Oct 2020, 21:59 +0200, Jean Abou Samra , wrote:
> > Using \override Score.SpacingSpanner.strict-grace-spacing = ##t seems
> > only useful when no grace notes are used immediately after the bar
> > line and no accidentals are used, which seems like a function for a
> > very limited use case
> This is a known issue:
>
> https://gitlab.com/lilypond/lilypond/-/issues/2630
>
> Best,
> Jean
>


Re: feature requests: scalable \shape values; (stem) for \shapeII

2020-10-12 Thread Martín Rincón Botero
Dear Harm,

I have to run more tests, but your \shape-h function is simply excellent. Thank 
you! I wish this could be the default behavior of a new \reshape function. 
Perhaps the open issue shouldn’t be fixed for \shape: that way the folks who 
carefully used small values for small staves to fix their slurs don’t see their 
work destroyed by a fixed \shape function in a next update.

Cheers,
Martín.

www.martinrinconbotero.com
On 11. Oct 2020, 10:04 +0200, Thomas Morley , wrote:
> Am Mi., 7. Okt. 2020 um 10:35 Uhr schrieb Martín Rincón Botero
> :
> >
> > Now that we’ve been talking about \shape and \shapeII, I would like to ask 
> > if it’s possible that values put for \shape(II) could scale according to 
> > staff size. Whenever I have a smaller staff, whatever values work for a 20 
> > points staff are too much for smaller staves (either with a smaller font 
> > size or with \magnify). It would be great, from a user perspective, that a 
> > (0 . 1) value would produce a similar/proportional result no matter the 
> > size of the staff, instead of being always in a different “scale” every 
> > time you have different staff sizes (so that you have to put smaller values 
> > for smaller staves). That would also be useful if you decide later to 
> > increase or decrease the font size used.
>
> Hi Martín,
>
> \shape adds your settings to the calculated control-points of the curve.
> Though, those control-points are calculated differently depending on
> staff-space.
> Look at the example below, you will notice the default control-points
> are always different.
> In the attached image I let print the second and third control-point.
>
> \layout {
> \context {
> \Voice
> \override NoteHead.stencil = #point-stencil
> }
> }
>
> mus = { b'1_~ b'1 }
>
> \new Staff \with { \magnifyStaff #4 } \mus
> \new Staff \with { \magnifyStaff #1 } \mus
> \new Staff \with { \magnifyStaff #1/4 } \mus
>
> This means \shape always gets different control-points to work with,
> thus the result will never be consistent even for scaled
> offset-values.
>
> Nevertheless, it's not too hard to code a shape-version, which will
> scale it's offset-values according to current staff-space:
>
> \version "2.20.0"
>
> shape-h =
> #(define-music-function (offsets item)
> (list? key-list-or-music?)
> (_i "Offset control-points of @var{item} by @var{offsets}. The
> argument is a list of number pairs or list of such lists. Each
> element of a pair represents an offset to one of the coordinates of a
> control-point. If @var{item} is a string, the result is
> @code{\\once\\override} for the specified grob type. If @var{item} is
> a music expression, the result is the same music expression with an
> appropriate tweak applied.")
> (define (shape-curve grob coords)
> (let* ((orig (ly:grob-original grob))
> (siblings (if (ly:spanner? grob)
> (ly:spanner-broken-into orig) '()))
> (total-found (length siblings))
> (staff-space (ly:staff-symbol-staff-space grob))
> (offsets
> (map
> (lambda (offset)
> (if (number-pair? offset)
> (cons (car offset) (* (cdr offset) staff-space))
> offset))
> offsets)))
> (define (offset-control-points offsets)
> (if (null? offsets)
> coords
> (map coord-translate coords offsets)))
>
> (define (helper sibs offs)
> (if (pair? offs)
> (if (eq? (car sibs) grob)
> (offset-control-points (car offs))
> (helper (cdr sibs) (cdr offs)))
> coords))
>
> ;; we work with lists of lists
> (if (or (null? offsets)
> (not (list? (car offsets
> (set! offsets (list offsets)))
>
> (if (>= total-found 2)
> (helper siblings offsets)
> (offset-control-points (car offsets)
>
> (once (propertyTweak 'control-points
> (grob-transformer 'control-points shape-curve)
> item)))
>
> \layout {
> \context {
> \Voice
> \override NoteHead.stencil = #point-stencil
> }
> }
>
> mus = { b'1 \shape-h #'((0 . 1) (0 . 0) (0 . 0) (0 . 0)) _~ b'1 }
>
> \new Staff \with { \magnifyStaff #4 } \mus
> \new Staff \with { \magnifyStaff #1 } \mus
> \new Staff \with { \magnifyStaff #1/4 } \mus
>
> See second image.
>
> Cheers,
> Harm