I LilyPond bin mit den Noten setzen für eine Chor Kirche auszuführen. Je nachdem, wer in einer bestimmten Woche verfügbar ist, werden die Titel in verschiedenen Tonarten wiedergegeben. Wir haben eine erstaunliche Pianistin, die alles spielen kann, was wir ihr zuwerfen, und die Gitarristen werden in der Regel alternative Akkorde anschlagen, aber ich möchte die Dinge einfacher machen, indem ich wunderschön gesetzte Noten in jeder beliebigen Tonart zur Verfügung stelle.
Also sag, dass wir unser ABC singen werden. Zunächst werde ich nehmen, was Quelle Transkriptionen zur Verfügung und geben Sie ihn in ein LilyPond Skript:
melody = \relative c' {
c c g g
a a g2
f f e e
d d c2 }
Ich möchte die Möglichkeit, diese automatisch zu transponieren, also wenn ich das Ganze in ‚G‘ möchte ich den Song in eine wickeln \ transponiert Aufruf wie folgt:
melody = \transpose c g \relative c' {
c c g g
a a g2
f f e e
d d c2 }
Was will ich wirklich etwas für den ‚g‘ ersetzen und die Ausgabe für Melodie mehrfach zu erzeugen. Einfache LilyPond-Variablen scheinen hier nicht zu funktionieren, und bisher konnte ich keine Schema-Funktion definieren, um dies zu tun.
Was ich im Moment zurückgegriffen habe, ist den oben genannten Datei nehmen, es twinkle.ly nennen und es in ein M4-Skript namens twinkle.ly.m4 Drehen, deren Inhalt wie folgt aussehen:
melody = \transpose c _key \relative c' {
c c g g
a a g2
f f e e
d d c2 }
ich kompilieren dann das während Sache durch die folgende Zeile ausführen:
> m4 -D _key=g twinkle.ly.m4 > twinkle_g.ly && lilypond twinkle_g.ly
ich geschrieben habe ein Makefile für mich zu tun, Definition von Regeln für jeden Song, den ich habe und jeder Schlüssel mich interessiert.
Frage Es muss einen besseren Weg geben, darüber zu gehen. Da Lilypond ein eingebettetes Schema unterstützt, würde ich es vorziehen, kein Makro zu verwenden, das darauf vorverarbeitet wird. Hat jemand anderes eine Lösung für dieses Problem gefunden? die Umstellungen als separate Dateien, betten sie in \ Buchblöcke
melody = \relative c' { c8 e c e g4 g } \score { \transpose c d \melody } \score { \transpose c e \melody } % etc.
Wenn Sie ausgeben möchten:
Es wäre hilfreich, dies auch als lilypond zu markieren. – thSoft
Haben Sie diese Frage auf der Mailingliste lilypond gestellt? Sie sind ziemlich gut dort ... – masher