Autor Thema: Alternative Taktzahl in lily "2.16.0"  (Gelesen 1457 mal)

chf

  • Member
Alternative Taktzahl in lily "2.16.0"
« am: Donnerstag, 5. September 2013, 18:00 »
Liebe Freunde,

in meiner Datei steht folgende Definition

             #(define (alt-bar-number BarNumber)
        "Append a to the bar number."
        (let* (
                ; Set barNumber to the current value
                (barNumber (ly:grob-property BarNumber 'text))
                ; Append "/II" to it
                (bisBarNumber ( string-append barNumber "a" )))
                ; Store the new value back
                (ly:grob-set-property! BarNumber 'text bisBarNumber))
                ; and print it
                (ly:text-interface::print BarNumber))

Beim Convertieren von \version" 2.14.2" auf "2.16.0"
erhalte ich folgende Fehlermeldung, die ich nicht verstehe:

Vorverarbeitung der grafischen Elemente...  In expression ( string-append barNumber ...):
13.01.06 Capriccio.ly:170:31: Wrong type to apply: "75"


Was muss ich tun?

Gruß
chf
« Letzte Änderung: Donnerstag, 5. September 2013, 19:45 von chf »

harm6

  • Member
Re: Alternative Taktzahl in lily "2.16.0"
« Antwort #1 am: Freitag, 6. September 2013, 00:17 »
Hallo Christa,

ein Beispiel wie diese Definition benutzt wird, wäre schön gewesen.

Zum Thema:
Es ist mittlerweile möglich bei Wiederholungen in \alternative { ... }, (allerdings nur dort) verschiedene Taktzählsysteme auszugeben
(schlag mal nach in der NR unter
http://lilypond.org/doc/v2.16/Documentation/notation/long-repeats.de.html#normal-repeats
Stichwort: alternativeNumberingStyle)

Im Zuge dieser Änderung ist die Taktzahl intern kein einfacher string mehr sondern ein markup.
RobUrs snippet verwendet string-append welches natürlich nur mit strings funktioniert, war früher ja auch vollkommen hinreichend.
Da ist convert-ly überfordert.

Du könntest so vorgehen:

#(define (alt-bar-number BarNumber)
  "Append a to the bar number."
  (let* (; Set barNumber to the current value
         (barNumber (ly:grob-property BarNumber 'text))
         ; Append "a" to it
         (bisBarNumber (markup #:concat (barNumber "a" ))))
         
    ; Store the new value back
    (ly:grob-set-property! BarNumber 'text bisBarNumber)
    ; and print it
    (ly:text-interface::print BarNumber)))
 
{
e''1
\break
\override Score.BarNumber #'stencil = #alt-bar-number
f''
}

Der Wert der an die Taktzahl angehängt wird, "a", ist natürlich nach wie vor hord-coded.
Das Ganze funktioniert jetzt allerdings mit 2.14.2, 2.16.2 und 2.17.25 !



chf

  • Member
Re: Alternative Taktzahl in lily "2.16.0"
« Antwort #2 am: Freitag, 6. September 2013, 18:55 »
Hallo Harm,

entschuldige - hier ging es um die Zählung einer Kadenz über zwei Zeilen...

Dieser Fehler scheint behoben, aber es gibt noch weitere Probleme bei der Convertierung, die werde ich aber besser "neu verpacken".

Gruß
Christa