Bundling Lilypond with project

2022-08-19 Thread DoubleFelix
Hello,
I'm making a python application that uses LilyPond, but in order to make it
completely portable, I need to bundle LilyPond with my application. It's
licensed under GPL, so if I'm reading this right I should be able to do
that as long as I make my own project GPL (already done). I just want to
double check I'm correct, and if I am, how can I minimize file-sizes when
it comes to distributing the binaries? All I use is the lilypond command to
compile a ly file into an SVG, none of the other bundled tools.

Thanks,
Felix


Re: Pointing Aiken Fa up in partCombine

2022-08-19 Thread Karlin High

On 8/19/2022 3:35 PM, Benjamin Bruce wrote:

Thank you, David, for finding "Hallelujah, Praise Jehovah."


Yes, finding a song that is a reliable source of the condition is ideal.

Here is what I found for it on hymnary.org:



Page scans:





Note the URLs containing the  hymnal code, last 4 is year of 
publication.

--
Karlin High
Missouri, USA



Re: Pointing Aiken Fa up in partCombine

2022-08-19 Thread Benjamin Bruce
> “Hallelujah, Praise Jehovah” (1899) has doubled Fa's in the treble and bass 
> clefs at the beginning of bar 9.  Here’s a scan from a hymnal printed in 
> 1911.  The Fa is reversed in the treble clef.

Thank you, David, for finding "Hallelujah, Praise Jehovah." I looked that hymn 
up in the seven shape-note hymnals that I have on hand, and 5 of them (dated 
1948, 1966, 1970, 1977, and 1983) look just as the link you provided, with the 
treble Fa in the up position, and the bass Fa in the down position. The other 
two (1991 and 1994) have both Fas in the down position, reflecting current 
Lilypond output. It is worth noting that these last two hymnals were published 
by the same publisher.

So it appears that there are two alternatives generally in use:

1. Doubled Fas are always oriented down, regardless of what staff they are in 
(current Lilypond output)
2. Doubled Fas in the treble staff are oriented up, and doubled Fas in the bass 
staff are oriented down.

Can those in Lilypond development please advise what the next step is to add a 
feature request to enable the second alternative? Thanks!


Re: Pointing Aiken Fa up in partCombine

2022-08-19 Thread David F.

> On Aug 19, 2022, at 11:23 AM, Benjamin Bruce  wrote:
> 
> There may be examples in my older hymnals too, but I wasn't able to find any 
> (this seems to be something that shows up more in modern music).

“Hallelujah, Praise Jehovah” (1899) has doubled Fa's in the treble and bass 
clefs at the beginning of bar 9.  Here’s a scan from a hymnal printed in 1911.  
The Fa is reversed in the treble clef.

https://hymnary.org/hymn/SHCW1911/page/250

> Whatever the consensus on usage may be, I would like to be able to orient 
> doubled Fas either way, according to the usage shown in these examples.

Yes, that sounds reasonable.

David F.



Re: completely filling a page, but not too compact, how?

2022-08-19 Thread Knute Snortum
On Fri, Aug 19, 2022 at 8:16 AM Kenneth Wolcott
 wrote:
>
> Hi Ralph, Lukas and David;
>
>   Thank you all for your responses.
>
>   I had no clue where to start on modifying the layout since there are
> so many things to examine in the documentation regarding the layout.
>
>   Now I can guess more effectively for the next one that needs to be
> expanded/contracted.

Here's a good webpage to start with concerning spacing:

https://lilypond.org/doc/v2.22/Documentation/notation/vertical-spacing

--
Knute Snortum



Re: completely filling a page, but not too compact, how?

2022-08-19 Thread Kenneth Wolcott
Hi Ralph, Lukas and David;

  Thank you all for your responses.

  I had no clue where to start on modifying the layout since there are
so many things to examine in the documentation regarding the layout.

  Now I can guess more effectively for the next one that needs to be
expanded/contracted.

Thanks,
Ken

On Fri, Aug 19, 2022 at 7:31 AM David Wright  wrote:
>
> On Fri 19 Aug 2022 at 09:32:45 (+0200), Lukas-Fabian Moser wrote:
> > What I didn't change: Classical convention would probably give the
> > final bar a length of only 4 (with fermata), not 1. But I wouldn't put
> > too much stock in this, I know that a crotchet final chord would
> > probably look strange, and there are plenty of counterexamples to that
> > convention.
>
> I'm used to seeing this air written in 8/4, which looks like this
> (the last note sung would be 1~4).
>
> Cheers,
> David.



