Forumsadmin gesucht! Details gibt’s in diesem Thread.

Hauptmenü

System verstecken

Begonnen von markusw, Donnerstag, 30. Mai 2024, 21:59

« vorheriges - nächstes »

markusw

Einen schönen guten Abend!

Ich habe eine Frage zum Thema "Systeme verstecken". Laut der Doku sollten leere Systeme/Notenzeilen" versteckbar sein, wobei "Eine Notenzeile gilt als leer, wenn sie nur Ganztaktpausen, Pausen, unsichtbare Noten, \skip-Befehle oder eine Kombination der drei enthält."

Demnach sollte, wenn ich alle richtig verstanden habe, in folgendem Beispiel nur ein System sichtbar sein:
\version "2.24.1"
\language "deutsch"

\layout {
  \context {
    \Staff \RemoveAllEmptyStaves
  }
}
\score {
  <<
    \new Staff \relative c' {
      c d e f g a h c c, d e f g a h c c, d e f g a h c c, d e f g a h c
      c, d e f g a h c c, d e f g a h c c, d e f g a h c c, d e f g a h c
    }
    \new Staff \relative c {
      \clef bass \hideNotes
      c h a g f e d c c' h a g f e d c c' h a g f e d c c' h a g f e d c
      c' h a g f e d c c' h a g f e d c c' h a g f e d c c' h a g f e d c
    }
    \new Staff \relative c {
      \clef bass \hideNotes
      r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1
    }
  >>
}

Ist es aber leider nicht. D.h. das "Pausensystem" ist versteckt, aber die Bassstimme ist zwar leer, aber dennoch ist das System zu sehen. Habe ich da etwas falsch verstanden?

Ich möchte gerne in einem Übersetzungsschritt eine Midi-Datei mit mehreren Instrumenten (daher die Systeme) erzeugen und aber gleichzeitig nur den Notensatz für das oberste bekommen. Mir ist klar, dass ich das bewerkstelligen kann, indem ich in der lilypond Datei z.B. zwei entsprechende books anlege. Aber in diesem Fall benötigt der Notensatz länger. Das Ganze soll in einer App (https://pyanora.streamlit.app/) benutzt werden, die mir "on-demand" eine Übehilfe produziert.

Musikalische Grüße
Markus

harm6

ZitatHabe ich da etwas falsch verstanden?
Eher ist die deutsche Übersetzung des manuals missverständlich (und generell veraltet).
Im englischen heisst es:
ZitatA staff is considered empty when it contains only multi-measure rests, rests, skips, or a combination of these elements.
Noten unsichtbar zu machen ist nicht hinreichend, denn dann existiert das note-event ja immer noch.
Also mach note-events zu skip-events:

\version "2.24.1"
\language "deutsch"

silence =
#(define-music-function (arg) (ly:music?)
   (map-some-music
     (lambda (m)
        (and (music-is-of-type? m 'rhythmic-event)
             (music-clone (make-music 'SkipEvent m) 'articulations '())))
     arg))

\layout {
  \context {
    \Staff \RemoveAllEmptyStaves
  }
}
\score {
  <<
    \new Staff \relative c' {
      c d e f g a h c c, d e f g a h c c, d e f g a h c c, d e f g a h c
      c, d e f g a h c c, d e f g a h c c, d e f g a h c c, d e f g a h c
    }
    \silence
    \new Staff \relative c {
      \clef bass
      c h a g f e d c c' h a g f e d c c' h a g f e d c c' h a g f e d c
      c' h a g f e d c c' h a g f e d c c' h a g f e d c c' h a g f e d c
    }
    \new Staff \relative c {
      \clef bass
      r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1 r1
    }
  >>
}

HTH,
  Harm

markusw

Vielen Dank!

Allerdings sorgt "\silence" dann auch für Stille in der Midi-Datei für die Bassstimme. Ich hätte in der Midi-Datei gerne alle Stimmen und nur eine Stimme im Notenbild. Aber vermutlich geht das dann leider nicht in einem lilypond-Durchlauf.