Autor Thema: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen  (Gelesen 5561 mal)

Manuela

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #15 am: Freitag, 21. Oktober 2016, 11:46 »
Ich habe mal versucht, mich durch den Code zu kämpfen. Jetzt weiß ich, warum immer so viel Wert auf Minimalbeispiele gelegt wird  ;)

Grundsätzlich: geschwungene Klammern sollten von Leerzeichen umgeben sein, ansonsten können unerklärliche Fehlermeldungen auftauchen. Das stimmt tatsächlich, sowas hatte ich selber schon.

Bei komplizierteren Konstrukten wird im Lernmanual empfohlen, die Dinge wie Staff etc. explizit anzugeben, sonst kommt man leicht durcheinander.

Ich habe mal versucht, das ganze in eine Form zu bringen:

\score
{
  \new StaffGroup
  <<
    \new Staff
    \new Voice="melody" \sopranoVoice
    \new Lyrics \lyricsto "melody" \verseOne
    \new PianoStaff="piano"
    <<
      \new Staff="up"
      <<
        \new Voice \rightOne
        \new Voice \rightTwo
      >>
      \new Staff="down"
      <<
        \new Voice \leftOne
        \new Voice \leftTwo
      >>
    >>
  >>
}

Ich bin noch lange nicht so gut wie Harm, daher könnten da auch noch Fehler drin sein, etwa zu viele Klammern.
Außerdem habe ich bei den Stimmen eingefügt:

rightOne = \relative c'' {
  \global
  \voiceOne ...

und \voiceTwo bei den 2. Stimmen, sonst meckert Lily  ;)

Noch ein Tipp: das Konstrukt

  \repeat volta 2 { ... }
 \alternative {
    { ... }
    { ... }
  }

brauchst du in einer StaffGroup nur einmal anzugeben, alle anderen Noten werden einfach fortlaufend notiert, so wie sie erscheinen. In jeder Stimme \repeat ... anzugeben, vergrößert die Fehlerwahrscheinlichkeit.

PS: die Sache mit dem Notenschlüssel habe ich jetzt nicht angesehen, dazu fehlt mir jetzt leider die Zeit.
« Letzte Änderung: Freitag, 21. Oktober 2016, 11:53 von Manuela »

harm6

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #16 am: Freitag, 21. Oktober 2016, 11:51 »
Hallo Bernhard,

vielen Dank für Deinen Code.

Zu Deinen Fragen

1.
Zitat
Warum kann die Voltaklammer nicht beendet werden?

Die Länge der Musik in den Klammern der einzelnen Stimmen ist nicht identisch.

Beispiel:
one = \repeat volta 2 { R1 } \alternative { { R1 } { R1 } }
two = \repeat volta 2 { s1 } \alternative { { s1 } { s2 } }
<< \one \\ \two >>
führt im Terminal zu:
warning: cannot end volta spanner

In diesem Beispiel ist das offensichtlich. Dein Code ist natürlich komplexer, da ist es nicht so leicht zu sehen ...

2.
Zitat
In der zweiten Klammer sitze die linke Hand auf einmal im G-Schlüssel und nicht im Bassschlüssel. Ich dachte die Schlüsselveränderung soll sich auf die Wiederholung auswirken, nicht aber auf die zweite Klammer.
So würde jeder Musiker denken. Aber LilyPond ist ein Computerprogram und liest strikt von links nach rechts.
So sehr ich LilyPond auch liebe: Computer sind blöd...
Tatsächlich mußt Du am Ende der ersten Klammer den Violinschlüssel setzen und am Anfang der zweiten Klammer den Bassschlüssel.
Aber erinnere Dich, Computer sind blöd, in diesem Fall so blöd, daß er dann meint der user hätte einen Fehler gemacht und zwei verschiedene Schlüssel zur selben Zeit gesetzt und um dem armen, kleinen user nicht weiter seine vermeintlichen Fehler vor Augen zu führen wird einfach ein Schlüssel unter den Teppich gekehrt und noch nicht mal eine Meldung dazu abgesetzt ...

Um hier weiter zu kommen muß der zweite Schlüssel zu einer anderen Zeit gesetzt werden.
Dazu kann man \grace s1 verwenden, jetzt kommen aber zwei neue Probleme ins Spiel einerseite issue 34 (ich brauch die Nummer gar nicht mehr nachzuschlagen) andererseits wird der Schlüssel tatsächlich gedruckt und zwar an einer Stelle wo man ihn sowieso nicht haben will.
Zumindest für das zweite Problem gibts die Möglichkeit den Druck zu unterbinden:

\repeat volta 2 { c''1 \clef bass cis }
\alternative {
{ d \clef treble }
{ \grace s1 \once \omit Staff.Clef \clef bass dis }
}

