Home

Videoscrittura musicale¶

Indice¶

  • Introduzione
  • Prerequisiti
  • Installazione
  • Ambienti operativi
  • Risorse in rete
  • Struttura dei files
  • Titoli e intestazioni
  • Formattazione della pagina
    • Paper
    • Layout
    • Blocco score e contesti
    • Nomi, chiavi, tempo e tonalità
    • Pit stop n°1
    • Esercitazione n°1
  • Altezze
    • Assolute
    • Relative
    • Alterazioni
    • Accordi
    • Voci
    • Sequenze
    • Pit stop n°2
    • Esercitazione n°2
  • Durate
    • Gruppi regolari
    • Punti e pause
    • Gruppi irregolari
    • Beaming
    • Abbellimenti e Senza Tempo
    • Pit stop n°3
    • Esercitazione n°3
  • Post eventi
  • Dinamiche
    • Su nota
    • Forcelle
    • Allineamento
    • Esercitazione n°4
  • Legature
    • Di valore
    • Di portamento
    • Di frase
    • Pit stop n°4
    • Esercitazione n°5
  • Segni vari
    • Articolazioni, Ornamenti, Corone, Tecniche e ripetizione
    • Diteggiature
    • Posizione
    • Indicazioni testuali e respiri
    • Pit stop n°5
    • Portamento e glissando
    • Arpeggio
    • Trilli
    • Ribattuti e Tremolo
    • Pit stop n°6
    • Esercitazione n°6
  • Misure
    • Anacrusi
    • Tipi di stanghette
    • Senza misura
    • Numeri di battuta
    • Segni di chiamata
    • Glifi
    • Esercitazione n°7
  • Tempi composti e suddivisioni
  • Cambi di tonalità
  • Ritornelli
  • Ripetizioni
    • Pit stop n°7
    • Esercitazione n°8
  • Notazioni specialistiche.
  • Output MIDI.
  • Modificha delle impostazioni predefinite (partiture non tradizionali).

Introduzione Indice

Questo scritto vuole fornire le conoscenze di base necessarie alla realizzazione di sketches e partiture musicali attraverso il software Lilypond ed è propedeutico a quello dedicato alla composizione algoritmica (Computer Aided Composition) con python.

Per chi volesse approfondire specifici argomenti sotto i titoli dei paragrafi c'è un link che rimanda ai manuali on line.

Prerequisiti Indice

Conoscenza di base della struttura dei linguaggi di Markup come Latex o HTML e degli elementi comuni ai linguaggi di programmazioni come variabili e funzioni.

Installazione Indice

  • Utenti MAC: Istruzioni .
  • Utenti WIN: Istruzioni.

Ambienti operativi Indice

In [ ]:
\version "2.24.1" 
\language "english"  
\header {tagline = ""} 

\relative c'' {a b c d}

Possiamo eseguire il codice di questo notebook in due modi:

  1. Copia e incolla dalle celle in Frescobaldi.
  2. Copia e incolla in un file di testo con estensione .ly generato e salvato ad esempio con VSCode per poi eseguirlo da linea di comando dal Terminale.
In [ ]:
lilypond --output=provaly --pdf PATH_AL_FILE.ly                                         

Genera un file pdf con il risultato grafico.

In [ ]:
lilypond -dresolution=300 -dpixmap-format=pngalpha --output=provaly --png PATH_AL_FILE.ly 

Genera un file png con il risultato grafico.

Possiamo poi visualizzare il file png in un Notebook come questo.

In [1]:
from IPython.display import HTML 
HTML('<center><img src="esempi/01_Scrivi.png" width="35%"></center>')
Out[1]:

Risorse in rete Indice

  • Introduzione.
  • Editor on line (Hacklily).
  • Manuale di apprendimento.
  • Manuale di approfondimento.

Struttura dei files Indice

Per approfondire: Input e Output.

Tutti i files Lilypond devono contenere:

  • la dichiarazione di quale versione stiamo utilizzando. Per ottenere quasta informazione possiamo digitare nel Terminale.
