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

bkleine

  • Member
Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« am: Mittwoch, 19. Oktober 2016, 15:19 »
Der Anhang zeigt die "normale" Version des Bindebogens. Nun möchte ich aber, dass der Bogen direkt auf der Höhe des vorigen Bogens weitergeht, als an dem Achtelbalken startet und nicht  am "g" selbst.

Danke für alle Hilfe.
Bernhard

Manuela

  • Member
« Letzte Änderung: Mittwoch, 19. Oktober 2016, 16:59 von Manuela »

bkleine

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #2 am: Mittwoch, 19. Oktober 2016, 18:53 »
Danke!

die Zeile Modifying a slur by offsetting the positions property deutet wohl auf die notwendige Änderung, aber:

Der Server unter lsr.dsi.unimi.it konnte nicht gefunden werden.

da muss ich wohl etwas warten.

Herzlichen Dank!
Bernhard

harm6

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #3 am: Mittwoch, 19. Oktober 2016, 19:28 »
Zitat
Der Server unter lsr.dsi.unimi.it konnte nicht gefunden werden.

??

Das LSR hatte tatsächlich früher eine andere Adresse
lsr.dsi.unimi.it
aber Manuela hat den korrekten link gepostet:
http://lsr.di.unimi.it/LSR/Item?id=748
Inssoweit hab ich keine Ahnung was bei Dir schief läuft.
Vielleicht irgendeine Autovervollständigung die noch den alten link glaubt verwenden zu müssen?


Gruß,
  Harm

bkleine

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #4 am: Donnerstag, 20. Oktober 2016, 03:18 »
Nachdem das Problem mit dem falschen Link geklärt ist, Fehler auf der Seite, bleibt noch das Problem, dass ich nicht weiß, wie man das
\offsetPositions #'(2 . 0) anwenden muss.
Mein Satz :

\version "2.19.33"
\language "deutsch"
global = {
  \key c \major
  \time 2/4
}
leftOne = \relative c' {
  \global
  % Die Noten folgen hier.
  \slurUp \stemUp g,8( [cis16  d] g4)| c,,8( [g' h g~]) ( | g [a16 h] c8)
}
pianoPart = \new PianoStaff \with {
  instrumentName = "Kl."
} <<
  \new Staff = "left" { \clef bass << \leftOne >> }
>>
\score {
  <<   
    \pianoPart
  >>
  \layout { }
}


Wohin und wie muss man das setzen, dass es den Bindebogen verändert?
Bernhard

harm6

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #5 am: Donnerstag, 20. Oktober 2016, 11:35 »
Normalerweise muß jeder tweak oder override vor das Grob, welches angegangen werden soll. Das trifft auch hier zu, offsetPositions ist ein override in einer music-function und das Grob (der Slur) ist assoziiert mit der Note, an der der Slur beginnt.

Ich benutze häufig Farben um zu testen welche Objekte unter welchen Voraussetzungen angesprochen werden. Farben sind normalerweise* neutral und gut zu sehen. ;)

Z.B.:

clr = \once \override Slur.color = #red
leftOne = \relative c' {
  \slurUp \stemUp g,8( [cis16  d] g4)| c,,8( [g' h \clr g~])( | g [a16 h] c8)
}

Also:
\slurUp \stemUp g,8( [cis16  d] g4)| c,,8( [g' h \offsetPositions #'(3.5 . 1.5) g~])( | g [a16 h] c8)

Es kann sein, daß Veränderungen des positions-property nicht hinreichen, um das gewünschte Ergenis zu bekommen.
Sollte das passieren verwende \shape

HTH,
  Harm

* Es gibt meines Wissens nach nur ein Grob das bei veränderter Farbe anderen output erzeugt, BarLines, aber dort so subtil, daß es wahrscheinlich niemandem auffällt (bzw auffallen sollte).

bkleine

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #6 am: Donnerstag, 20. Oktober 2016, 14:53 »
Ich  habe folgenden Fehler: in Version 2.19.33 und 2.19.49. Irgend eine Ahnung, was die Ursache ist. ( Der Fehler ist auch im Snippet, das ich hier veröffentlicht habe):

F:/Meine Noten/EigeneNoten/Gerok Die Kinder sitzen im Zimmer/VorWeihnachten.ly:114:44: Fehler: Ungültige Fluchtsequenz: »\offsetPositions«
  \stemUp g,8( [cis16  d] g4)| c,,8( [g' h
                                           \offsetPositions #'(3.5 . 1.5) g~])( | g [a16 h] c8)

F:/Meine Noten/EigeneNoten/Gerok Die Kinder sitzen im Zimmer/VorWeihnachten.ly:114:44: Fehler: Zeichenkette nicht erkannt, weder Textbeschriftung noch \lyricmode
  \stemUp g,8( [cis16  d] g4)| c,,8( [g' h
                                           \offsetPositions #'(3.5 . 1.5) g~])( | g [a16 h] c8)

F:/Meine Noten/EigeneNoten/Gerok Die Kinder sitzen im Zimmer/VorWeihnachten.ly:114:61: Warnung: Nicht-musikalischer Ausdruck wird ignoriert
  \stemUp g,8( [cis16  d] g4)| c,,8( [g' h \offsetPositions
                                                            #'(3.5 . 1.5) g~])( | g [a16 h] c8)
[/tt]
« Letzte Änderung: Donnerstag, 20. Oktober 2016, 15:48 von bkleine »

harm6

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #7 am: Donnerstag, 20. Oktober 2016, 16:10 »
Du mußt den Code des Snippets (genauer: die Definition von offsetPositions), entweder ins file kopieren oder in einem gesonderten file speichern und dann ins eigene file inkludieren. Wie sonst soll LilyPond den Code sonst finden?

Gruß,
  Harm

bkleine

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #8 am: Donnerstag, 20. Oktober 2016, 16:30 »
???, das ist mir gar nicht verständlich, Entschuldigung.
« Letzte Änderung: Donnerstag, 20. Oktober 2016, 17:45 von bkleine »

harm6

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #9 am: Donnerstag, 20. Oktober 2016, 18:54 »
So kommen wir nicht weiter.
Kannst Du mal Dein komplettes .ly-file anhängen?
Falls es sich um das Lied von Karl Gerok (1815 - 1890) handelt, so sollte es ja jetzt gemeinfrei sein.

Gruß,
  Harm

bkleine

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #10 am: Donnerstag, 20. Oktober 2016, 20:54 »
Ich bin noch nicht ganz bis zur Wiederholung, dann bringe ich es hier.

Herzlichen Dank für Deine Mühe.

Bernhard

Manuela

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #11 am: Donnerstag, 20. Oktober 2016, 22:19 »
Ich hab die Situation nachgebaut und ein paar Möglichkeiten zum Ändern der Bogenform eingebaut:

\version "2.19.42"

shapeSlur =
#(define-music-function (parser location offsets) (list?)
   #{
     \once \override Slur.control-points = #(alter-curve offsets)
   #})

#(define ((alter-curve offsets) grob)
   (let ((coords (ly:slur::calc-control-points grob)))

     (define (add-offsets coords offsets)
       (if (null? coords)
           '()
           (cons
            (cons (+ (caar coords) (car offsets))
              (+ (cdar coords) (cadr offsets)))
            (add-offsets (cdr coords) (cddr offsets)))))

     (add-offsets coords offsets)))

\relative c'
{
  c4^( c c
  e8
  %\override Slur.positions = #'(0 . 7)
  %\offsetPositions #'(4 . 1)
  %\override Slur.extra-offset = #'(-1 . 1)
  \shapeSlur #'(0 3 0 3.5 0 2 0 1)
  e~ )^(
  e f16 g a4 )

}

Du kannst jetzt wahlweise die einzelnen Kommandos entkommentieren, die Werte ändern und schaun, was passiert.
Bei ShapeSlur brauchst du immer 8 Zahlen, diejenigen an den ungeraden Positionen bedeuten die Abweichungen in x-Richtung, die sollten in deinem Fall vermutlich 0 sein.
« Letzte Änderung: Donnerstag, 20. Oktober 2016, 23:26 von Manuela »

harm6

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #12 am: Donnerstag, 20. Oktober 2016, 23:04 »
Zitat von: Manuela
shapeSlur =
#(define-music-function (parser location offsets) (list?)
...

\shape ist doch im source-code. Warum eine eigene Definition? Macht die was besonderes?

Gruß,
  Harm

Manuela

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #13 am: Donnerstag, 20. Oktober 2016, 23:25 »

\shape ist doch im source-code. Warum eine eigene Definition? Macht die was besonderes?


Ich habe das aus dem LSR übernommen. Wenn der Code ohnehin schon automatisch vorhanden ist, braucht man ihn natürlich nicht mehr extra einfügen.

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.
« Letzte Änderung: Donnerstag, 20. Oktober 2016, 23:28 von Manuela »

bkleine

  • Member
Re: Bindebogen nicht am Notenkopf sondern am Notenhals beginnen
« Antwort #14 am: Donnerstag, 20. Oktober 2016, 23:32 »
Ich hab das jetzt mal zur Hälfte fertig.
Da kommen Fragen auf:
1. Warum kann die Voltaklammer nicht beendet werden?
2. 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.
3. In Takt 15 und 19 sind nochmal solche Stellen mit deänderten Melismata.