lilypond-user
[Top][All Lists]
Advanced

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

Re: Lyric representation in MIDI?


From: Arvid Grøtting
Subject: Re: Lyric representation in MIDI?
Date: Wed, 07 May 2008 08:47:00 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux)

Mats Bengtsson <address@hidden> writes:

> For songs with several verses, I guess the lyric printouts won't
> make any sense, no matter how we place the information in the MIDI
> files.

Not unless we introduce some kind of semantic to tell Lilypond that
they are verses, anyway.

pseudocode-like idea:

\repeat verses 3 \music

...

\lyricsto foo \verses { \verseI \verseII \verseIII }

...where a "\repeat verses" wouldn't show up in print, but could be
expanded in MIDI, and \verses would put its arguments below each other
in print and after each other (or just output the first argument)
in MIDI.

I'm not offering to implement or sponsor this, though; I'm just trying
to point out what would be needed to get somehow intelligent MIDI
output for multiple verses automatically.

Within today's framework and a bit of hacking, the same effect can of
course be acheived with a separate \score block for MIDI, but not as
automatically.  Here's what I do currently:

\score {
  \new Score {
    \global
    \unfoldRepeats
    <<
      \markups
      \new Staff = "Tenor I" {
        \set Staff.midiInstrument = #"oboe"
        \tiMusic
      }
      \new Staff = "Tenor II" {
        \set Staff.midiInstrument = #"trumpet"
        \tiiMusic
      }
      \new Staff = "Bass I" {
        \set Staff.midiInstrument = #"bassoon"
        \biMusic
      }
      \new Staff = "Bass II" {
        \set Staff.midiInstrument = #"baritone sax"
        \biiMusic
      }
    >>
  }
  \midi {}
}

\global and \markups hold different common stuff here, while \tiMusic
etc hold music for each voice.

Notice the complete lack of lyrics in my MIDI output when I use this.
(The \score block I use for printing is of course quite different.)



-- Arvid





reply via email to

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