Re: completely filling a page, but not too compact, how?

2022-08-19 Thread David Wright
On Fri 19 Aug 2022 at 09:32:45 (+0200), Lukas-Fabian Moser wrote:
> What I didn't change: Classical convention would probably give the
> final bar a length of only 4 (with fermata), not 1. But I wouldn't put
> too much stock in this, I know that a crotchet final chord would
> probably look strange, and there are plenty of counterexamples to that
> convention.

I'm used to seeing this air written in 8/4, which looks like this
(the last note sung would be 1~4).

Cheers,
David.
\version "2.22.2"

% Danny Boy (Londonderry Air)

global = {
  \language "english"
  \numericTimeSignature
  \time 8/4
  \key c \major
  \tempo "Smoothly, with expression"
  \partial 2.
}

\header {
  title = "Danny Boy"
  subtitle = "(Londonderry Air)"
}

\paper {
  ragged-last-bottom = ##f
  markup-system-spacing.padding = 3
}

\layout {
  system-count = 7
  \accidentalStyle modern
}

rh = {
  \global
  \clef treble
  b'4^2 c''^1 d''  | % m01
  e''4 a'' g'' e'' | % m02
  d''4^1 c''^3 a' c''  | % m03
  g'2  | % m04
%\break
  4\fermata b^2 c'^1 d'  | % m05
  \repeat volta 2 {
e'2. d'4| % m06
%\break
e'4 a' g' e'| % m07
%\break
d'4^1(c')^2 a2^1 ~  | % m08
a4 c' e' f' | % m09
g'2. a'4| % m10
%\break
g'4 e' c' e'^3   | % m11
%\break
d'1 ~| % m12
d'4 b^2 c'^1 d'  | % m13
%\break
e'2. d'4| % m14
%\break
e'4 a' g' e'| % m15
d'4^1(c'^2) a2^1 ~  | % m16
%\break
a4 b^2 c'^1 d'  | % m17
2. f'4   | % m18
e'4 d' c' d'| % m19
%\break
c'1 ~   | % m20
c'4 g'^2 a' b'  | % m21
2. b'4  | % m22
b'4 a' g' a'| % m23
%\break
g'4(e') c'2 ~   | % m24
c'4 g'^2 a' b'  | % m25
2. b'4  | % m26
%\break
b'4 a' g' e'| % m27
d'1 ~   | % m28
d'4 g'^2  q  | % m29
%\break
2. d''4   | % m30
4 c'' a' c''  | % m31
g'4(e') c'2   | % m32
%\break
r4 b^2 c'^1 d'  | % m33
e'4 a' g' e'^2  | % m34
d'4^1 c'^2 a b  | % m35
  }
%\break
  \alternative {
{
  c'2 | % m36
  4\fermata b^2 c' d'  | % m37
}
{
  c'1 | % m38
  4\fermata  | % m39
  \bar "|."
}
  }
}

piano_dynamics = {
  \global
  s8\mp s2 s8  | % m01
  s1   | % m02
  s1   | % m03
  s1   | % m04
%\break
  s1| % m05
  \repeat volta 2 {
s1  | % m06
%\break
s1  | % m07
%\break
s1  | % m08
s1  | % m09
s1  | % m10
%\break
s1  | % m11
%\break
s1  | % m12
s1  | % m13
%\break
s1  | % m14
%\break
s1  | % m15
s1  | % m16
%\break
s1  | % m17
s1  | % m18
s1  | % m19
%\break
s1  | % m20
s1  | % m21
s1  | % m22
s1  | % m23
%\break
s1  | % m24
s1  | % m25
s1  | % m26
%\break
s1  | % m27
s1  | % m28
s1  | % m29
%\break
c4 g c'2  | % m30
f2 c' | % m31
e2 a  | % m32
%\break
s1  | % m33
s1  | % m34
s1  | % m35
  }
%\break
  \alternative {
{
  s1  | % m36
  s1  | % m37
}
{
  s1  | % m38
  s4  | % m39
}
  }
}