In [ ]:
lilypond --version
  • quale lingua vogliamo utilizzare per i nomi delle note (consiglio l'inglese per velocizzare la scrittura).
c  d  e  f  g   a  b
do re mi fa sol la si
  • una sezione dedicata ai Titoli e alla Formattazione delle pagine,
  • una dedicata ai dati in Input (contenuto musicale)
  • una con informazioni riguardanti i files di Output.

N.B. I commenti sono preceduti dal simbolo '%'.

In [ ]:
#(set! paper-alist (cons '("mio formato" . (cons (* 80 mm) (* 30 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0}  
\header {tagline = ""} 

% --------------------------------------

\version "2.24.1"                       % Versione
\language "english"                     % Lingua per nomi note

% --------------------------------------
    
\header {}                              % Titoli  
\paper {}                               
 
% -------------------------------------- Input (Contenuto musicale)

\book {                                 % Crea un singolo file .pdf
       \bookOutputName "02_Struttura"   % Nome del pdf e del file midi
       
% --------------------------------------
       
       \score {                         % Un singolo movimento o brano separato nel file Book
                                        % Un blocco Score può contenere una sola espressione 
                                        % musicale      
% --------------------------------------
               
               \new Staff {             % Tipo di Rigo (singolo, pianof, etc.)
                           \new Voice {
                                       {c'' a' b' c''} % Espressione musicale
                                       }
                          }
               
% -------------------------------------- Output
               
               \layout{}                % Formattazione sistemi (Genera output per la stampa)
                                        % - Se interno a Score influenza solo quel brano
                                        % - Se interno a Book tutto il file
               
               \midi{}                  % Genera output per il midi
               }
        }
In [2]:
from IPython.display import HTML 
HTML('<center><img src="esempi/02_Struttura.png" width="36%"></center>')
Out[2]:

Titoli e intestazioni Indice

Per approfondire: Titoli e intestazioni.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 80 mm) (* 80 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0}  
\layout{#(layout-set-staff-size 20) indent = 20 short-indent = 0} 
                
\header {                            % Possiamo omettere quelli che non desideriamo...
         dedication = "Dedica"
         title = "Titolo"
         subtitle = "Sottotitolo"
         subsubtitle = "Sotto-sottotitolo"
         instrument = "Strumento"
         composer = "Compositore"
         arranger = "Arrangiatore"
         poet = "Paroliere"
         meter = "Metro"
         piece = "Brano"
         opus = "Opera"
         copyright = "Copyright"
         tagline = "Tagline"
}      

{c'' a' b' c''}
In [3]:
from IPython.display import HTML 
HTML('<center><img src="esempi/03_Titoli.png" width="36%"></center>')
Out[3]:

Formattazione della pagina Indice

Per approfondire: Formattazione della pagina.

Per formattare la pagina abbiamo a disposizione due blocchi:

  • \paper()
  • \layout()

Paper Indice

Per approfondire: Paper Block.

Include le regole da applicare a tutte le partiture di un libro o di una parte, come l’altezza del foglio o se stampare o meno i numeri di pagina, etc.

In [ ]:
\version "2.24.1"                       
\language "english" 
\header { title = "Titolo" tagline = ""}  

#(set! paper-alist (cons '("mio formato" . (cons (* 500 mm) (* 500 mm))) paper-alist) ) % formato custom

\paper {
%        #(set-paper-size "a4landcape") % Default, se si cambia viene riscalata automaticamente...
%       #(set-paper-size "letter")
%       #(set-paper-size "tabloid")
%       #(set-paper-size "a4" 'landscape)
%       #(set-paper-size "a4" 'portrait) 
       #(set-paper-size "mio formato")   % formato custom
    
% --------------------- margini assoluti
 
        top-margin = 10         % in mm di default
        bottom-margin = 10
        left-margin = 10
        right-margin = 10
    
% --------------------- spaziatura flessibile

        top-markup-spacing.basic-distance    = 20 % Distanza tra margine e testo (titolo)
        markup-system-spacing.basic-distance = 20 % Distanza del primo rigo dal titolo
        system-system-spacing.basic-distance = 15 % Distanza tra sistemi
        last-bottom-spacing.basic-distance   = 20 % Distanza tra margine inferiore e ultimo rigo 
                                                  % (riformatta tutto dinamicamente...)
                                                                                 
        top-system-spacing.basic-distance = 40    % Distanza tra margine superiore e primo rigo 
                                                  % se non è presente il titolo come nella seconda pagina
%       systems-per-page = 5                      % Opzionale...
        }

{\repeat unfold 10 {s1  \break}}
In [4]:
from IPython.display import HTML 
HTML('<center><img src="esempi/04_Paper.png" width="95%"></center>')
Out[4]:

Layout Indice

Per approfondire: Score-layout.

Include le impostazioni di formattazione della partitura, come il numero di sistemi da usare o lo spazio tra i gruppi di righi, etc.

In [ ]:
\version "2.24.1"                       
\language "english" 

\header {tagline = ""} 

#(set! paper-alist (cons '("mio formato" . (cons (* 100 mm) (* 100 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0}  

\layout{
        #(layout-set-staff-size 20) % Staff size
        indent = 50              % Controlla il rientro del primo rigo
        short-indent = 10        % Controlla il rientro degli altri righi
} 

{\repeat unfold 5 {s1 \break}}
In [5]:
from IPython.display import HTML 
HTML('<center><img src="esempi/05_Layout.png" width="40%"></center>')
Out[5]:

Blocco Score e contesti Indice

Per approfondire: Contesti, Aspetto del rigo.

Nella struttura del file dopo aver scritto eventuali titoli e formattato le pagine dobbiamo inserire la partitura vera e propria attraverso il blocco Score.

In [ ]:
\version "2.24.1"                     
\language "english" 

\header {tagline = ""} 

#(set! paper-alist (cons '("mio formato" . (cons (* 80 mm) (* 30 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 12 short-indent = 0} 

\score {                       
        \new Staff {                                       % Tipo di Rigo (singolo, pianof, etc.)
                    \new Voice = "Ciccio" {                % Voce nel rigo
                                           {c'' a' e' c''} % Espressione musicale
                                           }
                    }
        }
In [6]:
from IPython.display import HTML 
HTML('<center><img src="esempi/06_Score.png" width="35%"></center>')
Out[6]:

Possiamo notare come Staff e Voice siano precedute dalla keyword \new. Questi si chiamano contesti che hanno struttura gerarchica e ognuno contiene delle regole proprie e dei parametri di default:

  • \Score{ }. Un contesto Score può contenere molti contesti Staff.
  • \Staff{ }. Un contesto Staff può contenere molti contesti Voice.
  • \Voice{ }.

Ogni contesto è responsabile della creazione di alcuni oggetti della notazione, di far rispettare alcune regole di notazione e di conservare le proprietà associate.

Ad esempio, il contesto Voice può introdurre un’alterazione e poi il contesto Staff mantiene la regola per mostrare o sopprimere l’alterazione per il resto della misura.

Per spartiti molto semplici, i contesti vengono creati implicitamente con valori di default:

In [ ]:
\version "2.24.1"                     
\language "english" 

\header {tagline = ""} 

#(set! paper-alist (cons '("mio formato" . (cons (* 80 mm) (* 30 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 12 short-indent = 0} 

{c'' a' e' c''} % Solo espressione musicale
In [7]:
from IPython.display import HTML 
HTML('<center><img src="esempi/07_Contesti_1.png" width="35%"></center>')
Out[7]:

Notiamo che in input abbiamo specificato solo le altezze e Lilypond ha creato automaticamente i contesti Voice, Staff e Score utilizzandone i parametri di default per la chiave, il tempo e la durata delle note.

Per partiture più complesse è meglio specificare tutti i contesti che possono essere suddivisi in tre livelli:

  • Livello superiore - contenitori di righi

    • StaffGroup - E' semplicemente un insieme di righi, con una parentesi quadra all’inizio e le stanghette che li attraversano.
    • ChoirStaff - Identico a StaffGroup eccetto che le stanghette dei righi in esso contenuti non sono connesse verticalmente.
    • GrandStaff - Un gruppo di righi, con una parentesi graffa sul lato sinistro, che raggruppa insieme i righi. Le stanghette dei righi in esso contenuti sono connessi verticalmente.

    • PianoStaff - Identico a GrandStaff, ma con il supporto ai nomi degli strumenti a sinistra di ogni sistema.

    In questo livello per inserire più righi dobbiamo includerli tra i simboli << Staff1 Staff2 ... >>.

  • Livello intermedio - righi

    • Staff - Gestisce chiavi, stanghette, armature di chiave, alterazioni. Può contenere contesti Voice.
    • RhythmicStaff - Come Staff ma per le ritmiche. Le altezze vengono ignorate e le note appaiono su una linea. L’output MIDI conserva le altezze inalterate.
    • TabStaff - Contesto per generare l’intavolatura (o tablatura). La forma predefinita è quella dell’intavolatura per chitarra, con sei linee.
    • DrumStaff - Contesto per gli strumenti percussivi. Può contenere DrumVoice.
    • VaticanaStaff - Identico a Staff, a parte il fatto che è progettato per rappresentare un brano in stile gregoriano.
    • MensuralStaff - Identico a Staff, a parte il fatto che è progettato per rappresentare un brano in stile mensurale.

      In questo livello per inserire più voci dobbiamo includerli tra i simboli << Voice1 Voice2 ... >>.

  • Livello inferiore - voci

    • Voice - Corrisponde a una voce di un rigo. Questo contesto gestisce la conversione di segni di dinamica, gambi, travature, apici e pedici, legature di portamento e di valore e pause.
    • VaticanaVoice - Identico a Voice, a parte il fatto che è progettato per rappresentare un brano in stile gregoriano.
    • MensuralVoice - Identico a Voice, con delle modifiche per rappresentare un brano in stile mensurale.
    • Lyrics - Corrisponde a una voce con testo vocale. Gestisce la stampa di una singola linea di testo vocale.
    • DrumVoice - Il contesto della voce usato in un rigo per percussioni.
    • FiguredBass - Il contesto in cui sono creati gli oggetti BassFigure a partire dall’input inserito in modalità \figuremode.
    • TabVoice - Il contesto della voce usato all’interno di un contesto TabStaff. Solitamente omesso così che sia creato implicitamente.
    • CueVoice - Un contesto della voce usato per rappresentare note a dimensione ridotta, inteso soprattutto per aggiungere citazioni in corpo più piccolo a un rigo. Solitamente omesso così che sia creato implicitamente.
    • ChordNames - Crea e dispone i nomi degli accordi.
In [ ]:
\version "2.24.1"                       
\language "english" 

\header {tagline = ""}    

#(set! paper-alist (cons '("mio formato" . (cons (* 80 mm) (* 50 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 12 short-indent = 0} 

\score {                                   % inizio di una singola espressione musicale composta
% ---------------------------------------- % Livello superiore
        \new StaffGroup                    % senza parentesi...
% ---------------------------------------- % Livello intermedio
                         <<                % inizio di una sezione di righi simultanei
                           \new Staff {    % crea primo rigo 
% ---------------------------------------- % Livello inferiore
                                       <<  % inizio di una sezione di voci simultanee
                                         \new Voice = "s"  {\voiceOne { a'  b'  c'' d''} }
                                         \new Voice = "c"  {\voiceTwo { c'  d'  e'  f' } }
                                       >>  % fine di una sezione di voci simultanee
                                       }
                           \new Staff {    % crea secondo rigo 
                                       <<  % inizio di una sezione di voci simultanee
                                         \new Voice = "a" {\voiceThree { c'  d'  e'  f'} }
                                         \new Voice = "b" {\voiceFour  { c'  g   a   f }  }
                                       >>  % fine di una sezione di voci simultanee
                                       }
                         >>                % fine di una sezione di righi simultanei
                         
       }
In [8]:
from IPython.display import HTML 
HTML('<center><img src="esempi/08_Contesti_2.png" width="35%"></center>')
Out[8]:

A questo link possiamo trovare dei Modelli di partiture con diverse caratteristiche.

Nomi degli strumenti, chiavi, indicazioni di tempo e tonalità Indice

Per approfondire: Nomi degli strumenti, Chiavi, Indicazioni di tempo e Tonalità

Per inserire i nomi degli strumenti dobbiamo utilizzare \with all'interno del blocco Staff mentre per quanto riguarda le indicazioni di tempo e la tonalità possiamo specificarle direttamente all'interno del blocco Voice:

Pit stop 1 Indice

In [ ]:
\version "2.24.1"                       
\language "english" 
      
% ------------------------------------------ Formattazione pagina  

#(set! paper-alist (cons '("mio formato" . (cons (* 200 mm) (* 200 mm))) paper-alist) ) 
    
\paper {#(set-paper-size "mio formato")                          
        right-margin = 13
        top-markup-spacing.basic-distance = 8      
        markup-system-spacing.basic-distance = 15 
        system-system-spacing.basic-distance = 15 
        last-bottom-spacing.basic-distance = 20  
        top-system-spacing.basic-distance = 20
        } 

% ------------------------------------------ Formattazione Sistema  

\layout{#(layout-set-staff-size 20)                    
        indent = 20            
        short-indent = 10   
        } 

% ------------------------------------------ Titoli  

\header {title = "Brano" composer = "Me Medesimo" tagline = ""}               

% ------------------------------------------ Partitura  

\score{
       \new Staff \with {instrumentName = "Violino"          % Primo staff
                         shortInstrumentName = "Vl. "        % Dal secondo in poi
                         }
       \new Voice {\override Score.MetronomeMark.padding = 3 % Sposta in verticale
                   \tempo "Andante" 4 = 100                  % Tempi
                   \time 2/4                   
                   \clef treble                              % Chiavi
                   \key e \major                             % Tonalità

                   \repeat unfold 6 {s2 \break}}             % Espressioni musicali
       }
In [9]:
from IPython.display import HTML 
HTML('<center><img src="esempi/09_Pit_stop_1.png" width="70%"></center>')
Out[9]:

Esercitazione n° 1 - Generare tre partiture:

  1. Esempio musicale di un rigo da includere come immagine in un testo scritto (adattare dimensione pagina ridotta di un singolo sistema). Tempo: nessuno, misura: 4/4, tonalità: Do maggiore. Nessun nome di strumento.
  1. Partitura per Pianoforte (A4 - Landscape). Il primo sistema ha un'accollatura. Tempo: Allegro, misura: 3/4, tonalità: La maggiore. Il nome dello strumento deve comparire solo nel primo sistema.
  1. Partitura per Coro di 3 sistemi in una singola pagina (A4 - Portrait). Il primo sistena non ha un'accollatura. Tempo: Largo, ottavo = 52, misura: 5/8, tonalità: Sol minore. Il nome delle voci deve apparire abbreviato in tutti i sistemi. </div>

Altezze Indice

Possiamo inserire le altezze musicali delle note in due modalità differenti:

Assolute Indice

Per approfondire: Ottava assoluta.

Per ogni nota dobbiamo specificare l'ottava utilizzando i simboli apice e virgola oppure stabilire all'inizio una nota perno (root note).

In [ ]:
\version "2.24.1"                     
\language "english"

\header {tagline = ""}    

#(set! paper-alist (cons '("mio formato" . (cons (* 100 mm) (* 60 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}  

{c,, g,, c, g, c g c' g' c'' g'' c''' g''' \break} % Su ogni nota \break = a capo

\fixed c' {c d e f g a b c' d' e' f' g'}           % Fissando una nota perno
In [10]:
from IPython.display import HTML 
HTML('<center><img src="esempi/10_Altezze_1.png" width="45%"></center>')
Out[10]:

Relative Indice

Per approfondire: Ottava relativa.

Questa modalità è definita dalla keyword \relative e da una nota di riferimento posta prima dell'espressione musicale.

Ogni ottava è determinata dall’ultima nota: se cambiamo l’ottava di una nota, cambieranno anche le ottave di tutte quelle successive.

In [ ]:
\version "2.24.1"                      
\language "english" 

\header {tagline = ""}    

#(set! paper-alist (cons '("mio formato" . (cons (* 100 mm) (* 40 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}  
    
\relative c' {c d e f g a b c } 

\relative c' {d g c f, c' a, e'' c}       % Cambi d'ottava
In [11]:
from IPython.display import HTML 
HTML('<center><img src="esempi/11_Altezze_2.png" width="45%"></center>')
Out[11]:

Alterazioni Indice

Per approfondire: Alterazioni.

Per inserire alterazioni delle altezze in lingua inglese dobbiamo aggiungere i seguenti suffissi:

  • Semitoni

    • f = flat (benolle).
    • ff = doppio bemolle.
    • s = sharp (diesis).
    • ss = doppio diesis.
    • ! = natural (bequadro).
    • ? = fra parentesi.
  • Quarti di tono

    • qs = semi diesis.
    • qf = semi bemolle.
    • tqs = sesqui diesis.
    • tqf = sesqui bemolle.
In [ ]:
\version "2.24.1"                       
\language "english" 

\header {tagline = ""}    

#(set! paper-alist (cons '("mio formato" . (cons (* 100 mm) (* 40 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0} 

\relative c' {c cs css d a'! af aff? g? } % Possiamo anche non specificare la nota perno iniziale. 

