lilypond-user
[Top][All Lists]

## Re: Just chords and lyrics.

 From: Jonathan Kulp Subject: Re: Just chords and lyrics. Date: Wed, 26 Nov 2008 19:49:44 -0600 User-agent: Thunderbird 2.0.0.18 (X11/20081125)

Carl D. Sorensen wrote:



On 11/26/08 4:34 PM, "strk" <address@hidden> wrote:


On Wed, Nov 26, 2008 at 05:07:42PM -0600, Jonathan Kulp wrote:


If a good way to do this arises from this thread, let's add it to the
fretted-strings.itely file for future ref.  It was a @TODO when I was
rewriting fretted strings but it was something I didn't see the need for
(I had the "use a word processor" advice, too) and didn't care enough
about it to make a good example.  Graham warned me that someone asks
about it at least twice a year so let's try to get a good minimal
example for the docs from this thread.

Would be nice to find a warning-free version too.
My current version prints fine, but keeps giving those scary warnings:

warning: Lyric syllable does not have note.
Use \lyricsto or associatedVoice.

And you're using \lyricsto ...



Warning free won't happen an long as we're using Devnull.  Maybe when I get
my Scheme function written....

Carl




I took strk's example and turned it into what I think he wants by the rather crude method of making everything in the melody transparent and turning the rests into skips. This works better than devnull for preserving the placement of the text under the staff and it also runs without warnings. Downside is that for each piece there'll be some variation in what objects need to be made invisible. I put all the transparency overrides in a variable and added it in the \score block so that the \melody variable could be used elsewhere if necessary as a visible melody. (Actually you'd have to turn the melody's skips back into rests and then make them transparent for this to work but you get the idea...) I copy a minimal example from his "Amado mio" below.


Now, the @TODO in the .itely file was, I think, referring to a different sort of "just chords and lyrics," where there was actually no music staff at all, just chord symbols and lyrics. *That* was the result for which I recommended a word processor since it contained no music notation whatsoever. Does anyone think it's worthwhile to make Lilypond produce something like this:

C            G            C          D
Words words words to the Song song song


My opinion when doing the docs was that you essentially had to break Lilypond to make it do this. It would be like me driving an 18-wheeler to get to my next-door neighbor's house instead of just walking over there--totally inappropriate tool for the job. If anyone sees a reason why Lilypond should do this, then they're welcome to create a minimal example that we can put in the docs, otherwise I'd recommend a word processor, or better yet, something like GuitarTeX:

http://guitartex.sourceforge.net/en/guitartex/book1.html


I haven't tried it, but it seems like GuitarTeX would probably work well with LaTeX and by extension with Lilypond-book. GuitarTeX does precisely the Lyrics/chord-symbols format and supports transposition, which is what many people cite as a reason to use Lilypond.

Ok strk's example is below.

Jon

--
Jonathan Kulp
http://www.jonathankulp.com

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\version "2.11.64"

%------------- Lyrics ---------- {

makeitvanish = {
\override Stem #'transparent = ##t
\override TupletBracket #'bracket-visibility = ##f
\override TupletNumber #'stencil = ##f
\override Accidental #'transparent = ##t
\override Tie #'transparent = ##t
\override Dots #'transparent = ##t
\override Staff.LedgerLineSpanner #'transparent = ##t
\override Beam #'transparent = ##t
}

text = \lyricmode {
A -- ma -- do
mi -- o
love me for --
e -- ver
}

%------------- Melody ---------- }{

melody = \relative c'' {

\time 4/4

s4 e a4. c,8 |
e4. d8~ d2 |
s2 \times 2/3 { d4 e4 f4 } |
f4. e8 ~ e2 |
%\break
}

%------------- Chords ---------- }{

harmonies = \chordmode {
% amado | mio | love me for | ever
a1:m | d:m | e:7 | a:m |
}

%------------- Score ---------- }{

\score {

<<
\new ChordNames {
%\set chordChanges = ##t
%\set Staff.midiInstrument = "church organ"
\harmonies
}

\new Staff {
\set Staff.instrumentName = #"Voice"

\new Voice = "vocal" { \makeitvanish \melody }
%                       \new Devnull = "vocal" \melody

}
\new Lyrics \lyricsto "vocal" \text

>>

\midi {
\context {
\Score
tempoWholesPerMinute = #(ly:make-moment 270 8)
}

}

\layout {}
}

%------------- END ---------- }