Neueste Beiträge

#41
Gesang / Antw:ganz neu in LilyPond
Letzter Beitrag von Lilysetter - Mittwoch, 3. Juni 2026, 14:57
Bei mir würde das so aussehen: Hast Du Dir das auch so vorgestellt?\version"2.24.1" \pointAndClickOff \language"deutsch" \paper{indent=0}
\header{title="I schumytj" composer="trad. ukrain"}
glob={\key c\major\time2/4}
sopr=\relative{\glob
  \override Score.BarNumber.break-visibility =#'#(#f #t #t)
  \override Score.BarNumber.self-alignment-X =#0
  c''8g e'4 | c8g e'4 | c8g e'4 | d16[c16]h16[a16]g4\break |
  e8g g g | f a a a | g h d8.h16 | c8e c4}
alto=\relative{\glob
  e'8e g4 | e8e g4 | e8e g4 | f16[e]d[c]h4 |
  c8e e e | c f f f | f f f8.f16 | e8g e4}
bari=\relative{\glob
% c'8c c4 | c8c c4 | c8c c4 | g8 g g4 |
  c'8c c4 | c8c c4 | c8c c4 | g16~g g~g g4 |
  g8c c c | a8c c c | h8d g,8.g16 | c8c c4}
text=\lyricmode{\set stanza ="1."
  I schu mytj i gu -- de, dri -- ben dosch tschik wi de!
  A hto zme -- ne mo -- lo -- du -- ju ta do do -- mu pro -- we -- de! }
\score{ \new Voice <<\sopr \alto \bari>> \addlyrics\text
  \layout{} \midi{} }
\markup{\column{\null
    "2. Obizwawsja Kozak na solodkim medu:"
    "Huljaj, huljaj, tschornobrywa, ja do domu zawedu."\null
    "3. Ne wedy z tu mene, oj proschu z ja tebe,"
    "Bo luhoho muza maju, bude byty, dobre znaju."\null
    "4. Na bik, hloptsi, na bik, bo tschort muschscha nese!"
    "Jak pobatschytj mene z wamy, joho trjastsja zatrjase."\null
    "7. I schumytj, i gude, Skrynka graje, bas gude,"
    "Kozak mowtschytj. A wse znaje, win do domu zawede."\null\null
    \bold "Deutsche Übersetzung (sinngemäß)"\null
    "1. Es rauscht und dröhnt, ein leichter Regen fällt!"
    "Und wer wird mich, die ich noch jung bin, nach Hause begleiten?"\null
    "2. Der Kosak versprach es beim süßen Honig:"
    "Feiere, feiere, du Schwarzbrauige, ich bringe dich nach Hause."\null
    "3. Führ mich nicht dorthin, oh, ich bitte dich,"
    "denn ich habe einen wilden Ehemann, er wird schlagen, das weiß ich genau."\null
    "4. Aus dem Weg, Jungs, aus dem Weg, denn der Teufel bringt den Mann herbei!"
    "Wenn er mich unter euch sieht, fängt er an zu zittern."\null
    "7. Es rauscht und dröhnt, die Schüssel spielt, der Bass dröhnt,"
    "Der Kosak schweigt. Doch er weiß alles, er wird nach Hause führen."
    }}
#42
Gesang / Antw:ganz neu in LilyPond
Letzter Beitrag von joo4wie - Dienstag, 2. Juni 2026, 22:15
Hi Elvi,

[bei deinem aktuellen Beitrag geht es um ein anderes Problem, oder? Da wäre es gut gewesen, ein neues Thema anzufangen - nur so angemerkt].

Also einen Umbruch macht man mit \break. Allerdings setzt du damit die automatische Ermittlung der optimalen Verteilung außer Kraft, was meistens nicht optimal ist. Besser ist es daher folgendes einzubauen:

\paper {
    page-count = 2
    system-count = 6
    systems-per-page = 3
}

Es reicht meistens, eine der Zeilen zu verwenden, ja nach Situation und Wünschen.

Ciao, Joo
#43
Gesang / Antw:ganz neu in LilyPond
Letzter Beitrag von elvi77 - Dienstag, 2. Juni 2026, 19:20
Oh, war das für mich? Vielen Dank! Hatte die letzten Tage andere Baustellen ...