\relative c' {c cqs cs ctqs a' aqf af atqf} 
In [12]:
from IPython.display import HTML 
HTML('<center><img src="esempi/12_Alterazioni.png" width="45%"></center>')
Out[12]:

Accordi Indice

Per approfondire: Accordi.

Se vogliamo scrivere accordi dobbiamo includere le note desiderate tra i simboli < note_accordo >.

In [ ]:
\version "2.24.1"                       
\language "english" 

\header {tagline = ""}    

#(set! paper-alist (cons '("mio formato" . (cons (* 100 mm) (* 30 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0} 

\relative c' { <c e g c> <d f g b> <e g c> g <fs a> gs <e e'> <a a>}
In [13]:
from IPython.display import HTML 
HTML('<center><img src="esempi/13_Accordi.png" width="45%"></center>')
Out[13]:

Voci Indice

Per approfondire: Voci.

Possiamo scrivere più voci all'interno dello stesso rigo in tre modi:

Esplicitandole¶

In [ ]:
\version "2.24.1"                       
\language "english" 

\header {tagline = ""}    

#(set! paper-alist (cons '("mio formato" . (cons (* 100 mm) (* 30 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0} 

\new Staff <<
             \new Voice = "prima"
                        \relative c'' { \voiceOne c e g f e f d c }
             \new Voice = "seconda"
                        \relative c'' { \voiceTwo c g e f g a b c }
           >>
In [14]:
from IPython.display import HTML 
HTML('<center><img src="esempi/14_Voci_1.png" width="45%"></center>')
Out[14]:

Polifonia temporanea¶

In [ ]:
\version "2.24.1"                       
\language "english" 

\header {tagline = ""}    

#(set! paper-alist (cons '("mio formato" . (cons (* 100 mm) (* 30 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}

\new Staff 
          \new Voice = "double"
                    \relative c'' { c                               % una voce
                                     <<           {\voiceOne e  g } % due voci
                                       \new Voice {\voiceTwo g, e }
                                     >>
                                  \oneVoice                         % una voce
                                  f e f 
                                     <<           {\voiceOne d c }  % tre voci
                                       \new Voice {\voiceTwo b c }
                                       \new Voice {\voiceThree <e' gs> <g' fs> }
                                      >>
                                   }
In [15]:
from IPython.display import HTML 
HTML('<center><img src="esempi/15_Voci_2.png" width="45%"></center>')
Out[15]:

Abbreviazione sintattica¶

In [ ]:
\version "2.24.1"                       
\language "english" 

\header {tagline = ""}    

#(set! paper-alist (cons '("mio formato" . (cons (* 100 mm) (* 30 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}

\new Staff 
          << 
            \relative c'' { c  e g f e f d c } 
            \\
            \relative c'  { c2   c   c   c   }
            \\
            \relative c'' { c4 g e f g a b c }
          >>
In [16]:
from IPython.display import HTML 
HTML('<center><img src="esempi/16_Voci_3.png" width="45%"></center>')
Out[16]:

In quest'ultima modalità l'ordine delle voci è il seguente:

  • Voce 1: la più alta
  • Voce 2: la più bassa
  • Voce 3: la seconda più alta
  • Voce 4: la seconda più bassa
  • Voce 5: la terza più alta
  • Voce 6: la terza più bassa
  • etc.

Le voci pari hanno la gambetta in giù mentre quelle dispari in su.

Sequenze musicali Indice

Per approfondire: Modifica più altezze.

Per inserire sequenze musicali in uno o più righi possiamo sfruttare alcune procedure comuni dei linguaggi formali sia informatici che musicali.

Una di queste consiste nell'assegnare frammenti di sequenze musicali a variabili che potremo in seguito richiamare, modificare, iterare, etc.

In [ ]:
\version "2.24.1"                       
\language "english" 

\header {tagline = ""}    

#(set! paper-alist (cons '("mio formato" . (cons (* 100 mm) (* 40 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}

primo   = {c' e' g' c''} % Assegna la sequenza a una variabile
secondo = {d' f' a' c''}  
quinto  = {d' f' g' b'}   
         
{\primo \secondo \quinto \retrograde \primo \transpose d' a \secondo \retrograde \quinto \primo}
In [17]:
from IPython.display import HTML 
HTML('<center><img src="esempi/17_Variabili.png" width="45%"></center>')
Out[17]:

Questa procedura è quella che utilizzeremo nel Notebook dedicato alla Composizione algoritmica con python.

Pit stop 2 Indice

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 200 mm) (* 90 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}

\header {title = "Altezze"       
         composer = "Me Medesimo"
         tagline = ""}                                            

% ------------------------------------------ Variabili (frammenti musicali)

assolute = {c' e' g' c''}                                                      
relaa = \relative c'  { e gs b e}                                          
relab = \relative c'' { d g, e d'}        

semit =   \relative c' { c cs css d a' af aff g}  
quartit = \relative c' { c cqs cs ctqs a' aqf af atqf}  

acco = \relative c' { <c e g c> <d f g b> <e g c> g <fs a> gs <e e'> <a a>}  
                                          
vocia = \relative c'' { c                              
                        <<           {\voiceOne e  g } 
                          \new Voice {\voiceTwo g, e }
                        >>
                          \oneVoice                         
                          c'' b cs? 
                        <<           {\voiceOne d c }  
                          \new Voice {\voiceTwo b c }
                        >>
                    }

vocib = \relative c'' { <<
                         {g b g a g  b c e }   
                         \\        
                         {e, c c  f e  g f  d} 
                         \\       
                         {d  c b c  f  e d g}
                         >>
                       }   
                                     
% ------------------------------------------ Partitura
                   
\score{
       \new Staff \with {instrumentName = "Violino"}
          
            \new Voice {\override Score.MetronomeMark.padding = 3
                        \tempo "Andante" 4 = 100            % Tempi
                        \time 4/4                   
                        \clef treble                        % Chiavi
                        \key a \major                       % Tonalità

                        \assolute                           % Variabili...
                        \relaa
                        \relab
                        \semit   \break % va a capo...
                        \quartit
                        \acco    \break % va a capo...
                        \vocia
                        \vocib 
                        }                           
     }
In [18]:
from IPython.display import HTML 
HTML('<center><img src="esempi/18_Pit_stop_2.png" width="80%"></center>')
Out[18]:

Esercitazione n° 2 - Realizzare la partitura di un brano omoritmico per uno strumento polifonico (o più strumenti polifonici) di almeno 10 misure che includa le diverse tematiche tipografiche e musicali affrontate fino a questo paragrafo (una voce, più voci, polifonia temporanea ed accodi di densità diversa).

Durate Indice

Per approfondire: Durate.

Per inserire durate musicali dobbiamo aggiungere un numero subito dopo l'altezza.

La durata specificata viena adottata anche dalle note successive in assenza di nuove indicazioni.

Gruppi regolari Indice

Il numero uno corrisponde al valore dell'intero e per le altre durate specifichiamo le suddivisioni.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 200 mm) (* 40 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}    

% ------------------------------------------ Variabili

durate = \relative c'' {a1              
                        a2 a4 a8 a   
                        a16 a a a a32 a a a a64 a a a a a a a a2 
                        }

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Violino"}
          
             \new Voice {\override Score.MetronomeMark.padding = 3
                             \tempo "Andante" 4 = 100         % Tempi
                             \time 4/4                   
                             \clef treble                     % Chiavi
                             \key a \major                    % Tonalità
                         
                             \durate                          % Musica
                        }
      }
In [19]:
from IPython.display import HTML 
HTML('<center><img src="esempi/19_Durate.png" width="80%"></center>')
Out[19]:

Punti, pause e note spaziatrici Indice

Per approfondire: Pause.

  • Per i punti di valore basta aggiungerli dopo l'indicazione di durata.
  • Per le pause dobbiamo scrivere r (rest) come indicazione dell'altezza e poi specificarne la durata. Se vogliamo una posizione specifica sul rigo dobbiamo specificare un'altezza e utilizzare la keyword \rest dopo l'indicazione di durata.
  • Se vogliamo uno spazio bianco che corrisponde ad una durata dobbiamo scrivere s (spazio) come indicazione dell'altezza e poi specificarne la durata.
In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 200 mm) (* 40 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}    

% ------------------------------------------ Variabili

