ritornello um framework para representação de conhecimento musical

Post on 15-Mar-2016

29 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Pós-Graduação em Ciência da Computação Programa de Mestrado. Ritornello Um Framework para Representação de Conhecimento Musical. ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho. Roteiro. O Problema Padrões, APIs e Frameworks Musicais Características do Ritornello - PowerPoint PPT Presentation

TRANSCRIPT

1

RitornelloUm Framework para Representação de Conhecimento Musical

ORIENTANDO - Sylvio PessoaORIENTADOR - Geber Ramalho

Pós-Graduação em Ciência da ComputaçãoPós-Graduação em Ciência da ComputaçãoPrograma de MestradoPrograma de Mestrado

2

Roteiro O Problema Padrões, APIs e Frameworks Musicais Características do Ritornello O projeto Trabalhos Futuros Sugestões de Exercícios

3

Roteiro O Problema Padrões, APIs e Frameworks Musicais Características do Ritornello O projeto Trabalhos Futuros Sugestões de Exercícios

4

O Problema

5

O Problema Modelagem ad hoc de elementos musicais no

desenvolvimento de aplicações musicais Complexidade e relevância de elementos da teoria musical

Poucos esforços em efetiva reutilização de conhecimento musical

6

Roteiro O Problema Padrões, APIs e Frameworks Musicais Características do Ritornello O projeto Trabalhos Futuros Sugestões de Exercícios

7

Padrões Musicais MIDI / XMF

+ Fácil manipulação dos dados+ Pequeno espaço ocupado pelo arquivo- Pouco expressivo para representação do conhecimento musical- Dificuldade de conversão para partitura eletrônica

MusicXML+ Modelagem alto nível de elementos musicais+ Facilidade para conversão para partitura eletrônica+ XML- Não é operacional

Padrão/Protocolo Musical

API Manipulação Musical

Framework

Aplicação

8

MusicXML (cont.)

Padrões MusicaisPadrão/Protocolo Musical

API Manipulação Musical

Framework

Aplicação

Principais elementos do MusicXML

9

APIs de Manipulação Musical

Java Sound Java+ MIDI- Representação dos elementos musicais é muito

simples e não reflete as particularidades da teoria musical

API Manipulação Musical

Framework

Aplicação

Padrão/Protocolo Musical

10

MusES Longo projeto Modelagem orientada a objetos complexa de elementos

musicais de base Implementação em Smalltalk+ Vários aspectos da complexidade da harmonia tonal foram

tratados - Rara utilização de metodologias de modelagem e

documentação orientadas a objetos - Incompatibilidade com padrões musicais modernos

Framework

Aplicação

Padrão/Protocolo Musical

API Manipulação Musical

Frameworks de Conhecimento Musical

11

Roteiro O Problema Padrões, APIs e Frameworks Musicais Características do Ritornello O projeto Trabalhos Futuros Sugestões de Exercícios

12

Características do Ritornello Características

Modelagem dos conceitos fundamentais da teoria musical

Aplicações de análise, composição e execução musical

Compatível com os padrões mais modernos de representação musical

MusicXML, MIDI, etc. Abstração da linguagem de implementação

Cursos x projetos de pesquisa Independência da API de manipulaçãoIndependência da API de manipulação

13

Camadas...

Padrão/Protocolo musical MIDI, XMF, MusicXML

API Manipulação Musical

Framework

Aplicação

Java Sound, MidiShare

Ritornello

D’Accord Violão, ChordFinder, JSS, PET

14

Abordagem MusES como referência funcional Benefícios da maturidade e da agilidade

da modelagem do MusicXML Reutilização

15

Roteiro O Problema Padrões, APIs e Frameworks Musicais Características do Ritornello O projeto Trabalhos Futuros Sugestões de Exercícios

16

Pacotes

Diagrama de interação de pacotes

17

Visão Geral das Classes

Diagrama de classes do Ritornello

Interval(from conceitual) PlayableElement

(from playable)

Chord(from conceitual)...)

Scale(from conceitual)

Note(from conceitual)

-root-third

-fi fth-seventh

-root

PitchName(from conceitual)

-pitchName

PlayableNote(from playable)

PlayableChord(from playable)

Lapse(from playable)

-lapse -lapseKeySignature(from performance)

TimeSignature(from performance)

Rollable

(from conceitual)

Runnable

(from performance)

Serializable

(from performance)

Collection

(from core)

Clef(from performance)

Score(from performance)...)

Staff(from performance)...)-clef

Measure(from performance)...)

-startMeasure

