Hello Simon,

On Sat, Dec 28, 2024 at 3:25 PM Simon Albrecht <simon.albre...@mail.de>
wrote:

> I would like to obtain LilyPond output with black and white inverted
> (black background, white music and text) for on-screen use and
> projections. Does someone know how to achieve that through LilyPond
> code, or has it been done before? Should absolutely be an LSR snippet IMO.
>

I, too, had this problem. Someone on the list helped me, but I can't find
their name right now :-(

Does the attached sample fit your purpose? It's best to split off (part of)
this file into an color.ily file that you can include 'everywhere' you need
it, so that you can avoid repetition of the color function.

Please note that I tried my best to find all the relevant grob names, but I
might have missed some :-(

Regards,

Christ van Willegen
% vim: set et autowriteall vsts=2,42,8:
\version "2.24.1"

color =
#(define-music-function (parser location lily-color) (string?)
     #{
       \override Score.StaffSymbol.color = #lily-color
       \override Score.BarNumber.color = #lily-color
       \override Score.Glissando.color = #lily-color
       \override Score.LyricExtender.color = #lily-color
       \override Score.LyricHyphen.color = #lily-color
       \override Score.LyricText.color = #lily-color
       \override Score.MetronomeMark.color = #lily-color
       \override Score.RehearsalMark.color = #lily-color
       \override Score.SectionLabel.color = #lily-color
       \override Score.SpanBar.color = #lily-color
       \override Score.StanzaNumber.color = #lily-color
       \override Score.SystemStartBar.color = #lily-color
       \override Score.SystemStartBrace.color = #lily-color
       \override Score.SystemStartBracket.color = #lily-color
       \override Score.VoltaBracket.color = #lily-color
       \override Staff.Accidental.color = #lily-color
       \override Staff.AccidentalCautionary.color = #lily-color
       \override Staff.BarLine.color = #lily-color
       \override Staff.Beam.color = #lily-color
       \override Staff.BreathingSign.color = #lily-color
       \override Staff.Clef.color = #lily-color
       \override Staff.Dots.color = #lily-color
       \override Staff.DynamicLineSpanner.color = #lily-color
       \override Staff.DynamicText.color = #lily-color
       \override Staff.DynamicTextSpanner.color = #lily-color
       \override Staff.Flag.color = #lily-color
       \override Staff.Hairpin.color = #lily-color
       \override Staff.InstrumentName.color = #lily-color
       \override Staff.KeyCancellation.color = #lily-color
       \override Staff.KeySignature.color = #lily-color
       \override Staff.LedgerLineSpanner.color = #lily-color
       \override Staff.LedgerLineSpanner.color = #lily-color
       \override Staff.MetronomeMark.color = #lily-color
       \override Staff.MultiMeasureRest.color = #lily-color
       \override Staff.MultiMeasureRestNumber.color = #lily-color
       \override Staff.MultiMeasureRestText.color = #lily-color
       \override Staff.NoteHead.color = #lily-color
       \override Staff.Parentheses.color = #lily-color
       \override Staff.PhrasingSlur.color = #lily-color
       \override Staff.Rest.color = #lily-color
       \override Staff.Script.color = #lily-color
       \override Staff.Slur.color = #lily-color
       \override Staff.Stem.color = #lily-color
       \override Staff.TextScript.color = #lily-color
       \override Staff.Tie.color = #lily-color
       \override Staff.TimeSignature.color = #lily-color
       \override Staff.TupletBracket.color = #lily-color
       \override Staff.TupletNumber.color = #lily-color
     #})

black = {
 \color "#ffffff"
}

\paper {
  oddHeaderMarkup = \markup {
    \score {
      \relative {
        % hides staff and notes so that only the grid lines are visible
        \hideNotes
        \hide Staff.BarLine
        \override Staff.StaffSymbol.line-count = #0
        \hide Staff.TimeSignature
        \hide Staff.Clef
        s1
        -\tweak layer #-1 
        -\markup {
          \with-dimensions #'(0 . 0) #'(0 . 0)
          % specify color
          \with-color #(rgb-color 0 0 0)
          % specify size
          \filled-box #'(-1000 . 1000) #'(-10000 . 4000) #0
        }
      }
      \layout {
        #(layout-set-staff-size 1)
      }
    }
  }
  evenHeaderMarkup = \oddHeaderMarkup
}

\paper {
  #(set-paper-size "a4")
  % page-breaking = #ly:one-page-breaking
}

\header {
  title = \markup { \with-color #white { "White on black" } }
  arranger = \markup { \with-color #white { "" } }
  poet = \markup { \with-color #white { "" } }
  % Remove standard Lilypond tag line at the bottom of the score
  tagline = ##f
}


\layout {
  \context {
    \Voice
    \consists "Melody_engraver"
  }
}

global = {
  \black
  \key e \minor
  \time 4/4
}

sopranoVoice = \relative c' {
  \global
  \dynamicUp
  % Music here.
  % \compressEmptyMeasures
  R1 * 4
  r2^\markup { \italic Verse 1} r8 e8 e a |% 5
  R1 * 250
  c1 | d2 r2 |
  \bar "|."
}

verse = \lyricmode {
  % Lyrics here
  White on black
  Some more
}

\score {
  \new Staff \with {
    instrumentName = "S."
  } { \sopranoVoice }
  \addlyrics { \verse }
  \layout { }
}

Reply via email to