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