Autor Thema: Arpeggio(Bracket) als Kennzeichnung einer Stimmgruppe  (Gelesen 2096 mal)

marno

  • Member
Arpeggio(Bracket) als Kennzeichnung einer Stimmgruppe
« am: Samstag, 11. Februar 2017, 13:27 »
Hallo Lilypond-Experten,

es geht um das Bearbeiten von Chorsätzen, in denen sich die Stimmen innerhalb einer Stimmgruppe nur in kurzen Abschnitten teilen. Da kommt man natürlich nicht auf die Idee (wie im Beispiel) für BassI bis BassIII drei komplette Einzelstimmen zu notieren.

Um im letzten Takt zu kennzeichnen, daß sich nicht Tenor und Bass zu gleichen Teilen aufsplittet, sondern nur der Bass, benutze ich das zur Klammer mutierte "mißbrauchte" Arpeggio. So weit, so schön.

Handelt es sich nur um wenige Takte, in denen sich die Stimme teilt, ist das Notieren als Akkorde praktikabel und dann klappt das mit der Arpeggioklammer auch. Aber sind es längere Passagen, die sich die Stimmgruppe teilt, füge ich meist eine zweite/dritte Stimme ein. In diesen Fällen bekomme ich es nicht hin (trotz "\set connectArpeggios = ##t"), daß die Klammern miteinander verbunden werden.

Hat da jemand einen Tipp?

PS: Wenn sich schon ein Wissender mit der Frage beschäftigt, hätte ich noch einen untergeordneten Wunsch: Könnte die Klammer auch hinter den Noten (gespiegelt) erscheinen? (Ist aber nicht so wichtig!)

Vielen Dank im Voraus

Matthias

fugenkomponist

  • Member
Re: Arpeggio(Bracket) als Kennzeichnung einer Stimmgruppe
« Antwort #1 am: Samstag, 11. Februar 2017, 16:54 »
Hallo Matthias,

mir ist nicht ganz klar, was du vorhast: Willst du bei länger geteilten Passagen wirklich vor/hinter jedem Akkord eine Klammer stehen haben? Ich stelle mir das sehr unübersichtlich vor und würde vorschlagen, stattdessen Tenor und Baß für diese Stellen jeweils ein eigenes System zu geben. Ansonsten wärs hilfreich, wenn du in deinem Codebeispiel auch noch zeigen könntest, auf welche Weise du die mehreren Stimmen anlegst.

Hier eine Lösung für deine P.-S.-Frage. Zur Erklärung: Was in so nem \layout-\context-Block steht, bezieht sich auf alle Kontexte des angegeben Typs, also hier auf alles Staffs; das spart dir redundante Tipparbeit in allen Stimmen. Der erste \override setzt die Arpeggi nach rechts, der zweite dreht die noch, weil der bracket-stencil anscheinend nicht auf die direction schaut.
\version "2.19.40"

\layout {
  \context {
    \Staff
    \override Arpeggio.direction = #RIGHT
    \arpeggioBracket
    \override Arpeggio.rotation = #'(180 0 0)
  }
}

