[ << Modifica dell'output ] | [Inizio][Contenuti][Indice] | [ Modelli >> ] |
[ < Uso delle variabili per modificare la formattazione ] | [ Su : Altre modifiche ] | [ Altre fonti di informazione > ] |
5.7.3 Fogli di stile
L’output prodotto da LilyPond può essere ampiamente modificato, come abbiamo visto nel capitolo Modifica dell’output. Ma se avessi molti file di input a cui voler applicare delle modifiche? O se volessi semplicemente separare le modifiche dalla musica vera e propria? È molto semplice.
Prendiamo un esempio. Non ti preoccupare se non capisci le
parti che hanno #()
; verranno spiegate nel capitolo
Modifiche avanzate con Scheme.
mpdolce = \tweak self-alignment-X #-0.6 #(make-dynamic-script #{ \markup { \dynamic mp \normal-text \italic \bold 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 | }
Facciamo qualcosa a proposito delle definizioni di mpdolce
e
inst
. Producono l’output che desideriamo, ma potremmo volerle
usare in un altro brano. Potremmo semplicemente copiarle e incollarle
in cima a ogni file, ma sarebbe una seccatura e lascerebbe queste
definizioni nel file di input; personalmente trovo tutti quei #()
piuttosto brutti, dunque nascondiamoli in un altro file:
%%% salva queste righe in un file chiamato "definitions.ily" mpdolce = \tweak self-alignment-X #-0.6 #(make-dynamic-script #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #}) inst = #(define-music-function (string) (string?) #{ <>^\markup \bold \box #string #})
Ci riferiremo a questo file tramite il comando \include
in cima
al file dove c’è la musica. Si usa l’estensione ‘.ily’ per distinguere
il file da includere, che non intendiamo compilare da solo, dal file principale.
Ora modifichiamo la musica (e salviamo questo file come ‘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 | }
L’aspetto è migliore, ma facciamo ancora qualche modifica. Il glissando si vede appena, rendiamolo quindi più spesso e più vicino alle teste di nota. Mettiamo l’indicazione metronomica al di sopra della chiave invece che della prima nota. E, infine, dato che il mio professore di composizione odia l’indicazione di tempo “C”, usiamo “4/4” al suo posto.
Ma non devi cambiare ‘music.ly’ bensì ‘definitions.ily’, in questo modo:
%%% definitions.ily mpdolce = \tweak self-alignment-X #-0.6 #(make-dynamic-script #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #}) inst = #(define-music-function (string) (string?) #{ <>^\markup \bold \box #string #}) \layout{ \context { \Score \override MetronomeMark.extra-offset = #'(-5 . 0) \override MetronomeMark.padding = #'3 } \context { \Staff \override TimeSignature.style = #'numbered } \context { \Voice \override Glissando.thickness = #3 \override Glissando.gap = #0.1 } }
Ora l’aspetto è decisamente migliore! Supponiamo ora di voler pubblicare questo brano. Il mio professore di composizione non ama il segno di tempo “C”, mentre a me piace. Copiamo l’attuale file ‘definitions.ily’ in ‘web-publish.ily’ e modifichiamolo. Dato che questa musica verrà distribuita su un pdf da leggere a schermo, aumenteremo anche la dimensione complessiva dell’output.
%%% web-publish.ily mpdolce = \tweak self-alignment-X #-0.6 #(make-dynamic-script #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #}) inst = #(define-music-function (string) (string?) #{ <>^\markup \bold \box #string #}) #(set-global-staff-size 23) \layout{ \context { \Score \override MetronomeMark.extra-offset = #'(-5 . 0) \override MetronomeMark.padding = #'3 } \context { \Staff } \context { \Voice \override Glissando.thickness = #3 \override Glissando.gap = #0.1 } }
Nel file che contiene la musica non rimane che sostituire
\include "definitions.ily"
con
\include "web-publish.ily"
. Potremmo usare un sistema
ancora più conveniente: creare un file ‘definitions.ily’ che
contenga solo le definizioni di mpdolce
e inst
, un file
‘web-publish.ily’ che contenga solo la sezione \layout
vista prima, e un file ‘university.ily’ che contenga solo le
modifiche necessarie per produrre l’output preferito dal mio
professore. L’inizio di ‘music.ly’ apparirebbe così:
\include "definitions.ily" %%% Una sola di queste linee deve essere commentata \include "web-publish.ily" %\include "university.ily"
Questo approccio può essere utile anche se si sta creando un
insieme di parti. Uso una mezza dozzina di diversi
‘fogli di stile’ per i miei progetti. Faccio iniziare
ogni file musicale con \include "../global.ily"
, che contiene
%%% 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"
[ << Modifica dell'output ] | [Inizio][Contenuti][Indice] | [ Modelli >> ] |
[ < Uso delle variabili per modificare la formattazione ] | [ Su : Altre modifiche ] | [ Altre fonti di informazione > ] |