Lilypond for interactive learning

2023-11-10 Thread Grace Elaine Brown
Hi Lilypond team!

I have a question about using Lilypond. Is it possible to create a
scrolling singalong type embed on my website using this?

For example, I'm trying to teach a student how to read the sheet music for
"Adoro te devote." They press play and I sync the chant audio with a
lighting up note.

I suppose an advanced level of this would include the ability to pause and
click on the note for a pitch reference.

Godspeed!

Grace Brown
*Graceful | a Catholic Blog*
e. grace.elaine.br...@gmail.com
w. GracefulCatholic.com


Re: Separate time signatures in left and right hands.

2023-11-10 Thread Jean Abou Samra
Sorry, that got sent too early. This line:

> \layout { \enablePolymeter }

shouldn't be here since you say “even though the right hand time signature isn't
changing, it needs to be displayed again”.



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


Re: Separate time signatures in left and right hands.

2023-11-10 Thread Jean Abou Samra

> First off, is there a better way to do this?



Yes. See 
[https://lilypond.org/doc/v2.24/Documentation/notation/displaying-rhythms.html#polymetric-notation](https://lilypond.org/doc/v2.24/Documentation/notation/displaying-rhythms.html#polymetric-notation)



> It gets worse.  There is a section where both hands are in common time, but 
> even though the right hand time signature isn't changing, it needs to be 
> displayed again.  Again, my tactic would be to fake the time changes.  
> However, there is a break in the piece that has one time signature before the 
> break and a different one after.  What I should really do is have a change 
> time signature after the bar but before the break.  I don't know how to 
> "fake" that.

Adapting the example from the documentation:

```
\version "2.24.2"

\layout { \enablePolymeter }

\relative <<
  \new Staff {
\time 3/4
c'4 c c |
c4 c c |
\break
c2.
  }
  \new Staff {
\time 3/4
\set Staff.timeSignatureFraction = 9/8
\scaleDurations 2/3 {
  \repeat unfold 3 { c8[ c c] }
  \repeat unfold 3 { c4 c8 }
}
\unset Staff.timeSignatureFraction
\time 3/4
c2.
  }
>>
```


Best,

Jean


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


Re: Separate time signatures in left and right hands.

2023-11-10 Thread Knute Snortum
On Fri, Nov 10, 2023 at 11:56 AM Knute Snortum  wrote:

> I'm engraving a Scriabin piano etude that starts with common time in the
> right hand and 12/8 in the left.   ...
>

I think I have a better solution now.  It's attached.

--
Knute Snortum
\version "2.24.2"

\paper {
  ragged-right = ##t
}

% tsMarkup.128 = \markup {
%   \override #'(baseline-skip . 0.5)
%   \column { \concat { \number 1 \number 2 } \translate #'(0.6 . 0) \number 8 }
% }

tsMarkup.128 = \markup {
  \override #'(baseline-skip . 0.5)
  \column { \translate #'(-0.6 . 0) \concat { \number 1 \number 2 } \number 8 }
}

tsMarkup.C = \markup {
  \override #'(baseline-skip . 0.5)
  \column { \musicglyph "timesig.C44" }
}

fakeTimeSignature = 
#(define-music-function (tsMarkup) (markup?)
  #{
\override Staff.TimeSignature.style = #'default
\override Staff.TimeSignature.stencil = #(lambda (grob)
  (grob-interpret-markup grob tsMarkup))
  #})

rightHand = \relative {
  \time 4/4
  c'8^"left hand 12/8"
  \repeat unfold 7 { c8 } \break
  \bar "||"
  c8^"show time sig again" 
  \repeat unfold 7 { c8 } \break
  \bar "||"
  c8^"original time signature"
  \repeat unfold 7 { c8 }
}

leftHand = \relative {
  \clef bass
  \fakeTimeSignature \tsMarkup.128
  \time 4/4
  \scaleDurations 2/3 { 
\repeat unfold 12 { c8 } 
  }
  \bar "||"
  \fakeTimeSignature \tsMarkup.C
  \time 4/4
  \repeat unfold 8 { c8 } 
  \fakeTimeSignature \tsMarkup.128
  \time 4/4
  \scaleDurations 2/3 { 
\repeat unfold 12 { c8 } 
  }
}

\score {
  \new PianoStaff <<
\new Staff \rightHand
\new Staff \leftHand
  >>
}


Re: Questions about LSR

2023-11-10 Thread Werner LEMBERG


> I have some questions about the LSR and I hope this is the place to ask
> them.
> 
> I have noticed that some snippets take up a lot of blank space under
> them.  This is because they have marked the snippet as stand-alone,
> but haven't put a "tagline = ##f" in the paper or header block.  I'm
> happy to look through the LSR, find snippets like this and modify
> them, but it doesn't look like I have the privileges to do this.

I do exactly this, and Harm does the same: Adding `tagline = ##f`
whenever I see such a snippet.

> So, 1) do we want to modify some of the snippets to add tagline =
> ##f, and if so 2) how would I go about modifying the LSR DB?

Ad (1): Yes.  Ideally, the framework of the LSR should be changed so
that this gets automatically added.  However, I'm not sure whether
this is going to happen in the near future.

Ad (2): You need to become an LSR editor.  I suggest you contact
Sebastiano, with CCing me, Harm, or Jean.


Werner



Separate time signatures in left and right hands.

2023-11-10 Thread Knute Snortum
I'm engraving a Scriabin piano etude that starts with common time in the
right hand and 12/8 in the left.  My first instinct for how to do this is
to set the \time to 4/4 in both hands, fake the 8/12 time signature, and
use \scaledDurations. First off, is there a better way to do this?

It gets worse.  There is a section where both hands are in common time, but
even though the right hand time signature isn't changing, it needs to be
displayed again.  Again, my tactic would be to fake the time changes.
However, there is a break in the piece that has one time signature before
the break and a different one after.  What I should really do is have a
change time signature after the bar but before the break.  I don't know how
to "fake" that.

In the spirit of a MWE, I've attached a source file I have been using to
experiment with different approaches to solve the problems.  It's not
minimal, but it's a place to start .

If anyone is interested in seeing the entire etude, here is a URL (it's
number 7):

https://vmirror.imslp.org/files/imglnks/usimg/a/a9/IMSLP263772-PMLP07375-Skrjabin_-_Etudes_-12-,_Op.8_-Moscow,_Muzgiz-.pdf

--
Knute Snortum
\version "2.24.2"

\paper {
  ragged-right = ##t
}

moveC = 
  \tweak outside-staff-priority ##f
  \tweak Y-offset 0
  \etc
  
spacerGrace = \grace { s8 s16 }

twelve = \markup { \concat { \musicglyph "one" \musicglyph "two" } }
eight = \markup \musicglyph "eight"
moveTwelve = \tweak extra-offset #'(-3.5 . -2.5) \etc
moveEight = \tweak extra-offset #'(-2.9 . 2.5) \etc

rightHand = \relative {
  \time 4/4
  c'8^"left hand 12/8"
  \repeat unfold 7 { c8 } \break
  \bar "||"
  <>-\moveC ^\markup \musicglyph "timesig.C44"
  \spacerGrace
  c8^"show time sig again" 
  \repeat unfold 7 { c8 } \break
  \bar "||"
  <>-\moveC ^\markup \musicglyph "timesig.C44"
  \spacerGrace
  c8^"back to the first time sigs" 
  \repeat unfold 7 { c8 }
}

leftHand = \relative {
  \clef bass
  \scaleDurations 2/3 { 
\once \override TextScript.outside-staff-priority = ##f
c8-\moveTwelve ^\twelve -\moveEight _\eight
\repeat unfold 11 { c8 } 
  }
  \bar "||"
  <>-\moveC ^\markup \musicglyph "timesig.C44"
  \spacerGrace
  c8
  \repeat unfold 7 { c8 } 
  \spacerGrace
  \scaleDurations 2/3 { 
\once \override TextScript.outside-staff-priority = ##f
c8-\moveTwelve ^\twelve -\moveEight _\eight
\repeat unfold 11 { c8 } 
  }
}

\score {
  \new PianoStaff <<
\new Staff \rightHand
\new Staff \with { \remove Time_signature_engraver } \leftHand
  >>
}


Questions about LSR

2023-11-10 Thread Knute Snortum
I have some questions about the LSR and I hope this is the place to ask
them.

I have noticed that some snippets take up a lot of blank space under them.
This is because they have marked the snippet as stand-alone, but haven't
put a "tagline = ##f" in the paper or header block.  I'm happy to look
through the LSR, find snippets like this and modify them, but it doesn't
look like I have the privileges to do this.

So, 1) do we want to modify some of the snippets to add tagline = ##f, and
if so 2) how would I go about modifying the LSR DB?

