Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: Manuela am Samstag, 29. Juni 2019, 19:12

Titel: Midi-Ausgabe für ChordNames unterdrücken - gelöst
Beitrag von: Manuela am Samstag, 29. Juni 2019, 19:12
Hi,

ich habe jetzt eine ganze Weile getüftelt, um dieses Beispiel zusammen zu stellen.

Ich möchte die Midi-Ausgabe für die Chordnames-Contexte unterdrücken. Das funktioniert bei normalen Chordnames, aber nicht, sobald ich einen eigenen Context definiere.

Im Beispiel wird zuerst die Melodie ohne Chordnames gespielt, es folgt die Melodie mit einem "normalen" Chordnames-Context, bei dem die Unterdrückung der Midi-Ausgabe funktioniert.

Bei der dritten Wiederholung der Melodie wird ein eigens definierter Chordnames-Context namens UpperChords verwendet, der sich bei der Midi-Ausgabe nicht unterdrücken lässt. Nicht einmal, wenn ich in der Context-Definition den Staff-Performer entferne.

Wo liegt mein Denkfehler, was mache ich falsch?

\version "2.19.82"

\midi {
  \context {
    \Staff
    \remove "Staff_performer"
  }
  \context {
    \ChordNames
    \remove "Staff_performer"
  }
  \context {
    \Voice
    \consists "Staff_performer"
  }
}

\layout {
  \context {
    \Staff
    \name BarNumberStaff
    \alias Staff
  }
  \context {
    \ChordNames
    \name UpperChords
    \remove "Staff_performer" %% hat keinen Effekt
  }
  \context {
    \StaffGroup
    \accepts UpperChords
    \accepts BarNumberStaff
  }
}

baseMelody = \relative c' {
  c4.\mf g c16 b' c d
  e16 d e f g4 g'4 r
  R1
}
melody = {
  \tempo 4 = 150
  \baseMelody
}

kords = \chordmode {
  d1:m e:m7 g:m9
}

\score {
  \new StaffGroup
  <<
    \new BarNumberStaff
    \new Voice
    \repeat unfold 3 \melody
    \new ChordNames { s1 * 3 \kords }
    \new UpperChords { s1 * 6 \kords }
  >>
  \layout { }
}
Titel: Antw:Midi-Ausgabe für ChordNames unterdrücken
Beitrag von: harm6 am Samstag, 29. Juni 2019, 19:54
Ich 'aabe gar kein \midi  :D

Darüberhinaus mußt Du auch in \midi alles regeln, sonst passiert nichts oder es gibt Warnungen:

\version "2.19.82"

\midi {
  \context {
    \Staff
    \remove "Staff_performer"
  }
  \context {
    \ChordNames
    \remove "Staff_performer"
  }
  \context {
    \ChordNames
    \name UpperChords
    \remove "Staff_performer" %% hat keinen Effekt
  }
  \context {
    \Voice
    \consists "Staff_performer"
  }
  \context {
    \Staff
    \name BarNumberStaff
    \alias Staff
  }
  \context {
    \StaffGroup
    \accepts UpperChords
    \accepts BarNumberStaff
  }
}

\layout {
  \context {
    \Staff
    \name BarNumberStaff
    \alias Staff
  }
  \context {
    \ChordNames
    \name UpperChords
    \remove "Staff_performer" %% hat keinen Effekt
  }
  \context {
    \StaffGroup
    \accepts UpperChords
    \accepts BarNumberStaff
  }
}

baseMelody = \relative c' {
  c4.\mf g c16 b' c d
  e16 d e f g4 g'4 r
  R1
}
melody = {
  \tempo 4 = 150
  \baseMelody
}

kords = \chordmode {
  d1:m e:m7 g:m9
}

\score {
  \new StaffGroup
  <<
    \new BarNumberStaff
    \new Voice
    \repeat unfold 3 \melody
    \new ChordNames { s1 * 3 \kords }
    \new UpperChords { s1 * 6 \kords }
  >>
  \midi {}
  \layout { }
}


Gruß,
  Harm
Titel: Antw:Midi-Ausgabe für ChordNames unterdrücken
Beitrag von: Manuela am Samstag, 29. Juni 2019, 20:12
Danke Harm.

Auf die Idee, die ganzen Contexte auch im Midi-Abschnitt zu definieren, bin ich natürlich nicht gekommen  ???

Inzwischen habe ich das Problem anders gelöst, indem ich einen eigenen Score nur für die Midi-Ausgabe anhänge, der nur die gewünschten Stimmen enthält.