Rappresentazione binomiale dell’altezza delle note

Slides:



Advertisements
Presentazioni simili
INFORMATICA Altre Istruzioni di I/O
Advertisements

Microsoft Excel I riferimenti.
L’oscillatore digitale
Sistemi di numerazione
Sistemi di numerazione e codici
esponente del radicando
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Esercitazioni su circuiti combinatori
Fogli elettronici Microsoft Excel.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 06/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Analisi e Sintesi di circuiti sequenziali
RICHIAMI ELEMENTARI DI ALGEBRA MATRICIALE
Statistica per le decisioni aziendali ed analisi dei costi Modulo II - Statistica per le decisioni Aziendali Richiami di Algebra Matriciale.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
Access: Query semplici
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Modelli simulativi per le Scienze Cognitive
Analisi e Sintesi di circuiti sequenziali. Definizione Una macchina sequenziale é un sistema nel quale, detto I(t) l'insieme degli ingressi in t, O(t)
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
Il Linguaggio Macchina
Analisi delle corrispondenze
Unità Didattica 2 I Linguaggi di Programmazione
Le scale Musicali Le scale Maggiori
Strutture di controllo in C -- Flow Chart --
Elementi di Informatica
Corso di Antropologia della Musica A. A
I primi insiemi che si incontrano in matematica sono quelli dei numeri;  daremo qui una breve descrizione dei principali insiemi numerici, delle loro operazioni.
Dalle potenze ai numeri binari
Rapporti  Il rapporto è un concetto impiegato per esprimere la relazione che intercorre tra le misure di due grandezze. Nel caso di grandezze dello stesso.
I principali tipi di grafici
Massimo Comun Divisore
La scala musicale 1.
13 Excel prima lezione.
Progressioni aritmetiche descrizione elementare
Il linguaggio musicale
Rappresentazione delle durate Lezione 7 Programmazione per la Musica | Prof. Luca A. Ludovico.
Microsoft ExcelMicrosoft Excel Lezione 5 INSERISCI FORMULE New M. Nanni – E. Del Fante – M. Savioli.
Lezione 13 Riccardo Sama' Copyright  Riccardo Sama' Excel: formule e funzioni.
Tecnologie informatiche.
Prof. Giuseppe Boncoddo
Rappresentazione dell’informazione nel calcolatore.
Informatica 3 V anno.
MUSICA PITAGORICA.
Rappresentazione dell’informazione
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
La codifica dei numeri.
Conversione binario-ottale/esadecimale
Rappresentazione dei numeri
Programmazione dei Calcolatori Elettronici
ANALISI E INTERPRETAZIONE DATI
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
16) STATISTICA pag.22. Frequenze frequenza assoluta (o frequenza): numero che esprime quante volte un certo valore compare in una rilevazione statistica.
Sistemi di equazioni lineari. Sistemi di primo grado di due equazioni a due incognite Risolvere un sistema significa trovare la coppia di valori x e y.
Criteri di divisibilità
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
Le frazioni A partire da N vogliamo costruire un nuovo insieme numerico nel quale sia sempre possibile eseguire la divisione. Per fare ciò dobbiamo introdurre.
Transcript della presentazione:

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

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

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

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

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

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

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

Esempio 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 = ncint’ = 7 - ncint Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza

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

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

Coppie <pc,nc> ammissibili Sulle colonne sono disposte le note con lo stesso nome e diverso stato di alterazione (sempre 5), sulle righe le enarmonie (sempre 3, ad eccezione di G#/Ab). Quante sono le possibili combinazioni? Teoricamente 12 ∙ 7 = 84, ossia tutte le celle nella tabella a fianco In pratica, considerando al più le doppie alterazioni, 7 ∙ 5 = 35. Fino ad alterazioni quintuple non ci sarebbe ambiguità (vedi colonna C). pc nc 1 2 3 4 5 6 C Dbb B# C# Db Bx Cx D Ebb Cx# D# Eb Fbb Cxx Dx E Fb Cxx# E# F Gbb ? 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 Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza

Rappresentazione binomiale degli intervalli pc nc 1 2 3 4 5 6 P1 d2 (3d)3 A7 A1 m2 (2d)3 (2A)1 M2 d3 (3A)1 A2 m3 (4A)1 (2A)2 M3 d4 (5A)1 (3A)2 A3 P4 ? (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 nc specifica l’ampiezza dell’intervallo generico, e pc la dimensione in semitoni. Sulle colonne si trovano intervalli la cui dimensione generica è uguale (ad es., le terze, le quarte, ecc.) mentre sulle righe si trovano gli intervalli omofoni. Il sistema non è ambiguo fino agli intervalli quintuplamente eccedenti (5A) o diminuiti (5d). Legenda: …, d = diminuito (diminished), m = minore (minor), P = giusto (perfect), M = maggiore (major), A = eccedente (augmented), … Programmazione per la Musica - Prof. Luca A. Ludovico 4. Rappresentazione binomiale dell'altezza

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

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

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

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

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

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