1.3.1 Segni di espressione collegati alle note

Questa sezione spiega come creare segni di espressione collegati alle note: articolazioni, abbellimenti e dinamiche. Sono trattati anche i metodi per creare nuove indicazioni dinamiche.


Articolazioni e abbellimenti

I diversi simboli che rappresentano articolazioni, ornamenti e altre indicazioni esecutive possono essere collegati a una nota con questa sintassi:

nota\nome

I valori possibili per nome sono elencati in Elenco delle articolazioni. Ad esempio:

\relative {
  c''4\staccato c\mordent b2\turn
  c1\fermata
}

[image of music]

Alcune di queste articolazioni hanno delle abbreviazioni che ne semplificano l’inserimento. Le abbreviazioni sono attaccate al nome della nota e la loro sintassi è composta da un trattino - seguito da un simbolo che indica l’articolazione. Esistono abbreviazioni predefinite per marcato, chiuso, tenuto, staccatissimo, accento, staccato e portato. L’output corrispondente è:

\relative {
  c''4-^ c-+ c-- c-!
  c4-> c-. c2-_
}

[image of music]

Le regole per il posizionamento predefinito delle articolazioni sono definite in ‘scm/script.scm’. Articolazioni e ornamenti possono essere posizionati manualmente sopra o sotto il rigo; si veda Direzione e posizionamento.

Le articolazioni sono oggetti Script. Le loro proprietà sono descritte in dettaglio in Script.

Le articolazioni possono essere attaccate alle pause normali, alle pause multiple e alle note. Attaccando un’articolazione a una pausa multipla si crea un oggetto MultiMeasureRestScript.

\override Script.color = #red
\override MultiMeasureRestScript.color = #blue
a'2\fermata r\fermata
R1\fermata

[image of music]

Oltre alle articolazioni, si può attaccare alle note anche un testo, posto tra virgolette o in un blocco \markup{}. Si veda Scritte.

Ulteriori informazioni sull’ordine degli oggetti Script e TextScript collegati alle note si trovano in Posizionamento degli oggetti.

Frammenti di codice selezionati

Modificare i valori predefiniti per le abbreviazioni delle articolazioni

Le abbreviazioni sono definite in ‘ly/script-init.ly’, dove sono assegnati valori predefiniti alle variabili dashHat, dashPlus, dashDash, dashBang, dashLarger, dashDot e dashUnderscore. Questi valori predefiniti possono essere modificati. Ad esempio, per associare l’abbreviazione -+ (dashPlus) al simbolo del trillo invece che al simbolo + predefinito, si assegna il valore trill alla variabile dashPlus:

\relative c'' { c1-+ }

dashPlus = \trill

\relative c'' { c1-+ }

[image of music]

Controllo dell’ordine verticale degli script

L’ordine verticale degli script è determinato dalla proprietà 'script-priority. Più il numero è piccolo, più sarà posto vicino alla nota. In questo esempio, il simbolo di diesis (oggetto TextScript) ha prima la priorità più bassa, dunque è posto più in basso nel primo esempio. Nel secondo, il trillo (oggetto Script) ha la priorità più bassa, quindi si trova all’interno. Quando due oggetti hanno la stessa priorità, l’ordine in cui sono inseriti determina quale viene prima.

