Deutsches Lilypond Forum (Archiv)
Allgemein => Hilfe beim Einstieg in Lilypond => Thema gestartet von: ingmar am Samstag, 11. Februar 2017, 15:50
-
hallo,
zur Übung hab ich eine kleine Funktion in scheme erstellt, die mir ein wenig Notentext drucken soll. Den Name des Schlüssels möchte ich per Parameter übergeben. Leider gelingt es mir nicht, und ich verstehe einfach das Problem nicht.
\version "2.19.37"
MyScore = #(define-scheme-function ( myString ) (string) (string? ) #{
\score {
\new Staff \with { \clef \myString } { \relative { c' d e f g2 a g4 f e d c1 } }
}
#})
\MyScore "alto"
Fehlermeldung: Wrong type (expecting character): "alto". Tja! Kann jemand helfen? Danke..!
Edit: Hatte in der Funktionsdeklaration "(string)" oben vergessen, und so ist auch die Fehlermeldung eine andere.
--ingmar
-
Edit: Hatte in der Funktionsdeklaration "(string)" oben vergessen, und so ist auch die Fehlermeldung eine andere.
Wofür brauchst du das? In der Dokumentation (Extending Abschnitt 2.2.1) steht da nichts davon.
Zu deiner Frage: Ein Argument einer so in Scheme definierten Funktion wird per $ oder # verwendet, nicht per \.\version "2.19.37"
MyScore = #(define-scheme-function (myString) (string?) #{
\score {
\new Staff \with { \clef #myString } { \relative { c' d e f g2 a g4 f e d c1 } }
}
#})
\MyScore "alto"