La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Tablabla Università degli Studi di Bologna – Ingegneria Informatica Specialistica Anno Accademico 2007/2008 Valent Cristina Progetto di Valent Cristina.

Presentazioni simili


Presentazione sul tema: "Tablabla Università degli Studi di Bologna – Ingegneria Informatica Specialistica Anno Accademico 2007/2008 Valent Cristina Progetto di Valent Cristina."— Transcript della presentazione:

1 Tablabla Università degli Studi di Bologna – Ingegneria Informatica Specialistica Anno Accademico 2007/2008 Valent Cristina Progetto di Valent Cristina Corso di Linguaggi e Modelli Computazionali LS Prof. Enrico Denti

2 Agenda Obiettivo Tablature: per saperne di più Grammatica: realizzazione ed analisi Esempi di frasi Progetto: implementazione Sviluppi futuri

3 Obiettivo Il progetto si propone di realizzare un linguaggio per la generazione automatica di tablature per chitarra classica a: 19 tasti 6 corde accordatura standard.

4 Tablature: per saperne di più

5 Tablature: spiegazione Sono un metodo per scrivere partiture di chitarra e basso usando una notazione in codice ASCII. Ciò consente di facilitare: la lettura e scrittura di partiture da parte di musicisti meno esperti lo scambio di partiture via internet

6 Tablature: rappresentazione La tablatura presenta 6 righe. Ciascuna riga: realizza graficamente una diversa corda della chitarra inizia con un carattere alfabetico che indica laccordatura della corda a cui la riga è associata. Laccordatura standard è: e per I corda (mi cantino) B per II corda (si) G per III corda (sol) D per IV corda (re) A per V corda (la) E per VI corda (mi grave) Solitamente le accordature riportano i nomi delle note in inglese

7 Tablature: rappresentazione In ogni istante una corda può: non essere suonata essere suonata La riga associata a ciascuna corda riporterà: il simbolo - nel caso di corda non suonata il numero del tasto da premere nel caso di corda suonata (i numeri vanno da 0 a 19 dove 0 significa corda suonata a vuoto) Più corde suonate contemporaneamente costituiscono un accordo.

8 Tablature: esempio e B G D A E Significa suonare II corda terzo tasto Rappresenta laccordatura (standard) Accordo (in questo caso è un DO) Significa suonare I corda a vuoto Significa non suonare la corda

9 Tablature: tecniche (1) E possibile inoltre indicare delle tecniche esecutive: hammer on (passaggio da nota grave a nota acuta) Si pizzica la prima nota e con movimento rapido e deciso si preme la nota successiva pull off (passaggio da nota acuta a nota grave) Si pizzica la prima nota, si trascina la corda (tipo bending) la si rilascia facendola vibrare e si suona così la seconda nota bending (aumento dellaltezza della nota) Si pizzica la prima nota normalmente, si spinge la corda verso lalto per alzarla di un numero di toni pari alla differenza con la seconda nota riportata

10 Tablature: tecniche (2) release (diminuzione dellaltezza della nota) Si tiene la corda in tensione (tramite bendind) e successivamente la si rilascia gradualmente riportando la nota nella posizione di quiete slide up (slittamento da nota grave a nota acuta) Si pizzica la prima nota, si slitta lungo la tastiera verso il corpo della chitarra slide down (slittamento da nota acuta a nota grave) Si pizzica la prima nota, si slitta lungo la tastiera verso la paletta della chitarra

11 Tablature: tecniche (3) vibrate (diminuzione dellaltezza della nota) Sono piccoli spostamenti della corda rispetto al tasto (si sfrutta il principio del bending) palm mute (blocco della vibrazione della corda ) Si appoggia il palmo della mano a ridosso del ponte in modo da sfiorarne le corde stopped (smorzamento del suono) Si allenta la presa delle dita che agiscono sulla tastiera durante l'esecuzione del brano

12 Grammatica: realizzazione ed analisi

13 Grammatica (1) ::= ( ;. )+ ::=,,,,, :: = | ( )? ( ( )? )* ::= 0 | | 1( )? ::= 0 | ::= 1 | ::= 0 | ( )*

14 Grammatica (1) ::= ( ;. )+ ::=,,,,, :: = | ( )? ( ( )? )* ::= 0 | | 1( )? ::= 0 | ::= 1 | ::= 0 | ( )* I corda VI corda Notazione posizionale Num. Corda = Posizione Durata qualitativa della configurazione di GruppoNote

15 Grammatica (2) ::= x | - ::= v | m ::= h | p | b | r | u | d ::= [ 2 – 9 ] stopped corda non suonata vibrate palm mute slide down pull off bending release hammer on slide up

16 Tipologia grammatica Le regole di produzione hanno la forma A β dove A є VN e β є V + Secondo la classificazione di Chomsky la grammatica risulta essere di tipo 2 (context - free).

17 Tipologia linguaggio La grammatica non presenta self-embedding, ovvero non prevede simboli non terminali autoinclusivi del tipo: A β A δ dove A є VN e δ, β є V + il linguaggio generato è di tipo 3 (linguaggio regolare) * Significa