Momentan arbeite ich mich an einem Stück ab, das laut Chorleiterin lieber alle drei Stimmen Sopran, Alt und Bariton) in einem System zusammenfasst, weil es in der Vorgängerversion auch so aussah.

Die beiden Vorschläge habe ich mal im "Baukasten" abgespeichert.

Jetzt brauche ich ein Muster für ein dreistimmiges Stück, das nur mit dem Text der ersten Strophe unterlegt ist, die anderen Strophen als Text unterhalb des Notenblocks.

Bis jetzt sieht das so aus:
\version "2.24.1"
\language "deutsch"

\header {
  title = "I schumytj"
  composer = "trad. ukrain"
}

Melodie = {
  \key c \major
  \time 2/4
 
  % Takt 1-3
  c''8 g' e''4 |
  c''8 g' e''4 |
  c''8 g' e''4 |
 
  % Takt 4: zwei 16tel-Blöcke zu je zwei Noten
  [d''16 c''16] [h'16 a'16] g'4 |
 
  % Takt 5
  e'8 g' g' g' |
 
  % Takt 6
  f'8 a' a' a' |
 
  % Takt 7
  g'8 h' d''8. h'16 |
 
  % Takt 8
  c''8 e'' c''4
}

Text = \lyricmode {
  I schu mytj
  i gu -- de,
  dri -- ben dosch tschik _ wi _ de!
  A hto zme -- ne mo -- lo -- du -- ju
  ta do do -- mu pro -- we -- de!
}

\score {
  \new Staff {
    \Melodie
  }
  \addlyrics { \Text }
  \layout { }
  \midi { }
}

\markup {
  \column {
    \null
    \null
   
    \null
   
    "2. Obizwawsja Kozak na solodkim medu:"
    "Huljaj, huljaj, tschornobrywa, ja do domu zawedu."
    \null
   
    "3. Ne wedy z tu mene, oj proschu z ja tebe,"
    "Bo luhoho muza maju, bude byty, dobre znaju."
    \null
   
    "4. Na bik, hloptsi, na bik, bo tschort muschscha nese!"
    "Jak pobatschytj mene z wamy, joho trjastsja zatrjase."
    \null
   
    "7. I schumytj, i gude, Skrynka graje, bas gude,"
    "Kozak mowtschytj. A wse znaje, win do domu zawede."
    \null
    \null
    \bold "Deutsche Übersetzung (sinngemäß)"
    \null
        "1. Es rauscht und dröhnt, ein leichter Regen fällt!"
    "Und wer wird mich, die ich noch jung bin, nach Hause begleiten?"
    \null
        "2. Der Kosak versprach es beim süßen Honig:"
    "Feiere, feiere, du Schwarzbrauige, ich bringe dich nach Hause."
    \null
   
    "3. Führ mich nicht dorthin, oh, ich bitte dich,"
    "denn ich habe einen wilden Ehemann, er wird schlagen, das weiß ich genau."
    \null
        "4. Aus dem Weg, Jungs, aus dem Weg, denn der Teufel bringt den Mann herbei!"
    "Wenn er mich unter euch sieht, fängt er an zu zittern."
    \null
   
    "7. Es rauscht und dröhnt, die Schüssel spielt, der Bass dröhnt,"
    "Der Kosak schweigt. Doch er weiß alles, er wird nach Hause führen."
  }
}

Die Noten der anderen Stimmen:
Alt:
% Takt 1-3
e' 8 e' g'4|
e' 8 e' g'4|
e' 8 e' g'4|

% Takt 4: zwei mal zwei 16tel und eine Viertel

[f' 16 e' 16] [d' 16 c' 16] h 4 |
% Takt 5
c' 8 e' e' e'|
% Takt 6
c' f' f' f' |
% Takt 7
f'8 f' f'8. f'16 |
% Takt 8
e'8 g' e'4


Bariton:
% Takte 1-3
c'8 c' c'4|
c'8 c' c'4|
c'8 c' c'4|

% Takt 4
g8 g g4

% Takt 5
g8 c' c' c'

% Takt 6
a8 c' c' c'

