Modelli intervallari, tonalità, scale e modi¶
import os
import sys
path = os.path.abspath('rappresenta')
sys.path.append(path)
from main import *
Definizioni¶
Nel capitolo sui temperamenti abbiamo introdotto il termine scale per definire alcune strategie impiegate per suddividere l'ottava in modo proporzionale.
In questo capitolo definiremo alcune strategie per organizzare gli intervalli in sistemi (codici) propri della tradizione musicale occidentale.
Non partiremo da rapporti matematici (Pitagora) o fisici (Naturale) ma di intervalli già codificati in semitoni (temperamento equabile).
I modelli intervallari, i modi e le scale di cui parleremo sono costruzioni teoriche basate su questa unità semantica minima (il semitono).
Un secondo gradino nella nascita e nell'evoluzione di uno o più linguaggi musicali.
Pensiamo agli intervalli e al semitono in particolare come a cellule staminali dalle quali possiamo potenzialmente sviluppare qualsiasi tipo di tessuto umano.
L'elemento minimo comune a molti linguaggi della tradizione musicale occidentale.
Tono e semitono come sillaba breve e sillaba lunga nella metrica della poesia greca - altezze vs tempo.
Modelli intervallari ¶
I modelli intervallari definiscono successioni di intervalli - principalmente toni e semitoni - in schemi sui quali costruire ulteriori regole di un linguaggio musicale.
Non definiscono altezze precise (frequenze) ma rapporti tra altezze.
Sono un'astrazione e generalizzazione di un pensiero simile a quella che generalmente si realizza in informatica.
L'ambito che delimita i modelli intervallari nei linguaggi musicali occidentali moderni è l'ottava suddivisa in 12 semitoni cromatici con un'altezza di partenza arbitraria.
Ogni modello intervallare ha un identità che ne definisce il tipo o modo (maggiore, minore, per toni interi, blues, etc.).
Rappresentazioni ¶
Prendiamo come esempio il pattern che definisce il modo maggiore:
- offset cumulativo 0 2 4 5 7 9 11 12 - distanza cromatica da 0 (in semitoni)
- intervalli P:1 M:2 M:2 m:2 M:2 M.2 M:2 m:2 - distanza incrementale tra i gradi.
- offset cromatico 2 2 1 2 2 2 1 - distanza incrementale (delta in semitoni).
- offset alfabetico T T S T T T S - distanza incrementale alfabetica
- alfabetica C D E F G A B - nomi delle note
- gradi diatonici I II III IV V VI VII - gradi usualmente espressi come numeri romani.
- offset diatonico 1 1 1 1 1 1 1 1 - distanza incrementale tra i gradi.

modello = np.array([0, 2, 4, 5, 7, 9, 11, 12,]) # Offset cumulativo
root = 60
for i in modello:
n = root + i
PNote(n, 0.2, 127)
time.sleep(0.2)
Ognuna di queste rappresentazioni si presta a definire nel migliore dei modi i modelli in ambiti e situazioni specifiche, ad esempio:
- i gradi sono comunemente impiegati nelle regole armoniche tonali per definire le funzioni degli accordi.
- gli intervalli sono impiegati nel regole contrappuntistiche per definire i moti o movimenti delle parti permessi o meno.
- l'offset cumulativo o cromatico nei linguaggi informatici.
- etc.
La combinazione di due rappresentazioni ci permette ad esempio di definire modelli con un numero diverso di toni diatonici (5 intervalli invece che 7) come:
il modello pentatonico (per toni interi) ad esempio non ha un tono diatonico:
Per descriverlo possiamo impiegare una combinazione di rappresentazione alfabetica e offset diatonico:
C D E F# G# B 1 1 1 1 2
modello = np.array([0, 2, 4, 6, 8, 10, 12]) # Offset cumulativo
root = 60
for i in modello:
n = root + i
PNote(n, 0.2, 127)
time.sleep(0.2)
- il modello ottotonico (8 intervalli invece che 7):
modello = np.array([0, 1, 3, 4, 6, 7, 9, 10, 12]) # Offset cumulativo
root = 60
for i in modello:
n = root + i
PNote(n, 0.2, 127)
time.sleep(0.2)
Tonalità e scale maggiori ¶
Quando assegniamo una nota iniziale (root) a un modello intervallare definiamo una tonalità in un sistema armonico.
I sistemi tonali sono fondati sulle scale (scala di Do maggiore, scala di Mib maggiore, La minore, etc.)

