Universitá degli Studi di Salerno Un analizzatore armonico

  • Published on
    12-Feb-2017

  • View
    215

  • Download
    0

Embed Size (px)

Transcript

<ul><li><p>Universit degli Studi di SalernoFacolt di Scienze Matematiche Fisiche e Naturali</p><p>Tesi di Laureain Informatica</p><p>Un analizzatore armonico automaticoper composizioni musicali a 4 parti</p><p>Relatore CandidatoProf. Roberto De Prisco Parisi Matteo</p><p>056/101941</p><p>Anno Accademico 2011-2012</p></li><li><p>Indice</p><p>1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2</p><p>2 Elementi di Teoria Musicale e Armonia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 Semitono e Tono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3 Scala Musicale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5</p><p>2.3.1 Nomi e Gradi della scala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3.2 Modo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3.3 Circolo delle quinte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6</p><p>2.4 Alterazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.5 Intervallo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8</p><p>2.5.1 Classificazione di un intervallo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.5.2 Rivolto di un intervallo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10</p><p>2.6 Triade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.6.1 Tipi di triade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.6.2 Rivolti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.6.3 Triadi nel modo maggiore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.6.4 Triadi nel modo minore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12</p><p>2.7 Scrittura a quattro parti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.7.1 Raddoppi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.7.2 Posizione stretta e posizione lata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14</p><p>2.8 Armonia delle parti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.8.1 Successioni armoniche abituali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.8.2 Funzione tonale degli accordi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.8.3 Il ruolo della dominante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.8.4 Le cadenze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18</p><p>2.9 La modulazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.9.1 Relazioni elementari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.9.2 La tonicizzazione e la modulazione passeggera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.9.3 Tonalit vicine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22</p><p>2.10 Analisi Armonica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.10.1 Principio della dominante secondaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23</p><p>2.11 Il corale come esempio di studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.11.1 Storia del corale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.11.2 Tecnica compositiva del corale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25</p><p>v</p></li><li><p>vi Indice</p><p>3 La rappresentazione digitale della musica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.2 MIDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28</p><p>3.2.1 Storia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.2.2 Caratteristiche dei segnali MIDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.2.3 Le porte MIDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.2.4 I Canali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.2.5 Il protocollo e la sintassi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.2.6 Lo standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33</p><p>3.3 MusicXML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.3.1 Sintassi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35</p><p>4 Algoritmo per lanalisi armonica automatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.2 Stato dellarte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.3 Analisi del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.4 Modello per il problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.5 Progettazione dellalgoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49</p><p>4.5.1 Rappresentazione dei dati in input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.5.2 Funzioni preliminari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.5.3 Algoritmo per le zone grigie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524.5.4 Criterio di stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564.5.5 Pseudo-codice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57</p><p>5 Implementazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585.2 Lettura dellinput e creazione della partitura digitale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595.3 Analisi armonica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615.4 Stampa dei risultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66</p><p>6 Test e conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716.2 Progettazione dei test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716.3 Test sul Corale BWV70 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726.4 Test sullinsieme dei Corali di Bach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776.5 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80</p></li><li><p>Elenco delle figure</p><p>2.1 Circolo delle quinte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Ampiezza di un intervallo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3 Specie di un intervallo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4 Rivolto di un intervallo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.5 Rivolto delle triadi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.6 Scrittura a parti strette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.7 Scrittura a parti late . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15</p><p>3.1 Schema di un messaggio MIDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.2 Messaggio MIDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.3 Schema generale di un file MusicXML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.4 Codifica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.5 Top Level Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.6 Codifica di uno spartito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.7 Uso del tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.8 Uso del tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39</p><p>4.1 Una possibile analisi armonica del frammento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.2 Un Grafo a Stadi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.3 Lista Li di possibili nodi generati dallaccordo di C+ (Do maggiore) . . . . . . . . . . . . . . . . . . 484.4 Grafo generato da una possibile sequenza di accordi (C+, F+, A-) . . . . . . . . . . . . . . . . . . . . 494.5 Suddivisione in zone della lista degli accordi in input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524.6 Calcolo del sottoinsieme di archi di peso massimo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55</p><p>5.1 Lettura delle tracce di una sequenza MIDI in Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595.2 Creazione della partitura digitale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605.3 Esempio di uso della classe InfoFile.java sul corale BWV 70 . . . . . . . . . . . . . . . . . . . . . . . . . 615.4 Struttura gerarchica della partitura elettronica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615.5 Analizzatore Armonico Automatico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625.6 Database degli accordi (in formato XML) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635.7 implementazione dellalgoritmo per le Zone Grigie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645.8 Costruttore della classe GZGraph.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655.9 Tabella dei premi (o pesi) per gli archi del grafo a stadi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665.10 Verifica delle tonalit per lassegnazione del premio supplementare . . . . . . . . . . . . . . . . . . . . 675.11 Costruttore della classe MusicXMLmaker.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685.12 Codice relativo al metodo elabMusicXMLFile() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695.13 File MusicXML in input alla classe MusicXMLmaker.java . . . . . . . . . . . . . . . . . . . . . . . . . . . 705.14 File MusicXML restituito in output dalla classe MusicXMLmaker.java . . . . . . . . . . . . . . . . 70</p><p>6.1 Frammento iniziale del corale BWV70. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72</p><p>vii</p></li><li><p>viii Elenco delle figure</p><p>6.2 Risultato della chiamata getBeat(Measure 3, Beat 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736.3 Lettura e annotazione della sequenza accordi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736.4 Eventuale accordo non riconosciuto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746.5 Individuazione delle zone grigie . . . . . . . . . . . . . . . . . . . ....</p></li></ul>