punto  = \relative c' { a4. a8 a8. a16 a a8.}
pausea = \relative c' { r4.. a16 r8. a16 r a8.}
pauseb = \relative c' { a4\rest d4\rest r2}    % specifica la posizione sul rigo...
spazio = \relative c' { c4 s4 c8 c8 c4}

% ------------------------------------------ Partitura
                    
\score{
       \new Staff \with {instrumentName = "Flauto"}
          
        \new Voice {\override Score.MetronomeMark.padding = 3
                    \tempo "Andante" 4 = 100       % Tempi
                    \time 4/4                   
                    \clef treble                   % Chiavi
                    \key a \major                  % Tonalità
                               
                    \punto  
                    \pausea
                    \pauseb
                    \spazio
                   }
       }
In [20]:
from IPython.display import HTML 
HTML('<center><img src="esempi/20_Pause.png" width="85%"></center>')
Out[20]:

Gruppi irregolari Indice

Per approfondire: Gruppi irregolari.

Se vogliamo inserire gruppi irregolari possiamo utilizzare il comando \tuplet 5/4 { c c c c c }.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 200 mm) (* 60 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}  

% ------------------------------------------ Variabili

irra = \relative c'' {
                      \tuplet 3/2 { f8 g a }
                      \tuplet 3/2 { c8 r c }
                      \tuplet 3/2 { f,8 g16 a g a }
                      \tuplet 3/2 { d4 a8 }
                      }

% ------------------ Stanghette orizzontali

irrb = \relative c'' {
                      \override TupletBracket.bracket-visibility = ##t
    
                      \tuplet 3/2 { f8 g a }
                      \tuplet 3/2 { c8 r c }
                      \tuplet 3/2 { f,8 g16 a g a }
                      \tuplet 3/2 { d4 a8 }
                      }

% ------------------ Se sono tanti valori uguali

irrc = \relative c' {
                     g2 r8 \tuplet 3/2 8 { c16 d e e f g g f e}
                     }

% ------------------ Posizione dell'indicazione

irrd =\relative c'' {
                     \tupletUp      \tuplet 3/2 { c8 d e }
                     \tupletNeutral \tuplet 3/2 { c8 d e }
                     \tupletDown    \tuplet 3/2 { f,8 g a }
                     \tupletNeutral \tuplet 3/2 { f8 g a }
                     }

% ------------------ Annidate...

irre = \relative c'' {
                      \override TupletBracket.bracket-visibility = ##t
    
                      c4 \tuplet 5/4 { f8 e f \tuplet 3/2 { e[ f g] } } f4
                      }

% ------------------------------------------ Partitura

\score{
        \new Staff \with {instrumentName = "Violino"}
          
            \new Voice {\override Score.MetronomeMark.padding = 4
                        \tempo "Andante" 4 = 100         % Tempi
                        \time 4/4                   
                        \clef treble                     % Chiavi
                        \key c \major                    % Tonalità

                        \irra  
                        \irrb   
                        \irrc
                        \irrd
                        \irre
                       }
}
In [21]:
from IPython.display import HTML 
HTML('<center><img src="esempi/21_Terzine.png" width="85%"></center>')
Out[21]:

Beaming (travature) Indice

Per approfondire: Travature.

Possiamo accorpare tra di loro in diversi modi i collegamenti tra gruppi di note con durate uguali racchiudendoli tra parentesi quadre.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 200 mm) (* 40 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}   

% ------------------------------------------ Variabili

trava = \relative c' {
                      c16 d ef [f g] f  [g a bf c] d ef f [g] a b, c1
                      }

travb = \relative c' {
                      \autoBeamOff               % Toglie il beaming automatico
                      a'8 c b4 d8. c16 b4    
                      \autoBeamOn                % Riattiva il beaming automatico
                      a8 c b4 d8. c16 bf4 
                      }

% ------------------------------------------ Partitura

\score{
        \new Staff \with {instrumentName = "Violino"}
          
            \new Voice {\override Score.MetronomeMark.padding = 3
                        \tempo "Andante" 4 = 100   % Tempi
                        \time 4/4                   
                        \clef treble               % Chiavi
                        \key bf \major             % Tonalità

                        \trava
                        \travb
                       }
}
In [22]:
from IPython.display import HTML 
HTML('<center><img src="esempi/22_Beaming.png" width="85%"></center>')
Out[22]:

Abbellimenti e Senza Tempo Indice

Per approfondire: Abbellimenti e cadenze.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 200 mm) (* 40 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}   

% ------------------------------------------ Variabili

%----------------------------- Abbellimenti

grace = \relative c'' {
                       c2 \grace { a32 b e f }  c2  
                          \appoggiatura b8  c2 
                          \acciaccatura b16 c2  
                       }

%----------------------------- Senza stanghette

stemOff = \hide Staff.Stem    
stemOn  = \undo \stemOff

nost = \relative c'' {
                      \stemOff       % Richiama la variabile
                      c4 a b e
                      f2 d
                      \stemOn        % Richiama la variabile
                      f4 d2.
                      }

% ------------------------------------------ Partitura

\score{
        \new Staff \with {instrumentName = "Violino"}
          
            \new Voice {\override Score.MetronomeMark.padding = 3
                        \tempo "Andante" 4 = 100   % Tempi
                        \time 4/4                   
                        \clef treble               % Chiavi
                        \key bf \major             % Tonalità

                        \grace
                        \bar "||"
                        \nost
                       }
}
In [23]:
from IPython.display import HTML 
HTML('<center><img src="esempi/23_Abbellimenti.png" width="85%"></center>')
Out[23]:

Possiamo trovare ulteriori approfondimenti su casi particolari come poliritmi, cadenze, tempi composti, etc. a questo Link.

Pit stop 3 Indice

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 200 mm) (* 80 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {title = "Durate"       
         composer = "Me Medesimo"
         tagline = ""} 

% ------------------------------------------ Variabili

durate = \relative c'' { a2 a4 a8 a }
pausea = \relative c'' { r4.. a16 r8. a16 r a8.}
irrego = \relative c' {
                       \override TupletBracket.bracket-visibility = ##t
                       \tuplet 3/2 { f8 g a }
                       \tuplet 3/2 { f g a }
                       \tuplet 3/2 { f g a }
                       \tuplet 3/2 { f g a }
                       }
trava = \relative c' {
                      c8 d ef [f g] f  [g a bf c] r4 r2
                      }
grace = \relative c' {
                      c'2 \grace { a32 b }  c2  
                          \appoggiatura b8  c2 
                          \acciaccatura b16 c2
}

% ------------------------------------------ Partitura

\score{
        \new Staff \with {instrumentName = "Violino"}
          
            \new Voice {\override Score.MetronomeMark.padding = 3
                        \tempo "Andante" 4 = 100   % Tempi
                        \time 4/4                   
                        \clef treble               % Chiavi
                        \key bf \major             % Tonalità

                        \durate
                        \pausea
                        \irrego \break
                        \trava
                        \grace
                       }
}
In [24]:
from IPython.display import HTML 
HTML('<center><img src="esempi/24_Pit_stop_3.png" width="85%"></center>')
Out[24]:

Esercitazione n° 3 - Riprodurre uno o più tra i seguenti frammenti di partitura.
Indice

In [25]:
from IPython.display import HTML 
HTML('<center><img src="media/eser_31.png" width="80%"></center>')
Out[25]:
In [26]:
from IPython.display import HTML 
HTML('<center><img src="media/eser_32.png" width="80%"></center>')
Out[26]:
In [27]:
from IPython.display import HTML 
HTML('<center><img src="media/eser_33.png" width="80%"></center>')
Out[27]:

Post-eventi Indice

Per approfondimenti: Post-eventi.

Quando inseriamo una nota dobbiamo seguire la seguente sintassi:

  • altezza durata post-eventi

I post-eventi corrispondono alle dinamiche, articolazioni, diteggiature, i numeri di corda, le legature di valore e portamento, e tutte le indicazioni legate a quella nota.

Dinamiche Indice

Per approfondimenti: dinamiche.

Su Nota Indice

Per approfondimenti: formattare testo.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 200 mm) (* 40 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}  
    
% ------------------------------------------ Sulla Nota

din = \relative c' {\override Score.MetronomeMark.padding = 5
                    \tempo "Presto" 2 = 234
                    \time 4/4
                 
                    c2\pp d'\sfz  
                    e,^\fff f'_\fz  
                    }

% ------------------------------------------ Custom
% Utilizzare \markup (testo)

moltoF = \markup { molto [ \dynamic p ] }   % Specifica dinamica in una variabile

cus = \relative c' {
                    <d e>16_\moltoF <d e> 
                    <d e>2..            
                    }
                    
% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Sho"}   
            \new Voice {
                        \din
                        \cus
                        }
}
In [28]:
from IPython.display import HTML 
HTML('<center><img src="esempi/25_Dinamiche.png" width="80%"></center>')
Out[28]:

Forcelle Indice

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 200 mm) (* 50 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}  

% ------------------------------------------ Variabili
% \<       \!              Crescendo
% \cr       \endcr
% \>       \!              Decrescendo
% \decr   \enddecr

% Se presente una dinamica o un nuovo crescendo o diminuendo non serve \!

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

% ------------------------------------------ Testuali

test = \relative c' {
                    % \override DynamicTextSpanner.style = #'none %toglie i trattini...
                     g8\cresc a b c b c d e\mf     
                     f8\decresc e d c e\> d c b  
                     a1\dim   ~                           
                     a2. r4\!                               
                     }

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Piccolo"}   
            \new Voice {
                        \forc \break
                        \test
                        }
}
In [29]:
from IPython.display import HTML 
HTML('<center><img src="esempi/26_Forcelle.png" width="80%"></center>')
Out[29]:

Allineamento Indice

Tutte le dinamiche sono posizionate il più vicino possibile alle note. Se vogliamo allinearle:

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 100 mm) (* 100 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}  