\score {
  \new ChoirStaff <<
    \new Staff
    <<
      \set connectArpeggios = ##t
      \new Voice = "soprano" { \voiceOne \relative c'' { c d e d | c1\arpeggio } }
      \new Voice = "alto" { \voiceTwo \relative c' { c4 b c e | f1\arpeggio } }
    >>
    \new Staff \with {
      instrumentName = \markup \center-column { "T" "B" }
    } <<
      \clef bass
      \new Voice = "tenor" { \voiceOne \relative c' { c4 b a g | g1 } }
      \new Voice = "bass" { \voiceTwo \relative c { c4 d d c | <e c g>1\arpeggio } }
    >>
  >>
}

marno

  • Member
Re: Arpeggio(Bracket) als Kennzeichnung einer Stimmgruppe
« Antwort #2 am: Samstag, 11. Februar 2017, 18:29 »
Hallo Fugenkomponist,

vielen Dank für die schnelle Reaktion. Die Antwort auf die eigentlich nebensächliche Frage hat mir auf jeden Fall schon mal die Augen für viele andere Anwendungsfälle geöffnet.

Die Klammer, um die es mir geht, ist natürlich nur an Stellen notwendig, wo durch die Richtung der Hälse nicht erkennbar ist, welche Stimme, welche Note zu singen hat.

Eigentlich kommt mein Anliegen aus einer ganz anderen Richtung. So wie in dem ergänzten Minimalbeispiel realisiert, schreibe ich für jede einzelne (hier) Baßstimme komlett alle Noten in das Lily-Projekt und verstecke aber in den zusätzlichen Teilstimmen alle Noten, die alle Bässe gemeinsam singen. Wenn es nur wenige Stellen sind, an denen sich der Baß teilt, wäre es ja unpraktisch, wenn auf dem Notenblatt jeder einzelne ein eigenes System bekommt.

Löse ich die Darstellungsfrage, wie im ersten Beispiel mit Hilfe eines Akkords hat das den Nachteil, daß in den zum Üben erstellten MIDI-Dateien an den Stellen, wo sich die Stimmen teilen, keine Einzelstimmen sondern nur die Akkorde zu hören sind. Zum Üben für die Einzelbaßsänger ist das unschön.

Leider habe ich durch die getrennten Stimmen zwar für jeden Bass eine eigene MIDI-Datei, aber eben dann das Problem auf dem Notenblatt, weil die Arpeggioklammern nicht zu einer einzigen vereinigt werden.

Bei meinem ersten post habe ich mich doch ein bißchen verworren ausgedrückt und hoffe, mich jetzt verständlich gemacht zu haben.

Vielen Dank für Deine bisherige Mühe

Gruß Matthias

fugenkomponist

  • Member
Re: Arpeggio(Bracket) als Kennzeichnung einer Stimmgruppe
« Antwort #3 am: Samstag, 11. Februar 2017, 19:55 »
Eigentlich kommt mein Anliegen aus einer ganz anderen Richtung. So wie in dem ergänzten Minimalbeispiel realisiert, schreibe ich für jede einzelne (hier) Baßstimme komlett alle Noten in das Lily-Projekt und verstecke aber in den zusätzlichen Teilstimmen alle Noten, die alle Bässe gemeinsam singen. Wenn es nur wenige Stellen sind, an denen sich der Baß teilt, wäre es ja unpraktisch, wenn auf dem Notenblatt jeder einzelne ein eigenes System bekommt.
Ich meinte nicht, daß jeder Baß ein eigenes System bekommen soll, sondern alle Bässe zusammen eins und alle Tenöre zusammen eins. Somit braucht man keine Klammern und es ist trotzdem klar, zu welcher Stimmgruppe welche Note gehört. Wenn es allerdings nur sehr wenige Stellen mit Klammern sind, ist das vielleicht wiederum zu viel Aufwand.
Zitat
Löse ich die Darstellungsfrage, wie im ersten Beispiel mit Hilfe eines Akkords hat das den Nachteil, daß in den zum Üben erstellten MIDI-Dateien an den Stellen, wo sich die Stimmen teilen, keine Einzelstimmen sondern nur die Akkorde zu hören sind. Zum Üben für die Einzelbaßsänger ist das unschön.
Es wäre hier vermutlich eine weniger aufwendige Lösung, mit \tag zu arbeiten (außerdem halte ich es für fragwürdig, Noten einfach unsichtbar zu machen; sie sind trotzdem noch da und können zu Kollisionen führen). Je nachdem, wie viele Stellen es sind, kann man sich außerdem Tipparbeit mit einer Musikfunktion sparen, die das Taggen übernimmt. Hier einmal Baß von Hand getaggt und Tenor per Funktion.
\version "2.19.53"

bass = \relative {
  \clef bass
  c4 d d c \tag #'partitur <e c g>1\arpeggio \tag #'bass1 e \tag #'bass2 c \tag #'bass3 g
}

\keepWithTag #'partitur \bass
\keepWithTag #'bass1 \bass
\keepWithTag #'bass2 \bass
\keepWithTag #'bass3 \bass

divisiTenor =
#(define-music-function
  (p i ii iii)
  (ly:music? ly:music? ly:music? ly:music?)
   #{
     \tag #'partitur #p
     \tag #'tenor1 #i
     \tag #'tenor2 #ii
     \tag #'tenor3 #iii
   #})

tenor = \relative {
  \clef "treble_8"
  c4 d d c \divisiTenor <e c g>1\arpeggio e c g
}

\keepWithTag #'partitur \tenor
\keepWithTag #'tenor1 \tenor
\keepWithTag #'tenor2 \tenor
\keepWithTag #'tenor3 \tenor
Oder noch weniger Tippen, indem man den Akkord aus den Tonhöhen automatisch zusammenbaut:
divisiTenor =
#(define-music-function
  (dur i ii iii)
  (ly:duration? ly:pitch? ly:pitch? ly:pitch?)
   #{
     \tag #'partitur <$i $ii $iii >$dur \arpeggio
     \tag #'tenor1 #i
     \tag #'tenor2 #ii
     \tag #'tenor3 #iii
   #})

tenor = \relative {
  \clef "treble_8"
  c4 d d c \divisiTenor 1 e c g
}

\keepWithTag #'partitur \tenor
\keepWithTag #'tenor1 \tenor
\keepWithTag #'tenor2 \tenor
\keepWithTag #'tenor3 \tenor
Zitat
Leider habe ich durch die getrennten Stimmen zwar für jeden Bass eine eigene MIDI-Datei, aber eben dann das Problem auf dem Notenblatt, weil die Arpeggioklammern nicht zu einer einzigen vereinigt werden.
Hier dürfte in dem \layout-\context-\Staff-Block noch folgendes helfen:
    \consists Span_arpeggio_engraver
    connectArpeggios = ##t
« Letzte Änderung: Samstag, 11. Februar 2017, 19:58 von fugenkomponist »

marno

  • Member
Re: Arpeggio(Bracket) als Kennzeichnung einer Stimmgruppe
« Antwort #4 am: Samstag, 11. Februar 2017, 20:33 »
Hallo Fugenkomponist,

ich bin begeistert. Einerseits ist meine eigentliche Frage zufriedenstellend beantwortet. Andererseits bietet mir der Hinweis auf die Möglichkeit mit tags zu arbeiten ein Betätigungsfeld, das ich bis jetzt völlig unbeachet gelassen hatte.

Vielen Dank

Matthias