Midi-Ausgabe für ChordNames unterdrücken - gelöst

Begonnen von Manuela, Samstag, 29. Juni 2019, 19:12

« vorheriges - nächstes »

Manuela

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 { }
}
Danke für eure Hilfe
viele Grüße
-- Manuela

harm6

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

Manuela

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.
Danke für eure Hilfe
viele Grüße
-- Manuela