lh = {
  \global
  \clef bass
  r4 r2| % m01
  c'2_1 bf | % m02
  2   | % m03
  2 fs   | % m04
%\break
  f4\fermata r r2  | % m05
  \repeat volta 2 {
c4_5 g c'2 | % m06
%\break
b2 bf  | % m07
%\break
a2 f4 e   | % m08
d2   | % m09
c2 b! | % m10
%\break
a2_1 fs_2| % m11
%\break
f4_3 d c' a  | % m12
g1   | % m13
%\break
c4 g b2  | % m14
%\break
bf1  | % m15
a2 f4 e  | % m16
%\break
d2   | % m17
g2 g,  | % m18
1 | % m19
%\break
g2 e| % m20
c2 | % m21
c4 g c'2| % m22
2   | % m23
%\break
2 b  | % m24
a2| % m25
c4 g c'2   | % m26
%\break
2   | % m27
fs4_3 d c' a| % m28
2 g,   | % m29
%\break
c4 g c'2  | % m30
f2 c' | % m31
e2 a  | % m32
%\break
1| % m33
g2 a   | % m34
2   | % m35
  }
%\break
  \alternative {
{
  2 fs| % m36
  f4\fermata r r2  | % m37
}
{
  2 g | % m38
  c4\fermata   | % m39
}
  }
}

\score {
  \new PianoStaff \with { instrumentName = "Piano" }
  <<
\new Staff \rh
\new Dynamics \piano_dynamics
\new Staff \lh
  >>
  \layout {}
}

\score {
  \unfoldRepeats {
<<
  \new Staff {
\set Staff.midiInstrument = "acoustic grand"
\rh
  }
  \new Dynamics \piano_dynamics
  \new Staff {
\set Staff.midiInstrument = "acoustic grand"
\lh
  }
>>
  }
  \midi {
\tempo 4=108
  }
}


derry.pdf
Description: Adobe PDF document


Re: Pointing Aiken Fa up in partCombine

2022-08-19 Thread Karlin High

On 8/18/2022 11:43 PM, David F. wrote:

Now I’m wondering how representative those two hymnals are.


The shape-note community, optimized for participation rather than 
professional excellence, does not appear to have an authority equivalent 
to Elaine Gould for its proprieties. I'm asking groups available to me 
how they see the unison-FA issue, no responses yet.


I do know this: the code comment from note-collision.cc that Werner 
Lemberg posted cannot be disregarded.


  /* The solfa is a triangle, which is inverted depending on stem
 direction.  In case of a collision, one of them should be removed,
 so the resulting note does not look like a block.
  */

I have experienced that thing. Once in a group learning a new song 
engraved with non-Lilypond software, we encountered what appeared to be 
erroneous rectangle LA shapes resulting from 2 wrongly-merged black-note 
unison FA triangles. It was a mystery to all except the few with 
music-engraving experience.


If a group of people with minimal music education wants to have full 
SATB or TTBB harmony by the second verse of a never-before-seen hymn, 
then this matters. For people with more music education and good 
line/staff unshaped-notes sight-reading skills, it matters much less.

--
Karlin High
Missouri, USA



Re: completely filling a page, but not too compact, how?

2022-08-19 Thread Lukas-Fabian Moser

Hi Ken,


So I disabled all the forced line breaks.

Now it consumes less than 3/4 of one page and is a little too dense to
read on an iPad.

I'd like to fill the first and only page.

How to do this?


For filling the page, you can do

\paper {
  ragged-last-bottom = ##f
}

In your case, this spreads the systems too far apart on the page, so I 
increased the total amount of systems via


\layout {
  system-count = 7
}

where 7 was found by trial and error. This way, the bars are made wider, 
but I think they still look acceptable.


I took the liberty of making some other small adjustments; feel free to 
ignore them if you do not like them (especially since I realise that my 
changes are very much influenced by middle-European classical music 
notation conventions):


- added \accidentalStyle modern for warning accidentals
- changed the left hand rest in the beginning of the piece (r2. do not 
usually start at crotchet-valued position in a bar)
- bar 4/35a: in "classical" enharmonic spelling, this is usually written 
as f-sharp, not as g-flat (that's an instance where the usual rule of 
thumb "use flats when moving downwards" oversimplifies things)
- markup-system-spacing.padding = 3 to add some space between the title 
and the first system

- added final bar line
- paranoid warning accidentals ('!') in mm. 10 and 29

What I didn't change: Classical convention would probably give the final 
bar a length of only 4 (with fermata), not 1. But I wouldn't put too 
much stock in this, I know that a crotchet final chord would probably 
look strange, and there are plenty of counterexamples to that convention.


