Re: Lead sheets: lyrics and chords, no melody?

2019-03-03 Thread Kieren MacMillan
Hi Christopher,

> I am committed to the principle of single-source authoring in my textual and 
> musical worlds.

+1

For archive completeness, I’ve included (below) the example I am playing with — 
it’s still in progress, but it’s nearly there — which clearly allows 
single-source authoring.

Best,
Kieren.

%%%  SNIPPET BEGINS
\version "2.19.80"

\paper {
  indent = 0
  ragged-right = ##t
  system-system-spacing = #'((basic-distance . 6) (minimum-distance . 6) 
(padding . 2.5) (stretchability . 0))
  score-system-spacing.padding = #12
}

\layout {
  \context {
\ChordNames
\override VerticalAxisGroup.staff-affinity = #DOWN
\override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
#'((basic-distance . 2.5) (minimum-distance . 2.5) (padding . 1.25) 
(stretchability . 0))
  }
  \context {
\Lyrics
\override VerticalAxisGroup.staff-affinity = #UP
\override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
#'((basic-distance . 5.5) (minimum-distance . 5.5) (padding . 1.25) 
(stretchability . 0))
  }
  \context {
\ChordNames
\name LyricSheetChords
\alias ChordNames
\inherit-acceptability LyricSheetChords ChordNames
\override VerticalAxisGroup.nonstaff-nonstaff-spacing =
#'((basic-distance . 1) (minimum-distance . 1) (padding . 1) 
(stretchability . 0))
  }
  \context {
\Lyrics
\name LyricSheetLyrics
\alias Lyrics
\inherit-acceptability LyricSheetLyrics Lyrics
\override VerticalAxisGroup.staff-affinity = #UP
\override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
#'((basic-distance . 3) (minimum-distance . 3) (padding . 2) 
(stretchability . 0))
\override LyricText.self-alignment-X = #-0.9
\override LyricSpace.minimum-distance = #0.75
\override LyricSpace.minimum-length = #0.625
\omit LyricHyphen
\override LyricHyphen.minimum-distance = #0
  }
}

theMelody = {
  e'4 d' c' d'
  e'4 4 4 4
  d'4 4 e' d'
  c'2 r4 d'
  e'4 d' c' d'
  e'4 4 4 4
  d'4 4 e' d'
  c'2. r4
}

theChords = \chordmode {
  c2 f
  c1
  d2:7 g
  c1
  c2 f
  c1
  f2:6 g
  c1
}

lyricsbreak =  \tag #'lyricsheet { \bar "" \break }

theWords = \lyricmode {
  Mar -- y had a lit -- tle lamb,  \lyricsbreak
  Its fleece was white as snow.  \lyricsbreak
  And \markup \concat { ev \hspace #-0.125 }  -- ery -- where that Mar -- y 
went  \lyricsbreak
  The lamb was sure to go.
}

\score {
  <<
\new ChordNames \theChords
\new Staff \new Voice = "melody" \theMelody
\new Lyrics \removeWithTag #'lyricsheet \lyricsto "melody" \theWords
  >>
  \layout {
ragged-right = ##f
\context {
  \Score
  \remove "Bar_number_engraver"
}
  }
}
\pageBreak
\score {
  <<
\new ChordNames \theChords
\new Devnull = "melody" \theMelody
\new LyricSheetLyrics \keepWithTag #'lyricsheet \lyricsto "melody" \theWords
  >>
  \layout {
line-width = 6\in
indent = 2\in
short-indent = 2\in
\context {
  \Score
  \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1000/1)
  \remove "Bar_number_engraver"
  \remove "Bar_engraver"
}
  }
}
%%%  SNIPPET ENDS


Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Lead sheets: lyrics and chords, no melody?

2019-03-03 Thread Christopher R. Maden

On 3/3/19 2:34 PM, Ivan Kuznetsov wrote:

Why not just use MS Word or Latex ?  If you don't need musical
notation, why use a music notation program ?


I have the songs fully scored out in LilyPond.  My guitarist is scared 
by the lines and dots, so I want to give him a simple lead sheet — 
without having to redo all the work I’ve already done aligning chords 
and lyrics.  (I am committed to the principle of single-source authoring 
in my textual and musical worlds.)


It seems like LilyPond should be able to do that, using an invisible 
staff for the melody, and indeed, I’m 95% of the way there, with Aaron’s 
tips on suppressing the staff and Kieren’s tips on spacing (which I 
haven’t fully digested yet).


It looks like another win for LilyPond, to me!

~Chris
--
Chris Maden, text nerd
http://crism.maden.org/ >
Emperor Norton had the right idea.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Lead sheets: lyrics and chords, no melody?

