[ << Ladění výstupu ] | [Top][Contents][Index] | [ Předlohy >> ] |
[ < Použití proměnných pro ladění ] | [ Up : Další ladění ] | [ Více informací > ] |
5.6.3 Celkové formátování
Die Ausgabe von LilyPond kann sehr stark verändert werden, siehe zu Einzelheiten ladění výstupu. Aber was ist, wenn man mehrere Eingabedateien hat, die die gleichen Anpassungen erfahren sollen? Oder wenn Sie einfach nur die Anpassungen von der eigentlichen Musik trennen wollen? Das lässt sich recht einfach erreichen.
Schauen wir uns ein Beispiel an. Sorgen Sie sich nicht, wenn Sie
den Abschnitt mit den vielen #()
nicht verstehen. Das wird
erklärt in pokročilých laděních se Scheme.
mpdolce = #(make-dynamic-script #{ \markup { \hspace #0 \translate #'(5 . 0) \line { \dynamic "mp" \text \italic "dolce" } } #}) inst = #(define-music-function (string) (string?) #{ <>^\markup \bold \box #string #}) \relative { \tempo 4=50 a'4.\mpdolce d8 cis4--\glissando a | b4 bes a2 | \inst "Clarinet" cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2 | }
Es gibt einige Probleme mit sich überschneidender Ausgabe, die wird
zurechtgerückt mit den Techniken von přesouvání předmětů.
Aber jetzt zu den Definitionen von mpdolce
und inst
.
Sie erstellen die gewünschte Ausgabe, aber wir wollen sie vielleicht
auch in einem anderen Stück verwenden. Wir könnten sie immer wieder
kopieren und oben in jedes Stück einfügen, aber das ist sehr aufwändig.
Dadurch werden die Definitionen auch in der Eingabedatei belassen,
und ich finde diese #()
irgendwie hässlich. Verstecken
wir sie also:
%%% in Datei "definitions.ily" speichern mpdolce = #(make-dynamic-script #{ \markup { \hspace #0 \translate #'(5 . 0) \line { \dynamic "mp" \text \italic "dolce" } } #}) inst = #(define-music-function (string) (string?) #{ <>^\markup \bold \box #string #})
Diese Datei wir mit dem \include
-Befehl ziemlich weit oben
in der Datei eingefügt. (Die Erweiterung ‘.ily’ wird benutzt,
um diese Datei als eine eingefügte, inkludierte zu kennzeichnen, die
man nicht alleinstehend kompilieren kann.) Jetzt ändern wir die
Noten (in der Datei ‘music.ly’).
\include "definitions.ily" \relative { \tempo 4=50 a'4.\mpdolce d8 cis4--\glissando a | b4 bes a2 | \inst "Clarinet" cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2 | }
Das sieht schon besser aus, aber einige Änderungen könnten wir noch vornehmen. Das Glissando ist kaum sichtbar, machen wir es also etwas dicker und näher an den Notenkopf. Die Metronombezeichnung soll über dem Schlüssel stehen, anstatt über der ersten Note. Und schließlich mag mein Kompositionsprofessor keine „C“-Taktangaben, das ändern wir also in „4/4“.
Ändern Sie jetzt jedoch nicht ‘music.ly’. Ändern Sie die ‘definitions.ily’ mit dem Folgenden:
%%% definitions.ily mpdolce = #(make-dynamic-script #{ \markup { \hspace #0 \translate #'(5 . 0) \line { \dynamic "mp" \text \italic "dolce" } } #}) inst = #(define-music-function (string) (string?) #{ <>^\markup \bold \box #string #}) \layout{ \context { \Score \override MetronomeMark.extra-offset = #'(-9 . 0) \override MetronomeMark.padding = #'3 } \context { \Staff \override TimeSignature.style = #'numbered } \context { \Voice \override Glissando.thickness = #3 \override Glissando.gap = #0.1 } }
Das sieht besser aus! Aber nehmen wir an, Ich will dieses Stück publizieren. Mein Professor mag die „C“-Taktangabe nicht, mir gefällt sie aber sehr gut. Kopieren wir also die Datei ‘definitions.ily’ nach ‘web-publish.ily’ und verändern diese. Weil die Noten als PDF auf dem Monitor dargestellt werden sollen, wird auch die Notengröße global geändert.
%%% definitions.ily mpdolce = #(make-dynamic-script #{ \markup { \hspace #0 \translate #'(5 . 0) \line { \dynamic "mp" \text \italic "dolce" } } #}) inst = #(define-music-function (string) (string?) #{ <>^\markup \bold \box #string #}) #(set-global-staff-size 23) \layout{ \context { \Score \override MetronomeMark.extra-offset = #'(-9 . 0) \override MetronomeMark.padding = #'3 } \context { \Staff } \context { \Voice \override Glissando.thickness = #3 \override Glissando.gap = #0.1 } }
In der Eingabedatei muss jetzt nur noch die Zeile
\include "definitions.ily"
mit
\include "web-publish.ily"
ersetzt werden. Das könnte
man natürlich noch besser machen. Es könnte eine Datei
‘definitions.ily’ mit allen Definitionen (also
mpdolce
und inst
) geben, eine Datei
‘web-publish.ily’, die nur die \layout
-Veränderung
enthält und eine Datei ‘university.ily’, die nur die
Prozedur enthält, die Ausgabe meinem Professor angenehm zu machen.
Der Anfang von ‘music.ly’ würde dann folgendermaßen aussehen:
\include "definitions.ily" %%% nur eine der zwei Zeilen auskommentieren! \include "web-publish.ily" %\include "university.ily"
Diese Herangehensweise kann auch schon nützlich sein, wenn man
nur ein paar Stimmen schreiben will. Ich habe eine ganze Anzahl
an „Stylesheets“ für meine Projekte. Ich fange jede Datei mit
der Zeile \include "../global.ily"
an, die etwa folgendes
einbindet:
%%% global.ily \version "2.24.4" #(ly:set-option 'point-and-click #f) \include "../init/init-defs.ly" \include "../init/init-layout.ly" \include "../init/init-headers.ly" \include "../init/init-paper.ly"
[ << Ladění výstupu ] | [Top][Contents][Index] | [ Předlohy >> ] |
[ < Použití proměnných pro ladění ] | [ Up : Další ladění ] | [ Více informací > ] |