modello = np.array([0,2,4,5,7,9,11,12]) # Offset cumulativo
root = [60, 63, 62]
for r in root:
for i in modello:
n = r + i
PNote(n, 0.1, 127)
time.sleep(0.2)
time.sleep(1)
Armatura di chiave ¶
Per semplificare la lettura delle alterazioni in tonalità differenti è stata pensata l'armatura di chiave.
Consiste nell'indicare all'inizio di ogni pentagramma tutti i diesis o bemolli della tonalità d'impianto.
Le altezze assumeranno di default le alterazioni in chiave salvo diversa indicazione relativa alla nota.



seq = np.array([[0,2,5,4,7,9,11,10,12], # Re maggiore
[0,4,7,9,8,9,11,9,6], # Mi bemolle maggiore
[0,7,4,5,6,7,2,4,0]]) # Fa maggiore
root = [62, 63, 65]
for i in range(len(root)):
s = seq[i]
for g in s:
n = root[i] + g
PNote(n, 0.1, 127)
time.sleep(0.2)
time.sleep(1)
Circolo delle quinte ¶
La totalità delle tonalità maggiori è data da quello che viene definito il circolo delle quinte (che abbiamo già incontrato nel capitolo dedicato ai temperamenti).
Il circolo delle quinte è una proprietà matematica in modulo 12 che rappresenta le relazioni tra le 12 note che formano la scala cromatica.
Serve per definire la nota iniziale e il numero di diesis o bemolli da inserire nell'armatura di chiave.
Prendiamo come riferimento il DO (root 0 - Do maggiore):
- saliamo di una quinta fino ad esaurire il totale diatonico (7 volte)
- ogni volta che saliamo aggiungiamo un diesis.
- scendiamo di una quinta fino ad esaurire il totale diatonico (7 volte)
- ogni volta che scendiamo aggiungiamo un bemolle.
Al termine delle operazioni abbiamo ottenuto il totale cromatico esaurendo tutte le possibilità.
Ci sono inoltre sei tonalità enarmoniche.

Un esempio che illutra magistralmente le possibili relazioni tra teoria della musica ed espressione musicale è dato dai due libri del Clavicembalo ben temperato di J.S.Bach che ha scritto un Preludio e una Fuga per ogni tonalitò maggiore e minore.

Anche il compositore P.Hindemit in epoca diversa ha compiuto un'operazione simile con il brano Ludus tonali
- Se presenti quali differenze ci sono tra i due lavori sotto il punto di vista della tonalità (entrambe sono in DO maggiore)?
- Qual'è il significato o senso delle tonalità? Perchè tutte i brani musicali della tradizione occidentale non sono stati scritti in Do maggiore?
Scale relative minori ¶
Se osserviamo il grafico del circolo delle quinte in un cerchio concentrico inferiore sono specificate le scale relative minori.
Ogni tonalità maggiore ha la propria relativa minore che si costruisce sul sesto grado (M:6)

La tonalità relativa minore mantiene le stesse alterazioni della corrispettiva maggiore.

Per tradizione la scala minore è suddivisa in tre tipi.

seq = np.array([[0,2,3,5,7,8,10,12,10,8,7,5,3,2,0], # Naturale
[0,2,3,5,7,8,11,12,11,8,7,5,3,2,0], # Armonica
[0,2,3,5,7,9,11,12,10,8,7,5,3,2,0]]) # Melodica
root = [69, 69, 69]
for i in range(len(root)):
s = seq[i]
for g in s:
n = root[i] + g
PNote(n, 0.2, 127)
time.sleep(0.2)
time.sleep(1)
Alcuni teorici della musica asseriscono tuttavia che questa divisione sia priva di senso ed è più appropriato pensarla come ad una riserva di nove suoni a disposizione dei compositori che vogliano impiegare questa scala in una composizione.

Un esempio dell'uso misto in questo Corale (n* 12) di J.S.Bach
Esistono altre due scale minori largamente impiegate nella tradizione musicale occidentale.
minore napoletana
bachiana
Modi derivati ¶
Da ogni scala possiamo estrarre tanti modi derivati quanti sono i suoi gradi con qualche eccezione.
Cotruzione dei modi della scala diatonica maggiore (sette).