\relative c''' {
  \once \override TextScript.script-priority = #-100
  a2^\prall^\markup { \sharp }

  \once \override Script.script-priority = #-100
  a2^\prall^\markup { \sharp }
}

[image of music]

Creare un gruppetto ritardato

Creare un gruppetto ritardato, dove la nota più bassa del gruppetto usa l’alterazione, richiede vari \override. La proprietà outside-staff-priority deve essere impostata su #f, perché altrimenti questa avrebbe la precedenza sulla proprietà avoid-slur. Cambiando la frazione 2/3 si aggiusta la posizione orizzontale.

\relative c'' {
  \after 2*2/3 \turn c2( d4) r |
  \after 4 \turn c4.( d8)
  \after 4
  {
    \once \set suggestAccidentals = ##t
    \once \override AccidentalSuggestion.outside-staff-priority = ##f
    \once \override AccidentalSuggestion.avoid-slur = #'inside
    \once \override AccidentalSuggestion.font-size = -3
    \once \override AccidentalSuggestion.script-priority = -1
    \once \hideNotes
    cis8\turn \noBeam
  }
  d4.( e8)
}

[image of music]

Vedi anche

Glossario Musicale: tenuto, accento, staccato, portato.

Manuale di apprendimento: Posizionamento degli oggetti.

Guida alla notazione: Scritte, Direzione e posizionamento, Elenco delle articolazioni, Trilli.

File installati: ‘scm/script.scm’.

Frammenti: Expressive marks.

Guida al funzionamento interno: Script, TextScript.


Dinamiche

Le indicazioni dinamiche assolute si indicano con un comando che segue una nota, come ad esempio c4\ff. Le indicazioni dinamiche disponibili sono \ppppp, \pppp, \ppp, \pp, \p, \mp, \mf, \f, \ff, \fff, \ffff, \fffff, \fp, \sf, \sff, \sp, \spp, \sfz, \rfz e \n. Le indicazioni dinamiche possono essere posizionate manualmente sopra o sotto il rigo, come è spiegato in dettaglio in Direzione e posizionamento.

\relative c'' {
  c2\ppp c\mp
  c2\rfz c^\mf
  c2_\spp c^\ff
}

[image of music]

Un’indicazione di crescendo inizia con \< e termina con \!, un’indicazione dinamica assoluta o un’ulteriore indicazione di crescendo o decrescendo. Un’indicazione di decrescendo inizia con \> e termina nello stesso modo, ovvero con \!, un’indicazione dinamica assoluta oppure un altro segno di crescendo o decrescendo. Si possono usare \cr e \decr al posto di \< e \>; si possono usare \endcr e \enddecr al posto di \! per terminare unindicazione di crescendo o decrescendo, rispettivamente. Le forcelle vengono create con questa notazione.

\relative c'' {
  c2\< c\!
  d2\< d\f
  e2\< e\>
  f2\> f\!
  e2\> e\mp
  d2\> d\>
  c1\!
}

[image of music]

Una forcella che termina con \! si estenderà fino al margine destro della nota a cui è assegnato \!. Nel caso in cui sia terminata con l’inizio di un altro segno di crescendo o decrescendo, si estenderà fino al centro della nota a cui è assegnato il successivo \< o \>. La forcella successiva partirà dal margine destro della stessa nota invece che dal margine sinistro, come accade quando si termina con \!. Una forcella che termina sul battere si fermerà alla stanghetta precedente.

\relative {
  c''1\< | c4 a c\< a | c4 a c\! a\< | c4 a c a\!
}

[image of music]

Le forcelle terminate con indicazioni dinamiche assolute invece che da \! avranno un aspetto simile. Tuttavia, la lunghezza dell’indicazione dinamica assoluta stessa può cambiare il punto in cui finisce la forcella precedente.

\relative {
  c''1\< | c4 a c\mf a | c1\< | c4 a c\ffff a
}

[image of music]

Segni come crescendo o decrescendo devono spesso iniziare o terminare nel corso di una nota sostenuta. Lo si può fare con \after, che può essere usato anche per creare articolazioni o scritte testuali differite:

<<
  \relative {
    \after 2 \< c'1
    d4\f\> e f g
    \after 2. \pp c,1
    \after 2. \fermata e
    \after 2. ^"Fine." f
  }
  \relative {
    \repeat unfold 12 c'4
    c c c c\fermata
    c c c c
  }
>>

[image of music]

Si può usare ripetutamente \after per attaccare più di un’indicazione a una nota. Questo è utile soprattutto quando si aggiungono un crescendo e un decrescendo alla stessa nota:

\relative {
  c''4\< d\! e\> c\!
  \after 4 \< \after 2\> \after 2. \! f1
  \textLengthOn
  \after 4 \> \after 2. ^"hush!" c1
  g4\pp
}

[image of music]

Se il primo di tale sequenza di segni su una nota coincide con l’attacco della nota, conviene attaccarlo a un accordo vuoto <>. In questo modo tutti i segni possono essere inseriti nel loro ordine visivo naturale:

{
  <>\< \after 4 \> \after 2 \! c'1
  % più facile da leggere e scrivere di:
  \after 4 \> \after 2 \! c'1\<
}

[image of music]

Il comando \espressivo può essere usato anche per indicare un crescendo e un decrescendo sulla stessa nota. Tuttavia, si tenga presente che viene implementato come articolazione, non come dinamica.

\relative {
  c''2 b4 a
  g1\espressivo
  \after 2. \espressivo c
}

[image of music]

Le indicazioni di crescendo testuali iniziano con \cresc, quelle di decrescendo con \decresc o \dim. Le linee di estensione sono aggiunte automaticamente.

\relative {
  g'8\cresc a b c b c d e\mf |
  f8\decresc e d c e\> d c b |
  a1\dim ~ |
  a2. r4\! |
}

[image of music]

Le indicazioni testuali per i cambi di dinamica possono essere impiegate anche per sostituire le forcelle:

\relative c'' {
  \crescTextCresc
  c4\< d e f\! |
  \dimTextDecresc
  g4\> e d c\! |
  \dimTextDecr
  e4\> d c b\! |
  \dimTextDim
  d4\> c b a\! |
  \crescHairpin
  \dimHairpin
  c4\< d\! e\> d\! |
}

[image of music]

Per creare nuove indicazioni dinamiche assolute o testi da allineare alle dinamiche, si veda Nuove indicazioni dinamiche.

Il posizionamento verticale della dinamica è gestito da DynamicLineSpanner.

Esiste un contesto Dynamics che permette di posizionare le indicazioni dinamiche su un’apposita linea orizzontale. Si usano le pause spaziatrici per indicarne la collocazione temporale (le note in un contesto Dynamics occupano infatti il rispettivo valore musicale, ma senza comparire sul rigo). Il contesto Dynamics può contenere altri elementi utili come indicazioni testuali, estensori del testo e indicazioni di pedalizzazione del pianoforte.

<<
  \new Staff \relative {
    c'2 d4 e |
    c4 e e,2 |
    g'4 a g a |
    c1 |
  }
  \new Dynamics {
    s1\< |
    s1\f |
    s2\dim s2-"rit." |
    s1\p |
  }
>>

[image of music]

Comandi predefiniti

\dynamicUp, \dynamicDown, \dynamicNeutral, \crescTextCresc, \dimTextDim, \dimTextDecr, \dimTextDecresc, \crescHairpin, \dimHairpin.

Frammenti di codice selezionati

Impostare il comportamento delle forcelle sulle stanghette

Se la nota che termina una forcella si trova sul primo battito di una battuta, la forcella si ferma prima della stanghetta che precede la nota. Si può controllare questo comportamento modificando la proprietà 'to-barline.

\relative c'' {
  e4\< e2.
  e1\!
  \override Hairpin.to-barline = ##f
  e4\< e2.
  e1\!
}

[image of music]

Impostare la lunghezza minima delle forcelle

Se le forcelle sono troppo corte, possono essere allungate modificando la proprietà minimum-length dell’oggetto Hairpin.

<<
  {
    \after 4 \< \after 2 \> \after 2. \! f'1
    \override Hairpin.minimum-length = #8
    \after 4 \< \after 2 \> \after 2. \! f'1
  }
  {
    \repeat unfold 8 c'4
  }
>>

[image of music]

Allineare le estremità delle forcelle alle direzioni di NoteColumn

Le estremità delle forcelle possono essere allineate alle direzioni LEFT, CENTER o RIGHT dei grob NoteColumn modificando la proprietà endpoint-alignments, che è costituita da una coppia di numeri che rappresentano le estremità sinistra e destra della forcella. endpoint-alignments devono essere direzioni (-1, 0 o 1). Valori diversi verranno trasformati emettendo un avviso. Non ha effetto quando l’estremità destra di una forcella termina su una pausa; in questo caso termina sempre sul margine sinistro della pausa.

{
  c'2\< <c' d'>\! |
  \override Hairpin.endpoint-alignments = #'(1 . -1)
  c'2\< <c' d'>\! |
  \override Hairpin.endpoint-alignments = #`(,LEFT . ,CENTER)
  c'2\< <c' d'>\! |
}

[image of music]

Spostare le estremità delle forcelle

Le estremità delle forcelle possono essere spostate in modo relativo alla loro posizione predefinita (offset) impostando la proprietà shorten-pair dell’oggetto Hairpin. Valori positivi spostano le estremità a destra, valori negativi le spostano a sinistra. Diversamente dalla proprietà minimum-length, questa proprietà modifica solo l’aspetto della forcella; non cambia la spaziatura orizzontale (inclusa la posizione delle dinamiche confinanti). Questo metodo è quindi utile per ritoccare una forcella entro lo spazio ad essa allocato.

{
  c'1~\<
  c'2~ c'\!
  \once \override Hairpin.shorten-pair = #'(2 . 2)
  c'1~\<
  c'2~ c'\!
  \once \override Hairpin.shorten-pair = #'(-2 . -2)
  c'1~\<
  c'2~ c'\!
  c'1~\p-\tweak shorten-pair #'(2 . 0)\<
  c'2~ c'\ffff
}

[image of music]

Forcelle con notazione al niente

Le forcelle di dinamica possono essere rappresentate con ua punta tonda (notazione “al niente”) impostando la proprietà circled-tip dell’oggetto Hairpin su #t.

\relative c'' {
  \override Hairpin.circled-tip = ##t
  c2\< c\!
  c4\> c\< c2\!
}

[image of music]

Stampare le forcelle in vari stili

Il segno di dinamica della forcella può avere diversi stili

\relative c'' {
  \override Hairpin.stencil = #flared-hairpin
  a4\< a a a\f
  a4\p\< a a a\ff
  a4\sfz\< a a a\!
  \override Hairpin.stencil = #constante-hairpin
  a4\< a a a\f
  a4\p\< a a a\ff
  a4\sfz\< a a a\!
  \override Hairpin.stencil = #flared-hairpin
  a4\> a a a\f
  a4\p\> a a a\ff
  a4\sfz\> a a a\!
  \override Hairpin.stencil = #constante-hairpin
  a4\> a a a\f
  a4\p\> a a a\ff
  a4\sfz\> a a a\!
}

[image of music]

Dinamiche e segni testuali allineati verticalmente

Tutti gli oggetti DynamicLineSpanner (forcelle e testi di dinamica) sono posti a una distanza minima dal rigo determinata da 'staff-padding. Se si imposta 'staff-padding su un valore abbastanza grande, le dinamiche saranno allineate.

music = \relative c' {
  a'2\p b\f
  e4\p f\f\> g, b\p
  c2^\markup { \huge gorgeous } c^\markup { \huge fantastic }
}

{
  \music
  \break
  \override DynamicLineSpanner.staff-padding = #3
  \textLengthOn
  \override TextScript.staff-padding = #1
  \music
}

[image of music]

Nascondere la linea di estensione per le dinamiche testuali

I cambi di dinamica in stile testuale (come cresc. e dim.) appaiono con una linea tratteggiata che mostra la loro estensione. Questa linea può essere soppressa nel modo seguente:

\relative c'' {
  \override DynamicTextSpanner.style = #'none
  \crescTextCresc
  c1\< | d | b | c\!
}

[image of music]

Nascondere la linea di estensione per le dinamiche testuali

Il testo usato per i crescendo e i decrescendo può essere cambiato modificando le proprietà di contesto crescendoText e decrescendoText.

Lo stile della linea dell’estensore può essere cambiato modificando la proprietà 'style di DynamicTextSpanner. Il valore predefinito è 'dashed-line; gli altri valori possibili sono 'line, 'dotted-line e 'none.

\relative c'' {
  \set crescendoText = \markup { \italic { cresc. poco } }
  \set crescendoSpanner = #'text
  \override DynamicTextSpanner.style = #'dotted-line
  a2\< a
  a2 a
  a2 a
  a2 a\mf
}

[image of music]

Vedi anche

Glossario Musicale: al niente, crescendo, decrescendo, forcella. Manuale di apprendimento: Articolazioni e dinamiche.

Guida alla notazione: Direzione e posizionamento, Nuove indicazioni dinamiche, Miglioramento dell’output MIDI, Gestione delle dinamiche nel MIDI.

Frammenti: Expressive marks.

Guida al funzionamento interno: DynamicText, Hairpin, DynamicLineSpanner, Dynamics.


Nuove indicazioni dinamiche

Il modo più semplice per creare indicazioni dinamiche è usare gli oggetti \markup.

moltoF = \markup { molto \dynamic f }

\relative {
  <d' e>16_\moltoF <d e>
  <d e>2..
}

[image of music]

In modalità markup, si possono creare dinamiche editoriali (racchiuse tra parentesi normali o quadrate). La sintassi della modalità markup è descritta in Formattazione del testo.

roundF = \markup {
    \center-align \concat { \bold { \italic ( }
           \dynamic f \bold { \italic ) } } }
boxF = \markup { \bracket { \dynamic f } }
\relative {
  c'1_\roundF
  c1_\boxF
}

[image of music]

È possibile creare semplicemente indicazioni dinamiche centrate verticalmente con la funzione make-dynamic-script.

sfzp = #(make-dynamic-script "sfzp")
\relative {
  c'4 c c\sfzp c
}

[image of music]

In generale, make-dynamic-script assume come argomento qualsiasi oggetto markup. Il tipo di carattere per la dinamica contiene solo i caratteri f,m,p,r,s e z; dunque, se si desidera creare un’indicazione dinamica che contenga testo semplice e simboli di punteggiatura, occorre usare dei comandi markup che ripristinino la famiglia e la codifica del tipo di carattere per il testo normale, ad esempio \normal-text. Il vantaggio nell’uso di make-dynamic-script al posto di un normale markup è l’allineamento verticale degli oggetti markup e delle forcelle collegate alla stessa testa di nota.

roundF = \markup { \center-align \concat {
           \normal-text { \bold { \italic ( } }
           \dynamic f
           \normal-text { \bold { \italic ) } } } }
boxF = \markup { \bracket { \dynamic f } }
mfEspress = \markup { \center-align \line {
              \hspace #3.7 mf \normal-text \italic espress. } }
roundFdynamic = #(make-dynamic-script roundF)
boxFdynamic = #(make-dynamic-script boxF)
mfEspressDynamic = #(make-dynamic-script mfEspress)
\relative {
  c'4_\roundFdynamic\< d e f
  g,1~_\boxFdynamic\>
  g1
  g'1~\mfEspressDynamic
  g1
}

[image of music]

Si può usare anche la forma Scheme della modalità markup. La sintassi è spiegata in Markup construction in Scheme.

moltoF = #(make-dynamic-script
            (markup #:normal-text "molto"
                    #:dynamic "f"))
\relative {
  <d' e>16 <d e>
  <d e>2..\moltoF
}

[image of music]

Per allineare a sinistra il testo di dinamica invece di centrarlo su una nota, si usa un \tweak:

moltoF = \tweak DynamicText.self-alignment-X #LEFT
         #(make-dynamic-script
            (markup #:normal-text "molto"
                    #:dynamic "f"))
\relative {
  <d' e>16 <d e>
  <d e>2..\moltoF <d e>1
}

[image of music]

Le impostazioni dei tipi di carattere in modalità markup sono descritti in Scelta del tipo di carattere e della dimensione.

Vedi anche

Guida alla notazione: Formattazione del testo, Scelta del tipo di carattere e della dimensione, Miglioramento dell’output MIDI, Gestione delle dinamiche nel MIDI.

Extending LilyPond: Markup construction in Scheme.

Frammenti: Expressive marks.


LilyPond — Guida alla Notazione v2.23.82 (ramo di sviluppo).