--
Knute Snortum


Re: Repeat volta Score.startRepeatBarType & Score.endRepeatBarType

2023-11-10 Thread Stu McKenzie


On 2023-11-09 08:42, Michael Werner wrote:

On Wed, Nov 8, 2023 at 7:21 PM Stu McKenzie  wrote:


I'd like to differentiate between two repeat voltas in a score by
using
2 different start and end bar types.

The following bar types are already defined in LilyPond:
  Score.startRepeatBarType = #"[|:"
  Score.endRepeatBarType = #":|]"

I'd like to define a second bar type with double opening and closing
parentheses, e.g.:
  Score.startRepeatBarType = #"[[|:"
  Score.endRepeatBarType = #":|]]"

How would that be acheived?


Hi there,

Maybe something like this:

\version "2.25.9"
\language "english"

\new Staff {
  \defineBarLine "[[|:" #'( #t #t #t )
  \defineBarLine ":|]]" #'( #t #t #t )
  \new Voice {
    \relative c' {
      \set Score.startRepeatBarType = #"[|:"
      \set Score.endRepeatBarType = #":|]"
      c' d e f
      \repeat volta 2 {
        c d e f
      }
      c d e f
      \set Score.startRepeatBarType = #"[[|:"
      \set Score.endRepeatBarType = #":|]]"
      \repeat volta 2 {
        c d e f
      }
    }
  }
}

