Autor Thema: Kollision von Slur und Tie bei Noten im 2./3. Zwischenraum  (Gelesen 3118 mal)

fugenkomponist

  • Member
Kollision von Slur und Tie bei Noten im 2./3. Zwischenraum
« am: Samstag, 3. August 2013, 13:12 »
Hallo,

ich hab ein Problem: Binde- und Haltebögen kollidieren ab und zu. Ich hab das auf folgende Fälle eingrenzen können:
• Die Bögen müssen dazu lang genug sein (deshalb die zweite Stimme im Beispiel).
• Die erste Note muss im 2. oder 3. Zwischenraum (a' oder c'') stehen.
• Die zweite Note muss weiter außen oder gleich der ersten sein (c→c oder c→d, aber nicht c→h).
Hat jemand eine Idee, woher das kommt und was man dagegen tun kann? Sieht für mich nach einem Bug aus.
\version "2.16.0"

\score {
  <<
    \new Staff {
      \relative c'' {
        c4~( c8. c16)
        c4~( c8. d16)
        c4~( c8. b16)
        f4~( f8. f16)
        g4~( g8. g16)
        a4~( a8. a16)
        a4~( a8. g16)
        b4~( b8. b16)
      }
    }
    \new Staff {
      \relative c'' {
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
      }
    }
  >>
}

Edit: sieht in 2.17.23 genauso aus wie in 2.16.0.
« Letzte Änderung: Sonntag, 4. August 2013, 11:35 von fugenkomponist »

bblochl

  • Member
Re: Kollision von Slur und Tie bei Noten im 2./3. Zwischenraum
« Antwort #1 am: Sonntag, 4. August 2013, 23:07 »
Sorry, ich habe keine "lilypond-solution".

Aber für eine "quick&dirty"-Lösung wenn es schnell gehensoll ein Tipp: Einige  lilypond users schwören auf die SVG-Ausgabe.
Auszug aus http://lilypond.org/doc/v2.16/Documentation/usage/command_002dline-usage.de.html:

 -f,--format=Format

    Bestimmt das Ausgabeformat. Mögliche Werte von Format sind svg, ps, pdf und png.

    Beispiel: lilypond -fpng Dateiname.ly

Die SVG-Datei kann man mit Inkscape http://inkscape.org/ bearbeiten.

Grüße

bblochl

  • Member
Re: Kollision von Slur und Tie bei Noten im 2./3. Zwischenraum
« Antwort #2 am: Sonntag, 4. August 2013, 23:40 »
Ein alternativer möglicher Ansatz, vielleicht der "schönere":

\version "2.16.0"

\score {
  <<
    \new Staff {
      \relative c'' {
        c4_~(c8. c16)
        c4_~( c8. d16 )
        c4_~( c8. b16)
        f4^~( f8. f16)
        g4~( g8. g16)
        a4~( a8. a16)
        a4~( a8. g16)
        b4~( b8. b16)
      }
    }
    \new Staff {
      \relative c'' {
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
      }
    }
  >>
}

Aus der Frage "bug oder not bug" möchte ich mich heraushalten.

Grüße

fugenkomponist

  • Member
Re: Kollision von Slur und Tie bei Noten im 2./3. Zwischenraum
« Antwort #3 am: Montag, 5. August 2013, 00:16 »
Vielen Dank für deine Antworten, das ist aber beides noch nicht so wirklich das, was ich will. Die erste Lösung geht nicht, weil ich das ja immer wieder machen müsste, wenn ich doch noch was an den Noten ändern will und ein neues SVG/PDF rauskriege. Und die Haltebögen in die andere Richtung sehen komisch aus (meiner Meinung nach komischer als diese kollidierenden Bögen) und kollidieren außerdem evtl. mit Noten, die da stehen.

eluze

  • Member
Re: Kollision von Slur und Tie bei Noten im 2./3. Zwischenraum
« Antwort #4 am: Montag, 5. August 2013, 00:25 »
@fugenkomponist
es genügt, ein minimales fehlerbehaftetes beispiel zu senden  >:( - und ev. eines, wie es gut aussieht  :)
sollen wir selber herausfinden, wo es "kollidiert" oder "scheinbar kollidiert?

danke
Eluze

fugenkomponist

  • Member
Re: Kollision von Slur und Tie bei Noten im 2./3. Zwischenraum
« Antwort #5 am: Montag, 5. August 2013, 09:29 »
Sorry, ich hab mir halt gedacht, ich zeige lieber mehrere Fälle, weil man dann evtl. das Problem eingrenzen kann. Kollidieren tuts im Beispiel oben im 1., 2., 6. und 7. halben Takt. Hier aber trotzdem mal ein kleineres Beispiel:
\version "2.16.0"

\score {
  <<
    \new Staff {
      \relative c'' {
        c4~(^"Kollision" c8. c16)
        c4~(^"keine Kollision" c8. b16)
      }
    }
    \new Staff {
      \relative c'' {
        g16 g g g r4
        g16 g g g r4
      }
    }
  >>
}

eluze

  • Member
Re: Kollision von Slur und Tie bei Noten im 2./3. Zwischenraum
« Antwort #6 am: Montag, 5. August 2013, 11:04 »
der bug ist bekannt: https://code.google.com/p/lilypond/issues/detail?id=582&q=tie%20slur&colspec=ID%20Type%20Status%20Stars%20Owner%20Patch%20Needs%20Summary

als workaround bietet sich etwa \shape #'((0 . .5)(0 . .5)(0 . .5)(0 . .0)) Slur an

Eluze

ps: du erreichst eine streckung der noten mit \override Slur.minimum-length=#19 womit du den zweiten staff sparen kannst.

fugenkomponist

  • Member
Re: Kollision von Slur und Tie bei Noten im 2./3. Zwischenraum
« Antwort #7 am: Montag, 5. August 2013, 19:04 »
Hm, ein fünfeinhalb Jahre alter Bug. Ist wahrscheinlich unter vielen anderen untergegangen.

Vielleicht sollte ich mir einfach doch mal Zeit nehmen, mich in den Code einzuarbeiten und was beizusteuern. C++ kann ich einigermaßen und Scheme lässt sich lernen.

Aber bis dahin werde ich wohl mit \shape arbeiten, danke dafür.
« Letzte Änderung: Montag, 5. August 2013, 19:39 von fugenkomponist »

eluze

  • Member
Re: Kollision von Slur und Tie bei Noten im 2./3. Zwischenraum
« Antwort #8 am: Dienstag, 6. August 2013, 01:51 »
Hm, ein fünfeinhalb Jahre alter Bug. Ist wahrscheinlich unter vielen anderen untergegangen.
… und ich glaube nicht dass das problem in seiner fülle erkannt wurde
Zitat
…  und Scheme lässt sich lernen.
das sagst du
Zitat
Aber bis dahin werde ich wohl mit \shape arbeiten, danke dafür.
wenn's nicht allzuviele sind  ???
gruss
Eluze

fugenkomponist

  • Member
Re: Kollision von Slur und Tie bei Noten im 2./3. Zwischenraum
« Antwort #9 am: Dienstag, 6. August 2013, 10:08 »
Hm, ein fünfeinhalb Jahre alter Bug. Ist wahrscheinlich unter vielen anderen untergegangen.
… und ich glaube nicht dass das problem in seiner fülle erkannt wurde
Wundert mich eigentlich, es gibt doch genug Stücke, wo solche Rhythmen vorkommen … (ich selbst habe dieses Problem mit LilyPond auch schon ein paar mal gehabt, mich aber nie drum gekümmert, ganz wohl war mir dabei aber nicht).
Zitat
Zitat
…  und Scheme lässt sich lernen.
das sagst du
Ich studiere Informatik und hab schon Java, C, C++, Haskell (wie Scheme auch eine funktionale Sprache (ok, Scheme kann noch mehr als nur funktional)) und ein bisschen Prolog gelernt ;) Der schwierigere Teil wird wahrscheinlich nicht die Sprache an sich sein, sondern wie Scheme und LilyPond zusammenhängen. Und das Einlesen in den Code.
Zitat
Zitat
Aber bis dahin werde ich wohl mit \shape arbeiten, danke dafür.
wenn's nicht allzuviele sind  ???
Im 1. Satz von Schostakowitsch 5 (ich probier mich gerade an einem Klavierauszug) kommt dieser Rhythmus häufig vor; aber selten sind es dabei genau die Fälle, in denen es kaputt geht (s. oben).
Zitat
gruss
Eluze

