• Willkommen im Forum „Archiviertes Lilypond Forum (2017)“.
 

Dies ist das Archiv des alten Forums (bis März 2017). Das aktuelle Forum ist unter lilypondforum.de zu finden.
This is the archive of the old forum (until March 2017). You can find the current forum at lilypondforum.de.

Hauptmenü

Note im Akkord verschoben

Begonnen von iugin, Dienstag, 28. Mai 2013, 09:57

Vorheriges Thema - Nächstes Thema

iugin

Hallo miteinander,

ich komme wieder (sorry, ich habe alle offene Fragen gesammelt, und jetzt melde ich mich immer wieder) :)

Wenn ich diesen Code kompiliere
\version "2.16.0"
\language "deutsch"

One =  \relative e { 
  <e a c>4 <f h d> <g c e> <a d f>   
}

\score {
  \new Staff \with {
    fontSize = #-3
    \override StaffSymbol #'staff-space = #(magstep -3)
    \override StaffSymbol #'thickness = #(magstep -3)
  } { \One }
}


Two =  \relative e { 
  <a c>4 <h d> <c e> <d f>   
}

\score {
  \new Staff \with {
    fontSize = #-3
    \override StaffSymbol #'staff-space = #(magstep -3)
    \override StaffSymbol #'thickness = #(magstep -3)
  } { \Two }
}

kommt das, was ihr im Attachement sehen könnt.
Ich finde komisch, dass, obwohl alle Akkorde gleich aufgebaut sind, nur das d verschoben ist. Und dass es nur bei drei Stimmen passiert. In der unteren Zeile, brauchen die zwei Noten genau soviel Platz wie die obere zwei der 3-stimmmigen Akkord, es gibt aber keine Verschiebung.
Ausserdem, passiert es nur wenn ich überall den Wert -3 eingebe. Mit anderen Werten ist ok (wobei die Verhältnissen immer gleich sein sollten)

Ist das normal?

Ich wünsche euch einen schönen Tag

Liebe Grüsse

Eugenio

Be-3

Zitat von: iugin am Dienstag, 28. Mai 2013, 09:57
Ich finde komisch, dass, obwohl alle Akkorde gleich aufgebaut sind, nur das d verschoben ist. Und dass es nur bei drei Stimmen passiert. In der unteren Zeile, brauchen die zwei Noten genau soviel Platz wie die obere zwei der 3-stimmmigen Akkord, es gibt aber keine Verschiebung.
Ausserdem, passiert es nur wenn ich überall den Wert -3 eingebe. Mit anderen Werten ist ok (wobei die Verhältnissen immer gleich sein sollten)

Ist das normal?

Un'altra stranezza...

Ciao Eugenio,

Du scheinst ein Händchen für pathologische Fälle zu haben ;)

Da scheint es sich tatsächlich um ein numerisches Problem zu handeln:
Die Funktion magstep rechnet (wenn s der übergebene Parameter ist) den Wert von exp(s/6*ln2) aus. Sie liefert also einen exponentiellen Verlauf und bei s = 6 erhält man die doppelte Größe, bei s = -6 den die halbe Größe.

Bei manchen "glatten" Vergrößerungsstufen s tritt unter unglücklichen Umständen der (in der Tat ebenso seltsame wie unbeabsichtigte) Effekt auf, keinesfalls nur bei -3, sondern unter anderem bei folgenden Werten (Liste nicht vollständig):

-16, -15, -14, -9, -3, 3, 4, 9, 14, 15, 16, 21 und anderen.

Im vorliegenden Fall von #(magstep -3) wäre das Ergebnis #0.70710678118654752440084436210485..., und wenn man diese Zahl mit entsprechender Genauigkeit direkt eingibt, funktioniert es auch nicht (aha).

Abhilfe sehe ich nur, wenn man minimal vom "glatten" Vergrößerungswert abweicht:

Minimalbeispiel:

\version "2.16.0"


% magstep-Funktion:  exp(s/6*ln2)
% Problematische Werte: -16, -15, -14, -9, -3, 3, 4, 9, 14, 15
  \override Score.StaffSymbol #'staff-space = #(magstep -3)
  <g b d'>
}


% Minimale Abweichung von -3 funktioniert:
  \override Score.StaffSymbol #'staff-space = #(magstep -3.0000000000001)
  <g b d'>
}


% Berechneten, aber "zu genauen" Wert von magstep -3 "hartcodiert" zuweisen funktioniert NICHT:
  \override Score.StaffSymbol #'staff-space = #0.70710678118654752440084436210485
  <g b d'>
}


% Berechneten und gerundeten Wert von magstep -3 "hartcodiert" zuweisen funktioniert:
  \override Score.StaffSymbol #'staff-space = #0.707106781186548
  <g b d'>
}


Seltsam ist es allemal, ich weiß auch keine Lösung, außer eben die minimale Abweichung vom glatten Wert.
Getestet mit Windows XP und Linux (Ubuntu), allerdings beides auf Intel-Architektur.

Gibt es das Problem bei Apple auch?

Viele Grüße
Torsten

RobUr

Hallo Torsten,

ich kann für Mac OS X 10.4.11 ,,Tiger" (Prozessor Intel Core 2 Duo) selbiges berichten.

Gruß, Robert

harm6

Hallo Torsten,

vielen Dank für Deine Analysen, ich habe mal einen bug-report abgesetzt.

Gruß,
  Harm

iugin

Hallo Torsten,

ich brauche anscheinend einen Art Exorzismus oder so... Tatsächlich mit Frets, repeat percent und jetzt das, mache ich mir langsam Sorgen... :D
Ist aber gut so: schon wieder kann ich deine Lösung sehr gut brauchen (egal jetzt ob 3 oder 3.000000000001).
Und Kompliment für alles was du mit Lilypond kannst und für dein Italienisch (bis jetzt auch perfekt).

Liebe Grüsse

Eugenio