Allgemein > Allgemeine Diskussion
Fehler in 2.18.2
erich:
Hallo Lilypondies
Das Script
--- Code: ---\version "2.18.2"
\score {
<<
\new Voice {c'4 e'-° }
>>
}
--- Ende Code ---
wird korrekt interpretiert; lässt man jedoch das Käckchen am e fort, gibt es einen Fehler.
Frage: Tritt der Fehler auf bei der 2.19.-Version auf?
Gruß
Erich
fugenkomponist:
Ja, dieses Verhalten* tritt auch bei 2.19.20 auf, man kann es aber leicht umgehen: e-"°". Gleiches gilt für e'-§ bzw. e-§. Es wundert mich, dass überhaupt manche Sonderzeichen als markup ohne Anführungszeichen angehängt werden können.
*Ich halte es nicht für einen Fehler, dass markups ohne Anführungszeichen in der Regel nicht funktionieren.
Ich hab ja das Gefühl, dass du aber eigentlich kein markup wolltest, sondern ein Flageolet oder „offen“ bei Hörnern o. ä. Dafür gibt es e'\flageolet bzw. e'\open.
Edit: Ich hab mich unklar ausgedrückt: Ich meine eigentlich speziell TextScripts, nicht allgemein Markups.
erich:
LilyPond erwartet nach dem Minus-Zeichen (-) ein Artikulationszeichen genauso wie nach dem Unterstrich (_) oder dem Dach (^).
{e^°} lasst sich auch korrekt ausgeben, jedoch weder {e-°} noch {e_°}. Es scheint also doch ein Fehler zu sein.
Danke fugenkomponist für den Tipp zur Umgehung.
Wenn man nach einem Notennamen eine Dauer angibt, tritt der Fehler auch nicht auf.
Tatsächlich benutze ich das Grad-Zeichen auch nicht sondern den in der Mitte liegenden Punkt (·), der aber in Windows nicht so auf der Tastatur zur Verfügung zu stehen scheint wie in meinem Linux. Ich benutze eine Folge solcher Punkte zur Steuerung der Artikulation in der Midi-Ausgabe.
fugenkomponist:
Aber ° ist doch gar kein Artikulationszeichen.* Genausowenig wie eben §. Laut NR 1.3.1 sind die verfügbaren Artikulationen
^, +, -, !, >, ., _ (in Version 2.19, ich glaub in 2.18 wars noch | statt !)
Also ist es nicht so verwunderlich, wenn ° sich nicht verwenden lässt wie ein Artikulationszeichen und kein Fehler von LilyPond. Dass e'-· zufälligerweise funktioniert, heißt nicht, dass e'_· oder e-· auch funktionieren müssen, weil es eben nicht beabsichtigt ist. Mit Anführungszeichen haben wir wieder definiertes Verhalten.
*Das lässt sich auch relativ leicht nachweisen:
--- Code: ---\version "2.19.20"
\displayMusic { c'-. c'-· }
--- Ende Code ---
Dieser Code ergibt die folgende LilyPond-Ausgabe:
--- Code: ---(make-music
'SequentialMusic
'elements
(list (make-music
'NoteEvent
'articulations
(list (make-music
'ArticulationEvent
'midi-extra-velocity
4
'midi-length
#<procedure #f (len context)>
'articulation-type
"staccato"))
'duration
(ly:make-duration 2)
'pitch
(ly:make-pitch 0 0))
(make-music
'NoteEvent
'articulations
(list (make-music
'TextScriptEvent
'text
"·"))
'duration
(ly:make-duration 2)
'pitch
(ly:make-pitch 0 0))))
--- Ende Code ---
Edit: gerade hab ich noch etwas interessantes entdeckt, nämlich den Befehl \displayLilyMusic:
--- Code: ---\version "2.19.20"
\displayLilyMusic { c'-. c'-· }
--- Ende Code ---
ergibt die Ausgabe
--- Code: ---{ c'4-. c'4-"·" }
--- Ende Code ---
LilyPond ergänzt also die Anführungszeichen. Und damit lässt sich auch herausfinden, warum die anderen Dinge nicht gehen: Bei Vorhandensein von - oder _, aber ohne , oder ' schaltet LilyPond in den lyricmode:
--- Code: ---\displayLilyMusic { c-· }
--- Ende Code ---
ergibt
--- Code: ---\lyricmode { c-· }
--- Ende Code ---
Ich bin mir nicht ganz sicher, warum das passiert, aber dass es - und _, aber nicht ^ betrifft, ist relativ einfach zu erklären: die ersten beiden Zeichen haben im lyricmode nunmal ne Sonderbedeutung. Und ebenso deuten ' und , nach nem potentiellen Tonnamen auf Tonhöhen hin, weshalb es vermutlich im Notenmodus bleibt.
erich:
Also fugenkomponist, dann nennen wir es eine Inkonsistenz; man wird doch LilyPond erweitern dürfen, oder wozu dient das LilyPond Snippet Repository.
Du zeigst doch selbt am Beispiel, dass displayMusic 'NoteEvent 'articulations ausgibt.
Als Mathematiker betrachte ich so eine Inkonsitenz unter formal-ästhetischen Gesichtspunkten als einen Fehler. Aber wir müssen hier kein Seminar über Korrektheit von Programmen beginnen.
Danke, dass Du geantwortet hast!
Erich
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln