Autor Thema: Note im Akkord verschoben  (Gelesen 2296 mal)

iugin

  • Member
Note im Akkord verschoben
« am: Dienstag, 28. Mai 2013, 09:57 »
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

  • Member
Re: Note im Akkord verschoben
« Antwort #1 am: Dienstag, 28. Mai 2013, 14:34 »
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

  • Member
Re: Note im Akkord verschoben
« Antwort #2 am: Dienstag, 28. Mai 2013, 19:49 »
Hallo Torsten,

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

Gruß, Robert

harm6

  • Member
Re: Note im Akkord verschoben
« Antwort #3 am: Mittwoch, 29. Mai 2013, 01:46 »
Hallo Torsten,

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

Gruß,
  Harm

iugin

  • Member
Re: Note im Akkord verschoben
« Antwort #4 am: Mittwoch, 29. Mai 2013, 09:46 »
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