lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: parameters in lyrics?


From: David Nalesnik
Subject: Re: parameters in lyrics?
Date: Thu, 3 Dec 2015 10:54:13 -0600

Hi,

On Thu, Dec 3, 2015 at 10:35 AM, Urs Liska <address@hidden> wrote:


Am 03.12.2015 um 17:30 schrieb Graham King:
On Thu, 2015-12-03 at 17:12 +0100, Urs Liska wrote:


Am 03.12.2015 um 17:10 schrieb Graham King:

On Thu, 2015-12-03 at 16:57 +0100, Urs Liska wrote:
Ah, forgot: the ending function would also have to be written before the syllable, so

Three \foo deaf and \bar blind mice are \foobar alive.

should return

Three [deaf and blind] mice are [alive]

Uh, no.  I'd like it to return
    Three [deaf and] blind mice are [alive]

That's the bit I'm struggling with.

You can't do that (I think). But I don't see a problem with writing the function before the syllable.
Or what am I missing?
I've got a lot of music with

foo = \override LyricText.font-shape = #'italic
bar = \revert LyricText.font-shape

and I'd like to redefine foo and bar to replace the italics with [bracketed text].  And to switch between italics and brackets easily.

To achieve that it doesn't matter if the function is placed before or after the syllable.
Your function has to merge the syllable with the surrounding (be it a bracket or an \override) anyway, so you can handle the pre-/postfix issue within the function itself.

But as I wrote in another reply (with full code example) I don't know how to mix music and lyrics inside that function. But surely someone else can help with that.


This looks too hideous to be the right way, but...

 \version "2.19.21"

start = 
#(define-scheme-function (parser location syllable)(markup?)
   (format "[~a" syllable))

start =
#(define-scheme-function (parser location)()
   (ly:parser-include-string "\\override LyricText.color = #red"))

end = 
#(define-scheme-function (parser location syllable)(markup?)
   (format "~a]" syllable))

end =
#(define-scheme-function (parser location syllable)(markup?)
   
   (ly:parser-include-string "\\revert LyricText.color")
   syllable)


wrap = 
#(define-scheme-function (parser location syllable)(markup?)
   (format "[~a]" syllable))

wrap =
#(define-scheme-function (parser location) ()
   (ly:parser-include-string "\\once \\override LyricText.color = #red"))

theNotes = {
  \relative { e''1 d c d e }
}

theWords = \lyricmode {
  Three \start blind \end mice are \wrap alive
}

\score
{
  \new StaffGroup
  <<
    \new Voice = "voice" \theNotes
    \new Lyrics \lyricsto "voice" \theWords
  >>
}

%%

David


reply via email to

[Prev in Thread] Current Thread [Next in Thread]