Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoAurora Foti Modificato 9 anni fa
1
Progetto di Linguaggi e modelli computazionali M Prof. Enrico Denti Progetto di: Francesco Paci
2
Presentazione del progetto KeyBoard Pattern è un linguaggio per assegnare delle caratteristiche proprie del linguaggio Midi ad un set di tastiere. È possibile creare dei pattern di caratteristiche sonore. Il software realizzato permette di collegare una tastiera midi ad un Personal Computer e di elaborare il segnale che essa fornisce in ingresso secondo le caratteristiche volute, modellate dal linguaggio.
3
Standard Midi Lo standard midi è stato introdotto all’inizio degli anni ’80 Esso consiste di un insieme di hardware e software che concorrono alla standardizzazione della comunicazione di strumenti musicali. Nel contesto del mio lavoro è stato studiato come vengono inviate le informazioni all’interno del protocollo midi.
4
Messaggi Midi I messaggi scambiati tra i Midi Device sono di due tipi: Channel Message Channel Voice Message Channel System Message System Message I messaggi che scambiano le informazioni relative alla pressione dei tasti e al canale utilizzato sono i Channel Voice Message. Ogni midi Device può utilizzare 16 canali di trasmissione in modalità MONO (trasmette su un solo canale alla volta) Le caratteristiche che il midi consente di modellare su ogni tasto sono le seguenti: Banco (Timbro del suono) Transpose Pitch Wheel (valori tra -8192 e 8191) Modulation (valori tra 0 e 127)
5
Scopo del linguaggio Lo scopo del progetto è poter assegnare le caratteristiche dei channel voice message ad un insieme di tasti. L’insieme dei tasti a cui assegnarle è arbitrario e specificabile tramite il linguaggio. Quindi è possibile ognuno dei 16 canali in tanti gruppi di note ed assegnare ad ognuno di questi delle caratteristiche, indipendenti dalle altre. I gruppi possono essere composti da un numero qualsiasi di note compreso tra 1 e 128 per ogni canale. Non possono essere immessi dei gruppi sovrapposti Lo stesso banco può essere assegnato a più canali ed anche a più gruppi appartenenti allo stesso canale.
6
Midi in Java In java il protocollo midi può essere sfruttato tramite le classi appartenenti alla libreria javax.sound.midi Questa libreria mette a disposizione tutti i metodi per accedere ai Midi Device presenti nel sistema. Per intercettare i messaggi scambiati è stata implementata la classe astratta Receiver che permette di implementare il metodo send. Attraverso questo metodo è possibile intercettare i messaggi midi in ingresso e modificarli prima che vengano inviati al sintetizzatore.
7
Grammatica Non Terminali: : "{" ( )+ "}" : "{" "}“ : + : ";" : "(" ")" "{" "}“ : ? ? ? : ";“ : ";"
8
Grammatica alternativa Non Terminali: : "{" ( )+ "}" : "{" "}“ : + : ";" : "(" ")" "{" + "}“ : | | | : ";“ : ";"
9
Grammatica Terminali: ":" > ( | )*> )? ( )+ > |
10
Strumenti di realizzazione Java Tree Builder JavaCC eclipse plug-in Eclipse - ambiente di sviluppo
11
Esempi di utilizzo LiveSession{ keyboard tast1{ channel 1; options (1:50){ bank 56; transpose -4; }
12
Esempi di utilizzo LiveSession{ keyboard tast1{ channel 12; options (1:50){ bank 3; transpose 4; } keyboard tast2{ channel 2; options (1:100){ bank 12; transpose 4; pitch 23; }
13
Test Bome’s mouse keyboard– per comodità LoopBe virtual midi port – per far credere al sistema operativo che stiamo usando un ingresso midi “reale” Possibilità di utilizzo di qualsiasi tastiera come output Standard MIDI
14
Limiti del linguaggio Linguaggio di tipo 3 Seppure la grammatica sia in grado di generare un linguaggio infinito, il linguaggio in oggetto è limitato a causa delle caratteristiche modellate.
15
Sviluppi futuri Integrazione pannello di scelta input e output midi. Possibilità di definizione di tastiere non associate ad un canale per avere una più vasta gamma di scelta senza modificare la grammatica. Migliorare l’interfaccia grafica per interazione con l’utente, in conseguenza anche al punto precedente. Estendere le modifiche dei parametri al supporto di canali live controllati da tastiera
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.