2019-03-03 Thread Ivan Kuznetsov
On Sat, Mar 2, 2019 at 11:05 PM Christopher R. Maden 
wrote:
>
> I’d like to produce what he’s used to: lyrics with chords above them.

Why not just use MS Word or Latex ?  If you don't need musical
notation, why use a music notation program ?
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Lead sheets: lyrics and chords, no melody?

2019-03-03 Thread Kieren MacMillan
Hi Christopher,

> I’ve trawled the internals pretty extensively at this point, and this is 
> probably close enough for my guitarist, but any further pointers on the 
> spacing would be most welcome.

I believe the spacing issues are better handled by the solution in the 
thread(s) I linked to earlier.

Hope that helps!
Kieren.


Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Lead sheets: lyrics and chords, no melody?

2019-03-03 Thread Christopher R. Maden

On 3/3/19 12:40 AM, Aaron Hill wrote:

It is a messy hack, but here is something:


[...]


My goal was to leave the lead sheet snippet from the docs intact and
do everything with \layout.  There are probably other grobs that will
need \omitting depending on your music.  Spacing will almost
certainly require tweaking to work.  I also opted to left-align the
lyrics to match the chords, as the alignment looks better without the
notes.


Thanks!  That’s a good start... I had tried the approach of \remove-ing 
a bunch of engravers from Staff and Voice, but this looks cleaner.


It does leave a bunch of note flags, dots, and phrasing slurs decorating 
the lyrics...


I was able to clean most of that up by adding:

  \omit Dots
  \omit Flag
  \omit InstrumentName
  \omit PhrasingSlur.

to the \Staff context.

I also added \omit BarNumber to the \Score context.  Oddly, the 8 from 
the "treble_8" clef I was using lingered even with \omit Clef in the 
\Staff context; I had to \remove Clef_engraver from the Staff to kill that.


I am struggling with the spacing now.  Based on Aaron’s second message, 
I currently have this:


  \context {
\ChordNames
\override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
  #'((basic-distance . 0) (minimum-distance . 1)
 (padding . 4) (stretchability . 0))
\override ChordName.extra-offset = #'(0 . -1)
  }
  \context {
\Lyrics
\override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
  #'((basic-distance . 0) (minimum-distance . 1)
 (padding . -2) (stretchability . 0))
\override LyricText.self-alignment-X = #LEFT
\override LyricSpace.minimum-distance = #1
\omit LyricExtender
  }

which gives the attached results.[*]  If I increase the ChordNames 
padding to 5, the last line gets pushed to the next page, and everything 
opens way up.  Changing the basic or minimum distance properties just 
pushes the chords away from their associated lyrics, not from the 
preceding line.  The nonstaff-nonstaff-spacing property doesn’t seem to 
affect anything.


I’ve trawled the internals pretty extensively at this point, and this is 
probably close enough for my guitarist, but any further pointers on the 
spacing would be most welcome.


~Chris

[*] “Fiddler’s Green” is copyright © 1970 March Music, Ltd.
--
Chris Maden, text nerd
http://crism.maden.org/ >
Emperor Norton had the right idea.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Lead sheets: lyrics and chords, no melody?

2019-03-03 Thread Kieren MacMillan
Hi there!

> I’d like to produce what he’s used to: lyrics with chords above them.
[…]
> I’m groveling through the internals reference now, but maybe someone has a 
> snippet to share?

Maybe there’s something helpful in 
 or 
 or 
similar threads?

Best,
Kieren.


Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Lead sheets: lyrics and chords, no melody?

2019-03-02 Thread Aaron Hill

On 2019-03-02 9:40 pm, Aaron Hill wrote:

On 2019-03-02 8:51 pm, Christopher R. Maden wrote:

I’d like to produce what he’s used to: lyrics with chords above them.
(See _Rise Up Singing_ or a thousand other songbooks for examples.)  I
have many songs set in LilyPond already, with chords and lyrics
aligned to the melody.  If I can suppress the melody staff, but keep
the chords and lyrics aligned to them, that would be ideal.  Something
like http://lilypond.org/doc/v2.19/Documentation/snippets/chords#chords-simple-lead-sheet
> but without the melody staff.


It is a messy hack, but here is something:

[ . . . ]

My goal was to leave the lead sheet snippet from the docs intact and
do everything with \layout.  There are probably other grobs that will
need \omitting depending on your music.  Spacing will almost certainly
require tweaking to work.  I also opted to left-align the lyrics to
match the chords, as the alignment looks better without the notes.


Here is a slight improvement, that also preserves the bar lines:


\version "2.19.82"

