Re: Bar line check is wrong with partial note and voltas
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
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
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
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
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
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
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
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
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
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
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
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
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
> 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
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
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
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
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
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
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
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
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
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
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
> > 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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