Point-and-click-feature für die Strophen in Frescobaldi #7

Closed
opened 2023-08-10 12:10:48 +02:00 by apfelpfluecker · 1 comment
No description provided.
Owner

Das ist leider nach längerer Recherche nicht so ohne weiteres möglich.

Die Datei und Zeile könnte man im geparsten String theoretisch mit \sourcefile ursprungsdatei und \sourcefileline zeile setzen, aber die weiß man halt nicht im markup-command chordverse.

Da in Lilypond offenbar nur musikalische Objekte bei der Erstellung eine Origin haben, müsste man also beim aufrufen von \chordverse noch ein musikalisches Objekt mit übergeben, um einen Referenzpunkt zu haben, also so zum Beispiel:

    \chordverse #"2."
    {{}} #"(Stro,a:m)phen(text,g)"

Das {{}} wäre in diesem Fall ein zusätzliches Argument vom Typ ly:music? und man könnte das als argument z.B. reference-music mit übergeben, um dann Dateiname, Zeile, Spalte usw. auszulesen:

(ly:input-file-line-char-column (ly:music-property reference-music 'origin))

Dann wirds noch interessant, wie man die richtige Spaltennummer übergibt. Ich befürchte das geht auch nicht und wenn, dann wär das ne ziemlich schwierige Berechnung die richtige Position im String zu finden.

Aber das ist alles ziemlich hässlich, macht es sehr komplex und ist die Sache nicht wert aus meiner Sicht.

Das ist leider nach längerer Recherche nicht so ohne weiteres möglich. Die Datei und Zeile könnte man im geparsten String theoretisch mit `\sourcefile ursprungsdatei` und `\sourcefileline zeile` setzen, aber die weiß man halt nicht im markup-command `chordverse`. Da in Lilypond offenbar nur musikalische Objekte bei der Erstellung eine Origin haben, müsste man also beim aufrufen von `\chordverse` noch ein musikalisches Objekt mit übergeben, um einen Referenzpunkt zu haben, also so zum Beispiel: ``` \chordverse #"2." {{}} #"(Stro,a:m)phen(text,g)" ``` Das `{{}}` wäre in diesem Fall ein zusätzliches Argument vom Typ `ly:music?` und man könnte das als argument z.B. `reference-music` mit übergeben, um dann Dateiname, Zeile, Spalte usw. auszulesen: ``` (ly:input-file-line-char-column (ly:music-property reference-music 'origin)) ``` Dann wirds noch interessant, wie man die richtige Spaltennummer übergibt. Ich befürchte das geht auch nicht und wenn, dann wär das ne ziemlich schwierige Berechnung die richtige Position im String zu finden. Aber das ist alles ziemlich hässlich, macht es sehr komplex und ist die Sache nicht wert aus meiner Sicht.
tux closed this issue 2023-08-11 00:59:31 +02:00
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: boernel/lilypond-common-includes#7
No description provided.