Autor Thema: Drei Stimmen in einer Notenzeile  (Gelesen 10392 mal)

admin

  • Administrator
  • *****
  • Beiträge: 0
Drei Stimmen in einer Notenzeile
« am: Sonntag, 10. Juni 2012, 20:18 »
Ich versuche gerade, drei Stimmen in einer Notenzeile zu vereinen. Dabei bekomme ich zwar fast das was ich möchte, aber halt nur fast. Letztendlich möchte ich das gleiche resultat haben, wie wenn ich das so schreibe
<ais fis cis>4Ich möchte jedoch die einzelnen Stimmen aufteilen, um einzelne Stimmen schnell fürs Midi ausblenden zu können. Daher habe ich nun folgenden Aufbau gewählt:
\score {
    \new Staff <<
      \new Voice = "1" {
        \voiceOne{
          \sopranVoice
        }
      }
      \new Voice = "2" {
        \voiceTwo{
          \altVoice
        }
      }
      \new Voice = "3" {
        \voiceThree{
          \tenorVoice
        }
      }
    >>
}
Die Ausgabe ist leider noch etwas unerwünscht: Die dritte Stimme ist etwas verschoben gegenüber den anderen beiden, also halt nicht genauso, wie wenn ich die erste Methode wähle. Kann man das noch korrigiere, sodass die drei Stimmen genau unterneinander stehen?

ding-dong

  • Member
Re: Drei Stimmen in einer Notenzeile
« Antwort #1 am: Sonntag, 10. Juni 2012, 21:21 »
hallo

versuchs mal mit
\voiceFour
[\once] \override NoteColumn #'force-hshift = #.001

\voiceFour sorgt dafür dass der hals nach unten schaut.

admin

  • Administrator
  • *****
  • Beiträge: 0
Re: Drei Stimmen in einer Notenzeile
« Antwort #2 am: Montag, 11. Juni 2012, 07:05 »
Das hat schon mal geholfen. Zwei weitere Fragen dazu.

1) Was macht die Anweisung
\override NoteColumn #'force-hshift = #.001
2) Soland die Notenhälse gerade sind und keine "Fähnchen" haben, geht das gut, aber ab der Achtelnote sieht das nicht mehr ganz so schön aus (siehe Bild, sind eigentlich Achtelnoten). Kann man da noch was machen?

ding-dong

  • Member
Re: Drei Stimmen in einer Notenzeile
« Antwort #3 am: Montag, 11. Juni 2012, 09:09 »
klar:
\override Flag #'style = #'no-flag
force-hshift = … bestimmt um wieviel nach rechts oder links verschoben werden soll, wenn kollisionen drohen; die richtung hängt von \voice… ab.

trulli

  • Member
Re: Drei Stimmen in einer Notenzeile
« Antwort #4 am: Montag, 11. Juni 2012, 09:31 »
Zitat
Die dritte Stimme ist etwas verschoben gegenüber den anderen beiden

Hallo lomtas,

neben der Methode von ding-dong kannst du auch \shiftOff an den Anfang der dritten Stimme schreiben.

Gruß

ding-dong

  • Member
Re: Drei Stimmen in einer Notenzeile
« Antwort #5 am: Montag, 11. Juni 2012, 09:56 »
hallo Trulli

geht auch , aber … - du kriegst vermehrt warnungen wegen kollisionen (die dann z.t. gar keine sind)

ding-dong


admin

  • Administrator
  • *****
  • Beiträge: 0
Re: Drei Stimmen in einer Notenzeile
« Antwort #6 am: Montag, 11. Juni 2012, 19:29 »
\override Flag #'style = #'no-flag

Wo setze ich das hin?

Arnold

  • Member
Re: Drei Stimmen in einer Notenzeile
« Antwort #7 am: Dienstag, 12. Juni 2012, 08:53 »
Variante 1:
ParallelMusic innerhalb eines Voice-Contexts
Alle Noten müssen im parallelen Rhythmus verlaufen
Vorsicht mit Bindebögen, Dynamik u.s.w. - es prasselt Warnungen
I   = { c''4 c'' b' c'' }
II  = { g'4  a'  g' g'  }
III = { e'4  f'  f' e'  }
Dyn = { s4\p\< s s\ff s\fp }

{
  \new Voice {
    <<
      { \I   }
      { \II  }
      { \III }
      { \Dyn }
    >>
  }
}

Variante 2:
MusicMap-Scheme-Prozedur zum Extrahieren einer Stimme
Die Nummer entspricht der Auflistungsreihenfolge im Akkord, somit Stimmkreuzungen möglich
#(define (extract-nth-noteevent-from-chord count mus)
  (let ((eventtype (ly:music-property mus 'name)))
   (if (eq? eventtype 'EventChord)
    (let
     ((es (ly:music-property mus 'elements))
      (new-es '())
      (counter 0))
     (for-each (lambda (e)
       (let ((e-type (ly:music-property e 'name)))
        (if (eq? e-type 'NoteEvent)
         (begin
          (set! counter (+ 1 counter))
          (if (equal? counter count)
           (set! new-es (append new-es (cons e '())))))
         (set! new-es (append new-es (cons e '()))))))
      es)
     (if (>= counter count)
      (ly:music-set-property! mus 'elements new-es)
      (ly:warning "Zu wenig Töne im Akkord!"))))
   mus))

extractNthVoiceFromChords =
#(define-music-function (parser location n m) (integer? ly:music?)
  (music-map (lambda (x) (extract-nth-noteevent-from-chord n x)) (ly:music-deep-copy m)))

Trio = { <c'' g' e'>4\p\<   <c'' a' f'>   <b' g' f'>\ff   <c'' g' e'>\fp }

\score {
  <<
    \new Staff { \Trio }
    \new StaffGroup <<
      \new Staff { \extractNthVoiceFromChords #1 \Trio }
      \new Staff { \extractNthVoiceFromChords #2 \Trio }
      \new Staff { \extractNthVoiceFromChords #3 \Trio }
    >>
  >>
}

Ich habe bei drei Stimmen in einer Notenzeile meistens mit »drei gleichen Singstimmen« zu kämpfen, und die laufen in der Regel nie vollständig parallel. Da es meistens ein Abschreiben (und transponieren) ist, hatte ich noch nie die Notwendigkeit, mich um das Zusammenfassen oder Verzeinzeln zu kümmern.

Arnold

admin

  • Administrator
  • *****
  • Beiträge: 0
Re: Drei Stimmen in einer Notenzeile
« Antwort #8 am: Dienstag, 12. Juni 2012, 21:44 »
Das hatte ich mir irgendwie anders vorgestellt...

ding-dong

  • Member
Re: Drei Stimmen in einer Notenzeile
« Antwort #9 am: Dienstag, 12. Juni 2012, 22:45 »
wie denn?

es hilft immer wenn ein eigenes beispiel - auch wenn (noch) nicht vollkommen - beigefügt wird, dann kann man über das wesentliche sprechen!

martinst

  • Member
Re: Drei Stimmen in einer Notenzeile
« Antwort #10 am: Dienstag, 12. Juni 2012, 23:44 »
Wenn das Notenbild ansprechend sein soll, gibt's die Möglichkeit, die beiden oberen Stimmen als voiceOne per \partcombine zu verbinden und die dritte Stimme als voiceTwo.
Das funktioniert sogar bei unterschiedlichen Rhythmen in den Stimmen einigermaßen gut ohne manuelle Eingriffe.

Arnold

  • Member
Re: Drei Stimmen in einer Notenzeile
« Antwort #11 am: Mittwoch, 13. Juni 2012, 16:58 »
Hallo,

\voiceOne, \voiceTwo und \voiceThree sind eigentlich Notenformatierungsstile.
Wenn nicht gerade (viele) Achtel und kürzer vorkommen, sieht es am besten aus, wenn die untere Stimme mit \voiceTwo und die mittlere Stimme mit \voiceThree formatiert werden. Andernfalls hat man solch unschöne Darstellungen, als wäre bei Zweistimmigkeit die hohe Stimme mit Hals nach unten und die tiefe mit Hals noch oben geschreiben.
Da wir leider nur zwei Halsrichtungen zur Verfügung haben (nach oben oder nach unten) ist eine dritte (eigenständige) Stimme immer ein bischen sperrig.
Vielleicht muß ein genialer Kopf erst noch ein [i]threeVoicesPartCombine[/i] kreieren.

Arnold

trulli

  • Member
Re: Drei Stimmen in einer Notenzeile
« Antwort #12 am: Mittwoch, 13. Juni 2012, 18:23 »
geht auch , aber … - du kriegst vermehrt warnungen wegen kollisionen (die dann z.t. gar keine sind)

Schon recht ding-dong, aber mit \override Staff.NoteColumn #'ignore-collision = ##t nicht.  :)

Also in die 3. Stimme:
\override Staff.NoteColumn #'ignore-collision = ##t
\shiftOff


Falls jetzt jemand meckert und das als dreckige Lösung bezeichnet, dann hat er völlig recht.

ding-dong

  • Member
Re: Drei Stimmen in einer Notenzeile
« Antwort #13 am: Mittwoch, 13. Juni 2012, 20:45 »
immerhin:

Zitat
Using \override NoteColumn #'ignore-collision = ##t will cause differently headed notes in different voices to merge incorrectly.

aber da es eh nur aufgelöste akkordnoten sind, macht's ja nichts!

stefanhuglfing

  • Member
Re: Drei Stimmen in einer Notenzeile
« Antwort #14 am: Sonntag, 6. Oktober 2013, 07:28 »
ich möchte noch mal auf den Vorschlag von martinst zurückkommen. Mit \partcombine kann ich die zwei oberen Stimmen zusammenfassen. Aber ich dachte, wenn ich \voiceOne davor schreibe, zeigen die Notenhälse nach oben. Hier dagegen:

\version "2.14.2-2"
         
SopranNoten = 
 \relative c'
  { c2  g'2 a2 c2 } 
 
MezzoNoten = 
 \relative c'
  { g2  e'2 f2 a2 }   
       
AltNoten = 
 \relative c 
  { e2  c'2  c2 f2 }

       
\score
 {
  <<   
   
   \new Staff 
    <<
     
     \new Voice = "first"
      {
       \voiceOne
       \partcombine  \SopranNoten  \MezzoNoten
      }
     
     \new Voice = "second"
      {
       \voiceTwo 
       \AltNoten
      }
     
    >>
 
  >>

  \layout { \context { \Staff } }
 
 }

zeigen die Notenhälse am Ende nach unten (weil sie sonst zu weit rauf gehen(?))

auch wenn ich den Abstand nach oben vergrößere:

\version "2.14.2-2"

\paper {
  system-system-spacing #'basic-distance = #32
  score-system-spacing =
    #'((basic-distance . 12)
       (minimum-distance . 6)
       (padding . 1)
       (stretchability . 12))
}

SopranNoten =
 \relative c'
 { c2  g'2 \break a2 c2 }

MezzoNoten =
 \relative c'
 { g2  e'2 f2 a2 }

AltNoten =
 \relative c
 { e2  c'2  c2 f2 }

\score
 {
  <<   
   
   \new Staff 
    <<
     
     \new Voice = "first"
      {
       \voiceOne
       \partcombine  \SopranNoten  \MezzoNoten
      }
     
     \new Voice = "second"
      {
       \voiceTwo 
       \AltNoten
      }
     
    >>
 
  >>

  \layout { \context { \Staff } }
 
 }

bleibt es so. Weiß jemand Abhilfe?