% ------------------------------------------ Orizzontale

oriz = \relative c' {
                     c1\<
                     \once \override Hairpin.shorten-pair = #'(1 . 1)  
                     c\<
                     \once \override Hairpin.shorten-pair = #'(2 . 1)   
                     c\<
                     \once \override Hairpin.shorten-pair = #'(3 . 1)  
                     c\< \break
                     \once \override Hairpin.shorten-pair = #'(3 . 1)  
                     c\>  
                     \once \override Hairpin.shorten-pair = #'(2 . 1)  
                     c\> 
                     \once \override Hairpin.shorten-pair = #'(1 . 1)  
                     c\> 
                     \once \override Hairpin.shorten-pair = #'(0 . 0)  
                     c\> \! \break
                     }

% ------------------------------------------ Verticale

vert = \relative c' {
                     \override DynamicLineSpanner.staff-padding = #5  % distanza dallo staff
                     a2\p b\f                
                     e4\p f\f\> g, b\p              
                     }

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Fischio"}   
            \new Voice {
                        \oriz 
                        \vert
                        }
}
In [30]:
from IPython.display import HTML 
HTML('<center><img src="esempi/27_Allineamento.png" width="40%"></center>')
Out[30]:

Esercitazione n° 4 - Riprodurre il seguente frammento di partitura.
Indice

In [31]:
from IPython.display import HTML 
HTML('<center><img src="media/eser_4.png" width="80%"></center>')
Out[31]:

Legature Indice

Di valore Indice

Per approfondimenti: Legature di valore.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 100 mm) (* 80 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}  

% ------------------------------------------ Una voce

% Si utilizza il simbolo tilde e si può omettere l'altezza delle note legate

val = \relative c' { 
                    a2~ a4~ a8 r8  
                    a'2~ 4~ 8 r8    % altezze omesse...
                    }

% ------------------------------------------ Accordi

acc = \relative c' {
                    <c e g>2~ 2                
                    <c e g>4~ <c e g c>
                    <c~ e g~ b> <c d g c>  
                    }

% ------------------------------------------ l.v.

lv = \relative c' {
                   <c f g>1 \laissezVibrer  
                  }

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Pipa"}   
            \new Voice {
                        \val \break
                        \acc \break
                        \lv
                        }
}
In [32]:
from IPython.display import HTML 
HTML('<center><img src="esempi/28_Valore.png" width="40%"></center>')
Out[32]:

Di portamento Indice

Per approfondimenti: Legature di portamento.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 100 mm) (* 40 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}  

% ------------------------------------------ Una voce

% Tra parentesi
% La prima ( segue la prima nota legata...

por = \relative c'' {
                     f4( g a) a8 b(  
                     a4 g2 f4)             
                     <c e>2( <b d>2) 
                     }

% ------------------------------------------ Portamento + Valore

mix = \relative c'' {
                     \tieSolid
                     \slurSolid
                     c4(~ c8 d~ 4 e)                             
                    } 

% ------------------------------------------ Doppie legature

dop = \relative c' {
                    \set doubleSlurs = ##t
                    <c e>4( <d f> <c e> <d f>)       
                    \set doubleSlurs = ##f
                    }

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Oboe"}   
            \new Voice {
                        \por
                        \mix
                        \dop
                        }
}
In [33]:
from IPython.display import HTML 
HTML('<center><img src="esempi/29_Portamento.png" width="40%"></center>')
Out[33]:

Di frase Indice

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 100 mm) (* 30 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 8 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}  

% ------------------------------------------ Una voce

% Per legature più lunghe che incorporano legature di portamento possiamo utilizzare \(

fra = \relative c'' { 
                     g4\( g8( a) b( c) b4\)                          
                    } 

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Liuto"}   
            \new Voice {
                        \fra
                        }
}
In [34]:
from IPython.display import HTML 
HTML('<center><img src="esempi/30_Frase.png" width="43%"></center>')
Out[34]:

Pit stop 4 Indice

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 200 mm) (* 100 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 10 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {title = "Dinamiche e Legature"       
         composer = "Me Medesimo"
         tagline = ""} 


% ------------------------------------------ Variabili

val = \relative c' { a2~\< \p a4~ a8\! r8 }
acc = \relative c' {
                    <c e g>2~\> 2  \!             
                    <c e g>4~ <c e g c>
                    <c~ e g~ b> <c e g b>  
                    }
por = \relative c'' {
                     f4(\cresc g a~) a8 \mf b(  
                     a4 \dim g2 f4) \p             
                     <c e>2 \>( <b d>2) \! 
                     }

mix = \relative c'' {
                     \tieSolid
                     \slurSolid
                     c4(~\pp c8 d~ 4 e)                             
                     } 
fra = \relative c'' { 
                     g4\( g8( a) b( c) b4~
                     b2\)  a(
                     g1)
                     } 

% ------------------------------------------ Partitura

\score{
        \new Staff \with {instrumentName = "Violino"}
          
            \new Voice {\override Score.MetronomeMark.padding = 3
                        \tempo "Andante" 4 = 100   % Tempi
                        \time 4/4                   
                        \clef treble               % Chiavi
                        \key bf \major             % Tonalità

                        \val
                        \acc \break
                        \por \break
                        \mix
                        \fra
                       }
}
In [35]:
from IPython.display import HTML 
HTML('<center><img src="esempi/31_Pit_stop_4.png" width="77%"></center>')
Out[35]:

Esercitazione n° 5 - Riprodurre il seguente frammento di partitura.
Indice

In [36]:
from IPython.display import HTML 
HTML('<center><img src="media/eser_5.png" width="77%"></center>')
Out[36]:

Segni vari Indice

Articolazioni, Ornamenti, Corone, Tecniche e ripetizione Indice

Elenco delle: articolazioni.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 200 mm) (* 70 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 8 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""} 

% ------------------------------------------ Articolazioni

arti = \relative c' {\override Score.MetronomeMark.padding = 4
                     \tempo "Andante" 4 = 124
                     \time 4/4
                  
                     c4-> d'-. e,-! f'-^  
                     c 4-- d'-_ e,-! f'\espressivo
                     }  
                        
% ------------------------------------------ Ornamenti

orna = \relative c' {
                     g4\trill a'\prall b,\turn c'\lineprall 
                     g 4\mordent a'\downmordent b,\prallmordent c'\reverseturn
                     } 

% ------------------------------------------ Corone

cor  = \relative c'' {
                      d2\fermata e,\shortfermata          
                      f'\longfermata g,\verylongfermata  
                      }  
            
% ------------------------------------------ Tecniche strumentali

strum  = \relative c'' {
                        a8\downbow b'\upbow c,\snappizzicato d,\halfopen e-+ f\flageolet g\thumb a\lheel 
                        }  
        
% ------------------------------------------ Ripetizioni

rip  = \relative c' {
                     a'2\segno b\coda         
                     f1 \varcoda  
                     }  

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Sho"}   
            \new Voice {
                        \arti
                        \orna \break
                        \cor
                        \strum
                        \rip
                        }
}
In [37]:
from IPython.display import HTML 
HTML('<center><img src="esempi/32_Segni.png" width="83%"></center>')
Out[37]:

Diteggiature Indice

Per approfondimenti: diteggiature.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 80 mm) (* 30 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 0 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}

% ------------------------------------------ Variabili

dit  = \relative c' {\override Score.MetronomeMark.padding = 4
                     \tempo "Andante" 4 = 124
                     \time 4/4
                  
                     b8-1 c'-4 d-5 e,-1 f-2 g'-5 a,-1 b-2                    
                     }  

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Fiddle"}   
            \new Voice {
                        \dit
                        }
}
In [38]:
from IPython.display import HTML 
HTML('<center><img src="esempi/33_Diteggiature.png" width=35%"></center>')
Out[38]:

Posizione Indice

Per approfondimenti: allineamento degli oggetti.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 80 mm) (* 40 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 4 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""} 

% ------------------------------------------ Rispetto al rigo

% -  Automatica
% _  Sotto
% ^  Sopra

posr  = \relative c' {\override Score.MetronomeMark.padding = 4
                      \tempo "Andante" 4 = 124
                      \time 4/4
                  
                      b8^> c'_> d_> e,^> f-> g'_> a,-> b_>                   
                      }  

% ------------------------------------------ Offset Verticale
% Unità per semitono rispetto al rigo centrale (0)

