rappresentazione binomiale dell’altezza delle note lezione 4 programmazione per la musica | prof....

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

Upload: amando-alberti

Post on 02-May-2015

220 views

Category:

Documents


1 download

TRANSCRIPT

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

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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
Page 2: Rappresentazione binomiale dell’altezza 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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
Page 3: Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico

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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
Page 4: Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico

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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
Page 5: Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico

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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
Page 6: Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico

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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
Page 7: Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico

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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
Page 8: Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico

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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
Page 9: Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico

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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
Page 10: Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico

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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
Page 11: Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico

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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
Page 12: Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico

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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
Page 13: Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico

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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
Page 14: Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico

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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
Page 15: Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico

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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
Page 16: Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico

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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
Page 17: Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico

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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
Page 18: Rappresentazione binomiale dell’altezza delle note Lezione 4 Programmazione per la Musica | Prof. Luca A. Ludovico

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

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18