Hi,

I used this (which might be adapted from Frescobaldi or the LSR). It
requires the music to be written into \soprano \alto \tenor and \bass
(but this can for sure be adapted).

The Score uses the default instrument and has a reduced volume compared
to the Staff given by the name variable. This Staff can also have a
different instrument.

Usage: \rehearsalMidi "soprano" "oboe" \text

Here is the function definition:

rehearsalMidi = #(define-music-function
 (parser location name midiInstrument lyrics) (string? string? ly:music?)
 #{
   \unfoldRepeats <<
     \new Staff = "soprano" \new Voice = "soprano" { <>\f \soprano }
     \new Staff = "alto" \new Voice = "alto" { <>\f \alto }
     \new Staff = "tenor" \new Voice = "tenor" { <>\f \tenor }
     \new Staff = "bass" \new Voice = "bass" { <>\f \bass }
     \context Staff = $name {
       \set Score.midiMinimumVolume = #0.5
       \set Score.midiMaximumVolume = #0.5
       \set Score.tempoWholesPerMinute = #(ly:make-moment 80 4)
       \set Staff.midiMinimumVolume = #0.8
       \set Staff.midiMaximumVolume = #1.0
       \set Staff.midiInstrument = $midiInstrument
     }
     \new Lyrics \with {
       alignBelowContext = $name
     } \lyricsto $name $lyrics
   >>
 #})

Cheers,
Joram




PS: I always wanted to have it surrounded by this book and score blocks,
but that never worked out:

midifor = #
(define-scheme-function
 (parser location name midiInstrument lyrics) (string? string? ly:music?)
 #{
\book {
  \bookOutputSuffix $name
  \score {
    \rehearsalMidi $name $midiInstrument $lyrics
    \midi { }
  }
}
 #})

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

Reply via email to