which produces:

image.png

For details on how to define the new bar lines, see 
http://lilypond.org/doc/v2.25/Documentation/notation/bar-lines
But basically the two \defineBarLine lines are what actually define 
the bars lines to use, then later on you use them as desired. The 
three bool values after define the behavior a beginning of line, mid 
line, end end of line. Those will need adjusted to your needs.

--
Michael


Thank you, Michael, for the working example.

It seems that additional combinations of defineBarLine were added in 
version 2.25.
I downloaded version 2.25.9 and found that adding break resulted in 
inconsistent results using the defineBarLine with the 
Score.startRepeatBarType and Score.endRepeatBarType.


For example simply adding a \break before changing the 
Score.startRepeatBarType, i.e.:


      c d e f
  \break
      \set Score.startRepeatBarType = #"[[|:"

results in the bar line at the end of the first line to include the new 
start repeat bar type.


I've tried defining various combinatons of bar lines, as defined on the 
documentation for 2.25.9, e.g.:

  \defineBarLine "[[|:-StartDouble_fff" #'( #f #f #f )
  \defineBarLine "[[|:-EndDouble_fff" #'( #f #f #f )
  \defineBarLine "[[|:-StartDouble_ttf" #'( #t #t #f )
  \defineBarLine "[[|:-EndDouble_ttf" #'( #t #t #f )
  \defineBarLine "[[|:-StartDouble_ttt" #'( #t #t #t )
  \defineBarLine "[[|:-EndDouble_ttt" #'( #t #t #t )
but cannot get the results that I'd like, especially when alternatives 
are added to the repeat volta.


Any further suggestions?