bblochl

  • Member
Re: Kollision von Slur und Tie bei Noten im 2./3. Zwischenraum
« Antwort #10 am: Dienstag, 6. August 2013, 12:50 »
OFF TOPIC!

Scheme ist eine Lisp Variante. Es gibt mehrere Scheme-Varianten und Versionen. Lilypond verwendet den Guile -Interpreter Version 1.8 (bis Version 1.8.8 problemlos, guile 2.0 geht glaube ich noch, aktuelle Version in den meisten Linux-Distros > 2 (macht jede menge Ärger! Siehe Threads "mehrere lilypond Versionen ... usw." )

http://imgs.xkcd.com/comics/lisp.jpg

http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html
http://www.htdp.org/2003-09-26/Book/curriculum-Z-H-1.html
ftp://ftp.cs.utexas.edu/pub/garbage/cs345/schintro-v14/schintro_toc.html

Grüße
« Letzte Änderung: Dienstag, 6. August 2013, 13:02 von bblochl »

harm6

  • Member
Re: Kollision von Slur und Tie bei Noten im 2./3. Zwischenraum
« Antwort #11 am: Dienstag, 13. August 2013, 23:31 »
Hallo,

ein weiterer workaround, inspiriert von issue 582, welches Eluze schon erwähnte:

\version "2.16.0"

\score {
  <<
    \new Staff {
      \relative c'' {
      \override Slur #'details #'slur-tie-extrema-min-distance-penalty = #10
      \override Slur #'details #'slur-tie-extrema-min-distance = #0.25
        c4~( c8. c16)
        c4~( c8. d16)
        c4~( c8. b16)
        f4~( f8. f16)
        g4~( g8. g16)
        a4~( a8. a16)
        a4~( a8. g16)
        b4~( b8. b16)
      }
    }
    \new Staff {
      \relative c'' {
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
        g16 g g g r4
      }
    }
  >>
}

In Deinem Beispiel funktioniert es, ob es aber immer klappt ...?

HTH,
  Harm