% Takt 7
h8 d' g. g16

% Takt 8
c'8 c' c'4

Momentan gefällt mir die Taktverteilung nicht (die ersten drei Takte in der ersten Zeile, die restliche fünf in der zweiten Zeile). Wie erzwingt man denn den Umbruch?
#44
Fragen und Probleme aller Art / Antw:Länge eines Musikstücks? ...
Letzter Beitrag von Manuela - Freitag, 29. Mai 2026, 12:49
So, jetzt habe ich mich nochmals mit dem Thema befasst und eine Markup-Funktion geschrieben, die die Dauer in Minuten und Sekunden ausgibt

#(define-markup-command
  (musikdauer layout props mus duration beat)
  (ly:music? ly:duration? number?)
  (let* ((l (ly:music-length mus))
         (dauer (if (string<? "2.24.4" (lilypond-version))
                    (ly:moment-main (/ l (ly:duration->number duration)))
                    (ly:moment-main (ly:moment-div l (ly:duration-length duration)))))
         (minuten  (exact->inexact (/ dauer beat)))
         (gminuten (inexact->exact (floor minuten)))
         (einemin (if (= gminuten 1)
                      ""
                      "n"
                      ))
         (sekunden (inexact->exact (floor (- (* 60 minuten) (* gminuten 60)))))
         (einesek (if (= sekunden 1)
                      ""
                      "n"
                      ))
         (mydur (ly:duration->string duration))
         (dur-log (ly:duration-log duration))
         (dot-count (ly:duration-dot-count duration))
         (dots (list->string  (make-list dot-count #\.)))
         (dur-string
          (if (negative? dur-log)
              (case dur-log
                ((-1) (format #f "breve ~a" dots))
                ((-2) (format #f "longa ~a" dots))
                ((-3) (format #f "maxima ~a" dots))
                (else (begin
                       ;; Bad durations should error earlier, better be
                       ;; paranoid, though.
                       (ly:warning "Unknown duration ~a" duration)
                       "?")))
              (ly:duration->string duration)))
         )
    (interpret-markup
     layout props
     #{
       \markup \concat
       {
         "Die Musik dauert "
         #(ly:number->string gminuten)
         " Minute" $einemin " und "
         #(ly:number->string sekunden)
         " Sekunde" $einesek " bei "
         #(ly:number->string beat)
         " "
         $dur-string "-er"
         " Schlägen pro Minute "
       }
     #}
     ))
  )

\markup \musikdauer \allemeinemusic ##{ 4 #} #120

Vll. kann man das mit den Schlägen noch geschickter formulieren, meine Version stellt mich nicht ganz zufrieden.

Update: Einzahl bei Minuten und Sekunden berücksichtigt
#45
Gesang / Antw:ganz neu in LilyPond
Letzter Beitrag von Lilysetter - Mittwoch, 27. Mai 2026, 00:19
Wenn die Stimmen nicht synchron laufen (polyphon), braucht man für jede Stimme einen eigenen Text:
Sopran über der erste Zeile (sta1), Alt und Tenor zwischen den Zeilen und Bass unter der zweiten Zeile.
Als System bezeichnet man die beiden Zeilen zusammen.\version"2.25.6" \paper{indent=3} \header{title="Für Elvi" composer="Lilysetter"}
glob={\key c\major \time 2/2 \tempo 4=100}
sopr=\relative{\glob % die folgende Zeile macht nur den ganz rechten Taktstrich durchgehend (geht nur mit \new StaffGroup)
  \override Staff.BarLine.after-line-breaking=#(lambda(G)(ly:grob-set-property! G 'allow-span-bar (!= 0(ly:item-break-dir G))))
  \override Score.BarNumber.break-visibility =#'#(#f #t #t)
  \override Score.BarNumber.self-alignment-X =#(break-alignment-list 0 0 1) % linke Taktnummer etwas nach links
                         \repeat unfold44 c''4\bar"|."}
alto=\relative{\glob r2  \repeat unfold42 c'4}
teno=\relative{\glob R1  \repeat unfold40 c'4}
bass=\relative{\glob R1r2\repeat unfold38 c4}
soprTxt=\lyricmode{So -- pr Te -- xt }
altoTxt=\lyricmode{Al -- to Te -- xt }
tenoTxt=\lyricmode{Te -- no Te -- xt }
bassTxt=\lyricmode{Ba -- ss Te -- xt }
\score{\new StaffGroup<<
  \new Staff="sta1" \with{\consists Merge_rests_engraver midiInstrument ="choir aahs"
      instrumentName =\markup\large\center-column{S A}}<<
    \new Voice ="sopr"{\voiceOne\sopr}
    \new Lyrics \with{alignAboveContext="sta1"} \lyricsto"sopr" \soprTxt
    \new Voice ="alto"{\voiceTwo\alto} \addlyrics\altoTxt>>
  \new Staff="sta2" \with{\consists Merge_rests_engraver midiInstrument ="choir aahs"
      instrumentName =\markup\large\center-column{T B}\clef bass}<<
    \new Voice ="teno"{\voiceOne\teno}
    \new Lyrics \with{alignAboveContext="sta2"} \lyricsto"teno" \tenoTxt
    \new Voice ="bass"{\voiceTwo\bass} \addlyrics\bassTxt>>
  >>
  \layout{}
  \midi{}}
Seit der (Developer-)Version 2.25.13 braucht man das "\consists Merge_rests_engraver" nicht mehr.
#46
Fragen und Probleme aller Art / Antw:Länge eines Musikstücks? ...
Letzter Beitrag von Manuela - Montag, 25. Mai 2026, 20:47
Du kannst die Funktion (ly:number->string auch direkt in das Scheme-Programm einbauen, je nachdem, wie du den Output verwenden willst.
#47
Fragen und Probleme aller Art / Antw:Länge eines Musikstücks? ...
Letzter Beitrag von ingmar - Montag, 25. Mai 2026, 19:19
Oh, danke, Manuela! : - )

--ingmar
#48
Gesang / Antw:ganz neu in LilyPond
Letzter Beitrag von Manuela - Montag, 25. Mai 2026, 19:13
Ich habe mal schnell Frescobaldi eine Vorlage erstellen lassen

\version "2.26.0"

\header {
  title = ""
}

global = {
  \time 2/2
  \tempo 4=100
}

soprano = \relative c'' {
  \key c \major
  c4

}

alto = \relative c' {
  c4
}

tenor = \relative c' {
  \key c \major
  c4
}

baso = \relative c {
  c4
}

verseOne = \lyricmode {
  \set stanza = "1."
  hi
}

verseTwo = \lyricmode {
  \set stanza = "2."
  ha
}

verseThree = \lyricmode {
  \set stanza = "3."
  ho
}

\score {
  \new ChoirStaff <<
    \new Staff \with {
      midiInstrument = "choir aahs"
      instrumentName = \markup \center-column { S A }
    } <<
      \new Voice = "soprano" { \voiceOne \soprano }
      \new Voice = "alto" { \voiceTwo \alto }
    >>
    \new Lyrics \with {
      \override VerticalAxisGroup.staff-affinity = #CENTER
    } \lyricsto "soprano" \verseOne
    \new Lyrics \with {
      \override VerticalAxisGroup.staff-affinity = #CENTER
    } \lyricsto "soprano" \verseTwo
    \new Lyrics \with {
      \override VerticalAxisGroup.staff-affinity = #CENTER
    } \lyricsto "soprano" \verseThree
    \new Staff \with {
      midiInstrument = "choir aahs"
      instrumentName = \markup \center-column { T B }
    } <<
      \clef bass
      \new Voice = "tenor" { \voiceOne \tenor }
      \new Voice = "bass" { \voiceTwo \baso }
      \new NullVoice \global
    >>
  >>
  \layout { }
  \midi { }
}
#49
Fragen und Probleme aller Art / Antw:Länge eines Musikstücks? ...
Letzter Beitrag von Manuela - Montag, 25. Mai 2026, 18:39
So, ich habe es mit meinen beschränkten Scheme-Kenntnissen geschafft, die Minuten auszurechnen, wenn man die Zahl der Schläge pro Minute vorgibt.

Die Definitionen sind die gleichen wie im darüber stehenden Post, die wiederhole ich nicht nochmal.


#(define (mus-zeit mus duration beat)
   (let* ((l (ly:music-length mus))
          (dauer (if (string<? "2.24.4" (lilypond-version))
                     (ly:moment-main (/ l (ly:duration->number duration)))
                     (ly:moment-main (ly:moment-div l (ly:duration-length duration)))))
          (minuten  (exact->inexact (/ dauer beat)))
          )
     (write-me "Dauer ------------------> " dauer)
     (write-me "Basis ------------------> " duration)
     (write-me "Minuten ----------------> " minuten)
     minuten
     ))

\markup \concat {
  "Die Musik dauert "
  #(ly:number->string (mus-zeit allemeinemusic #{ 4 #} 120 ))
  " Minuten"
}
#50
Fragen und Probleme aller Art / Antw:Länge eines Musikstücks? ...
Letzter Beitrag von Manuela - Montag, 25. Mai 2026, 18:20
Wäre dir mit dem folgenden Code geholfen, Ingmar?

\version "2.26.0"

musicA = \relative {
  % Length = 48
  c'4 d e f g2 g
  a4 a a a g1
  f4 f f f e2 e
  d4 d d d c e g2
  f4 f f f e2 e
  d4 d d d c1
}

musicB = \relative {
  % Length = 49
  \time 3/4
  R2. *2
  c'4 c d
  b4. c8 d4
  e4 e f
  e4. d8 c4
  d4 c b
  c4 c8 d e f

  g4 g g
  g4. f8 e4
  f4 f f
  f4. e8 d4
  e4 f8 e d c
  \time 4/4
  e4. f8 g4 r\fermata
  \time 3/4
  a8 f e4 d
  c2 r4
  \bar "|."
}

musicC = \relative {
  % Length = 35
  \time 4/2
  R\breve
  r2 d'' d d
  es2 r d4 es d  c
  b8 c b a g4 r8 a b4 r8 d e4 fis
  g4 g8 fis g4
}

musicD = \relative {
  % Length including repetition = 328, without repetition (using alternative 2) = 236
  \language "english"
  \time 4/2
  g'2 b4. c8 d4 e d b
  a2 cs d4. d8 d4 d
  cs4( d2) cs4 d2 r
  b2 c4 d c c b b
  a4 a d4. c8 b4 g d'2

  r4 a e'4. d8 c4 c b b
  c4. b8 a4 g fs2 r
  g4 g8 g g2 r g4 c8 c
  c4 a b b a2 r
  r1 r2 a

  g4 a b2 a4 b c2
  b1 a2 r
  r1 r2 d4 d8 c
  b4. a8 g4 g fs2 r
  d'4 d8 c b4 b a a g2

  r1 e'2 d4 d
  d2 cs d2. r4
  \repeat volta 2 {
    r4 d2 c b a
    g2 fs4 fs8( g4) fs8 g2
    b4 g a2 g f4 f
    e2 g b4 c2( b4)
    c2 r4 b a c b cs
    d2 r4 d e2 d
    d2 r4 d g2. g,4
    g2 c e2. e4
    d2. d4 c b c c
    b4 g a2 r b
    a2 g a2. a4
  }
  \alternative {
    { g2. r4 }
    { g2. g4 a a g f g1\fermata }
  }
  \bar "||"
}

allemeinemusic = {
  \unfoldRepeats {
    \musicA \musicB \musicC \musicD
  }
}

#(define (mus-dauer mus duration)
   (let* ((l (ly:music-length mus))
          (dauer (if (string<? "2.24.4" (lilypond-version))
                     (ly:moment-main (/ l (ly:duration->number duration)))
                     (ly:moment-main (ly:moment-div l (ly:duration-length duration)))))
          )
     (write-me "Dauer ------------------> " dauer)
     (write-me "Basis ------------------> " duration)
     dauer
     ))

\markup #(ly:number->string (mus-dauer allemeinemusic #{ 8 #} ))

Das Markup am Schluss nur zur Verdeutlichung des Ergebnisses, man könnte noch einbauen, wie lange eine Note dauern sollte beim vorgegebenen Tempo, dann könnte man die Zeitdauer ausrechnen