-keySignature

-timeSignature -measures

-staff

-staves

-score

18

A Nota Musical

Detalhe das classes de representação de nota musical

Fá#

1)

2)

3)

19

A Nota Musical

Detalhe das classes de representação de nota musical

PitchName

value : int

getValue()setValue()getName()getNext()getBack()goTo()

(f rom core)

Note

accident : int

getChords()getScales()getAccident()setAccident()getAccidentName()getPitchName()equals()setPitchName()getName()

(f rom core)

0..*

1

0..*

1

PlayableNote

octave : int

setLapse()getLapse()getOctave()setOctave()equals()

(f rom core)

PlayableElement

setLapse()getLapse()

(f rom core)

PlayableChord

setLapse()getLapse()

(f rom core)

Rollable

getNext()getBack()

goTo()

(f rom core)

20

O Tempo Musical

A representação de tempo no Ritornello

Res: 96

21

O Tempo Musical

A representação de tempo no Ritornello

Measure

number : intdivisions : int

getTimeSignature()getKeySignature()getNumber()getStaff()setNumber()removeAllElements()removeElement()setStaff()addElement()getElements()importFrom()exportTo()setTimeSignature()setKeySignature()

(f rom core)

PlayableElement

setLapse()getLapse()

(f rom core)PlayableChord

setLapse()getLapse()

(f rom core)

Lapse

startBeat : longstartTick : longdurationTicks : long

getDurationTicks()setDurationTicks()getStartBeat()setStartBeat()getStartMeasure()setStartMeasure()getStartTick()setStartTick()

(f rom core)

0..*

1

0..*

1

0..*

0..1

0..*

0..1

PlayableNote

octave : int

setLapse()getLapse()getOctave()setOctave()equals()

(f rom core)

0..*

0..1

0..*

0..1

22

O Pacote Conceitual

Diagrama das classes mais complexas do Ritornello

Scale

getChromatic()getMinorHarmonic()getMajor()getMinorMelodic()getIntervalList()getRoot()setRoot()getName()removeElement()removeAllElements()getValue()addElement()getElements()getNoteByDegree()getTriadByDegree()

(f rom core)Chord

getName()getMajor()getMinor()setRoot()getRoot()addElement()removeElement()removeAllElements()getElements()getThirdType()getFifthType()getSeventhType()getThird()getFifth()getSeventh()

(f rom core)Interval

semitones : int

getName()setSemitones()getSemitones()calculateShortestNoteInterval()calculateLongestNoteInterval()calculateNoteFowardInterval()calculateNoteBackwardInterval()calculateNoteInterval()calculatePlayableNoteInterval()calculatePlayableNoteInterval()isEnharmonic()getEnharmonicsList()

(f rom core)

23

O Projeto ConclusõesConclusões

Hierarquia enxuta e estruturada Facilita muito a reutilização e extensão dos componentes

Classes de execução refletem elementos do MusicXML Modelagem da nota musical

Simples e poderosa Representação de tempo musical

Elimina deficiências do formato do MusES Agrupamento de funcionalidades comuns em interfaces

24

Roteiro O Problema Padrões, APIs e Frameworks Musicais Características do Ritornello O projeto Trabalhos Futuros Sugestões de Exercícios

25

Trabalhos Futuros Expansão do Ritornello

Editores musicais de partitura, tablatura e correlatos Classes para análise em harmonia funcional Ambiente interativo: interface visual + repositório de

objetos (MusicXML)

Implementação em C++ (D’Accord)

26

Roteiro O Problema Padrões, APIs e Frameworks Musicais Características do Ritornello O projeto Trabalhos Futuros Sugestões de Exercícios

27

Sugestões de Exercícios Criação de uma mini-peça musical para execuçãoCriação de uma mini-peça musical para execução Substituição de notas musicais da mini-peça por enarmônicas. O Substituição de notas musicais da mini-peça por enarmônicas. O

som muda ?som muda ? Identificação de intervalos musicais entre as notas da mini-peçaIdentificação de intervalos musicais entre as notas da mini-peça Formação da escala Mi menor harmônica, e identificação do 7º Formação da escala Mi menor harmônica, e identificação do 7º

grau desta escalagrau desta escala Formação do acorde de Fá Maior, e identificação das suas notasFormação do acorde de Fá Maior, e identificação das suas notas Identificação de acordes através de suas notas musicaisIdentificação de acordes através de suas notas musicais

28

Obrigado !Obrigado !

Contato: sylviop@uol.com.brContato: sylviop@uol.com.br

Fim

top related