La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico.

Presentazioni simili


Presentazione sul tema: "Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico."— Transcript della presentazione:

1 Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico

2 Utilizzo di valori interi (ripasso) L’utilizzo di valori interi per codificare le altezze (e più avanti anche le durate) è estremamente compatto e di facile gestione. Per rappresentare in modo esaustivo l’informazione è sufficiente un’unica variabile. Su variabili di tipo intero si possono utilizzare gli operatori di confronto e aritmetici. E’ però necessario creare una corrispondenza tra valori numerici e pitch. Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza

3 Concetti già introdotti Una pitch class ( pc ), ossia classe di altezze, include tutti i possibili rappresentanti di una data altezza, trascurando gli aspetti di scrittura in partitura e di ottava. –Il sistema è modulo 12 e i valori interi ammessi ricadono nell’intervallo [0..11] –Ogni valore intero è in corrispondenza con una data altezza all’interno della scala cromatica composta da 12 semitoni (solitamente a partire dal Do) –Gli intervalli pcint che si ottengono hanno sempre segno positivo Il continuous pitch code ( cpc ) è un’estensione del sistema Pitch Class che tiene però conto dell’informazione di ottava. –E’ legato al sistema Pitch Class dalla relazione cpc = ( oct ∙ 12) + pc –I valori interi ammessi ricadono (per costruzione) nell’intervallo [0..n] –Ogni valore intero è in corrispondenza con una data altezza cromatica all’interno delle varie ottave –Sono ammessi intervalli di segno negativo, che implicano moto discendente Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza

4 Name Class ( nc ) Considerazione: i nomi adottati per contraddistinguere le note sono ciclici, esattamente come le pitch class. In questo caso, la ripetizione avviene dopo 7 elementi anziché dopo 12. Ciascun valore (lettere nel caso della denominazione anglosassone, stringhe nel caso delle lingue neo-latine e slave) è un name class ( nc ) e rappresenta tutte le istanze di una data nota ignorando l’informazione di ottava e lo stato di alterazione. Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza

5 Esempi Su uno stesso nc collassano note che vengono scritte sulla stessa riga o sullo stesso spazio nel pentagramma, al netto di eventuali trasposizioni di ottava. Ad esempio: –D4 e D#4 collassano sullo stesso nc nonostante la frequenza diversa –D4 e D#5 collassano sullo stesso nc perché l’ottava non conta –D#4 e Eb5 ricadono su nc diversi nonostante l’omofonia Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza

6 Confronto tra il sistema pc e il sistema nc Il sistema pc è modulo 12, il sistema nc è modulo 7. I valori ammissibili sono rispettivamente [0..11] e [0..6] Calcolo degli intervalli: pcint AB = ( pc B – pc A ) mod 12 ncint AB = ( nc B – nc A ) mod 7 Inversione di un intervallo: pcint’ AB = (12 - pcint AB ) mod 12 ncint’ AB = (7 - ncint AB ) mod 7 Classe di intervalli: pcint AB ncint AB se pcint AB ≤ 6, ncint AB ≤ 3 pic = nic = 12 - pcint AB 7 – ncint AB altrimenti Per la trasposizione si usa la stessa formula, con mod 7. Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza

7 Intervalli nel sistema Name Class Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza Nome ncint Nome Unisono00Ottava Seconda16Settima Terza25Sesta Quarta34Quinta Per costruzione, la somma degli ncint sulla stessa riga dà sempre 7, che in un sistema modulo 7 è: 7 mod 7 = 0. I nomi degli intervalli sono generici: ad esempio, tutte le seconde (maggiori, minori, eccedenti, diminuite, ecc.) collassano sul valore 1. I nomi degli intervalli si ricavano mnemonicamente dai valori numerici sommando +1. Il sistema è modulo 7, quindi l’ottava corrisponde in realtà allo 0 (anche se 8 = 7 + 1). Questo vale per tutti gli intervalli composti.

8 nc: ncint: nic: In verde nic = ncint, in arancione nic = ncint’ = 7 - ncint Esempio Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza

9 Continuous Name Code ( cnc ) Il Continuous Name Code ( cnc ) è un’estensione del sistema Name Class che tiene però conto dell’informazione di ottava. Regola di codifica: moltiplicare il valore di ottava per 7 e sommare il valore intero di pc cnc = ( oct ∙ 7) + nc Per la decodifica: oct = cnc div 7 nc = cnc mod 7 Le note dell’ottava 0 vengono mappate su [0..6], quelle dell’ottava 1 su [7..13] ecc. Il Do dell’ottava centrale (quarta ottava) è codificato con il valore 28. Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza

10 Rappresentazione binomiale I sistemi pc e nc sono complementari: il primo determina l’altezza esatta della nota (quindi la sua frequenza), il secondo la sua scrittura in partitura. Scritture enarmoniche della stessa nota presentano uguale pc ma diverso nc. Alterazioni cromatiche dello stesso nome di nota sono caratterizzate da un diverso pc ma un uguale nc. La rappresentazione binomiale sfrutta i vantaggi di ciascuno dei due sistemi per supplire alle carenze dell’altro. Si tratta di rappresentare l’altezza di ciascuna nota attraverso coppie, e convenzionalmente rappresenta il Do naturale. Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza

11 Coppie ammissibili Sulle colonne sono disposte le note con lo stesso nome e diverso stato di alterazione (sempre 5), sulle righe le enarmonie (sempre 3, ad eccezione di G#/A b ). Quante sono le possibili combinazioni? Teoricamente 12 ∙ 7 = 84, ossia tutte le celle nella tabella a fianco In pratica, considerando al più le doppie alterazioni, 7 ∙ 5 = 35. Fino ad alterazioni quintuple non ci sarebbe ambiguità (vedi colonna C). Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza pc nc CD bb B# 1C#DbDb BxBx 2CxCx DE bb 3 C x# D#EbEb F bb 4 C xx DxDx EFbFb 5 C xx# E#FG bb 6 ? ExEx F#GbGb 7 C bbbbb FxFx GA bb 8 C bbbb G#AbAb 9 C bbb GxGx AB bb 10C bb A#BbBb 11CbCb AxAx B

12 Rappresentazione binomiale degli intervalli nc specifica l’ampiezza dell’intervallo generico, e pc la dimensione in semitoni. Sulle colonne si trovano intervalli la cui dimensione generica è uguale (ad es., le terze, le quarte, ecc.) mentre sulle righe si trovano gli intervalli omofoni. Il sistema non è ambiguo fino agli intervalli quintuplamente eccedenti (5A) o diminuiti (5d). Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza pc nc P1d2(3d)3A7 1A1m2(2d)3 2(2A)1M2d3 3 (3A)1 A2m3 4 (4A)1 (2A)2M3d4 5 (5A)1 (3A)2A3P4 6 ? (4A)2(2A)3A4d5 7 (5d)1 (5A)2(3A)3P5d6 8 (4d)1(5d)2 (4A)3A5m6 9 (3d)1(4d)2 (5A)3M6d7 10(2d)1 (3d)2(5d)3 A6m7 11d1(2d)2 (4d)3 M7 Legenda: …, d = diminuito (diminished), m = minore (minor), P = giusto (perfect), M = maggiore (major), A = eccedente (augmented), …

13 Rappresent. binomiale su singolo intero ( br ) Obiettivo: «impacchettare» i due interi corrispondenti a pc e nc in un solo valore intero, mantenendo leggibilità e compattezza. Dato che per rappresentare tutti i possibili nc è sufficiente una singola cifra in base 10, allora: br = ( pc · 10) + nc Decodifica di br : nc = br mod 10 pc = br div 10 E’ leggibile, perché è facile anche a occhio nudo scomporre le due parti costitutive; è compatto perché il massimo valore richiesto è 116. Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza

14 Esempio Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza brpcnc descrizione B D# EbEb 101D bb C# Attenzione: br è un valore intero in base 10. Per come è stato costruito, non tutte le combinazioni di 3 cifre risultano ammissibili. Infatti, la cifra meno significativa deve appartenere a [0..6], e le più significative a [0..11]. –Ad esempio, 37 e 120 non sono valori ammissibili

15 Rappresentazione dell’ottava Se è necessario tenere conto anche dell’informazione di ottava, esistono due approcci. 1.Inserire già nella rappresentazione binomiale le ottave, passando da coppie a coppie, legate dalla relazione: = Questo consente di rappresentare note con un qualsiasi numero di alterazioni, e perfino combinazioni in cui il pitch notato ( cnc ) si trova in un’ottava differente rispetto al pitch audio ( cpc ). Però spesso si tratta di un’inutile complicazione. Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza

16 Continuous Binomial Representation ( cbr ) Se si è disposti ad accettare la limitazione delle quintuple alterazioni, di intervalli al più quintuplamente eccedenti e diminuiti, e si considera sufficiente il numero di ottava relativa al solo pitch notato ( cnc ), allora: 2.Definiamo il parametro cbr come segue: cbr = oct · br = ( oct · 1000) + ( pc · 10) + nc che può essere decodificato tramite divisioni int. e modulo: oct = cbr div 1000; br = cbr mod 1000; pc = br div 10; nc = br mod 10 Questa stessa rappresentazione può essere utilizzata per gli intervalli, considerando anche l’eventuale segno. In tal caso, il segno rappresenta la direzione dell’intervallo e la/e cifra/e più significative consentono di rappresentare intervalli composti, cioè superiori all’ottava. Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza

17 ESEMPI Cbr.java Il software legge in ingresso una sequenza di valori numerici interi codificati come Continuous Binomial Representation e li trasforma in una sequenza di simboli musicali in formato stringa quali C#4, E bb 5, ecc. IntervalBuilder1.java, IntervalBuilder2.java Il software chiede in ingresso una nota base (espressa come nome e stato di alterazione) e un intervallo (ad es. 2m, 3M, 5P) e produce in uscita la nota alterata che forma tale intervallo. Si propongono due soluzioni algoritmiche alternative. Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza

18 ESERCIZIO Si scriva un semplice programma che chieda all’utente: una nota di base, espressa come carattere un intervallo, espresso come numero di semitoni pc  [0..11] e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc, includendo fino al più che eccedente (2A) e più che diminuito (2d). Ad esempio, agli input C e 7 corrisponderanno gli output: C > F xnc =3(2A)4 C > G nc =4P5 C > A bbnc =5d6 Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza


Scaricare ppt "Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico."

Presentazioni simili


Annunci Google