modello = np.array([0, 2, 4, 5, 7, 9, 11, 12])
root = 60
for i in modello:
n = root + i
PNote(n, 0.1, 127)
time.sleep(0.1)

modello = np.array([0, 2, 3, 5, 7, 9, 10, 12])
root = 62
for i in modello:
n = root + i
PNote(n, 0.1, 127)
time.sleep(0.1)

modello = np.array([0, 1, 3, 5, 7, 8, 10, 12])
root = 64
for i in modello:
n = root + i
PNote(n, 0.1, 127)
time.sleep(0.1)

modello = np.array([0, 2, 4, 6, 7, 9, 11, 12])
root = 65
for i in modello:
n = root + i
PNote(n, 0.1, 127)
time.sleep(0.1)

modello = np.array([0, 2, 4, 5, 7, 9, 10, 12])
root = 67
for i in modello:
n = root + i
PNote(n, 0.1, 127)
time.sleep(0.1)

modello = np.array([0, 2, 3, 5, 7, 8, 10, 12])
root = 69
for i in modello:
n = root + i
PNote(n, 0.1, 127)
time.sleep(0.1)

modello = np.array([0, 1, 3, 5, 6, 8, 10, 12])
root = 71
for i in modello:
n = root + i
PNote(n, 0.1, 127)
time.sleep(0.1)
Lo stesso modo di procedere vale per qualsiasi scala.
Come accennato ci sono delle eccezioni.
Prendiamo come esempi due scale già incontrate.
scala per toni interi - in questo caso esiste un solo modo in quanto il modello intervallare è identico su tutti i *gradi
$T\ T\ T\ T\ T\ T\ T$ $2\ \ 2\ \ 2\ \ 2\ \ 2\ \ 2\ \ 2$ scala ottotonica - solo due modi in quanto il modello intervallare è formato da ripezizioni di $S\ T$.
$S\ T\ S\ T\ S\ T\ S$ $1\ \ 2\ \ 1\ \ 2\ \ 1\ \ 1\ \ 2$
Linea del tempo ¶
Fino a questo punto abbiamo seguito un percorso didattico.
Inquadriamo quanto appena appreso in un percorso cronologico per favorire alcune domande semiotiche.
Antica grecia¶
Sistema modale - I modi erano chiamati harmonìai e prendevano una denominazione etnica (dorico, frigio, etc.) in quanto il modo incarnava i caratteri (ethos) del popolo dal quae prendeva il nome.
Sotto il punto di vista teorico erano formati da due tetracordi discendenti aventi lo stesso modello intervallare.