Lukas
\version "2.22.2"

% Danny Boy (Londonderry Air)

global = {
  \language "english"
  \numericTimeSignature
  \time 4/4
  \key c \major
  \tempo "Smoothly, with expression"
  \partial 2.
}

\header {
  title = "Danny Boy"
  subtitle = "(Londonderry Air)"
}

\paper {
  ragged-last-bottom = ##f
  markup-system-spacing.padding = 3
}

\layout {
  system-count = 7
  \accidentalStyle modern
}

rh = {
  \global
  \clef treble
  b'4^2 c''^1 d''  | % m01
  e''4 a'' g'' e'' | % m02
  d''4^1 c''^3 a' c''  | % m03
  g'2  | % m04
%\break
  4\fermata b^2 c'^1 d'  | % m05
  \repeat volta 2 {
e'2. d'4| % m06
%\break
e'4 a' g' e'| % m07
%\break
d'4^1(c')^2 a2^1 ~  | % m08
a4 c' e' f' | % m09
g'2. a'4| % m10
%\break
g'4 e' c' e'^3   | % m11
%\break
d'1 ~| % m12
d'4 b^2 c'^1 d'  | % m13
%\break
e'2. d'4| % m14
%\break
e'4 a' g' e'| % m15
d'4^1(c'^2) a2^1 ~  | % m16
%\break
a4 b^2 c'^1 d'  | % m17
2. f'4   | % m18
e'4 d' c' d'| % m19
%\break
c'1 ~   | % m20
c'4 g'^2 a' b'  | % m21
2. b'4  | % m22
b'4 a' g' a'| % m23
%\break
g'4(e') c'2 ~   | % m24
c'4 g'^2 a' b'  | % m25
2. b'4  | % m26
%\break
b'4 a' g' e'| % m27
d'1 ~   | % m28
d'4 g'^2  q  | % m29
%\break
2. d''4   | % m30
4 c'' a' c''  | % m31
g'4(e') c'2   | % m32
%\break
r4 b^2 c'^1 d'  | % m33
e'4 a' g' e'^2  | % m34
d'4^1 c'^2 a b  | % m35
  }
%\break
  \alternative {
{
  c'2 | % m36
  4\fermata b^2 c' d'  | % m37
}
{
  c'1 | % m38
  1\fermata  | % m39
  \bar "|."
}
  }
}

piano_dynamics = {
  \global
  s8\mp s2 s8  | % m01
  s1   | % m02
  s1   | % m03
  s1   | % m04
%\break
  s1| % m05
  \repeat volta 2 {
s1  | % m06
%\break
s1  | % m07
%\break
s1  | % m08
s1  | % m09
s1  | % m10
%\break
s1  | % m11
%\break
s1  | % m12
s1  | % m13
%\break
s1  | % m14
%\break
s1  | % m15
s1  | % m16
%\break
s1  | % m17
s1  | % m18
s1  | % m19
%\break
s1  | % m20
s1  | % m21
s1  | % m22
s1  | % m23
%\break
s1  | % m24
s1  | % m25
s1  | % m26
%\break
s1  | % m27
s1  | % m28
s1  | % m29
%\break
c4 g c'2  | % m30
f2 c' | % m31
e2 a  | % m32
%\break
s1  | % m33
s1  | % m34
s1  | % m35
  }
%\break
  \alternative {
{
  s1  | % m36
  s1  | % m37
}
{
  s1  | % m38
  s1  | % m39
}
  }
}

lh = {
  \global
  \clef bass
  r4 r2| % m01
  c'2_1 bf | % m02
  2   | % m03
  2 fs   | % m04
%\break
  f4\fermata r r2  | % m05
  \repeat volta 2 {
c4_5 g c'2 | % m06
%\break
b2 bf  | % m07
%\break
a2 f4 e   | % m08
d2   | % m09
c2 b! | % m10
%\break
a2_1 fs_2| % m11
%\break
f4_3 d c' a  | % m12
g1   | % m13
%\break
c4 g b2  | % m14
%\break
bf1  | % m15
a2 f4 e  | % m16
%\break
d2   | % m17
g2 g,  | % m18
1 | % m19
%\break
g2 e| % m20
c2 | % m21
c4 g c'2| % m22
2   | % m23
%\break
2 b  | % m24
a2| %