Rappresentazione binomiale dellrsquoaltezza delle note
Lezione 4
Programmazione per la Musica | Prof Luca A Ludovico
Utilizzo di valori interi (ripasso)
bull Lrsquoutilizzo di valori interi per codificare le altezze (e piugrave avanti anche le durate) egrave estremamente compatto e di facile gestione
bull Per rappresentare in modo esaustivo lrsquoinformazione egrave sufficiente unrsquounica variabile
bull Su variabili di tipo intero si possono utilizzare gli operatori di confronto e aritmetici
bull Ersquo perograve necessario creare una corrispondenza tra valori numerici e pitch
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Concetti giagrave introdotti
bull 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 ndash Il sistema egrave modulo 12 e i valori interi ammessi ricadono nellrsquointervallo [011]ndash Ogni valore intero egrave in corrispondenza con una data altezza allrsquointerno della
scala cromatica composta da 12 semitoni (solitamente a partire dal Do)ndash Gli intervalli pcint che si ottengono hanno sempre segno positivo
bull Il continuous pitch code (cpc) egrave unrsquoestensione del sistema Pitch Class che tiene perograve conto dellrsquoinformazione di ottavandash Ersquo legato al sistema Pitch Class dalla relazione cpc = (oct ∙ 12) + pc
ndash I valori interi ammessi ricadono (per costruzione) nellrsquointervallo [0n]ndash Ogni valore intero egrave in corrispondenza con una data altezza cromatica
allrsquointerno delle varie ottavendash Sono ammessi intervalli di segno negativo che implicano moto discendente
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Name Class (nc)
bull Considerazione i nomi adottati per contraddistinguere le note sono ciclici esattamente come le pitch class In questo caso la ripetizione avviene dopo 7 elementi anzicheacute dopo 12
bull Ciascun valore (lettere nel caso della denominazione anglosassone stringhe nel caso delle lingue neo-latine e slave) egrave un name class (nc) e rappresenta tutte le istanze di una data nota ignorando lrsquoinformazione di ottava e lo stato di alterazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempi
bull 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
bull Ad esempiondash D4 e D4 collassano sullo stesso nc nonostante la frequenza
diversandash D4 e D5 collassano sullo stesso nc percheacute lrsquoottava non contandash D4 e Eb5 ricadono su nc diversi nonostante lrsquoomofonia
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Confronto tra il sistema pc e il sistema nc
bull Il sistema pc egrave modulo 12 il sistema nc egrave modulo 7 I valori ammissibili sono rispettivamente [011] e [06]
bull Calcolo degli intervallipcintAB = (pcB ndash pcA) mod 12
ncintAB = (ncB ndash ncA) mod 7
bull Inversione di un intervallopcintrsquoAB = (12 - pcintAB) mod 12
ncintrsquoAB = (7 - ncintAB) mod 7
bull Classe di intervalli pcintAB ncintAB se pcintAB le 6 ncintAB le 3
pic = nic =
12 - pcintAB 7 ndash ncintAB altrimenti
bull Per la trasposizione si usa la stessa formula con mod 7
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Intervalli nel sistema Name Class
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Nome ncint ncint Nome
Unisono 0 0 Ottava
Seconda 1 6 Settima
Terza 2 5 Sesta
Quarta 3 4 Quinta
Per costruzione la somma degli ncint sulla stessa riga dagrave sempre 7 che in un sistema modulo 7 egrave 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 egrave modulo 7 quindi lrsquoottava corrisponde in realtagrave allo 0 (anche se 8 = 7 + 1) Questo vale per tutti gli intervalli composti
nc 0 4 2 1 3 6 5 6
ncint 4 5 6 2 3 6 1
nic 3 2 1 2 3 1 1
In verde nic = ncint in arancione nic = ncintrsquo = 7 - ncint
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Name Code (cnc)
bull Il Continuous Name Code (cnc) egrave unrsquoestensione del sistema Name Class che tiene perograve conto dellrsquoinformazione di ottava
bull Regola di codifica moltiplicare il valore di ottava per 7 e sommare il valore intero di pc
cnc = (oct ∙ 7) + nc
bull Per la decodificaoct = cnc div 7nc = cnc mod 7
bull Le note dellrsquoottava 0 vengono mappate su [06] quelle dellrsquoottava 1 su [713] ecc Il Do dellrsquoottava centrale (quarta ottava) egrave codificato con il valore 28
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Rappresentazione binomiale
bull I sistemi pc e nc sono complementari il primo determina lrsquoaltezza esatta della nota (quindi la sua frequenza) il secondo la sua scrittura in partitura
bull 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
bull La rappresentazione binomiale sfrutta i vantaggi di ciascuno dei due sistemi per supplire alle carenze dellrsquoaltro Si tratta di rappresentare lrsquoaltezza di ciascuna nota attraverso coppie ltpcncgt e convenzionalmente lt00gt rappresenta il Do naturale
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Coppie ltpcncgt 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 GAb)
Quante sono le possibili combinazioni
Teoricamente 12 ∙ 7 = 84 ossia tutte le celle nella tabella a fianco
In pratica considerando al piugrave le doppie alterazioni 7 ∙ 5 = 35Fino ad alterazioni quintuple non ci sarebbe ambiguitagrave (vedi colonna C)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 C Dbb B
1 C Db Bx
2 Cx D Ebb
3 Cx D Eb Fbb
4 Cxx Dx E Fb
5 Cxx E F Gbb
6 Ex F Gb
7 Cbbbbb
Fx G Abb
8 Cbbbb G Ab
9 Cbbb Gx A Bbb
10 Cbb A Bb
11 Cb Ax B
Rappresentazione binomiale degli intervalli
nc specifica lrsquoampiezza dellrsquointervallo generico e pc la dimensione in semitoni
Sulle colonne si trovano intervalli la cui dimensione generica egrave uguale (ad es le terze le quarte ecc) mentre sulle righe si trovano gli intervalli omofoni
Il sistema non egrave ambiguo fino agli intervalli quintuplamente eccedenti (5A) o diminuiti (5d)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 P1 d2 (3d)3
A7
1 A1 m2 (2d)3
2 (2A)1
M2 d3
3 (3A)1
A2 m3
4 (4A)1
(2A)2
M3 d4
5 (5A)1
(3A)2
A3 P4
6
(4A)2
(2A)3
A4 d5
7 (5d)1
(5A)2
(3A)3
P5 d6
8 (4d)1
(5d)2
(4A)3
A5 m6
9 (3d)1
(4d)2
(5A)3
M6 d7
10 (2d)1
(3d)2
(5d)3
A6 m7
11 d1 (2d)2
(4d)3
M7
Legenda hellip d = diminuito (diminished) m = minore (minor) P = giusto (perfect) M = maggiore (major) A = eccedente (augmented) hellip
Rappresent binomiale su singolo intero (br)
bull Obiettivo laquoimpacchettareraquo i due interi corrispondenti a pc e nc in un solo valore intero mantenendo leggibilitagrave e compattezza
bull Dato che per rappresentare tutti i possibili nc egrave sufficiente una singola cifra in base 10 allora
br = (pc 10) + nc
bull Decodifica di br nc = br mod 10 pc = br div 10
bull Ersquo leggibile percheacute egrave facile anche a occhio nudo scomporre le due parti costitutive egrave compatto percheacute il massimo valore richiesto egrave 116
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
br pc nc descrizione
116 11 6 B
31 3 1 D
32 3 2 Eb
1 0 1 Dbb
10 1 0 Cbull Attenzione br egrave un valore intero in base 10 Per come egrave stato
costruito non tutte le combinazioni di 3 cifre risultano ammissibili Infatti la cifra meno significativa deve appartenere a [06] e le piugrave significative a [011]ndash Ad esempio 37 e 120 non sono valori ammissibili
Rappresentazione dellrsquoottava
bull Se egrave necessario tenere conto anche dellrsquoinformazione di ottava esistono due approcci
1 Inserire giagrave nella rappresentazione binomiale le ottave passando da coppie ltpcncgt a coppie ltcpccncgt legate dalla relazione
ltcpccncgt = lt(poct ∙ 12) + pc (noct ∙ 7) + ncgt
bull Questo consente di rappresentare note con un qualsiasi numero di alterazioni e perfino combinazioni in cui il pitch notato (cnc) si trova in unrsquoottava differente rispetto al pitch audio (cpc)
bull Perograve spesso si tratta di unrsquoinutile complicazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Binomial Representation (cbr)
bull Se si egrave disposti ad accettare la limitazione delle quintuple alterazioni di intervalli al piugrave 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 seguecbr = oct 1000 + br = (oct 1000) + (pc 10) + nc
che puograve essere decodificato tramite divisioni int e modulo oct = cbr div 1000 br = cbr mod 1000 pc = br div 10 nc = br mod 10
bull Questa stessa rappresentazione puograve essere utilizzata per gli intervalli considerando anche lrsquoeventuale segno In tal caso il segno rappresenta la direzione dellrsquointervallo e lae cifrae piugrave significative consentono di rappresentare intervalli composti cioegrave superiori allrsquoottava
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESEMPI
CbrjavaIl 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 C4 Ebb5 ecc
IntervalBuilder1java IntervalBuilder2javaIl 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 Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Utilizzo di valori interi (ripasso)
bull Lrsquoutilizzo di valori interi per codificare le altezze (e piugrave avanti anche le durate) egrave estremamente compatto e di facile gestione
bull Per rappresentare in modo esaustivo lrsquoinformazione egrave sufficiente unrsquounica variabile
bull Su variabili di tipo intero si possono utilizzare gli operatori di confronto e aritmetici
bull Ersquo perograve necessario creare una corrispondenza tra valori numerici e pitch
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Concetti giagrave introdotti
bull 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 ndash Il sistema egrave modulo 12 e i valori interi ammessi ricadono nellrsquointervallo [011]ndash Ogni valore intero egrave in corrispondenza con una data altezza allrsquointerno della
scala cromatica composta da 12 semitoni (solitamente a partire dal Do)ndash Gli intervalli pcint che si ottengono hanno sempre segno positivo
bull Il continuous pitch code (cpc) egrave unrsquoestensione del sistema Pitch Class che tiene perograve conto dellrsquoinformazione di ottavandash Ersquo legato al sistema Pitch Class dalla relazione cpc = (oct ∙ 12) + pc
ndash I valori interi ammessi ricadono (per costruzione) nellrsquointervallo [0n]ndash Ogni valore intero egrave in corrispondenza con una data altezza cromatica
allrsquointerno delle varie ottavendash Sono ammessi intervalli di segno negativo che implicano moto discendente
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Name Class (nc)
bull Considerazione i nomi adottati per contraddistinguere le note sono ciclici esattamente come le pitch class In questo caso la ripetizione avviene dopo 7 elementi anzicheacute dopo 12
bull Ciascun valore (lettere nel caso della denominazione anglosassone stringhe nel caso delle lingue neo-latine e slave) egrave un name class (nc) e rappresenta tutte le istanze di una data nota ignorando lrsquoinformazione di ottava e lo stato di alterazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempi
bull 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
bull Ad esempiondash D4 e D4 collassano sullo stesso nc nonostante la frequenza
diversandash D4 e D5 collassano sullo stesso nc percheacute lrsquoottava non contandash D4 e Eb5 ricadono su nc diversi nonostante lrsquoomofonia
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Confronto tra il sistema pc e il sistema nc
bull Il sistema pc egrave modulo 12 il sistema nc egrave modulo 7 I valori ammissibili sono rispettivamente [011] e [06]
bull Calcolo degli intervallipcintAB = (pcB ndash pcA) mod 12
ncintAB = (ncB ndash ncA) mod 7
bull Inversione di un intervallopcintrsquoAB = (12 - pcintAB) mod 12
ncintrsquoAB = (7 - ncintAB) mod 7
bull Classe di intervalli pcintAB ncintAB se pcintAB le 6 ncintAB le 3
pic = nic =
12 - pcintAB 7 ndash ncintAB altrimenti
bull Per la trasposizione si usa la stessa formula con mod 7
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Intervalli nel sistema Name Class
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Nome ncint ncint Nome
Unisono 0 0 Ottava
Seconda 1 6 Settima
Terza 2 5 Sesta
Quarta 3 4 Quinta
Per costruzione la somma degli ncint sulla stessa riga dagrave sempre 7 che in un sistema modulo 7 egrave 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 egrave modulo 7 quindi lrsquoottava corrisponde in realtagrave allo 0 (anche se 8 = 7 + 1) Questo vale per tutti gli intervalli composti
nc 0 4 2 1 3 6 5 6
ncint 4 5 6 2 3 6 1
nic 3 2 1 2 3 1 1
In verde nic = ncint in arancione nic = ncintrsquo = 7 - ncint
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Name Code (cnc)
bull Il Continuous Name Code (cnc) egrave unrsquoestensione del sistema Name Class che tiene perograve conto dellrsquoinformazione di ottava
bull Regola di codifica moltiplicare il valore di ottava per 7 e sommare il valore intero di pc
cnc = (oct ∙ 7) + nc
bull Per la decodificaoct = cnc div 7nc = cnc mod 7
bull Le note dellrsquoottava 0 vengono mappate su [06] quelle dellrsquoottava 1 su [713] ecc Il Do dellrsquoottava centrale (quarta ottava) egrave codificato con il valore 28
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Rappresentazione binomiale
bull I sistemi pc e nc sono complementari il primo determina lrsquoaltezza esatta della nota (quindi la sua frequenza) il secondo la sua scrittura in partitura
bull 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
bull La rappresentazione binomiale sfrutta i vantaggi di ciascuno dei due sistemi per supplire alle carenze dellrsquoaltro Si tratta di rappresentare lrsquoaltezza di ciascuna nota attraverso coppie ltpcncgt e convenzionalmente lt00gt rappresenta il Do naturale
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Coppie ltpcncgt 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 GAb)
Quante sono le possibili combinazioni
Teoricamente 12 ∙ 7 = 84 ossia tutte le celle nella tabella a fianco
In pratica considerando al piugrave le doppie alterazioni 7 ∙ 5 = 35Fino ad alterazioni quintuple non ci sarebbe ambiguitagrave (vedi colonna C)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 C Dbb B
1 C Db Bx
2 Cx D Ebb
3 Cx D Eb Fbb
4 Cxx Dx E Fb
5 Cxx E F Gbb
6 Ex F Gb
7 Cbbbbb
Fx G Abb
8 Cbbbb G Ab
9 Cbbb Gx A Bbb
10 Cbb A Bb
11 Cb Ax B
Rappresentazione binomiale degli intervalli
nc specifica lrsquoampiezza dellrsquointervallo generico e pc la dimensione in semitoni
Sulle colonne si trovano intervalli la cui dimensione generica egrave uguale (ad es le terze le quarte ecc) mentre sulle righe si trovano gli intervalli omofoni
Il sistema non egrave ambiguo fino agli intervalli quintuplamente eccedenti (5A) o diminuiti (5d)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 P1 d2 (3d)3
A7
1 A1 m2 (2d)3
2 (2A)1
M2 d3
3 (3A)1
A2 m3
4 (4A)1
(2A)2
M3 d4
5 (5A)1
(3A)2
A3 P4
6
(4A)2
(2A)3
A4 d5
7 (5d)1
(5A)2
(3A)3
P5 d6
8 (4d)1
(5d)2
(4A)3
A5 m6
9 (3d)1
(4d)2
(5A)3
M6 d7
10 (2d)1
(3d)2
(5d)3
A6 m7
11 d1 (2d)2
(4d)3
M7
Legenda hellip d = diminuito (diminished) m = minore (minor) P = giusto (perfect) M = maggiore (major) A = eccedente (augmented) hellip
Rappresent binomiale su singolo intero (br)
bull Obiettivo laquoimpacchettareraquo i due interi corrispondenti a pc e nc in un solo valore intero mantenendo leggibilitagrave e compattezza
bull Dato che per rappresentare tutti i possibili nc egrave sufficiente una singola cifra in base 10 allora
br = (pc 10) + nc
bull Decodifica di br nc = br mod 10 pc = br div 10
bull Ersquo leggibile percheacute egrave facile anche a occhio nudo scomporre le due parti costitutive egrave compatto percheacute il massimo valore richiesto egrave 116
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
br pc nc descrizione
116 11 6 B
31 3 1 D
32 3 2 Eb
1 0 1 Dbb
10 1 0 Cbull Attenzione br egrave un valore intero in base 10 Per come egrave stato
costruito non tutte le combinazioni di 3 cifre risultano ammissibili Infatti la cifra meno significativa deve appartenere a [06] e le piugrave significative a [011]ndash Ad esempio 37 e 120 non sono valori ammissibili
Rappresentazione dellrsquoottava
bull Se egrave necessario tenere conto anche dellrsquoinformazione di ottava esistono due approcci
1 Inserire giagrave nella rappresentazione binomiale le ottave passando da coppie ltpcncgt a coppie ltcpccncgt legate dalla relazione
ltcpccncgt = lt(poct ∙ 12) + pc (noct ∙ 7) + ncgt
bull Questo consente di rappresentare note con un qualsiasi numero di alterazioni e perfino combinazioni in cui il pitch notato (cnc) si trova in unrsquoottava differente rispetto al pitch audio (cpc)
bull Perograve spesso si tratta di unrsquoinutile complicazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Binomial Representation (cbr)
bull Se si egrave disposti ad accettare la limitazione delle quintuple alterazioni di intervalli al piugrave 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 seguecbr = oct 1000 + br = (oct 1000) + (pc 10) + nc
che puograve essere decodificato tramite divisioni int e modulo oct = cbr div 1000 br = cbr mod 1000 pc = br div 10 nc = br mod 10
bull Questa stessa rappresentazione puograve essere utilizzata per gli intervalli considerando anche lrsquoeventuale segno In tal caso il segno rappresenta la direzione dellrsquointervallo e lae cifrae piugrave significative consentono di rappresentare intervalli composti cioegrave superiori allrsquoottava
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESEMPI
CbrjavaIl 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 C4 Ebb5 ecc
IntervalBuilder1java IntervalBuilder2javaIl 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 Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Concetti giagrave introdotti
bull 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 ndash Il sistema egrave modulo 12 e i valori interi ammessi ricadono nellrsquointervallo [011]ndash Ogni valore intero egrave in corrispondenza con una data altezza allrsquointerno della
scala cromatica composta da 12 semitoni (solitamente a partire dal Do)ndash Gli intervalli pcint che si ottengono hanno sempre segno positivo
bull Il continuous pitch code (cpc) egrave unrsquoestensione del sistema Pitch Class che tiene perograve conto dellrsquoinformazione di ottavandash Ersquo legato al sistema Pitch Class dalla relazione cpc = (oct ∙ 12) + pc
ndash I valori interi ammessi ricadono (per costruzione) nellrsquointervallo [0n]ndash Ogni valore intero egrave in corrispondenza con una data altezza cromatica
allrsquointerno delle varie ottavendash Sono ammessi intervalli di segno negativo che implicano moto discendente
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Name Class (nc)
bull Considerazione i nomi adottati per contraddistinguere le note sono ciclici esattamente come le pitch class In questo caso la ripetizione avviene dopo 7 elementi anzicheacute dopo 12
bull Ciascun valore (lettere nel caso della denominazione anglosassone stringhe nel caso delle lingue neo-latine e slave) egrave un name class (nc) e rappresenta tutte le istanze di una data nota ignorando lrsquoinformazione di ottava e lo stato di alterazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempi
bull 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
bull Ad esempiondash D4 e D4 collassano sullo stesso nc nonostante la frequenza
diversandash D4 e D5 collassano sullo stesso nc percheacute lrsquoottava non contandash D4 e Eb5 ricadono su nc diversi nonostante lrsquoomofonia
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Confronto tra il sistema pc e il sistema nc
bull Il sistema pc egrave modulo 12 il sistema nc egrave modulo 7 I valori ammissibili sono rispettivamente [011] e [06]
bull Calcolo degli intervallipcintAB = (pcB ndash pcA) mod 12
ncintAB = (ncB ndash ncA) mod 7
bull Inversione di un intervallopcintrsquoAB = (12 - pcintAB) mod 12
ncintrsquoAB = (7 - ncintAB) mod 7
bull Classe di intervalli pcintAB ncintAB se pcintAB le 6 ncintAB le 3
pic = nic =
12 - pcintAB 7 ndash ncintAB altrimenti
bull Per la trasposizione si usa la stessa formula con mod 7
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Intervalli nel sistema Name Class
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Nome ncint ncint Nome
Unisono 0 0 Ottava
Seconda 1 6 Settima
Terza 2 5 Sesta
Quarta 3 4 Quinta
Per costruzione la somma degli ncint sulla stessa riga dagrave sempre 7 che in un sistema modulo 7 egrave 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 egrave modulo 7 quindi lrsquoottava corrisponde in realtagrave allo 0 (anche se 8 = 7 + 1) Questo vale per tutti gli intervalli composti
nc 0 4 2 1 3 6 5 6
ncint 4 5 6 2 3 6 1
nic 3 2 1 2 3 1 1
In verde nic = ncint in arancione nic = ncintrsquo = 7 - ncint
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Name Code (cnc)
bull Il Continuous Name Code (cnc) egrave unrsquoestensione del sistema Name Class che tiene perograve conto dellrsquoinformazione di ottava
bull Regola di codifica moltiplicare il valore di ottava per 7 e sommare il valore intero di pc
cnc = (oct ∙ 7) + nc
bull Per la decodificaoct = cnc div 7nc = cnc mod 7
bull Le note dellrsquoottava 0 vengono mappate su [06] quelle dellrsquoottava 1 su [713] ecc Il Do dellrsquoottava centrale (quarta ottava) egrave codificato con il valore 28
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Rappresentazione binomiale
bull I sistemi pc e nc sono complementari il primo determina lrsquoaltezza esatta della nota (quindi la sua frequenza) il secondo la sua scrittura in partitura
bull 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
bull La rappresentazione binomiale sfrutta i vantaggi di ciascuno dei due sistemi per supplire alle carenze dellrsquoaltro Si tratta di rappresentare lrsquoaltezza di ciascuna nota attraverso coppie ltpcncgt e convenzionalmente lt00gt rappresenta il Do naturale
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Coppie ltpcncgt 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 GAb)
Quante sono le possibili combinazioni
Teoricamente 12 ∙ 7 = 84 ossia tutte le celle nella tabella a fianco
In pratica considerando al piugrave le doppie alterazioni 7 ∙ 5 = 35Fino ad alterazioni quintuple non ci sarebbe ambiguitagrave (vedi colonna C)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 C Dbb B
1 C Db Bx
2 Cx D Ebb
3 Cx D Eb Fbb
4 Cxx Dx E Fb
5 Cxx E F Gbb
6 Ex F Gb
7 Cbbbbb
Fx G Abb
8 Cbbbb G Ab
9 Cbbb Gx A Bbb
10 Cbb A Bb
11 Cb Ax B
Rappresentazione binomiale degli intervalli
nc specifica lrsquoampiezza dellrsquointervallo generico e pc la dimensione in semitoni
Sulle colonne si trovano intervalli la cui dimensione generica egrave uguale (ad es le terze le quarte ecc) mentre sulle righe si trovano gli intervalli omofoni
Il sistema non egrave ambiguo fino agli intervalli quintuplamente eccedenti (5A) o diminuiti (5d)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 P1 d2 (3d)3
A7
1 A1 m2 (2d)3
2 (2A)1
M2 d3
3 (3A)1
A2 m3
4 (4A)1
(2A)2
M3 d4
5 (5A)1
(3A)2
A3 P4
6
(4A)2
(2A)3
A4 d5
7 (5d)1
(5A)2
(3A)3
P5 d6
8 (4d)1
(5d)2
(4A)3
A5 m6
9 (3d)1
(4d)2
(5A)3
M6 d7
10 (2d)1
(3d)2
(5d)3
A6 m7
11 d1 (2d)2
(4d)3
M7
Legenda hellip d = diminuito (diminished) m = minore (minor) P = giusto (perfect) M = maggiore (major) A = eccedente (augmented) hellip
Rappresent binomiale su singolo intero (br)
bull Obiettivo laquoimpacchettareraquo i due interi corrispondenti a pc e nc in un solo valore intero mantenendo leggibilitagrave e compattezza
bull Dato che per rappresentare tutti i possibili nc egrave sufficiente una singola cifra in base 10 allora
br = (pc 10) + nc
bull Decodifica di br nc = br mod 10 pc = br div 10
bull Ersquo leggibile percheacute egrave facile anche a occhio nudo scomporre le due parti costitutive egrave compatto percheacute il massimo valore richiesto egrave 116
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
br pc nc descrizione
116 11 6 B
31 3 1 D
32 3 2 Eb
1 0 1 Dbb
10 1 0 Cbull Attenzione br egrave un valore intero in base 10 Per come egrave stato
costruito non tutte le combinazioni di 3 cifre risultano ammissibili Infatti la cifra meno significativa deve appartenere a [06] e le piugrave significative a [011]ndash Ad esempio 37 e 120 non sono valori ammissibili
Rappresentazione dellrsquoottava
bull Se egrave necessario tenere conto anche dellrsquoinformazione di ottava esistono due approcci
1 Inserire giagrave nella rappresentazione binomiale le ottave passando da coppie ltpcncgt a coppie ltcpccncgt legate dalla relazione
ltcpccncgt = lt(poct ∙ 12) + pc (noct ∙ 7) + ncgt
bull Questo consente di rappresentare note con un qualsiasi numero di alterazioni e perfino combinazioni in cui il pitch notato (cnc) si trova in unrsquoottava differente rispetto al pitch audio (cpc)
bull Perograve spesso si tratta di unrsquoinutile complicazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Binomial Representation (cbr)
bull Se si egrave disposti ad accettare la limitazione delle quintuple alterazioni di intervalli al piugrave 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 seguecbr = oct 1000 + br = (oct 1000) + (pc 10) + nc
che puograve essere decodificato tramite divisioni int e modulo oct = cbr div 1000 br = cbr mod 1000 pc = br div 10 nc = br mod 10
bull Questa stessa rappresentazione puograve essere utilizzata per gli intervalli considerando anche lrsquoeventuale segno In tal caso il segno rappresenta la direzione dellrsquointervallo e lae cifrae piugrave significative consentono di rappresentare intervalli composti cioegrave superiori allrsquoottava
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESEMPI
CbrjavaIl 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 C4 Ebb5 ecc
IntervalBuilder1java IntervalBuilder2javaIl 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 Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Name Class (nc)
bull Considerazione i nomi adottati per contraddistinguere le note sono ciclici esattamente come le pitch class In questo caso la ripetizione avviene dopo 7 elementi anzicheacute dopo 12
bull Ciascun valore (lettere nel caso della denominazione anglosassone stringhe nel caso delle lingue neo-latine e slave) egrave un name class (nc) e rappresenta tutte le istanze di una data nota ignorando lrsquoinformazione di ottava e lo stato di alterazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempi
bull 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
bull Ad esempiondash D4 e D4 collassano sullo stesso nc nonostante la frequenza
diversandash D4 e D5 collassano sullo stesso nc percheacute lrsquoottava non contandash D4 e Eb5 ricadono su nc diversi nonostante lrsquoomofonia
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Confronto tra il sistema pc e il sistema nc
bull Il sistema pc egrave modulo 12 il sistema nc egrave modulo 7 I valori ammissibili sono rispettivamente [011] e [06]
bull Calcolo degli intervallipcintAB = (pcB ndash pcA) mod 12
ncintAB = (ncB ndash ncA) mod 7
bull Inversione di un intervallopcintrsquoAB = (12 - pcintAB) mod 12
ncintrsquoAB = (7 - ncintAB) mod 7
bull Classe di intervalli pcintAB ncintAB se pcintAB le 6 ncintAB le 3
pic = nic =
12 - pcintAB 7 ndash ncintAB altrimenti
bull Per la trasposizione si usa la stessa formula con mod 7
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Intervalli nel sistema Name Class
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Nome ncint ncint Nome
Unisono 0 0 Ottava
Seconda 1 6 Settima
Terza 2 5 Sesta
Quarta 3 4 Quinta
Per costruzione la somma degli ncint sulla stessa riga dagrave sempre 7 che in un sistema modulo 7 egrave 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 egrave modulo 7 quindi lrsquoottava corrisponde in realtagrave allo 0 (anche se 8 = 7 + 1) Questo vale per tutti gli intervalli composti
nc 0 4 2 1 3 6 5 6
ncint 4 5 6 2 3 6 1
nic 3 2 1 2 3 1 1
In verde nic = ncint in arancione nic = ncintrsquo = 7 - ncint
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Name Code (cnc)
bull Il Continuous Name Code (cnc) egrave unrsquoestensione del sistema Name Class che tiene perograve conto dellrsquoinformazione di ottava
bull Regola di codifica moltiplicare il valore di ottava per 7 e sommare il valore intero di pc
cnc = (oct ∙ 7) + nc
bull Per la decodificaoct = cnc div 7nc = cnc mod 7
bull Le note dellrsquoottava 0 vengono mappate su [06] quelle dellrsquoottava 1 su [713] ecc Il Do dellrsquoottava centrale (quarta ottava) egrave codificato con il valore 28
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Rappresentazione binomiale
bull I sistemi pc e nc sono complementari il primo determina lrsquoaltezza esatta della nota (quindi la sua frequenza) il secondo la sua scrittura in partitura
bull 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
bull La rappresentazione binomiale sfrutta i vantaggi di ciascuno dei due sistemi per supplire alle carenze dellrsquoaltro Si tratta di rappresentare lrsquoaltezza di ciascuna nota attraverso coppie ltpcncgt e convenzionalmente lt00gt rappresenta il Do naturale
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Coppie ltpcncgt 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 GAb)
Quante sono le possibili combinazioni
Teoricamente 12 ∙ 7 = 84 ossia tutte le celle nella tabella a fianco
In pratica considerando al piugrave le doppie alterazioni 7 ∙ 5 = 35Fino ad alterazioni quintuple non ci sarebbe ambiguitagrave (vedi colonna C)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 C Dbb B
1 C Db Bx
2 Cx D Ebb
3 Cx D Eb Fbb
4 Cxx Dx E Fb
5 Cxx E F Gbb
6 Ex F Gb
7 Cbbbbb
Fx G Abb
8 Cbbbb G Ab
9 Cbbb Gx A Bbb
10 Cbb A Bb
11 Cb Ax B
Rappresentazione binomiale degli intervalli
nc specifica lrsquoampiezza dellrsquointervallo generico e pc la dimensione in semitoni
Sulle colonne si trovano intervalli la cui dimensione generica egrave uguale (ad es le terze le quarte ecc) mentre sulle righe si trovano gli intervalli omofoni
Il sistema non egrave ambiguo fino agli intervalli quintuplamente eccedenti (5A) o diminuiti (5d)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 P1 d2 (3d)3
A7
1 A1 m2 (2d)3
2 (2A)1
M2 d3
3 (3A)1
A2 m3
4 (4A)1
(2A)2
M3 d4
5 (5A)1
(3A)2
A3 P4
6
(4A)2
(2A)3
A4 d5
7 (5d)1
(5A)2
(3A)3
P5 d6
8 (4d)1
(5d)2
(4A)3
A5 m6
9 (3d)1
(4d)2
(5A)3
M6 d7
10 (2d)1
(3d)2
(5d)3
A6 m7
11 d1 (2d)2
(4d)3
M7
Legenda hellip d = diminuito (diminished) m = minore (minor) P = giusto (perfect) M = maggiore (major) A = eccedente (augmented) hellip
Rappresent binomiale su singolo intero (br)
bull Obiettivo laquoimpacchettareraquo i due interi corrispondenti a pc e nc in un solo valore intero mantenendo leggibilitagrave e compattezza
bull Dato che per rappresentare tutti i possibili nc egrave sufficiente una singola cifra in base 10 allora
br = (pc 10) + nc
bull Decodifica di br nc = br mod 10 pc = br div 10
bull Ersquo leggibile percheacute egrave facile anche a occhio nudo scomporre le due parti costitutive egrave compatto percheacute il massimo valore richiesto egrave 116
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
br pc nc descrizione
116 11 6 B
31 3 1 D
32 3 2 Eb
1 0 1 Dbb
10 1 0 Cbull Attenzione br egrave un valore intero in base 10 Per come egrave stato
costruito non tutte le combinazioni di 3 cifre risultano ammissibili Infatti la cifra meno significativa deve appartenere a [06] e le piugrave significative a [011]ndash Ad esempio 37 e 120 non sono valori ammissibili
Rappresentazione dellrsquoottava
bull Se egrave necessario tenere conto anche dellrsquoinformazione di ottava esistono due approcci
1 Inserire giagrave nella rappresentazione binomiale le ottave passando da coppie ltpcncgt a coppie ltcpccncgt legate dalla relazione
ltcpccncgt = lt(poct ∙ 12) + pc (noct ∙ 7) + ncgt
bull Questo consente di rappresentare note con un qualsiasi numero di alterazioni e perfino combinazioni in cui il pitch notato (cnc) si trova in unrsquoottava differente rispetto al pitch audio (cpc)
bull Perograve spesso si tratta di unrsquoinutile complicazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Binomial Representation (cbr)
bull Se si egrave disposti ad accettare la limitazione delle quintuple alterazioni di intervalli al piugrave 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 seguecbr = oct 1000 + br = (oct 1000) + (pc 10) + nc
che puograve essere decodificato tramite divisioni int e modulo oct = cbr div 1000 br = cbr mod 1000 pc = br div 10 nc = br mod 10
bull Questa stessa rappresentazione puograve essere utilizzata per gli intervalli considerando anche lrsquoeventuale segno In tal caso il segno rappresenta la direzione dellrsquointervallo e lae cifrae piugrave significative consentono di rappresentare intervalli composti cioegrave superiori allrsquoottava
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESEMPI
CbrjavaIl 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 C4 Ebb5 ecc
IntervalBuilder1java IntervalBuilder2javaIl 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 Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempi
bull 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
bull Ad esempiondash D4 e D4 collassano sullo stesso nc nonostante la frequenza
diversandash D4 e D5 collassano sullo stesso nc percheacute lrsquoottava non contandash D4 e Eb5 ricadono su nc diversi nonostante lrsquoomofonia
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Confronto tra il sistema pc e il sistema nc
bull Il sistema pc egrave modulo 12 il sistema nc egrave modulo 7 I valori ammissibili sono rispettivamente [011] e [06]
bull Calcolo degli intervallipcintAB = (pcB ndash pcA) mod 12
ncintAB = (ncB ndash ncA) mod 7
bull Inversione di un intervallopcintrsquoAB = (12 - pcintAB) mod 12
ncintrsquoAB = (7 - ncintAB) mod 7
bull Classe di intervalli pcintAB ncintAB se pcintAB le 6 ncintAB le 3
pic = nic =
12 - pcintAB 7 ndash ncintAB altrimenti
bull Per la trasposizione si usa la stessa formula con mod 7
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Intervalli nel sistema Name Class
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Nome ncint ncint Nome
Unisono 0 0 Ottava
Seconda 1 6 Settima
Terza 2 5 Sesta
Quarta 3 4 Quinta
Per costruzione la somma degli ncint sulla stessa riga dagrave sempre 7 che in un sistema modulo 7 egrave 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 egrave modulo 7 quindi lrsquoottava corrisponde in realtagrave allo 0 (anche se 8 = 7 + 1) Questo vale per tutti gli intervalli composti
nc 0 4 2 1 3 6 5 6
ncint 4 5 6 2 3 6 1
nic 3 2 1 2 3 1 1
In verde nic = ncint in arancione nic = ncintrsquo = 7 - ncint
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Name Code (cnc)
bull Il Continuous Name Code (cnc) egrave unrsquoestensione del sistema Name Class che tiene perograve conto dellrsquoinformazione di ottava
bull Regola di codifica moltiplicare il valore di ottava per 7 e sommare il valore intero di pc
cnc = (oct ∙ 7) + nc
bull Per la decodificaoct = cnc div 7nc = cnc mod 7
bull Le note dellrsquoottava 0 vengono mappate su [06] quelle dellrsquoottava 1 su [713] ecc Il Do dellrsquoottava centrale (quarta ottava) egrave codificato con il valore 28
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Rappresentazione binomiale
bull I sistemi pc e nc sono complementari il primo determina lrsquoaltezza esatta della nota (quindi la sua frequenza) il secondo la sua scrittura in partitura
bull 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
bull La rappresentazione binomiale sfrutta i vantaggi di ciascuno dei due sistemi per supplire alle carenze dellrsquoaltro Si tratta di rappresentare lrsquoaltezza di ciascuna nota attraverso coppie ltpcncgt e convenzionalmente lt00gt rappresenta il Do naturale
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Coppie ltpcncgt 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 GAb)
Quante sono le possibili combinazioni
Teoricamente 12 ∙ 7 = 84 ossia tutte le celle nella tabella a fianco
In pratica considerando al piugrave le doppie alterazioni 7 ∙ 5 = 35Fino ad alterazioni quintuple non ci sarebbe ambiguitagrave (vedi colonna C)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 C Dbb B
1 C Db Bx
2 Cx D Ebb
3 Cx D Eb Fbb
4 Cxx Dx E Fb
5 Cxx E F Gbb
6 Ex F Gb
7 Cbbbbb
Fx G Abb
8 Cbbbb G Ab
9 Cbbb Gx A Bbb
10 Cbb A Bb
11 Cb Ax B
Rappresentazione binomiale degli intervalli
nc specifica lrsquoampiezza dellrsquointervallo generico e pc la dimensione in semitoni
Sulle colonne si trovano intervalli la cui dimensione generica egrave uguale (ad es le terze le quarte ecc) mentre sulle righe si trovano gli intervalli omofoni
Il sistema non egrave ambiguo fino agli intervalli quintuplamente eccedenti (5A) o diminuiti (5d)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 P1 d2 (3d)3
A7
1 A1 m2 (2d)3
2 (2A)1
M2 d3
3 (3A)1
A2 m3
4 (4A)1
(2A)2
M3 d4
5 (5A)1
(3A)2
A3 P4
6
(4A)2
(2A)3
A4 d5
7 (5d)1
(5A)2
(3A)3
P5 d6
8 (4d)1
(5d)2
(4A)3
A5 m6
9 (3d)1
(4d)2
(5A)3
M6 d7
10 (2d)1
(3d)2
(5d)3
A6 m7
11 d1 (2d)2
(4d)3
M7
Legenda hellip d = diminuito (diminished) m = minore (minor) P = giusto (perfect) M = maggiore (major) A = eccedente (augmented) hellip
Rappresent binomiale su singolo intero (br)
bull Obiettivo laquoimpacchettareraquo i due interi corrispondenti a pc e nc in un solo valore intero mantenendo leggibilitagrave e compattezza
bull Dato che per rappresentare tutti i possibili nc egrave sufficiente una singola cifra in base 10 allora
br = (pc 10) + nc
bull Decodifica di br nc = br mod 10 pc = br div 10
bull Ersquo leggibile percheacute egrave facile anche a occhio nudo scomporre le due parti costitutive egrave compatto percheacute il massimo valore richiesto egrave 116
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
br pc nc descrizione
116 11 6 B
31 3 1 D
32 3 2 Eb
1 0 1 Dbb
10 1 0 Cbull Attenzione br egrave un valore intero in base 10 Per come egrave stato
costruito non tutte le combinazioni di 3 cifre risultano ammissibili Infatti la cifra meno significativa deve appartenere a [06] e le piugrave significative a [011]ndash Ad esempio 37 e 120 non sono valori ammissibili
Rappresentazione dellrsquoottava
bull Se egrave necessario tenere conto anche dellrsquoinformazione di ottava esistono due approcci
1 Inserire giagrave nella rappresentazione binomiale le ottave passando da coppie ltpcncgt a coppie ltcpccncgt legate dalla relazione
ltcpccncgt = lt(poct ∙ 12) + pc (noct ∙ 7) + ncgt
bull Questo consente di rappresentare note con un qualsiasi numero di alterazioni e perfino combinazioni in cui il pitch notato (cnc) si trova in unrsquoottava differente rispetto al pitch audio (cpc)
bull Perograve spesso si tratta di unrsquoinutile complicazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Binomial Representation (cbr)
bull Se si egrave disposti ad accettare la limitazione delle quintuple alterazioni di intervalli al piugrave 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 seguecbr = oct 1000 + br = (oct 1000) + (pc 10) + nc
che puograve essere decodificato tramite divisioni int e modulo oct = cbr div 1000 br = cbr mod 1000 pc = br div 10 nc = br mod 10
bull Questa stessa rappresentazione puograve essere utilizzata per gli intervalli considerando anche lrsquoeventuale segno In tal caso il segno rappresenta la direzione dellrsquointervallo e lae cifrae piugrave significative consentono di rappresentare intervalli composti cioegrave superiori allrsquoottava
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESEMPI
CbrjavaIl 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 C4 Ebb5 ecc
IntervalBuilder1java IntervalBuilder2javaIl 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 Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Confronto tra il sistema pc e il sistema nc
bull Il sistema pc egrave modulo 12 il sistema nc egrave modulo 7 I valori ammissibili sono rispettivamente [011] e [06]
bull Calcolo degli intervallipcintAB = (pcB ndash pcA) mod 12
ncintAB = (ncB ndash ncA) mod 7
bull Inversione di un intervallopcintrsquoAB = (12 - pcintAB) mod 12
ncintrsquoAB = (7 - ncintAB) mod 7
bull Classe di intervalli pcintAB ncintAB se pcintAB le 6 ncintAB le 3
pic = nic =
12 - pcintAB 7 ndash ncintAB altrimenti
bull Per la trasposizione si usa la stessa formula con mod 7
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Intervalli nel sistema Name Class
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Nome ncint ncint Nome
Unisono 0 0 Ottava
Seconda 1 6 Settima
Terza 2 5 Sesta
Quarta 3 4 Quinta
Per costruzione la somma degli ncint sulla stessa riga dagrave sempre 7 che in un sistema modulo 7 egrave 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 egrave modulo 7 quindi lrsquoottava corrisponde in realtagrave allo 0 (anche se 8 = 7 + 1) Questo vale per tutti gli intervalli composti
nc 0 4 2 1 3 6 5 6
ncint 4 5 6 2 3 6 1
nic 3 2 1 2 3 1 1
In verde nic = ncint in arancione nic = ncintrsquo = 7 - ncint
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Name Code (cnc)
bull Il Continuous Name Code (cnc) egrave unrsquoestensione del sistema Name Class che tiene perograve conto dellrsquoinformazione di ottava
bull Regola di codifica moltiplicare il valore di ottava per 7 e sommare il valore intero di pc
cnc = (oct ∙ 7) + nc
bull Per la decodificaoct = cnc div 7nc = cnc mod 7
bull Le note dellrsquoottava 0 vengono mappate su [06] quelle dellrsquoottava 1 su [713] ecc Il Do dellrsquoottava centrale (quarta ottava) egrave codificato con il valore 28
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Rappresentazione binomiale
bull I sistemi pc e nc sono complementari il primo determina lrsquoaltezza esatta della nota (quindi la sua frequenza) il secondo la sua scrittura in partitura
bull 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
bull La rappresentazione binomiale sfrutta i vantaggi di ciascuno dei due sistemi per supplire alle carenze dellrsquoaltro Si tratta di rappresentare lrsquoaltezza di ciascuna nota attraverso coppie ltpcncgt e convenzionalmente lt00gt rappresenta il Do naturale
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Coppie ltpcncgt 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 GAb)
Quante sono le possibili combinazioni
Teoricamente 12 ∙ 7 = 84 ossia tutte le celle nella tabella a fianco
In pratica considerando al piugrave le doppie alterazioni 7 ∙ 5 = 35Fino ad alterazioni quintuple non ci sarebbe ambiguitagrave (vedi colonna C)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 C Dbb B
1 C Db Bx
2 Cx D Ebb
3 Cx D Eb Fbb
4 Cxx Dx E Fb
5 Cxx E F Gbb
6 Ex F Gb
7 Cbbbbb
Fx G Abb
8 Cbbbb G Ab
9 Cbbb Gx A Bbb
10 Cbb A Bb
11 Cb Ax B
Rappresentazione binomiale degli intervalli
nc specifica lrsquoampiezza dellrsquointervallo generico e pc la dimensione in semitoni
Sulle colonne si trovano intervalli la cui dimensione generica egrave uguale (ad es le terze le quarte ecc) mentre sulle righe si trovano gli intervalli omofoni
Il sistema non egrave ambiguo fino agli intervalli quintuplamente eccedenti (5A) o diminuiti (5d)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 P1 d2 (3d)3
A7
1 A1 m2 (2d)3
2 (2A)1
M2 d3
3 (3A)1
A2 m3
4 (4A)1
(2A)2
M3 d4
5 (5A)1
(3A)2
A3 P4
6
(4A)2
(2A)3
A4 d5
7 (5d)1
(5A)2
(3A)3
P5 d6
8 (4d)1
(5d)2
(4A)3
A5 m6
9 (3d)1
(4d)2
(5A)3
M6 d7
10 (2d)1
(3d)2
(5d)3
A6 m7
11 d1 (2d)2
(4d)3
M7
Legenda hellip d = diminuito (diminished) m = minore (minor) P = giusto (perfect) M = maggiore (major) A = eccedente (augmented) hellip
Rappresent binomiale su singolo intero (br)
bull Obiettivo laquoimpacchettareraquo i due interi corrispondenti a pc e nc in un solo valore intero mantenendo leggibilitagrave e compattezza
bull Dato che per rappresentare tutti i possibili nc egrave sufficiente una singola cifra in base 10 allora
br = (pc 10) + nc
bull Decodifica di br nc = br mod 10 pc = br div 10
bull Ersquo leggibile percheacute egrave facile anche a occhio nudo scomporre le due parti costitutive egrave compatto percheacute il massimo valore richiesto egrave 116
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
br pc nc descrizione
116 11 6 B
31 3 1 D
32 3 2 Eb
1 0 1 Dbb
10 1 0 Cbull Attenzione br egrave un valore intero in base 10 Per come egrave stato
costruito non tutte le combinazioni di 3 cifre risultano ammissibili Infatti la cifra meno significativa deve appartenere a [06] e le piugrave significative a [011]ndash Ad esempio 37 e 120 non sono valori ammissibili
Rappresentazione dellrsquoottava
bull Se egrave necessario tenere conto anche dellrsquoinformazione di ottava esistono due approcci
1 Inserire giagrave nella rappresentazione binomiale le ottave passando da coppie ltpcncgt a coppie ltcpccncgt legate dalla relazione
ltcpccncgt = lt(poct ∙ 12) + pc (noct ∙ 7) + ncgt
bull Questo consente di rappresentare note con un qualsiasi numero di alterazioni e perfino combinazioni in cui il pitch notato (cnc) si trova in unrsquoottava differente rispetto al pitch audio (cpc)
bull Perograve spesso si tratta di unrsquoinutile complicazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Binomial Representation (cbr)
bull Se si egrave disposti ad accettare la limitazione delle quintuple alterazioni di intervalli al piugrave 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 seguecbr = oct 1000 + br = (oct 1000) + (pc 10) + nc
che puograve essere decodificato tramite divisioni int e modulo oct = cbr div 1000 br = cbr mod 1000 pc = br div 10 nc = br mod 10
bull Questa stessa rappresentazione puograve essere utilizzata per gli intervalli considerando anche lrsquoeventuale segno In tal caso il segno rappresenta la direzione dellrsquointervallo e lae cifrae piugrave significative consentono di rappresentare intervalli composti cioegrave superiori allrsquoottava
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESEMPI
CbrjavaIl 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 C4 Ebb5 ecc
IntervalBuilder1java IntervalBuilder2javaIl 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 Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Intervalli nel sistema Name Class
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Nome ncint ncint Nome
Unisono 0 0 Ottava
Seconda 1 6 Settima
Terza 2 5 Sesta
Quarta 3 4 Quinta
Per costruzione la somma degli ncint sulla stessa riga dagrave sempre 7 che in un sistema modulo 7 egrave 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 egrave modulo 7 quindi lrsquoottava corrisponde in realtagrave allo 0 (anche se 8 = 7 + 1) Questo vale per tutti gli intervalli composti
nc 0 4 2 1 3 6 5 6
ncint 4 5 6 2 3 6 1
nic 3 2 1 2 3 1 1
In verde nic = ncint in arancione nic = ncintrsquo = 7 - ncint
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Name Code (cnc)
bull Il Continuous Name Code (cnc) egrave unrsquoestensione del sistema Name Class che tiene perograve conto dellrsquoinformazione di ottava
bull Regola di codifica moltiplicare il valore di ottava per 7 e sommare il valore intero di pc
cnc = (oct ∙ 7) + nc
bull Per la decodificaoct = cnc div 7nc = cnc mod 7
bull Le note dellrsquoottava 0 vengono mappate su [06] quelle dellrsquoottava 1 su [713] ecc Il Do dellrsquoottava centrale (quarta ottava) egrave codificato con il valore 28
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Rappresentazione binomiale
bull I sistemi pc e nc sono complementari il primo determina lrsquoaltezza esatta della nota (quindi la sua frequenza) il secondo la sua scrittura in partitura
bull 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
bull La rappresentazione binomiale sfrutta i vantaggi di ciascuno dei due sistemi per supplire alle carenze dellrsquoaltro Si tratta di rappresentare lrsquoaltezza di ciascuna nota attraverso coppie ltpcncgt e convenzionalmente lt00gt rappresenta il Do naturale
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Coppie ltpcncgt 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 GAb)
Quante sono le possibili combinazioni
Teoricamente 12 ∙ 7 = 84 ossia tutte le celle nella tabella a fianco
In pratica considerando al piugrave le doppie alterazioni 7 ∙ 5 = 35Fino ad alterazioni quintuple non ci sarebbe ambiguitagrave (vedi colonna C)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 C Dbb B
1 C Db Bx
2 Cx D Ebb
3 Cx D Eb Fbb
4 Cxx Dx E Fb
5 Cxx E F Gbb
6 Ex F Gb
7 Cbbbbb
Fx G Abb
8 Cbbbb G Ab
9 Cbbb Gx A Bbb
10 Cbb A Bb
11 Cb Ax B
Rappresentazione binomiale degli intervalli
nc specifica lrsquoampiezza dellrsquointervallo generico e pc la dimensione in semitoni
Sulle colonne si trovano intervalli la cui dimensione generica egrave uguale (ad es le terze le quarte ecc) mentre sulle righe si trovano gli intervalli omofoni
Il sistema non egrave ambiguo fino agli intervalli quintuplamente eccedenti (5A) o diminuiti (5d)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 P1 d2 (3d)3
A7
1 A1 m2 (2d)3
2 (2A)1
M2 d3
3 (3A)1
A2 m3
4 (4A)1
(2A)2
M3 d4
5 (5A)1
(3A)2
A3 P4
6
(4A)2
(2A)3
A4 d5
7 (5d)1
(5A)2
(3A)3
P5 d6
8 (4d)1
(5d)2
(4A)3
A5 m6
9 (3d)1
(4d)2
(5A)3
M6 d7
10 (2d)1
(3d)2
(5d)3
A6 m7
11 d1 (2d)2
(4d)3
M7
Legenda hellip d = diminuito (diminished) m = minore (minor) P = giusto (perfect) M = maggiore (major) A = eccedente (augmented) hellip
Rappresent binomiale su singolo intero (br)
bull Obiettivo laquoimpacchettareraquo i due interi corrispondenti a pc e nc in un solo valore intero mantenendo leggibilitagrave e compattezza
bull Dato che per rappresentare tutti i possibili nc egrave sufficiente una singola cifra in base 10 allora
br = (pc 10) + nc
bull Decodifica di br nc = br mod 10 pc = br div 10
bull Ersquo leggibile percheacute egrave facile anche a occhio nudo scomporre le due parti costitutive egrave compatto percheacute il massimo valore richiesto egrave 116
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
br pc nc descrizione
116 11 6 B
31 3 1 D
32 3 2 Eb
1 0 1 Dbb
10 1 0 Cbull Attenzione br egrave un valore intero in base 10 Per come egrave stato
costruito non tutte le combinazioni di 3 cifre risultano ammissibili Infatti la cifra meno significativa deve appartenere a [06] e le piugrave significative a [011]ndash Ad esempio 37 e 120 non sono valori ammissibili
Rappresentazione dellrsquoottava
bull Se egrave necessario tenere conto anche dellrsquoinformazione di ottava esistono due approcci
1 Inserire giagrave nella rappresentazione binomiale le ottave passando da coppie ltpcncgt a coppie ltcpccncgt legate dalla relazione
ltcpccncgt = lt(poct ∙ 12) + pc (noct ∙ 7) + ncgt
bull Questo consente di rappresentare note con un qualsiasi numero di alterazioni e perfino combinazioni in cui il pitch notato (cnc) si trova in unrsquoottava differente rispetto al pitch audio (cpc)
bull Perograve spesso si tratta di unrsquoinutile complicazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Binomial Representation (cbr)
bull Se si egrave disposti ad accettare la limitazione delle quintuple alterazioni di intervalli al piugrave 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 seguecbr = oct 1000 + br = (oct 1000) + (pc 10) + nc
che puograve essere decodificato tramite divisioni int e modulo oct = cbr div 1000 br = cbr mod 1000 pc = br div 10 nc = br mod 10
bull Questa stessa rappresentazione puograve essere utilizzata per gli intervalli considerando anche lrsquoeventuale segno In tal caso il segno rappresenta la direzione dellrsquointervallo e lae cifrae piugrave significative consentono di rappresentare intervalli composti cioegrave superiori allrsquoottava
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESEMPI
CbrjavaIl 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 C4 Ebb5 ecc
IntervalBuilder1java IntervalBuilder2javaIl 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 Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
nc 0 4 2 1 3 6 5 6
ncint 4 5 6 2 3 6 1
nic 3 2 1 2 3 1 1
In verde nic = ncint in arancione nic = ncintrsquo = 7 - ncint
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Name Code (cnc)
bull Il Continuous Name Code (cnc) egrave unrsquoestensione del sistema Name Class che tiene perograve conto dellrsquoinformazione di ottava
bull Regola di codifica moltiplicare il valore di ottava per 7 e sommare il valore intero di pc
cnc = (oct ∙ 7) + nc
bull Per la decodificaoct = cnc div 7nc = cnc mod 7
bull Le note dellrsquoottava 0 vengono mappate su [06] quelle dellrsquoottava 1 su [713] ecc Il Do dellrsquoottava centrale (quarta ottava) egrave codificato con il valore 28
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Rappresentazione binomiale
bull I sistemi pc e nc sono complementari il primo determina lrsquoaltezza esatta della nota (quindi la sua frequenza) il secondo la sua scrittura in partitura
bull 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
bull La rappresentazione binomiale sfrutta i vantaggi di ciascuno dei due sistemi per supplire alle carenze dellrsquoaltro Si tratta di rappresentare lrsquoaltezza di ciascuna nota attraverso coppie ltpcncgt e convenzionalmente lt00gt rappresenta il Do naturale
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Coppie ltpcncgt 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 GAb)
Quante sono le possibili combinazioni
Teoricamente 12 ∙ 7 = 84 ossia tutte le celle nella tabella a fianco
In pratica considerando al piugrave le doppie alterazioni 7 ∙ 5 = 35Fino ad alterazioni quintuple non ci sarebbe ambiguitagrave (vedi colonna C)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 C Dbb B
1 C Db Bx
2 Cx D Ebb
3 Cx D Eb Fbb
4 Cxx Dx E Fb
5 Cxx E F Gbb
6 Ex F Gb
7 Cbbbbb
Fx G Abb
8 Cbbbb G Ab
9 Cbbb Gx A Bbb
10 Cbb A Bb
11 Cb Ax B
Rappresentazione binomiale degli intervalli
nc specifica lrsquoampiezza dellrsquointervallo generico e pc la dimensione in semitoni
Sulle colonne si trovano intervalli la cui dimensione generica egrave uguale (ad es le terze le quarte ecc) mentre sulle righe si trovano gli intervalli omofoni
Il sistema non egrave ambiguo fino agli intervalli quintuplamente eccedenti (5A) o diminuiti (5d)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 P1 d2 (3d)3
A7
1 A1 m2 (2d)3
2 (2A)1
M2 d3
3 (3A)1
A2 m3
4 (4A)1
(2A)2
M3 d4
5 (5A)1
(3A)2
A3 P4
6
(4A)2
(2A)3
A4 d5
7 (5d)1
(5A)2
(3A)3
P5 d6
8 (4d)1
(5d)2
(4A)3
A5 m6
9 (3d)1
(4d)2
(5A)3
M6 d7
10 (2d)1
(3d)2
(5d)3
A6 m7
11 d1 (2d)2
(4d)3
M7
Legenda hellip d = diminuito (diminished) m = minore (minor) P = giusto (perfect) M = maggiore (major) A = eccedente (augmented) hellip
Rappresent binomiale su singolo intero (br)
bull Obiettivo laquoimpacchettareraquo i due interi corrispondenti a pc e nc in un solo valore intero mantenendo leggibilitagrave e compattezza
bull Dato che per rappresentare tutti i possibili nc egrave sufficiente una singola cifra in base 10 allora
br = (pc 10) + nc
bull Decodifica di br nc = br mod 10 pc = br div 10
bull Ersquo leggibile percheacute egrave facile anche a occhio nudo scomporre le due parti costitutive egrave compatto percheacute il massimo valore richiesto egrave 116
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
br pc nc descrizione
116 11 6 B
31 3 1 D
32 3 2 Eb
1 0 1 Dbb
10 1 0 Cbull Attenzione br egrave un valore intero in base 10 Per come egrave stato
costruito non tutte le combinazioni di 3 cifre risultano ammissibili Infatti la cifra meno significativa deve appartenere a [06] e le piugrave significative a [011]ndash Ad esempio 37 e 120 non sono valori ammissibili
Rappresentazione dellrsquoottava
bull Se egrave necessario tenere conto anche dellrsquoinformazione di ottava esistono due approcci
1 Inserire giagrave nella rappresentazione binomiale le ottave passando da coppie ltpcncgt a coppie ltcpccncgt legate dalla relazione
ltcpccncgt = lt(poct ∙ 12) + pc (noct ∙ 7) + ncgt
bull Questo consente di rappresentare note con un qualsiasi numero di alterazioni e perfino combinazioni in cui il pitch notato (cnc) si trova in unrsquoottava differente rispetto al pitch audio (cpc)
bull Perograve spesso si tratta di unrsquoinutile complicazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Binomial Representation (cbr)
bull Se si egrave disposti ad accettare la limitazione delle quintuple alterazioni di intervalli al piugrave 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 seguecbr = oct 1000 + br = (oct 1000) + (pc 10) + nc
che puograve essere decodificato tramite divisioni int e modulo oct = cbr div 1000 br = cbr mod 1000 pc = br div 10 nc = br mod 10
bull Questa stessa rappresentazione puograve essere utilizzata per gli intervalli considerando anche lrsquoeventuale segno In tal caso il segno rappresenta la direzione dellrsquointervallo e lae cifrae piugrave significative consentono di rappresentare intervalli composti cioegrave superiori allrsquoottava
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESEMPI
CbrjavaIl 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 C4 Ebb5 ecc
IntervalBuilder1java IntervalBuilder2javaIl 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 Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Name Code (cnc)
bull Il Continuous Name Code (cnc) egrave unrsquoestensione del sistema Name Class che tiene perograve conto dellrsquoinformazione di ottava
bull Regola di codifica moltiplicare il valore di ottava per 7 e sommare il valore intero di pc
cnc = (oct ∙ 7) + nc
bull Per la decodificaoct = cnc div 7nc = cnc mod 7
bull Le note dellrsquoottava 0 vengono mappate su [06] quelle dellrsquoottava 1 su [713] ecc Il Do dellrsquoottava centrale (quarta ottava) egrave codificato con il valore 28
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Rappresentazione binomiale
bull I sistemi pc e nc sono complementari il primo determina lrsquoaltezza esatta della nota (quindi la sua frequenza) il secondo la sua scrittura in partitura
bull 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
bull La rappresentazione binomiale sfrutta i vantaggi di ciascuno dei due sistemi per supplire alle carenze dellrsquoaltro Si tratta di rappresentare lrsquoaltezza di ciascuna nota attraverso coppie ltpcncgt e convenzionalmente lt00gt rappresenta il Do naturale
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Coppie ltpcncgt 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 GAb)
Quante sono le possibili combinazioni
Teoricamente 12 ∙ 7 = 84 ossia tutte le celle nella tabella a fianco
In pratica considerando al piugrave le doppie alterazioni 7 ∙ 5 = 35Fino ad alterazioni quintuple non ci sarebbe ambiguitagrave (vedi colonna C)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 C Dbb B
1 C Db Bx
2 Cx D Ebb
3 Cx D Eb Fbb
4 Cxx Dx E Fb
5 Cxx E F Gbb
6 Ex F Gb
7 Cbbbbb
Fx G Abb
8 Cbbbb G Ab
9 Cbbb Gx A Bbb
10 Cbb A Bb
11 Cb Ax B
Rappresentazione binomiale degli intervalli
nc specifica lrsquoampiezza dellrsquointervallo generico e pc la dimensione in semitoni
Sulle colonne si trovano intervalli la cui dimensione generica egrave uguale (ad es le terze le quarte ecc) mentre sulle righe si trovano gli intervalli omofoni
Il sistema non egrave ambiguo fino agli intervalli quintuplamente eccedenti (5A) o diminuiti (5d)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 P1 d2 (3d)3
A7
1 A1 m2 (2d)3
2 (2A)1
M2 d3
3 (3A)1
A2 m3
4 (4A)1
(2A)2
M3 d4
5 (5A)1
(3A)2
A3 P4
6
(4A)2
(2A)3
A4 d5
7 (5d)1
(5A)2
(3A)3
P5 d6
8 (4d)1
(5d)2
(4A)3
A5 m6
9 (3d)1
(4d)2
(5A)3
M6 d7
10 (2d)1
(3d)2
(5d)3
A6 m7
11 d1 (2d)2
(4d)3
M7
Legenda hellip d = diminuito (diminished) m = minore (minor) P = giusto (perfect) M = maggiore (major) A = eccedente (augmented) hellip
Rappresent binomiale su singolo intero (br)
bull Obiettivo laquoimpacchettareraquo i due interi corrispondenti a pc e nc in un solo valore intero mantenendo leggibilitagrave e compattezza
bull Dato che per rappresentare tutti i possibili nc egrave sufficiente una singola cifra in base 10 allora
br = (pc 10) + nc
bull Decodifica di br nc = br mod 10 pc = br div 10
bull Ersquo leggibile percheacute egrave facile anche a occhio nudo scomporre le due parti costitutive egrave compatto percheacute il massimo valore richiesto egrave 116
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
br pc nc descrizione
116 11 6 B
31 3 1 D
32 3 2 Eb
1 0 1 Dbb
10 1 0 Cbull Attenzione br egrave un valore intero in base 10 Per come egrave stato
costruito non tutte le combinazioni di 3 cifre risultano ammissibili Infatti la cifra meno significativa deve appartenere a [06] e le piugrave significative a [011]ndash Ad esempio 37 e 120 non sono valori ammissibili
Rappresentazione dellrsquoottava
bull Se egrave necessario tenere conto anche dellrsquoinformazione di ottava esistono due approcci
1 Inserire giagrave nella rappresentazione binomiale le ottave passando da coppie ltpcncgt a coppie ltcpccncgt legate dalla relazione
ltcpccncgt = lt(poct ∙ 12) + pc (noct ∙ 7) + ncgt
bull Questo consente di rappresentare note con un qualsiasi numero di alterazioni e perfino combinazioni in cui il pitch notato (cnc) si trova in unrsquoottava differente rispetto al pitch audio (cpc)
bull Perograve spesso si tratta di unrsquoinutile complicazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Binomial Representation (cbr)
bull Se si egrave disposti ad accettare la limitazione delle quintuple alterazioni di intervalli al piugrave 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 seguecbr = oct 1000 + br = (oct 1000) + (pc 10) + nc
che puograve essere decodificato tramite divisioni int e modulo oct = cbr div 1000 br = cbr mod 1000 pc = br div 10 nc = br mod 10
bull Questa stessa rappresentazione puograve essere utilizzata per gli intervalli considerando anche lrsquoeventuale segno In tal caso il segno rappresenta la direzione dellrsquointervallo e lae cifrae piugrave significative consentono di rappresentare intervalli composti cioegrave superiori allrsquoottava
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESEMPI
CbrjavaIl 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 C4 Ebb5 ecc
IntervalBuilder1java IntervalBuilder2javaIl 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 Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Rappresentazione binomiale
bull I sistemi pc e nc sono complementari il primo determina lrsquoaltezza esatta della nota (quindi la sua frequenza) il secondo la sua scrittura in partitura
bull 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
bull La rappresentazione binomiale sfrutta i vantaggi di ciascuno dei due sistemi per supplire alle carenze dellrsquoaltro Si tratta di rappresentare lrsquoaltezza di ciascuna nota attraverso coppie ltpcncgt e convenzionalmente lt00gt rappresenta il Do naturale
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Coppie ltpcncgt 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 GAb)
Quante sono le possibili combinazioni
Teoricamente 12 ∙ 7 = 84 ossia tutte le celle nella tabella a fianco
In pratica considerando al piugrave le doppie alterazioni 7 ∙ 5 = 35Fino ad alterazioni quintuple non ci sarebbe ambiguitagrave (vedi colonna C)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 C Dbb B
1 C Db Bx
2 Cx D Ebb
3 Cx D Eb Fbb
4 Cxx Dx E Fb
5 Cxx E F Gbb
6 Ex F Gb
7 Cbbbbb
Fx G Abb
8 Cbbbb G Ab
9 Cbbb Gx A Bbb
10 Cbb A Bb
11 Cb Ax B
Rappresentazione binomiale degli intervalli
nc specifica lrsquoampiezza dellrsquointervallo generico e pc la dimensione in semitoni
Sulle colonne si trovano intervalli la cui dimensione generica egrave uguale (ad es le terze le quarte ecc) mentre sulle righe si trovano gli intervalli omofoni
Il sistema non egrave ambiguo fino agli intervalli quintuplamente eccedenti (5A) o diminuiti (5d)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 P1 d2 (3d)3
A7
1 A1 m2 (2d)3
2 (2A)1
M2 d3
3 (3A)1
A2 m3
4 (4A)1
(2A)2
M3 d4
5 (5A)1
(3A)2
A3 P4
6
(4A)2
(2A)3
A4 d5
7 (5d)1
(5A)2
(3A)3
P5 d6
8 (4d)1
(5d)2
(4A)3
A5 m6
9 (3d)1
(4d)2
(5A)3
M6 d7
10 (2d)1
(3d)2
(5d)3
A6 m7
11 d1 (2d)2
(4d)3
M7
Legenda hellip d = diminuito (diminished) m = minore (minor) P = giusto (perfect) M = maggiore (major) A = eccedente (augmented) hellip
Rappresent binomiale su singolo intero (br)
bull Obiettivo laquoimpacchettareraquo i due interi corrispondenti a pc e nc in un solo valore intero mantenendo leggibilitagrave e compattezza
bull Dato che per rappresentare tutti i possibili nc egrave sufficiente una singola cifra in base 10 allora
br = (pc 10) + nc
bull Decodifica di br nc = br mod 10 pc = br div 10
bull Ersquo leggibile percheacute egrave facile anche a occhio nudo scomporre le due parti costitutive egrave compatto percheacute il massimo valore richiesto egrave 116
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
br pc nc descrizione
116 11 6 B
31 3 1 D
32 3 2 Eb
1 0 1 Dbb
10 1 0 Cbull Attenzione br egrave un valore intero in base 10 Per come egrave stato
costruito non tutte le combinazioni di 3 cifre risultano ammissibili Infatti la cifra meno significativa deve appartenere a [06] e le piugrave significative a [011]ndash Ad esempio 37 e 120 non sono valori ammissibili
Rappresentazione dellrsquoottava
bull Se egrave necessario tenere conto anche dellrsquoinformazione di ottava esistono due approcci
1 Inserire giagrave nella rappresentazione binomiale le ottave passando da coppie ltpcncgt a coppie ltcpccncgt legate dalla relazione
ltcpccncgt = lt(poct ∙ 12) + pc (noct ∙ 7) + ncgt
bull Questo consente di rappresentare note con un qualsiasi numero di alterazioni e perfino combinazioni in cui il pitch notato (cnc) si trova in unrsquoottava differente rispetto al pitch audio (cpc)
bull Perograve spesso si tratta di unrsquoinutile complicazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Binomial Representation (cbr)
bull Se si egrave disposti ad accettare la limitazione delle quintuple alterazioni di intervalli al piugrave 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 seguecbr = oct 1000 + br = (oct 1000) + (pc 10) + nc
che puograve essere decodificato tramite divisioni int e modulo oct = cbr div 1000 br = cbr mod 1000 pc = br div 10 nc = br mod 10
bull Questa stessa rappresentazione puograve essere utilizzata per gli intervalli considerando anche lrsquoeventuale segno In tal caso il segno rappresenta la direzione dellrsquointervallo e lae cifrae piugrave significative consentono di rappresentare intervalli composti cioegrave superiori allrsquoottava
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESEMPI
CbrjavaIl 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 C4 Ebb5 ecc
IntervalBuilder1java IntervalBuilder2javaIl 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 Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Coppie ltpcncgt 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 GAb)
Quante sono le possibili combinazioni
Teoricamente 12 ∙ 7 = 84 ossia tutte le celle nella tabella a fianco
In pratica considerando al piugrave le doppie alterazioni 7 ∙ 5 = 35Fino ad alterazioni quintuple non ci sarebbe ambiguitagrave (vedi colonna C)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 C Dbb B
1 C Db Bx
2 Cx D Ebb
3 Cx D Eb Fbb
4 Cxx Dx E Fb
5 Cxx E F Gbb
6 Ex F Gb
7 Cbbbbb
Fx G Abb
8 Cbbbb G Ab
9 Cbbb Gx A Bbb
10 Cbb A Bb
11 Cb Ax B
Rappresentazione binomiale degli intervalli
nc specifica lrsquoampiezza dellrsquointervallo generico e pc la dimensione in semitoni
Sulle colonne si trovano intervalli la cui dimensione generica egrave uguale (ad es le terze le quarte ecc) mentre sulle righe si trovano gli intervalli omofoni
Il sistema non egrave ambiguo fino agli intervalli quintuplamente eccedenti (5A) o diminuiti (5d)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 P1 d2 (3d)3
A7
1 A1 m2 (2d)3
2 (2A)1
M2 d3
3 (3A)1
A2 m3
4 (4A)1
(2A)2
M3 d4
5 (5A)1
(3A)2
A3 P4
6
(4A)2
(2A)3
A4 d5
7 (5d)1
(5A)2
(3A)3
P5 d6
8 (4d)1
(5d)2
(4A)3
A5 m6
9 (3d)1
(4d)2
(5A)3
M6 d7
10 (2d)1
(3d)2
(5d)3
A6 m7
11 d1 (2d)2
(4d)3
M7
Legenda hellip d = diminuito (diminished) m = minore (minor) P = giusto (perfect) M = maggiore (major) A = eccedente (augmented) hellip
Rappresent binomiale su singolo intero (br)
bull Obiettivo laquoimpacchettareraquo i due interi corrispondenti a pc e nc in un solo valore intero mantenendo leggibilitagrave e compattezza
bull Dato che per rappresentare tutti i possibili nc egrave sufficiente una singola cifra in base 10 allora
br = (pc 10) + nc
bull Decodifica di br nc = br mod 10 pc = br div 10
bull Ersquo leggibile percheacute egrave facile anche a occhio nudo scomporre le due parti costitutive egrave compatto percheacute il massimo valore richiesto egrave 116
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
br pc nc descrizione
116 11 6 B
31 3 1 D
32 3 2 Eb
1 0 1 Dbb
10 1 0 Cbull Attenzione br egrave un valore intero in base 10 Per come egrave stato
costruito non tutte le combinazioni di 3 cifre risultano ammissibili Infatti la cifra meno significativa deve appartenere a [06] e le piugrave significative a [011]ndash Ad esempio 37 e 120 non sono valori ammissibili
Rappresentazione dellrsquoottava
bull Se egrave necessario tenere conto anche dellrsquoinformazione di ottava esistono due approcci
1 Inserire giagrave nella rappresentazione binomiale le ottave passando da coppie ltpcncgt a coppie ltcpccncgt legate dalla relazione
ltcpccncgt = lt(poct ∙ 12) + pc (noct ∙ 7) + ncgt
bull Questo consente di rappresentare note con un qualsiasi numero di alterazioni e perfino combinazioni in cui il pitch notato (cnc) si trova in unrsquoottava differente rispetto al pitch audio (cpc)
bull Perograve spesso si tratta di unrsquoinutile complicazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Binomial Representation (cbr)
bull Se si egrave disposti ad accettare la limitazione delle quintuple alterazioni di intervalli al piugrave 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 seguecbr = oct 1000 + br = (oct 1000) + (pc 10) + nc
che puograve essere decodificato tramite divisioni int e modulo oct = cbr div 1000 br = cbr mod 1000 pc = br div 10 nc = br mod 10
bull Questa stessa rappresentazione puograve essere utilizzata per gli intervalli considerando anche lrsquoeventuale segno In tal caso il segno rappresenta la direzione dellrsquointervallo e lae cifrae piugrave significative consentono di rappresentare intervalli composti cioegrave superiori allrsquoottava
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESEMPI
CbrjavaIl 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 C4 Ebb5 ecc
IntervalBuilder1java IntervalBuilder2javaIl 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 Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Rappresentazione binomiale degli intervalli
nc specifica lrsquoampiezza dellrsquointervallo generico e pc la dimensione in semitoni
Sulle colonne si trovano intervalli la cui dimensione generica egrave uguale (ad es le terze le quarte ecc) mentre sulle righe si trovano gli intervalli omofoni
Il sistema non egrave ambiguo fino agli intervalli quintuplamente eccedenti (5A) o diminuiti (5d)
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
pc nc 0 1 2 3 4 5 6
0 P1 d2 (3d)3
A7
1 A1 m2 (2d)3
2 (2A)1
M2 d3
3 (3A)1
A2 m3
4 (4A)1
(2A)2
M3 d4
5 (5A)1
(3A)2
A3 P4
6
(4A)2
(2A)3
A4 d5
7 (5d)1
(5A)2
(3A)3
P5 d6
8 (4d)1
(5d)2
(4A)3
A5 m6
9 (3d)1
(4d)2
(5A)3
M6 d7
10 (2d)1
(3d)2
(5d)3
A6 m7
11 d1 (2d)2
(4d)3
M7
Legenda hellip d = diminuito (diminished) m = minore (minor) P = giusto (perfect) M = maggiore (major) A = eccedente (augmented) hellip
Rappresent binomiale su singolo intero (br)
bull Obiettivo laquoimpacchettareraquo i due interi corrispondenti a pc e nc in un solo valore intero mantenendo leggibilitagrave e compattezza
bull Dato che per rappresentare tutti i possibili nc egrave sufficiente una singola cifra in base 10 allora
br = (pc 10) + nc
bull Decodifica di br nc = br mod 10 pc = br div 10
bull Ersquo leggibile percheacute egrave facile anche a occhio nudo scomporre le due parti costitutive egrave compatto percheacute il massimo valore richiesto egrave 116
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
br pc nc descrizione
116 11 6 B
31 3 1 D
32 3 2 Eb
1 0 1 Dbb
10 1 0 Cbull Attenzione br egrave un valore intero in base 10 Per come egrave stato
costruito non tutte le combinazioni di 3 cifre risultano ammissibili Infatti la cifra meno significativa deve appartenere a [06] e le piugrave significative a [011]ndash Ad esempio 37 e 120 non sono valori ammissibili
Rappresentazione dellrsquoottava
bull Se egrave necessario tenere conto anche dellrsquoinformazione di ottava esistono due approcci
1 Inserire giagrave nella rappresentazione binomiale le ottave passando da coppie ltpcncgt a coppie ltcpccncgt legate dalla relazione
ltcpccncgt = lt(poct ∙ 12) + pc (noct ∙ 7) + ncgt
bull Questo consente di rappresentare note con un qualsiasi numero di alterazioni e perfino combinazioni in cui il pitch notato (cnc) si trova in unrsquoottava differente rispetto al pitch audio (cpc)
bull Perograve spesso si tratta di unrsquoinutile complicazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Binomial Representation (cbr)
bull Se si egrave disposti ad accettare la limitazione delle quintuple alterazioni di intervalli al piugrave 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 seguecbr = oct 1000 + br = (oct 1000) + (pc 10) + nc
che puograve essere decodificato tramite divisioni int e modulo oct = cbr div 1000 br = cbr mod 1000 pc = br div 10 nc = br mod 10
bull Questa stessa rappresentazione puograve essere utilizzata per gli intervalli considerando anche lrsquoeventuale segno In tal caso il segno rappresenta la direzione dellrsquointervallo e lae cifrae piugrave significative consentono di rappresentare intervalli composti cioegrave superiori allrsquoottava
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESEMPI
CbrjavaIl 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 C4 Ebb5 ecc
IntervalBuilder1java IntervalBuilder2javaIl 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 Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Rappresent binomiale su singolo intero (br)
bull Obiettivo laquoimpacchettareraquo i due interi corrispondenti a pc e nc in un solo valore intero mantenendo leggibilitagrave e compattezza
bull Dato che per rappresentare tutti i possibili nc egrave sufficiente una singola cifra in base 10 allora
br = (pc 10) + nc
bull Decodifica di br nc = br mod 10 pc = br div 10
bull Ersquo leggibile percheacute egrave facile anche a occhio nudo scomporre le due parti costitutive egrave compatto percheacute il massimo valore richiesto egrave 116
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
br pc nc descrizione
116 11 6 B
31 3 1 D
32 3 2 Eb
1 0 1 Dbb
10 1 0 Cbull Attenzione br egrave un valore intero in base 10 Per come egrave stato
costruito non tutte le combinazioni di 3 cifre risultano ammissibili Infatti la cifra meno significativa deve appartenere a [06] e le piugrave significative a [011]ndash Ad esempio 37 e 120 non sono valori ammissibili
Rappresentazione dellrsquoottava
bull Se egrave necessario tenere conto anche dellrsquoinformazione di ottava esistono due approcci
1 Inserire giagrave nella rappresentazione binomiale le ottave passando da coppie ltpcncgt a coppie ltcpccncgt legate dalla relazione
ltcpccncgt = lt(poct ∙ 12) + pc (noct ∙ 7) + ncgt
bull Questo consente di rappresentare note con un qualsiasi numero di alterazioni e perfino combinazioni in cui il pitch notato (cnc) si trova in unrsquoottava differente rispetto al pitch audio (cpc)
bull Perograve spesso si tratta di unrsquoinutile complicazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Binomial Representation (cbr)
bull Se si egrave disposti ad accettare la limitazione delle quintuple alterazioni di intervalli al piugrave 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 seguecbr = oct 1000 + br = (oct 1000) + (pc 10) + nc
che puograve essere decodificato tramite divisioni int e modulo oct = cbr div 1000 br = cbr mod 1000 pc = br div 10 nc = br mod 10
bull Questa stessa rappresentazione puograve essere utilizzata per gli intervalli considerando anche lrsquoeventuale segno In tal caso il segno rappresenta la direzione dellrsquointervallo e lae cifrae piugrave significative consentono di rappresentare intervalli composti cioegrave superiori allrsquoottava
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESEMPI
CbrjavaIl 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 C4 Ebb5 ecc
IntervalBuilder1java IntervalBuilder2javaIl 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 Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Esempio
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
br pc nc descrizione
116 11 6 B
31 3 1 D
32 3 2 Eb
1 0 1 Dbb
10 1 0 Cbull Attenzione br egrave un valore intero in base 10 Per come egrave stato
costruito non tutte le combinazioni di 3 cifre risultano ammissibili Infatti la cifra meno significativa deve appartenere a [06] e le piugrave significative a [011]ndash Ad esempio 37 e 120 non sono valori ammissibili
Rappresentazione dellrsquoottava
bull Se egrave necessario tenere conto anche dellrsquoinformazione di ottava esistono due approcci
1 Inserire giagrave nella rappresentazione binomiale le ottave passando da coppie ltpcncgt a coppie ltcpccncgt legate dalla relazione
ltcpccncgt = lt(poct ∙ 12) + pc (noct ∙ 7) + ncgt
bull Questo consente di rappresentare note con un qualsiasi numero di alterazioni e perfino combinazioni in cui il pitch notato (cnc) si trova in unrsquoottava differente rispetto al pitch audio (cpc)
bull Perograve spesso si tratta di unrsquoinutile complicazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Binomial Representation (cbr)
bull Se si egrave disposti ad accettare la limitazione delle quintuple alterazioni di intervalli al piugrave 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 seguecbr = oct 1000 + br = (oct 1000) + (pc 10) + nc
che puograve essere decodificato tramite divisioni int e modulo oct = cbr div 1000 br = cbr mod 1000 pc = br div 10 nc = br mod 10
bull Questa stessa rappresentazione puograve essere utilizzata per gli intervalli considerando anche lrsquoeventuale segno In tal caso il segno rappresenta la direzione dellrsquointervallo e lae cifrae piugrave significative consentono di rappresentare intervalli composti cioegrave superiori allrsquoottava
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESEMPI
CbrjavaIl 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 C4 Ebb5 ecc
IntervalBuilder1java IntervalBuilder2javaIl 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 Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Rappresentazione dellrsquoottava
bull Se egrave necessario tenere conto anche dellrsquoinformazione di ottava esistono due approcci
1 Inserire giagrave nella rappresentazione binomiale le ottave passando da coppie ltpcncgt a coppie ltcpccncgt legate dalla relazione
ltcpccncgt = lt(poct ∙ 12) + pc (noct ∙ 7) + ncgt
bull Questo consente di rappresentare note con un qualsiasi numero di alterazioni e perfino combinazioni in cui il pitch notato (cnc) si trova in unrsquoottava differente rispetto al pitch audio (cpc)
bull Perograve spesso si tratta di unrsquoinutile complicazione
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Binomial Representation (cbr)
bull Se si egrave disposti ad accettare la limitazione delle quintuple alterazioni di intervalli al piugrave 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 seguecbr = oct 1000 + br = (oct 1000) + (pc 10) + nc
che puograve essere decodificato tramite divisioni int e modulo oct = cbr div 1000 br = cbr mod 1000 pc = br div 10 nc = br mod 10
bull Questa stessa rappresentazione puograve essere utilizzata per gli intervalli considerando anche lrsquoeventuale segno In tal caso il segno rappresenta la direzione dellrsquointervallo e lae cifrae piugrave significative consentono di rappresentare intervalli composti cioegrave superiori allrsquoottava
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESEMPI
CbrjavaIl 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 C4 Ebb5 ecc
IntervalBuilder1java IntervalBuilder2javaIl 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 Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
Continuous Binomial Representation (cbr)
bull Se si egrave disposti ad accettare la limitazione delle quintuple alterazioni di intervalli al piugrave 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 seguecbr = oct 1000 + br = (oct 1000) + (pc 10) + nc
che puograve essere decodificato tramite divisioni int e modulo oct = cbr div 1000 br = cbr mod 1000 pc = br div 10 nc = br mod 10
bull Questa stessa rappresentazione puograve essere utilizzata per gli intervalli considerando anche lrsquoeventuale segno In tal caso il segno rappresenta la direzione dellrsquointervallo e lae cifrae piugrave significative consentono di rappresentare intervalli composti cioegrave superiori allrsquoottava
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESEMPI
CbrjavaIl 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 C4 Ebb5 ecc
IntervalBuilder1java IntervalBuilder2javaIl 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 Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESEMPI
CbrjavaIl 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 C4 Ebb5 ecc
IntervalBuilder1java IntervalBuilder2javaIl 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 Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza
ESERCIZIO
Si scriva un semplice programma che chieda allrsquoutentebulluna nota di base espressa come caratterebullun intervallo espresso come numero di semitoni pc [011]e produca in output tutti gli intervalli ascendenti omofoni che si possono produrre al variare di nc includendo fino al piugrave che eccedente (2A) e piugrave che diminuito (2d)
Ad esempio agli input C e 7 corrisponderanno gli output C gt Fx nc=3 (2A)4C gt G nc=4 P5C gt Abb nc=5 d6
Programmazione per la Musica - Prof Luca A Ludovico4 Rappresentazione binomiale dellaltezza