Lezione 12
Pitch e frequenze
Programmazione timbrica - Prof. Luca A. Ludovico
Frequenza delle note musicali
• Nella scorsa lezione si è visto come esprimere le ampiezze
in decibel, che è un modo più affine al dominio della fisica
acustica e dell’audio professionale.
• Nella lezione odierna si vedrà quali tecniche di codifica
(nello score) e quali opcode (nell’orchestra) mette a
disposizione Csound per esprimere le frequenze in modo
più affine alla teoria musicale.
Programmazione timbrica - Prof. Luca A. Ludovico
Pitch e frequenze
Definizione di pitch class
• La locuzione pitch class (o classe di altezze) è un concetto proprio
dell'analisi musicale, nella fattispecie del suo approccio insiemistico.
• In musica, una classe di altezze è un insieme di tutte le altezze che
sono presenti ad un numero intero di ottave di distanza: per esempio,
la pitch class relativa al Do naturale consiste di tutti i Do in tutte le
ottave.
• Nella teoria musicale occidentale, le pitch class sono 12 in quanto 12
sono i semitoni in cui si divide abitualmente l’ottava.
–
In altri sistemi musicali (ad esempio i raga indiani, la musica gamelan indonesiana,
e la musica microtonale in generale) questo non sarebbe vero.
Programmazione timbrica - Prof. Luca A. Ludovico
Pitch e frequenze
Etichette per i valori di pitch class
• Anche se può essere comodo definire i valori di pitch class come Do,
Do#, Re, ecc., questa terminologia non è formalmente corretta. Infatti
privilegia un nome di nota accompagnato da uno stato di alterazione
nella definizione della frequenza corrispondente.
• Più propriamente, i pitch class sono in corrispondenza con le
frequenze della scala temperata attualmente fissate per legge e
riportate in una tabella ISO (si veda più avanti). Questa corrispondenza
è indipendente dalla notazione musicale che genera la produzione di
una determinata frequenza.
– Si pensi ai tasti del pianoforte: un determinato tasto, e non una
determinata scrittura in partitura, mette in vibrazione un insieme di corde
che sono accordate per produrre una data frequenza.
• Soluzione: creare una corrispondenza tra valori di pc e interi.
Programmazione timbrica - Prof. Luca A. Ludovico
Pitch e frequenze
Nomi delle note nella teoria musicale
Schema valido per il cosiddetto temperamento equabile, considerando le doppie alterazioni
Programmazione timbrica - Prof. Luca A. Ludovico
Pitch e frequenze
Schema ISO delle frequenze
Programmazione timbrica - Prof. Luca A. Ludovico
Pitch e frequenze
Rappresentazione numerica
• Riferendosi alla scala cromatica, è possibile rappresentare ogni
valore di pitch class con un intero compreso tra 0 e 11. Si noti che il
sistema è «modulo 12».
• Nell’immagine si è fissata per comodità una determinata
rappresentazione notazionale, ma si sarebbero potuti usare i bemolli
o le alterazioni doppie.
• Convenzionalmente, in Csound lo 0 corrisponde al Do naturale.
Programmazione timbrica - Prof. Luca A. Ludovico
Pitch e frequenze
Codifica Octave Point Pitch Class
• Nella notazione Octave Point Pitch Class, l’altezza delle note si
esprime in ottave e numero di semitoni. Tali elementi sono codificati
all’interno di un unico numero decimale (per nota):
– La parte intera, a sinistra della virgola, viene utilizzata per il numero di
ottava della nota. Convenzionalmente Csound attribuisce il valore 8
all’ottava centrale (quella del Do a 261.63 Hz e del La a 440 Hz)
– La parte frazionaria, a destra della virgola, viene usata per il numero di
semitoni di spiazzamento rispetto alla base dell’ottava, che
convenzionalmente parte dal Do naturale.
• Esempi:
– 8.00
– 8.01
– 7.09
Do naturale dell’ottava centrale (261.63 Hz)
Do# / Reb dell’ottava centrale (277.18 Hz)
La dell’ottava inferiore (220 Hz)
Programmazione timbrica - Prof. Luca A. Ludovico
Pitch e frequenze
Osservazioni
• La notazione presenta alcuni aspetti di ambiguità. Ad esempio, essendo
il pitch class un universo modulo 12, dovrebbero essere ammessi come
valori per la parte decimale solo valori nell’intervallo [00...11]. Invece
è possibile esprimere valori superiori. In tal caso, si procede di ottava
in ottava.
–
Ad esempio, le scritture 7.14 e 8.02 sono equivalenti, e corrispondono a 293.97 Hz
• Sono ammesse suddivisioni dell’intervallo di ottava diverse dalla scala
cromatica temperata.
Detta fb la frequenza base di una determinata ottava, la notazione x.y
(con y espresso su 2 cifre) calcola la frequenza finale f come:
𝑦
12
f = fb ·
2
–
Ad esempio:
8.02 > f = 261.63 ·
8.025 > f = 261.63 ·
Programmazione timbrica - Prof. Luca A. Ludovico
Pitch e frequenze
12
2
12
2
2
= 293,76 Hz
2,5
= 302,27 Hz (quarto di tono sopra)
Funzione cpspch
• Una volta espresse nello score le altezze in notazione Octave Point
Pitch Class, è necessario raccogliere e interpretare correttamente
questi valori in termini di frequenze all’interno dell’orchestra.
–
Per gli opcode generatori di suono le ampiezze sono sempre lineari e le frequenze
sono sempre in Hz.
• L’opcode cpspch converte un valore di pitch class in numero cicli al
secondo, ossia di hertz. L’operazione opposta al momento non esiste.
• Sintassi: cpspch (pch)
ove l’argomento è calcolabile solo a init-time o alla frequenza kr, e le
parentesi possono contenere espressioni. E’ una sintassi da funzione.
• Esempio: → 12_01_conversione_pitch_ampiezze.csd
Programmazione timbrica - Prof. Luca A. Ludovico
Pitch e frequenze
Precisione della conversione
• La conversione in cicli al secondo non è un’operazione lineare, ma
richiede un processo di calcolo esponenziale che, se eseguito
ripetutamente, è oneroso in termini di tempi di calcolo.
• Per questo motico Csound utilizza un procedimento di table lookup
(ricerca all’interno di tabella), e per effettuarlo anche a frequenza di
campionamento l’indice della tabella viene troncato senza
interpolazione. Di conseguenza, la risoluzione frequenziale è limitata
a 8192 suddivisioni discrete ed uguali dell’intervallo di ottava, di modo
che i pitch della scala cromatica siano solo lievemente distorti.
–
Errore massimo = 0.15 cent, ove il cent è una delle suddivisioni del semitono in 100
1200
parti “uguali”. Il rapporto di frequenza tra 2 suoni che distano 1 cent è
2
• Se è richiesta una maggiore precisione di calcolo, esistono gli opcode
cps2pch e cpsxpch (vedi slide successiva)
Programmazione timbrica - Prof. Luca A. Ludovico
Pitch e frequenze
Opcode cps2pch e cpsxpch
• Gli opcode cps2pch e cpsxpch convertono un valore di pitch class in
cicli al secondo (Hz) suddividendo in maniera uguale (e configurabile)
l’ottava.
• Sintassi: icps cps2pch ipch, iequal
ove ipch è un input numerico nella forma octave point pitch class e
iequal, se positivo, è il numero di intervalli uguali (non più di 100) in
cui dividere l’intervallo di ottava, mentre se negativo è il numero di
tabella che contiene dei moltiplicatori di frequenza.
• Sintassi: icps cpsxpch ipch, iequal, irepeat, ibase
ove gli argomenti aggiuntivi permettono di specificare rispettivamente
irepeat l’intervallo da suddividere (2 è l’ottava, 3 la dodicesima, 4 le
due ottave, ecc.), non necessariamente intero ma comunque positivo
ibase è la frequenza che corrisponde al pitch 0.0
Programmazione timbrica - Prof. Luca A. Ludovico
Pitch e frequenze
Confronto ed esempi
• Esempio: le tre scritture seguenti sono equivalenti:
ia = cpspch(8.02)
ib cps2pch 8.02, 12
ic cpsxpch 8.02, 12, 2, 1.02197503906
• Osservazione: la prima è una funzione (argomento tra parentesi,
assegnamento tramite operatore =), mentre gli altri sono opcode.
• Il quarto argomento di cpsxpch è la frequenza del Do 4 ottave sotto la
frequenza di C0 dello schema ISO. Questo valore è coerente con la
numerazione dell’ottava centrale: 4 nello schema ISO, 8 in Csound.
• Esempi: → 12_02_quarti_tono.csd, 12_03_scala_esatonale.csd
Programmazione timbrica - Prof. Luca A. Ludovico
Pitch e frequenze
Estrazione di parte intera e decimale
• I contenuti di questa slide si applicano a tutte le variabili numeriche di
Csound. L’argomento diventa però particolarmente rilevante sulla
notazione Octave Point Pitch Class.
• int estrae un intero da un numero decimale, frac ne restituisce la
parte frazionaria
Sintassi: int(x) e frac(x), con argomento a init-, control- o audio-rate
• ceil restituisce il più piccolo intero non minore di x, floor il più grande
intero non maggiore di x
Sintassi: ceil(x) e floor(x) con argomento a init-, control- o audio-rate
• Esempio: → 12_04_bicordi.csd
Programmazione timbrica - Prof. Luca A. Ludovico
Pitch e frequenze
Codifica Octave Point Decimal
• Nella notazione Octave Point Decimal, l’altezza delle note si esprime
in ottave e frazioni dell’ottava. Tali elementi sono codificati
all’interno di un unico numero decimale (per nota):
– La parte intera, a sinistra della virgola, viene utilizzata per il numero di
ottava della nota, come nella notazione Octave Point Pitch Class
– La parte frazionaria, a destra della virgola, viene usata per indicare come
viene suddivisa l’ottava per generare la nota richiesta.
• Esempi:
– 8.5
– 9.25
Fa# / Solb dell’ottava centr., in quanto 0.5 indica mezza ottava
ossia 6 semitoni sopra il Do
Re# / Mib dell’ottava sup., in quanto 0.25 è un quarto di ottava
ossia 3 semitoni sopra il Do
Programmazione timbrica - Prof. Luca A. Ludovico
Pitch e frequenze
Tabella di confronto (ottava centrale)
Nome
Octave Point Pitch Class
Octave Point Decimal
Do
8.00
8.00
Do# / Reb
8.01
8.0833
Re
8.02
8.16667
Re# / Mib
8.03
8.25
Mi
8.04
8.3333
Fa
8.05
8.41667
Fa# / Solb
8.06
8.5
Sol
8.07
8.5833
Sol# / Lab
8.08
8.6667
La
8.09
8.75
La# / Sib
8.10
8.8333
Si
8.11
8.91667
Programmazione timbrica - Prof. Luca A. Ludovico
Pitch e frequenze
Funzioni cpsoct e octcps
• La funzione cpsoct converte un valore di altezza da octave point
decimal in numero di cicli al secondo, ossia in hertz.
• Sintassi: cpsoct (oct) senza restrizioni sulla frequenza di calcolo
dell’argomento.
• L’operazione inversa è svolta dalla funzione octcps (cps), che converte
gli hertz nella notazione octave point decimal.
L’argomento può variare solo a init-time o a k-rate
• Esempio: → 12_05_forme_onda.csd
In questo esempio, nello score le altezze sono espresse normalmente
in Hz, ma a seconda dell’ottava in cui ricadono viene caricata una
diversa forma d’onda per l’opcode oscil.
Programmazione timbrica - Prof. Luca A. Ludovico
Pitch e frequenze
Pitch e frequenze
• In conclusione, esistono 4 modi predefiniti in Csound per esprimere
pitch e/o frequenze:
1.
2.
3.
4.
octave point pitch-class (8ve.pc) > pch
octave point decimal > oct
cicli al secondo > cps
Numero di nota MIDI (0-127) > midinn
• Csound mette a disposizione funzioni e opcode per passare da un
sistema di rappresentazione a un altro.
Programmazione timbrica - Prof. Luca A. Ludovico
Pitch e frequenze
Scarica

Presentazione del corso