Per gli antichi il fatto che una melodia sia lidia o frigia non significa unicamente che usi una scala lidia o frigia, ma che tale musica aveva caratteristiche (melodiche, musicali, ritmiche, di strumentazione, di esecuzione, etc.) che gli antichi riconoscevano con quel nome.
Canto cristiano¶
Il canto dei primi cristiani e fino al medioevo (VIII sec ca.) si può suddividere in due grandi aree culturali
canto bizantino (canto romano-bizantino), basato sui modi musicali bizantini definisce la tradizione sacra e profana del canto modale dei popoli dove regnava l’Impero Romano d’Oriente.
canto romano antico (canto pre-gregoriano) basato sui modi musicali ecclesiastici per i popoli dell'inpero d'Occidente.
Nessun documento musicale dei primi secoli cristiani è pervenuto fino a noi, se si eccettua il frammento d'un inno con notazione alfabetica greca, ricavato dal papiro di Ossirinco 1786 e attribuito alla seconda metà del secolo III.
Il canto liturgico romano ha asunto principalmente tre forme:
cantilazione - intonazione di un testo in prosa che su una corda di recita fissa adotta piccole oscillazioni dell'intonazione utili a restituire il senso del testo.
tono salmodico - è un po' più strutturato e codifica alcuni momenti chiave dell'intonazione della corda di recita (tenor):
- l'inizio (intonatio)
- la fine del primo emistichio (mediatio)
- la fine del versetto (terminatio)
- una breve sospensione per gli emistichi più lunghi (flexa).
canto - caratterizzato da un arricchimento melodico e l'ampliamento dell'estensione vocal e temporale.
Canto Gregoriano¶
Nell'800 Carlo Magno venne incoronato imperatore del Sacro Romano Impero.
La politica religiosa del nuovo imperatore fu l'unificazione della liturgia, e in particolare del canto liturgico, in tutto il territorio del Sacro Romano Impero.
Il canto proposto all'intera cristianità occidentale, successivamente venne chiamato canto gregoriano perché ricondotto all'autorità di papa Gregorio I.
A onor del vero la nascita del canto gregoriano è ancora dibattuta dagli storici della musica.
Polifonia¶
Lo sviluppo del canto gregorianno avvenne prima con l'introduzione di voci parallele (organum - IX/X sec.)
In seguito i movimenti delle voci divennero indipendenti, rendendo via via più complessa la dimensione verticale della musica, con presenza simultanea di più note.
Questo sviluppo si identifica con due distinti periodi storici nel medioevo:
- ars antiqua - anteriore al XIV secolo. Scuola di Notre Dame dove si sviluppò la polifonia. Leoninus e Perotinus
- ars nova - indica un nuovo sistema di notazione ritmico-musicale sviluppato ne XIV secolo in contrapposizione a quello dei secoli precedenti. Guillaume de Machaut, Marchetto da Padova
Monodia scara e profana¶
Sempre nel medioevo parallelamente allo sviluppo della polifonia nella musica sacra sacra esisteva anche la musica profana.
Questa era in forma mista (latino e volgare), di ambito prettamente popolare e ci è pervenuta tramite alcuni manoscritti: tra questi il più famoso è quello proveniente dal monastero di Benedikt Beuren e noto al grande pubblico come Carmina Burana.
La musica profana è strettamente legata alla storia della letteratura europea.
Quando nasce la letteratura volgare o romanza nell'ambito del sistema feudale i testi dei poeti erano musicati e cantati dalle figure di trovatori e trovieri.
Musica rinascimentale¶
Nel XV e XVI secolo viene raggionto prima un pieno sviluppo (Giovanni Pierluigi da Palestrina)
e successivamente una saturazione (scuola fiamminga) della polifonia e del contrappunto.
Risulta evidente come in questa situazione gli accordi che si formavano non vennero più considerati un effetto della condotta delle varie parti, ma un elemento con una realtà indipendente.
Ad ogni grado della scala venne associato un accordo dotato di proprie caratteristiche, ed il numero dei modi usati ridotto dagli otto del canto gregoriano a due: maggiore e minore.
Tra il XVII e il XVIII secolo maturò l'armonia tonale ovvero una dimensione verticale della musica basata sulle tonalità maggiori e minori.
Liberi pensieri sul significato delle tonalità¶
Le tonalità musicali possono indicare in modo generico e astratto l'umore di un brano, il suo colore secondo i codici condivisi all'interno degli specifici contesti storico-culturali.
La tonalità di do maggiore è un po' da tutti percepito come ottimista ed estroverso.
La tonalità minore ci appare più timido o triste.
Ma è solo la prima impressione come capita con le persone incontrate per la prima volta che alla prima stretta di mano mostrano un viso serioso mentre in seguito si rivelano capaci di ampi sorrisi.
Non basta definire un impianto tonale per accomunare tra di loro opere musicali molto diverse, appartenenti o non a generi musicali diversi, ad epoche diverse.
A deternimare il carattere complessivo di un'opera musicale concorrono altri elementi del linguaggio, della grammatica e della sintassi delle note, della costruzione delle forme che si alternano durante l'intero svolgimento compositivo spesso mutevolissimo.
Se riascoltiamo gli incipit delle due sonate di L.V.Beethoven ci accorgiamo come in meno di un minuto siano suggerite moltissime sfumature caratteriali.
L'impianto tonale può però rappresentare un carattere di fondo comune, un'attitudine, clima espressivo o predisposizione a uno stato d'animo corrispondente e antropologicamente condiviso che si è venuta a creare col tempo.
La tonalità di impianto e lo sviluppo armonico di alcuni brani celebri hanno fatto da modello specie tra la fine del Settecento e l'Ottocento per i compositori successivi imprimendo col tempo un carattere determinato a certe tonalità.
Basta ricordare il Re maggiore con cui si chiude il Don Giovanni di Mozart di apertura lirica in contrasto con la tragicità del Re minore con cui l'opera si apre.
Un'alternanza, quella tra re minore e re maggiore, che ritroviamo pari pari nella Nona Sinfonia di Beethoven.
Oltre all'imprinting storico che ha portato ad associare alcune tonalità a caratteri espressivi determinati vi sono anche altri aspetti più oggettivi.
La scelta della tonalità:
può influire sul timbro degli strumenti, sul colore del suono e di conseguenza sull'espressività. Il clarinetto tenore ad esempio è accordato in Si bemolle e a seconda della tonalità del brano da eseguire produce le note con armonici diversi che appartengono a registri diversi (ricordiamo la corda della scala Pitagorica). Scegliendo la tonalità il compositore decide quale timbro caratteristico del clarinetto privilegiare in quel brano.
influenza la difficoltà esecutiva di un brano. Per ogni strumento ci sono tonalità che rendono un brano più difficile da eseguire per ragioni strettamente tecnico-meccaniche. Questo può fare una grossa differenza per l'interprete che influenzerà l'aspetto espressivo trasmesso all'ascoltatore.
Terminologia¶
- Semitono - unità semantica minima comune ai principali linguaggi della tradizione occidentale.
- Modello intervallare - successione di semitoni e toni che definisce un modello.
- Offset
- cromatico - delta in semitoni (numeri)
- alfabetico - delta in semitoni (simboli)
- diatonico - delta in posizioni diatoniche
- Tonalità - impiantata definendo un pitch come tonica (root 0) di un modello intervallare.
- Scala - definisce i pitches che appartengono a una tonalità secondo il modello intervallare adottato.
- Armatura di chiave - indicazione delle alterazioni che definiscono una tonalità in forma simbolica all'inizio del rigo musicale.
- Relativa minore (scala o tonalità) - scala costruita sul VI grado di una scala maggiore.
- naturale
- armonica
- melodica
- Circolo delle quinte - in questo caso definisce tutte le tonalità maggiori e minori possibili nel sistema tonale.
- Modi derivati - scale derivate da un altra scala shiftando di una posizione verso destra gli intervalli.
Domande sospese¶
Che differenza c'è tra il significato del circolo delle quinte assunto per calcolare la scala Pitagorica e quello impiegato per definire il sistema tonale?
E' possibile definire il carattere di una tonalità e se si in base a cosa?
Che cosa accomuna opere in si minore come le seguenti:
Rappresentazioni informatiche ¶
Per quanto riguarda gli argomenti di questo capitolo osserviamo esclusivamente le rappresentazioni sotto forma di codice e in simboli musicali.
Codice ¶
Modello intervallare¶
Per rappresentare un modello intervallare qualsiasi in un sistema informatico dobbiamo:
definire un nome (maggiore, minore naturale, etc.). La Classe ModalityType serve solo a indicizzare i nomi delle modalità specificate sotto forma di stringa in un contesto 'key:set' dove la key è una stringa e il set un'istanza.
tipo = ModalityType('mio_modo')
- definire una collezione di intervalli incrementali ad esempio come lista di stringhe. N.B. L'ultimo intervallo deve riportare all'ottava.
intv = ['P:1','A:2','M:2','m:2','M:2','m:2','M:2','m:2']
- definire una classe che li rappresenti entramb.
spec = ModalitySpec(tipo, intv)
- definire una classe che rappresenti un modello intervallare qualsiasi attraverso la quale derivare i modi che accetta come argomenti un nome e una lista di intervalli oppure un'istanza di ModalitySpec.
mio_modo = Modality(spec)
print(mio_modo)
mio_modo[P:1, A:2, M:2, m:2, M:2, m:2, M:2, m:2]
Attraverso questa procedura possiamo costruire e rappresentare qualsiasi modello intervallare a patto che l'ultimo intervallo riconduca all'ottava.
Possiamo ora anche definire dei modelli intervallari di sistema che rappresentano i modelli storici più comuni (maggiore, minore naturale, etc.).
Qusti sono rappresentati nella classe ModalityType che abbiamo già visto e possono essere richiamati attraverso la seguente sintassi.
tipo = ModalityType.NaturalMinor # NaturalMinor, Lydian, etc.
print(tipo)
NaturalMinor
I modelli di sistema sono:
Major, NaturalMinor, MelodicMinor, HarmonicMinor, HarmonicMajor, Ionian, Dorian, Phrygian, Lydian, Mixolydian, Aeolian, Locrian, WholeTone, MajorPentatonic, EgyptianPentatonic, MinorBluesPentatonic, MajorBluesPentatonic, MinorPentatonic, HWOctatonic, WHOctatonic, MajorBlues, MinorBlues.
Tonalità o modo¶
Per rappresentare una tonalità o un modo dobbiamo definire:
- un modello intervallare.
- il grado dal quale costruire il modo derivato.
- l'altezza del I grado (tonica).
Impieghiamo la Classe Tonality che accetta queste informazioni come argomenti sotto diverse forme (istanze di altre classi o stringhe).
modello = ModalityType.Major # il modello intervallare
grado = 0 # il grado su cui costruire il modo derivato
fond = 'C' # La nota fondamentale (root)
tonalita_a = Tonality.create_on_basis_tone(fond, ModalityType.Major, grado)
lista = []
for t in tonalita_a.annotation: # Itera DiatonicTone
t = t.diatonic_symbol
lista.append(t)
print(lista)
['C', 'D', 'E', 'F', 'G', 'A', 'B', 'C']
Possiamo ora stabilire un range tra un'altezza di partenza e una di arrivo da popolare con una scala e ottenere anche l'indice cromatico per poterlo suonare.
range = PitchRange.create('C:4', 'C6') # Definisce un ambito
modello = ModalityType.Major # il modello intervallare
grado = 0 # il grado su cui costruire il modo derivato
fond = 'Eb' # La nota fondamentale (root)
tonalità = Tonality.create_on_basis_tone(fond, ModalityType.Major, grado)
seq = PitchScale(tonalità,range)
lista = []
midi = []
for t in seq.pitch_scale:
s = str(t)
m = t.chromatic_distance
PNote(m, 0.2,127)
lista.append(s)
midi.append(m)
print(lista)
print(midi)
['C:4', 'D:4', 'Eb:4', 'F:4', 'G:4', 'Ab:4', 'Bb:4', 'C:5', 'D:5', 'Eb:5', 'F:5', 'G:5', 'Ab:5', 'Bb:5', 'C:6'] [48, 50, 51, 53, 55, 56, 58, 60, 62, 63, 65, 67, 68, 70, 72]
Musica ¶
! /Applications/Frescobaldi.app/Contents/MacOS/Frescobaldi
qt.qpa.fonts: Populating font family aliases took 116 ms. Replace uses of missing font family "Monospace" with one that exists to avoid this cost.
In Lilypond possiamo sia impostare che modificare l'armatura di chiave.
\version "2.24.3"
\language "english"
\relative c'{
\key d \major % maggiore
d e fs g a b cs d
\key ef \minor % minore
ef df cf bf af gf f ef
}
Possiamo inoltre definire armature non tradizionali.
\relative c'{
% \omit Staff.KeySignature % se volessimo omettere
% grado diatonico , alterazione
\set Staff.keyAlterations = #`((0 . ,NATURAL)
(1 . ,SHARP)
(4 . ,SHARP)
(6 . ,FLAT))
c ds e f gs a bf c
}
Software esterni ¶
Per gli appassionati del genere ci sono numerose risorse sia on line che all'interno di software musicali.
- un elenco di scale e modi su wikipedia.
- un sito dedicato alla creazione ed analisi di scale.
- un software dedicato alla creazione ed analisi di scale.
- le classi Tuning e Scale di SuperCollider che hanno ampi database.
! /Applications/SuperCollider.app/Contents/MacOS/SuperCollider
qt.qpa.fonts: Populating font family aliases took 115 ms. Replace uses of missing font family "Monospace" with one that exists to avoid this cost.
// =======================================
Tuning.directory; // Database Temperamenti
t = Tuning.et24;
t.semitones; // Semitoni
t.ratios; // Ratios
// =======================================
Scale.directory; // Database Scale
a = Scale.major;
a.tuning_(\just); // possiamo associare un temperamento
a.degrees; // offset cromatico
a.semitones; // semitoni (diverso in caso di temperamenti non equabili)
a.cents; // cents
a.ratios; // ratios
// =======================================
(
s.waitForBoot({
p = Pbind(
\degree, Pseq([0, 1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1, 0, \rest], 2),
\scale, Pfunc({ a }, 2),
\dur, 0.25
);
p.play;
})
)