18 ε - rules La grammatica è priva di ε – rules. Non presenta nemmeno la regola di produzione S ε dove S rappresenti lo scopo della grammatica. Il linguaggio quindi non prevede luso della stringa vuota, anche perché una tablatura vuota non avrebbe alcun senso.

19 Analisi grammatica In sintesi il linguaggio è: context-free privo di ε – rules Si può verificare se è analizzabile in maniera deterministica dalle tecniche LL, auspicando che nel caso possa essere LL(1). Visto che la grammatica non genera la stringa vuota, condizione necessaria e sufficiente perché una grammatica sia LL(1) è che per ogni metasimbolo, che appare alla sinistra di più produzioni, gli starter symbol corrispondenti alle parti destre delle produzioni alternative siano disgiunti.

20 Starter Symbols Sapendo che :: = [2 - 9] ::= 0 | | 1( )? SS(0) = {0} SS( ) = {2..9} SS(1( )?) = {1} ::= 1 | SS(1) = {1} SS( ) = {2..9} ::= 0 | SS(0) = {0} SS( ) = {1..9} ::= 0 | ( )* SS(0) = {0} SS( ( )*) = {1..9} DISGIUNTI! DISGIUNTI! DISGIUNTI! DISGIUNTI!

21 Starter Symbols Sapendo che: ::= x | - ::= v | m :: = | ( )? ( ( )? )* SS( ) = {x, - } SS(( )? ( ( )? )* ) = {v,m,0..9} DISGIUNTI!

22 Starter Symbols Sapendo che: ::= x | - ::= v | m :: = | ( )? ( ( )? )* SS( ) = {x, - } SS(( )? ( ( )? )* ) = {v,m,0..9} DISGIUNTI! La grammatica è LL(1)

23 Esempi di frasi

24 Esempi di comandi Esempio: -,5,-,-,-,-;3. -,-,-,1h2pv1,-,-;4. -,3u5,-,-,-,-;2. -,a4,-,-,-,-;3. -,-,-,-,3h,-;3. Esempio di sequenza di tecniche Errore lessicale! a non appartiene al linguaggio Errore sintattico! Dopo h deve esserci un numero o un simbolo unario {v,m} seguito da un numero

25 Errori semantici Esempi: -,2h1,-,-,-,-;3. -,2b1,-,-,-,-;3. -,2u1,-,-,-,-;3. -,1p2,-,-,-,-;3. -,1r2,-,-,-,-;3. -,1d2,-,-,-,-;3. -,v0,-,-,-,-;3. Tasto 1 {h,b,u} Tasto2 Tasto1 < Tasto2 Tasto 1 {p,r,d} Tasto2 Tasto1 > Tasto2 v Tasto Tasto > 0

26 Progetto:implementazione

27 Tablabla Il sistema accetta le frasi del linguaggio e genera le relative tablature, effettuando un controllo semantico relativo alle note in funzione delle tecniche esecutive. Si compone dei seguenti package: gui. Contenente tutte le classi per generare linterfaccia grafica syntaxtree. Contenente le classi per lAPT parser. Contenente le classi per scanner e parser visitor. Contenente le classi per il visitor

28 Pattern Visitor Per coniugare i vantaggi del metodo funzionale con quelli del modello object-oriented, per limplementazione del è stato utilizzato il pattern di progetto che va sotto il nome di Visitor. E il visitor che si occupa di realizzare lanalisi semantica, per mantenere una separazione da quella sintattica realizzata dal parser. Essendo presente solo una interpretazione esiste un solo Visitor chiamato TabVisitor allinterno del progetto.

29 Inserimento comandi LexerParser APT Visitor Visita Produce la tablatura Funzionamento

30 Lexer e Parser Il lexer: è generato dal parser e si trova nella classe TabParserTokenManager effettua il controllo lessicale della frase inserita. Il parser effettua: il controllo sulla sintassi delle frasi inserite la creazione dellalbero sintattico. Si trova allinterno della classe TabParser. Viene generato una sola volta e poi reinizializzato ( parser.ReInit(new StringReader(areaCommand.getText() );

31 TabVisitor Il TabVisitor in sostanza esegue i seguenti passi: 1.visita lalbero generato dal parser 2.effettua i controlli semantici relativi alle note in funzione delle tecniche esecutive 3.produce le tablature che verranno poi visualizzate nellinterfaccia utente e che potranno poi essere salvate su file

32 Strumenti utilizzati Il progetto è stato realizzato in java (versione 1.6). Gli strumenti usati sono: JavaCC per la generazione automatica del parser JTB per la costruzione automatica dellalbero sintattico e i relativi Visitor di base Il tutto è stato implementato usando come tool di sviluppo Eclipse 3.0.

33 Conclusioni

34 Sviluppi futuri Il progetto riesce già a realizzare tablature di qualità, ma si potrebbe arricchirlo con altre funzionalità come: la possibilità di indicare graficamente gli armonici (spesso indicati fuori tablatura) siano essi: –naturali –artificiali la possibilità di indicare accordature differenti da quella standard


Scaricare ppt "Tablabla Università degli Studi di Bologna – Ingegneria Informatica Specialistica Anno Accademico 2007/2008 Valent Cristina Progetto di Valent Cristina."

Presentazioni simili


Annunci Google