posv = \relative c''' {
                       a2 -\tweak Y-offset #0 ->       % (sul rigo centrale)
                       b -\tweak Y-offset #-5 _\fermata 
                      }

% ------------------------------------------ Offset Orizzontale

poso = \relative c'' {
                      a1 -\tweak X-offset #4 -\segno  
                      }

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Fiddle"}   
            \new Voice {
                        \posr 
                        \posv
                        \poso
                        }
}
In [39]:
from IPython.display import HTML 
HTML('<center><img src="esempi/34_Posizione.png" width=35%"></center>')
Out[39]:

Indicazioni testuali e respiri Indice

Per approfondimenti: indicazioni testuali e Respiri.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 100 mm) (* 50 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 2 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}

% ------------------------------------------ Variabili

txt = \relative c'' {
                     \once \override TextScript.self-alignment-X= -1  % allineamento X
                     c4^ \markup { con gioia }
                     b'   _\markup { \sharp } c, 
                     \once \override TextScript.self-alignment-X= -2  % allineamento X
                     d,   ^\markup { (\flat) }    
                     r1
                     }  

% ------------------------------------------ Ordine Verticale con altri segni

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

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

res = \relative c' {c2. \breathe d'4   
                    \override BreathingSign.text =\markup { \musicglyph "scripts.rvarcomma" }
                    c,2. \breathe d'4    
                    \override BreathingSign.Y-offset = #2.6
                    \override BreathingSign.text =\markup { \musicglyph "scripts.tickmark" }
                    c2.  \breathe d4    
                    \override BreathingSign.Y-offset = #1.7
                    \override BreathingSign.text = \markup {\musicglyph "scripts.caesura.straight"}                 
                    c2. \breathe d,4   
                    }

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Oboe"}   
            \new Voice {
                        \txt 
                        \ove
                        \res
                        }
}
In [40]:
from IPython.display import HTML 
HTML('<center><img src="esempi/35_Testi.png" width=40%"></center>')
Out[40]:

Pit stop 5 Indice

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 200 mm) (* 80 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 8 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {title = "Simboli vari"       
         composer = "Me Medesimo"
         tagline = ""} 

% ------------------------------------------ Variabili

arti = \relative c' { c4-> d'-. e,-! f'-^ }    
orna = \relative c'  { g4\trill a'\prall b,\turn c'\lineprall } 
cor  = \relative c'' { d2\fermata e,\shortfermata }  
strum  = \relative c'' { a8\downbow b'\upbow c,\snappizzicato d,\halfopen e-+ f\flageolet g\thumb a\lheel }  
rip  = \relative c' { a'2\segno b\coda }
dit  = \relative c' { b8-1 c'-4 d-5 e,-1 f-2 g'-5 a,-1 b-2 }  
txt = \relative c'' {
                     \once \override TextScript.self-alignment-X= -1  % allineamento X
                     c1^ \markup { con gioia }
                     }

% ------------------------------------------ Partitura

\score{
        \new Staff \with {instrumentName = "Violino"}
          
            \new Voice {\override Score.MetronomeMark.padding = 3
                        \tempo "Andante" 4 = 100   % Tempi
                        \time 4/4                   
                        \clef treble               % Chiavi
                        \key bf \major             % Tonalità

                        \arti
                        \orna
                        \cor \break
                        \strum
                        \rip
                        \dit
                        \txt
                       }
}
In [41]:
from IPython.display import HTML 
HTML('<center><img src="esempi/36_Pit_stop_5.png" width=85%"></center>')
Out[41]:

Portamento e glissando Indice

Per approfondimenti: Portamento e Glissando.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 100 mm) (* 50 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 7 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}

% ------------------------------------------ Portamento (sulla nota)

por = \relative c'' {
                     \override Score.SpacingSpanner.shortest-duration-space = #3.0 % lunghezza del portamento
                     c2\bendAfter #+4      
                     c2\bendAfter #-4              
                     \revert Score.SpacingSpanner.shortest-duration-space % Resetta
                     }

% ------------------------------------------ Glissando (tra due note)

gli = \relative c' {
                    g2 \glissando g'      
                    c2 \glissando c,       
                    \afterGrace f,1 \glissando f'16   
                   }

% ------------------------------------------ Apparenza

sti = \relative c'' {
                     d2 \glissando d'2    
                     \override Glissando.style = #'dashed-line
                     d,2 \glissando d'2    
                     \override Glissando.style = #'dotted-line
                     d,2 \glissando d'2     
                     \override Glissando.style = #'zigzag
                     d,2 \glissando d'2    
                     \override Glissando.style = #'trill
                     d,2 \glissando d'2   
                     \revert Glissando.style   % resetta
                     }

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Voce"}   
            \new Voice {
                        \por 
                        \gli
                        \sti
                        }
}
In [42]:
from IPython.display import HTML 
HTML('<center><img src="esempi/37_Glissando.png" width=40%"></center>')
Out[42]:

Arpeggio Indice

Per approfondimenti: Arpeggio.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 100 mm) (* 30 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 7 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}

% ------------------------------------------ Semplici

cho = <c e g c>2   % Accordo

arp = \relative c'{
                    \arpeggioNormal
                    \cho \arpeggio

                    \arpeggioArrowUp
                    \cho \arpeggio

                    \arpeggioArrowDown
                    \cho \arpeggio
              
                    \arpeggioBracket
                    \cho \arpeggio

                    \arpeggioParenthesis
                    \cho \arpeggio

                    \arpeggioParenthesisDashed
                    \cho \arpeggio
}

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Voce"}   
            \new Voice {
                        \arp 
                        }
}
In [43]:
from IPython.display import HTML 
HTML('<center><img src="esempi/38_Arpeggio.png" width=45%"></center>')
Out[43]:

Trilli Indice

Per approfondimenti: Trilli.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 150 mm) (* 50 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 2 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}

% ------------------------------------------ Senza linea

tri = \relative c'' {
                     d4\trill r4 d2\trill 
                    }

% ------------------------------------------ Con linea

lin = \relative c'' {
                     d1\startTrillSpan   
                     d1                         
                     c2\stopTrillSpan r2 
                     d1\startTrillSpan ~              
                     d1                         
                     b1\startTrillSpan     % nuovo trillo = stop linea
                     d2\stopTrillSpan r2 
                     }

% ------------------------------------------ Risoluzioni

acc = \relative c'' {
                     d1~ \afterGrace                                       
                     d1 \startTrillSpan { c32[ d]\stopTrillSpan }
                     c2 r2 
                     }

% ------------------------------------------ Doppio

lind = \relative c'' {
                      <<
                        {                         % Voce nascosta...
                         s1\startTrillSpan   
                         s1                         
                         s2\stopTrillSpan s2}
                      \\
                        {
                         \once \override TrillSpanner.Y-offset = 6
                         d1\startTrillSpan   
                         d1                         
                         c2\stopTrillSpan b2\rest}  % posizione pausa...
                       >>
                       }

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Voce"}   
            \new Voice {
                        \tri 
                        \lin
                        \acc
                        \lind
                        }
}
In [44]:
from IPython.display import HTML 
HTML('<center><img src="esempi/39_Trilli.png" width=60%"></center>')
Out[44]:

Tremolo Indice

Per approfondimenti: Tremolo.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 150 mm) (* 70 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 8 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}

% ------------------------------------------ Ribattuto

rib = \relative c'' {
                     c2:8 c:32
                     c: c:16      % se il numero di ribattuti è omesso vale l'ultimo
                     }

% ------------------------------------------ Fra 2 note

rin = \relative c'' {
                     \repeat tremolo 8 { c16 d }
                     \repeat tremolo 4 { c16 d }
                     \repeat tremolo 2 { c8 d }
                     }

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Viola"}   
            \new Voice {
                        \rib 
                        \rin
                        }
      }

% ------------------------------------------ Fra 2 Staff

sup = \relative c'' {
                     s2  r2    % Spazio vuoto
                     }  

sdo = \relative c'' {
                     \voiceOne
                           \repeat tremolo 8 {
                                              <a e'>32 
                                                 {\change Staff = "up" 
                                                  \voiceTwo
                                                  <cs a' ds>32
                                                  }
                                              } \change Staff = "down" b2 \rest
                    }

\score{

       \new PianoStaff \with {instrumentName = "Piano"}   
                <<
                  \new Staff = "up"   \sup
                  \new Staff = "down" \sdo
                >>
      }
In [45]:
from IPython.display import HTML 
HTML('<center><img src="esempi/40_Tremolo.png" width=61%"></center>')
Out[45]:

Pit stop 6 Indice

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 150 mm) (* 40 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 0 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {title = "Articolazioni varie"       
         composer = "Me Medesimo"
         tagline = ""}

% ------------------------------------------ Variabili

por = \relative c'' {
                     \override Score.SpacingSpanner.shortest-duration-space = #3.0 % lunghezza del portamento
                     c2\bendAfter #+4            
                     \revert Score.SpacingSpanner.shortest-duration-space % Resetta
                     }

gli = \relative c' { g2 \glissando g' }
arp = \relative c' { <c e g c>2 \arpeggio }
lin = \relative c'' {
                     d1\startTrillSpan                          
                     c2\stopTrillSpan r2 
                    }

rib = \relative c'' { c2:8 c:16 }
rin = \relative c'' {
                     \repeat tremolo 16 { c32 d }
                     }

% ------------------------------------------ Partitura

\score{
        \new Staff \with {instrumentName = "Violino"}
          
            \new Voice {\override Score.MetronomeMark.padding = 3
                        \tempo "Andante" 4 = 100   % Tempi
                        \time 4/4                   
                        \clef treble               % Chiavi
                        \key bf \major             % Tonalità

                        \por
                        \gli
                        \arp 
                        \lin
                        \rib
                        \rin
                       }
}
In [46]:
from IPython.display import HTML 
HTML('<center><img src="esempi/41_Pit_stop_6.png" width=61%"></center>')
Out[46]:

Esercitazione n° 6 - Riprodurre uno o più tra i seguenti frammenti di partitura.
Indice

In [47]:
from IPython.display import HTML 
HTML('<center><img src="media/eser_61.png" width=80%"></center>')
Out[47]:
In [48]:
from IPython.display import HTML 
HTML('<center><img src="media/eser_62.png" width=80%"></center>')
Out[48]:
In [49]:
from IPython.display import HTML 
HTML('<center><img src="media/eser_63.png" width=80%"></center>')
Out[49]:

Misure Indice

Per approfondimenti: Misure.

Le linee di battuta sono aggiunte automaticamente in base all'indicazione di tempo.

Un metodo conveniente per evitare di inserire un numero errato di durate all'interno di una battita consiste nello specificare nel codice i controlli di battuta che, oltre a ordinare il codice verificano il contenuto della battuta aiutando a rilevare gli errori di durata scrivendo l'errore nel file di log:

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 150 mm) (* 30 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 2 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}

bark = \relative c'' { g1        | %m2
                       e1        | %m3
                       c2. c'4   | %m4
                       g4 c g e  | %m5
                       c4 r c'1  | %m6  % errore di durata...
                      }

\score{
       \new Staff \with {instrumentName = "Ocarina"}   
            \new Voice {
                        \override Score.MetronomeMark.padding = 3
                        \tempo "Andante" 4 = 100 
                        \time 4/4                   
                        \clef treble                        
                        \key ef \major                    

                        \bark    
                        }
}
In [50]:
from IPython.display import HTML 
HTML('<center><img src="esempi/42_Battute_1.png" width=62%"></center>')
Out[50]:

Anacrusi Indice

Se vogliamo inserire una o più note "in levare" (anacrusi) dobbiamo utilizzare \partial n:

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 150 mm) (* 30 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 2 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}

levare = \relative c' {
                       \partial 4.     % Durata della battuta parziale
                       r4 e8        |  % m0 battuta parziale
                       a2 c8 b c4   |  % m1
                       }

\score{
       \new Staff \with {instrumentName = "Ocarina"}   
            \new Voice {
                        \override Score.MetronomeMark.padding = 3
                        \tempo "Andante" 4 = 100 
                        \time 4/4                   
                        \clef treble                        
                        \key gf \major                    

                        \levare    
                        }
}
In [51]:
from IPython.display import HTML 
HTML('<center><img src="esempi/43_Anacrusi.png" width=63%"></center>')
Out[51]:

Tipi di stanghette Indice

Possiamo specificare diversi tipi di stanghette sia semplici che doppie nonchè simboli di rirornello impiegando il comando \bar. Attenzione perchè questi ultimi hanno solo funzione grafica e non influiscono sull'eventuale file MIDI generato automaticamente.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 150 mm) (* 50 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 0 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}

% ------------------------------------------ Semplice e doppie

misca = \relative c' {
                      f1 \bar "|"     | %m1
                      f1 \bar "."     | %m2
                      g1 \bar "||"    | %m3 
                      a1 \bar ".|"    | %m4
                      b1 \bar ".."    | %m5
                      c1 \bar "|.|"   | %m6
                      d1 \bar "|."    | %m7
                      e1              | %m8
                     }

% ------------------------------------------ Puntate e e tratteggiate

dash = \relative c' {
                     f1 \bar ";"      | %m9
                     g1 \bar "!"      | %m10
                     a1               | %m11
                     }

% ------------------------------------------ Ritornelli

rito = \relative c' {
                     f1 \bar ".|:"
                     g1  \bar ":..:"
                     a1  \bar ":|.|:"
                     b1  \bar ":|.:"
                     c1  \bar ":.|.:"
                     d1  \bar "[|:"
                     e1  \bar ":|][|:"
                     f1  \bar ":|]"
                     g1  \bar ":|."
                     }

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Zufolo"}   
            \new Voice {
                        \override Score.MetronomeMark.padding = 3
                        \tempo "Andante" 4 = 100 
                        \time 4/4                   
                        \clef treble                        
                        \key c \major                    

                        \misca  
                        \dash  
                        \rito
                        }
}
In [52]:
from IPython.display import HTML 
HTML('<center><img src="esempi/44_Stanghette.png" width=63%"></center>')
Out[52]:

Senza misura Indice

Se vogliamo scrivere musica senza misura abbiamo due possibilità:

  • Misurato ma senza stanghette (i numeri di battuta sono presi in considerazione).
  • Cadenza possiamo mettere una qualsiasi quantità di durate all'interno di una sola misura.

Se vogliamo andare a capo in un punto interno a una misura per una spaziatura ottimale di un rigo possiamo utilizzare il primo metodo specificando un'inesistente stanghetta invisivile nel punto di \break.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 200 mm) (* 80 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 2 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}

% ------------------------------------------ Misurato

nobar = \relative c' {
                      c4 d e f | %m1
                      \bar ""    % stanghetta invisibile
                      g a b c  | %m2
                      \bar ""
                      d e f g  | %m3
                      \bar ""
                      f e d c  | %m4
                      \bar ""
                      b a g f  | %m5
                      \bar ""
                      e d c2   | %m6
                      \bar "|."
                      }

% ------------------------------------------ Cadenza

cade = \relative c'' {
                      c4 d e d      
                      \bar "||"       | %m7  doppia barra
                      \cadenzaOn
                      c4 c d8[d d] f4 g4. a8 a [b g a] f16 [f] c2   
                      \cadenzaOff
                      \bar "||"       | %m8  doppia barra
                      d4 e d c        | %m9
                      b  a g f        | %m10
                      e  g c2         | %m11
                      g4 f e d        | %m12
                      g  f \bar ""  \break   % stanghetta vuota per a capo a metà misura
                      e d             | %m13
                      c d e f g a b c d c b a g f e d c b a b| %m18
                      c1              | %m19
                      \bar "|."
                      }

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Flicorno"}   
            \new Voice {
                        \override Score.MetronomeMark.padding = 3
                        \tempo "Andante" 4 = 100 
                        \time 4/4                   
                        \clef treble                        
                        \key c \major                    

                        \nobar 
                        \cade  
                        }
}
In [53]:
from IPython.display import HTML 
HTML('<center><img src="esempi/45_Cadenza.png" width=85%"></center>')
Out[53]:

Numeri di battuta Indice

I numeri di battuta sono visualizzati automaticamente all'inizio di ogni rigo ad eccezione del primo ma possiamo:

  • Ometterli o nasconderli da tutta la partitura modificando le proprietà del contesto Score.
  • Aggiungere un offset.
  • Visualizzarli a intervalli regolari.
  • Includerli in simboli grafici.
In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 150 mm) (* 110 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 0 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}

% ------------------------------------------ Omessi da tutta la partitura

%\layout {
%         \context {
%                   \Score
%                   \omit BarNumber
%                   }
%}

% ------------------------------------------ Offset

offset = \relative c' {
                       \set Score.currentBarNumber = #50  % offset
                       c1 | c | c | c |   
                       \break
                       c1 | c | c | c | c | c |
                       \bar "||"
}

% ------------------------------------------ Intervalli regolari

interv = \relative c'' {
                       \override Score.BarNumber.break-visibility = #end-of-line-invisible 
                       \set Score.barNumberVisibility = #(every-nth-bar-number-visible 3)
                       c1 | c | c | c | c
                       \break
                       c1 | c | c | c | c 
                       \bar "||"
}

% ------------------------------------------ Inclusi

inclu = \relative c'' {
                      \override Score.BarNumber.break-visibility = #end-of-line-invisible
                      \set Score.barNumberVisibility = #(every-nth-bar-number-visible 4)

                      \override Score.BarNumber.font-size = #2               % ingrandisce il font size
                      \override Score.BarNumber.self-alignment-X = #CENTER   % Centra sulla stanghetta
    
%----------------------------- Box rettangolare

                      \override Score.BarNumber.stencil = #(make-stencil-boxer 0.1 0.25 ly:text-interface::print)
                       g1 | g | g | g | g

%----------------------------- Box circolare

                      \override Score.BarNumber.stencil = #(make-stencil-circler 0.1 0.25 ly:text-interface::print)
                       g1 | g | g | g | g 
                      \bar "|."
}

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Zufolo"}   
            \new Voice {
                        \override Score.MetronomeMark.padding = 3
                        \tempo "Andante" 4 = 100 
                        \time 4/4                   
                        \clef treble                        
                        \key c \major                    

                        \offset \break
                        \interv \break
                        \inclu
                        }
}
In [54]:
from IPython.display import HTML 
HTML('<center><img src="esempi/46_Barnum.png" width=60%"></center>')
Out[54]:

Segni di chiamata Indice

Possiamo inserire sulle stanghette di battuta diverse tipologie di segni di chiamata (la lettera I viene saltata come da tradizione) che incrementano automaticamente:

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 150 mm) (* 35 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 0 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}

% ------------------------------------------ Segni di chiamata

mark = \relative c'' {
    
%----------------------------- Numeri e lettere
    
                      \set Score.markFormatter = #format-mark-numbers
                      c1 \mark \default
                      c1 \mark \default
    
                      \set Score.markFormatter = #format-mark-letters
                      c1 \mark \default

%----------------------------- Box rettangolare
    
                      \set Score.markFormatter = #format-mark-box-numbers
                      c1 \mark \default
 
                      \set Score.markFormatter = #format-mark-box-letters
                      c1 \mark \default
    
%----------------------------- Box circolare
    
                      \set Score.markFormatter = #format-mark-circle-numbers
                      c1 \mark \default
    
                      \set Score.markFormatter = #format-mark-circle-letters
                      c1
}

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Salterio"}   
            \new Voice {
                        \override Score.MetronomeMark.padding = 6
                        \tempo "Andante" 4 = 100 
                        \time 4/4                   
                        \clef treble                        
                        \key c \major                    

                        \mark 
                        }
}
In [55]:
from IPython.display import HTML 
HTML('<center><img src="esempi/47_Chiamata.png" width=63%"></center>')
Out[55]:

Glifi Indice

Possiamo inserire sulle stanghette di battuta diverse tipologie di glifi.

Ne troviamo un elenco esaustivo a questo Link.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 150 mm) (* 35 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 0 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}

glifi = \relative c' {
                      c1 \mark \markup { \musicglyph "scripts.segno" }
                      c1 \mark \markup { \musicglyph "scripts.coda" }
                      c1 \mark \markup { \musicglyph "scripts.ufermata" }
                      c1 \bar "|."
}
    
\score{
       \new Staff \with {instrumentName = "Zufolo"}   
            \new Voice {
                        \override Score.MetronomeMark.padding = 6
                        \tempo "Andante" 4 = 100 
                        \time 4/4                   
                        \clef treble                        
                        \key c \major                    

                        \glifi 
                        }
}
In [56]:
from IPython.display import HTML 
HTML('<center><img src="esempi/48_Glifi.png" width=63%"></center>')
Out[56]:

Esercitazione n° 7 - Riprodurre il seguente frammento di partitura.
N.B. Possiamo trovare un modello di partitura per Orchestra a questo link.
Indice

In [57]:
from IPython.display import HTML 
HTML('<center><img src="media/eser_7.png" width=85%"></center>')
Out[57]:

Tempi composti e suddivisioni Indice

Per approfondimenti: Indicazioni di tempo.

Come già accennato nel paragrafo sulla Formattazione possiamo specificare le indicazioni di tempo attraverso il comando \time. Osserviamo ora alcune particolarità riguardo alle suddivisioni interne alla battuta.

  • Articolazione semplice. Le suddivisioni interne alla misura sono quelle tradizionali.
  • Articolazione costante. Specifichiamo le articolazioni interne comuni a tutte le battute.
  • Articolazioni variabili (Beaming). Possiamo cambiare le articolazion interne di ogni misura.
  • Articolati. Possiamo specificare l'articolazione interna direttamente.
In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 200 mm) (* 80 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 8 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}

% ------------------------------------------ Semplici

compa = \relative c' {\override Score.MetronomeMark.padding = 1
                      \tempo  4. = 92
                   
                      \time 6/8
                      c4 d8 e f4 g8 a b c4.   | %m1   
                      \bar "||"
                      }

% ------------------------------------------ Articolazione costante

compb = \relative c' {
                      \tempo  "" 4. = 92   % parentesi...
                      \time 2,2,3 7/8
                      c8 d e f g a b          | %m2
                    
                      \time 3,2,2 7/8         | %m3
                      c c c a a g f
                      \bar "||"
                      }

% ------------------------------------------ Articolazioni variabili

compc = \relative c' {\override Score.MetronomeMark.direction = #DOWN  % Sotto il rigo...
                      \tempo  "" 8 = 120 
                   
                      \time 5/8
                      f8 [g a] b c            | %m4
                      f,  [g] r  b c          | %m5
                      f,  [g  a  b c]         | %m6
                      f,  [g  a  r c          | %m7 
                      f,   g] a[ b r          | %m8
                      f]   g  [a b c]         | %m9
                      \bar "||" 
                      }

% ------------------------------------------ Articolati

compe = \relative c' {                                           
                      \compoundMeter #'((2 3 2 8))
                      c8 d e f g b c                    | %m10                                  
                      c16 d e f g a b a g f e [d r c]   | %m11 
                      \bar "||"
                      }
                          
compf = \relative c' {
                      \compoundMeter #'((1 2 3 8) (3 4))
                      c8 e g c e g e g c e c g         | %m12
                      \bar "||"
                     }

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Salterio"}   
            \new Voice {
                        \compa 
                        \compb
                        \compc
                        \compe
                        \compf
                        }
}
In [58]:
from IPython.display import HTML 
HTML('<center><img src="esempi/49_Composti.png" width=90%"></center>')
Out[58]:

Cambi di tonalità Indice

Per approfondimenti: Tonalità.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 150 mm) (* 50 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 6 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}

% ------------------------------------------ Chiavi

arma = \relative c' {
                     \clef violin
    
                     \key a \major
                     c8 d e f g a b c     | %m1  alterazioni indipendenti dall'armatura... 
    
                     \key e \minor
                     c, d e fs g a b c    | %m2

%----------------------------- Posizione diversa 
    
                     \override Staff.KeySignature.sharp-positions = #'(2)         
                     \key a \major
                     cs, d e fs gs a b cs  | %m3  

%----------------------------- Tutte le posizioni sul rigo
    
                    \override Staff.KeySignature.flat-positions = #'((-5 . 5))     
                    \override Staff.KeyCancellation.flat-positions = #'((-5 . 5)) 
    
                    \key ef \mixolydian % \ionian, \dorian, \phrygian, \lydian, \mixolydian, \aeolian e \locrian.
                     c, df ef f             

%----------------------------- Cambio a metà battuta
                    \revert Staff.KeySignature.flat-positions    % Resetta la modifica precedente
                    \revert Staff.KeyCancellation.flat-positions % Resetta la modifica precedente
    
                    \key c \major     
                    g a b c                | %m4
                    \bar "|."
                    }

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Armonica"}   
            \new Voice {
                        \arma
                        }
}
In [59]:
from IPython.display import HTML 
HTML('<center><img src="esempi/50_Tradizionali.png" width=63%"></center>')
Out[59]:

Ritornelli Indice

Per approfondimenti: Ritornelli.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 200 mm) (* 30 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 6 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}

% ------------------------------------------ Semplice

sem = \relative c'' {
                     \repeat volta 2 { c4 d e f } | %m1
                     c2 d                           | %m2
                     \repeat volta 2 { d4 e f g     | %m3
                                       a  g f d     | %m4
                                      }             | %m5
                     c1 
                     \bar "||"
                     }
  
% ------------------------------------------ Casella 1 e 2

cas = \relative c'' {
                     \repeat volta 2 { c4 d e f | }  %m6 N.B. controlli di battuta dentro le parentesi
                     \alternative {
                                  { c2 e | }         %m7
                                  { f2 g | }         %m8
                                  }
                     c1                            | %m9
                     \bar "|."
                     }

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Piffero"}   
            \new Voice {
                        \sem 
                        \cas
                        }
}
In [60]:
from IPython.display import HTML 
HTML('<center><img src="esempi/51_Ritornelli.png" width=83%"></center>')
Out[60]:

Ripetizioni Indice

Per approfondimenti: Ripetizioni.

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 220 mm) (* 50 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 6 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {tagline = ""}

% ------------------------------------------ Notazione estesa
% se vogliamo ripetere figure uguali

est = \relative c'' {
                     \repeat unfold 4 { c 16 d e f }
                     \bar "||"
                     }
  
% ------------------------------------------ Figure 

rip = \relative c'' {
                     \repeat percent 2 { c2 }              % durate uguali
                     \repeat percent 4 { c4 }
                     \repeat percent 4 { c8 d } 
                     \bar "||"
                     \repeat percent 4 { c8. <d f>16 }   % durate miste
                     \repeat percent 2 { \tuplet 3/2 { r8 c d } e4 }
                     \bar "||"
                     }

% ------------------------------------------ Battute

bur = \relative c'' {
                     \repeat percent 2 { c4 d e f }
                     \repeat percent 2 { c2 d }
                     \bar "|."
                     }

% ------------------------------------------ Partitura

\score{
       \new Staff \with {instrumentName = "Piffero"}   
            \new Voice {
                        \est 
                        \rip
                        \bur
                        }
}
In [61]:
from IPython.display import HTML 
HTML('<center><img src="esempi/52_Ripetizioni.png" width=92%"></center>')
Out[61]:

Pit stop 7 Indice

In [ ]:
\version "2.24.1"                       
\language "english" 

#(set! paper-alist (cons '("mio formato" . (cons (* 200 mm) (* 100 mm))) paper-alist) )  
\paper {#(set-paper-size "mio formato") top-margin = 6 left-margin = 0} 
\layout{#(layout-set-staff-size 20) indent = 0 short-indent = 0}
\header {title = "Tempi chiavi e tonalità"       
         composer = "Me Medesimo"
         tagline = ""}

% ------------------------------------------ Variabili

interv = \relative c'' {
                       \override Score.BarNumber.break-visibility = #end-of-line-invisible 
                       \set Score.barNumberVisibility = #(every-nth-bar-number-visible 5)
                       }
compb = \relative c' {\clef treble               % Chiavi
                      \key bf \major             % Tonalità
                      \time 2,2,3 7/8
                      c8 d e f g a b          | %m2
                      \bar "||"
                      }
compc = \relative c' {\clef alto               % Chiavi
                      \key a \major            % Tonalità
                      \time 5/8
                      f8 [g a] b c            | %m3
                      f,  [g] r  b c          | %m4
                      f,  [g  a  b c]         | %m5
                      f,  [g  a  r c          | %m6 
                      f,   g] a[ b r          | %m7
                      f]   g  [a b c]         | %m8
                      \bar "||" 
                      }
compe = \relative c' {                                           
                      \compoundMeter #'((2 3 2 8))
                      c8 d e f g b c                    | %m9     
                      \clef treble             % Chiavi
                      \key f \major            % Tonalità
                      c16 d e f g a b a g f e [d r c]   | %m10 
                      \bar "||"
                      }                      
compf = \relative c' {
                      \compoundMeter #'((1 2 3 8) (3 4))
                      c8 e g c e g e g c e c g         | %m11
                      \bar "||"
                     }
                
% ------------------------------------------ Partitura

\score{
        \new Staff \with {instrumentName = "Violino"}
          
            \new Voice {\override Score.MetronomeMark.padding = 3
                        \tempo "Andante" 4 = 100   % Tempi         

                        \interv
                        \compb
                        \compc
                        \compe
                        \compf
                       }
}
In [62]:
from IPython.display import HTML 
HTML('<center><img src="esempi/53_Pit_stop_7.png" width=85%"></center>')
Out[62]:

Esercitazione n° 8 - Riprodurre uno o più tra i seguenti frammenti di partitura.
Indice

In [63]:
from IPython.display import HTML 
HTML('<center><img src="media/eser_81.png" width=70%"></center>')
Out[63]:
In [64]:
from IPython.display import HTML 
HTML('<center><img src="media/eser_82.png" width=80%"></center>')
Out[64]:
In [65]:
from IPython.display import HTML 
HTML('<center><img src="media/eser_83.png" width=90%"></center>')
Out[65]:

Notazioni specialistiche Indice

In quest'ultima sezione ho inserito solamente link tematici che rimandano ai manuali ufficiali in modo che ognuno possa ricercare autonomamente gli argomenti di proprio interesse.

  • Musica Vocale.
  • Tastiere e simili.
  • Strumenti a corde senza tasti.
  • Strumenti a corde con tasti.
  • Strumenti a percussione.
  • Strumenti a fiato.
  • Notazione per accordi.
  • Notazione contemporanea.
  • Notazione antica.
  • World music.

Output MIDI Indice

  • Se vogliamo esportare un file MIDI dalla partitura.

Modifiche delle impostazioni predefinite Indice

  • Modifiche base.
  • Modifiche avanzate.