Damit ist issue 34 aber noch nicht gelöst (in diesem minimal kommt es allerdings nicht vor).
Wie man damit umgehen kann steht in der NR, such nach grace synchronization, iirc
Aber in Deiner Partitur kann man tatsächlich einfacher vorgehen:
in leftOne
  \alternative {
    {s4. \clef treble \stemDown <c'' as>8}
    { \once \omit Staff.Clef \clef bass s4 \clef treble <c b'>8 s}
funktioniert, imho.

3.
Zitat
In Takt 15 und 19 sind nochmal solche Stellen mit deänderten Melismata.
Dann verwende eine der Antworten aus diesem thread
https://liarchiv.joonet.de/index.php?topic=2398.0

4.
Zum eigentlichen Thema des threads
Um offsetPositions verwenden zu können muß diese Definition ins file. D.h.Dein file sollte so beginnen:

\version "2.19.49"

\language "deutsch"

offsetPositions =
  #(define-music-function (parser location offsets) (pair?)
    #{
       \once \override Slur.positions = #(lambda (grob)
`(,(+ (car offsets) (cdar (ly:slur::calc-control-points grob))) .
   ,(+ (cdr offsets) (cdr (cadddr (ly:slur::calc-control-points grob))))))
    #})
   

\paper {
  #(set-paper-size "a4")
}

\header {
...
Mir ist nicht klar warum Manuela glaubt diese Definition streichen.

Gruß,
  Harm

Manuela

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #17 am: Freitag, 21. Oktober 2016, 11:56 »

Mir ist nicht klar warum Manuela glaubt diese Definition streichen.


Weil ich bei meinem Test die Zeile \offsetPositions... auskommentiert hatte und daher der Code auch ohne die Definition kompiliert hat.

harm6

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #18 am: Freitag, 21. Oktober 2016, 11:57 »
Zitat von: Manuela
Update: ich habe probehalber die Definition von \shapeSlur aus dem Code entfernt, das kompiliert nicht mehr.
#(define offsetPositions... kann man weglassen, das habe ich jetzt entfernt.

shapeSlur gibts nicht mehr, aber \shape, ist jetzt wesentlich flexibler.
Lies es in der NR nach.
Man könnte sagen \shapeSlur ist ein Spezialfall von \shape

Warum Du glaubst offsetPositions weglassen zu können versteh' ich nicht. offsetPositions ist nicht im source-code

Gruß,
  Harm

bkleine

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #19 am: Freitag, 21. Oktober 2016, 14:07 »
Danke, dass Ihr Euch so bemüht. Das mit dem Volta hatte ich auch mittlerweile fast gelöst. Jedenfalls gibt es im Moment keine Fehler. Ich habe auch bald das ganze Stück gesetzt. Dann mache ich mich wieder an die Probleme mit dem Bogen und den leicht verschiedenen Versionen in der Wiederholung.

Ganz herzlichen Dank nochmal

LG Bernhard

Manuela

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #20 am: Freitag, 21. Oktober 2016, 14:45 »

Warum Du glaubst offsetPositions weglassen zu können versteh' ich nicht. offsetPositions ist nicht im source-code

Dummheit  :-[

Wie gesagt, ich hatte das betreffende Kommando auskommentiert und daraus geschlossen, dass die Definition nicht gebraucht wird.

\shape jedenfalls werde ich notieren  :)

Manuela

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #21 am: Freitag, 21. Oktober 2016, 14:48 »
Ich habe auch bald das ganze Stück gesetzt. Dann mache ich mich wieder an die Probleme mit dem Bogen und den leicht verschiedenen Versionen in der Wiederholung.

Stellst du es hier ein, wenn du es fertig hast?  :D
Der Komponist ist ja schon mehr als 70 Jahre tot, daher urheberrechtlich unbedenklich...
Außerdem können nur angemeldete User einen Anhang sehen bzw. runterladen.

bkleine

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #22 am: Freitag, 21. Oktober 2016, 14:50 »
Habe ich vor.

bkleine

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #23 am: Freitag, 21. Oktober 2016, 14:57 »

Ich habe mal versucht, das ganze in eine Form zu bringen:

\score
{
  \new StaffGroup
  <<
    \new Staff
    \new Voice="melody" \sopranoVoice
    \new Lyrics \lyricsto "melody" \verseOne
    \new PianoStaff="piano"
    <<
      \new Staff="up"
      <<
        \new Voice \rightOne
        \new Voice \rightTwo
      >>
      \new Staff="down"
      <<
        \new Voice \leftOne
        \new Voice \leftTwo
      >>
    >>
  >>
}

Das was ich habe ist alles automatisch mit Frescobaldi erzeugt. Da habe ich nichts geändert.  ???  :-\

Manuela

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #24 am: Freitag, 21. Oktober 2016, 15:18 »

Das was ich habe ist alles automatisch mit Frescobaldi erzeugt. Da habe ich nichts geändert.  ???  :-\

Dann wird es schon passen.  :)

Ich verwende auch Frescobaldi, allerdings lasse ich keine Vorlagen automatisch erzeugen.