\layout {
  \context { \Staff
\omit StaffSymbol
\override StaffSymbol.line-count = #4
\omit Clef
\omit KeySignature
\omit TimeSignature

% Cannot \omit as it causes errors with slur attachment.
\hide NoteHead

% This is borrowed from NullVoice:
\override NoteHead.X-extent = #(lambda (grob) '(0 . 0))
\override NoteHead.no-ledgers = ##t
nullAccidentals = ##t
\consists "Pitch_squash_engraver"
squashedPosition = #0

\omit Beam \omit Stem \omit Rest
\omit Slur \omit Tie
  }
  \context { \ChordNames
\override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
  #'((basic-distance . 0) (minimum-distance . 0)
 (padding . -2) (stretchability . 0))
\override ChordName.extra-offset = #'(0 . -1)
  }
  \context { \Lyrics
% This ensures that lyrics do not overlap barlines.
\consists "Bar_engraver" \hide BarLine

\override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
  #'((basic-distance . 0) (minimum-distance . 0)
 (padding . 0) (stretchability . 0))
\override LyricText.self-alignment-X = #LEFT
\override LyricSpace.minimum-distance = #1
\omit LyricExtender
  }
}

<<
  \chords { c2 g:sus4 f e }
  \relative c'' {
a4 e c8 e r4
b2 c4( d)
  }
  \addlyrics { One day this shall be free __ }





-- Aaron Hill

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Lead sheets: lyrics and chords, no melody?

2019-03-02 Thread Aaron Hill

On 2019-03-02 8:51 pm, Christopher R. Maden wrote:

I have a guitarist who is afraid of written music.  (That is a
conversation for another day — suffice to say, I’m working on it.)

I’d like to produce what he’s used to: lyrics with chords above them.
(See _Rise Up Singing_ or a thousand other songbooks for examples.)  I
have many songs set in LilyPond already, with chords and lyrics
aligned to the melody.  If I can suppress the melody staff, but keep
the chords and lyrics aligned to them, that would be ideal.  Something
like http://lilypond.org/doc/v2.19/Documentation/snippets/chords#chords-simple-lead-sheet
> but without the melody staff.

It’s probably a visibility property setting (obviously, the melody
needs to be there to align the lyrics to; I’d prefer not to have to go
in an insert explicit durations for every single syllable, when the
current alignment is just fine...)

I’m groveling through the internals reference now, but maybe someone
has a snippet to share?


It is a messy hack, but here is something:


\version "2.19.82"

\layout {
  \context { \Staff
\omit StaffSymbol
\omit Clef
\omit KeySignature
\omit TimeSignature
\omit BarLine
\omit LedgerLineSpanner

% Cannot \omit as it causes errors with slur attachment.
\hide NoteHead
\omit Beam
\omit Stem
\omit Rest
\omit Slur
\omit Tie
  }
  \context { \ChordNames
\override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
  #'((basic-distance . 0) (minimum-distance . 0)
 (padding . -3) (stretchability . 0))
  }
  \context { \Lyrics
\override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
  #'((basic-distance . 0) (minimum-distance . 0)
 (padding . -3) (stretchability . 0))
\override LyricText.self-alignment-X = #LEFT
  }
}

<<
  \chords { c2 g:sus4 f e }
  \relative c'' {
a4 e c8 e r4
b2 c4( d)
  }
  \addlyrics { One day this shall be free __ }





My goal was to leave the lead sheet snippet from the docs intact and do 
everything with \layout.  There are probably other grobs that will need 
\omitting depending on your music.  Spacing will almost certainly 
require tweaking to work.  I also opted to left-align the lyrics to 
match the chords, as the alignment looks better without the notes.



-- Aaron Hill

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Lead sheets: lyrics and chords, no melody?

2019-03-02 Thread Christopher R. Maden
I have a guitarist who is afraid of written music.  (That is a 
conversation for another day — suffice to say, I’m working on it.)


I’d like to produce what he’s used to: lyrics with chords above them. 
(See _Rise Up Singing_ or a thousand other songbooks for examples.)  I 
have many songs set in LilyPond already, with chords and lyrics aligned 
to the melody.  If I can suppress the melody staff, but keep the chords 
and lyrics aligned to them, that would be ideal.  Something like http://lilypond.org/doc/v2.19/Documentation/snippets/chords#chords-simple-lead-sheet 
> but without the melody staff.


It’s probably a visibility property setting (obviously, the melody needs 
to be there to align the lyrics to; I’d prefer not to have to go in an 
insert explicit durations for every single syllable, when the current 
alignment is just fine...)


I’m groveling through the internals reference now, but maybe someone has 
a snippet to share?


Thanks in advance,
crism
--
Chris Maden, text nerd
http://crism.maden.org/ >
Emperor Norton had the right idea.

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user