ritornello um framework para representação de conhecimento musical

28
1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da Computação Pós-Graduação em Ciência da Computação Programa de Mestrado Programa de Mestrado

Upload: imogene-patton

Post on 15-Mar-2016

28 views

Category:

Documents


0 download

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

Page 1: Ritornello Um  Framework  para Representação de Conhecimento Musical

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

Page 2: Ritornello Um  Framework  para Representação de Conhecimento Musical

2

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

Page 3: Ritornello Um  Framework  para Representação de Conhecimento Musical

3

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

Page 4: Ritornello Um  Framework  para Representação de Conhecimento Musical

4

O Problema

Page 5: Ritornello Um  Framework  para Representação de Conhecimento Musical

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

Page 6: Ritornello Um  Framework  para Representaçã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

Page 7: Ritornello Um  Framework  para Representação de Conhecimento Musical

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

Page 8: Ritornello Um  Framework  para Representação de Conhecimento Musical

8

MusicXML (cont.)

Padrões MusicaisPadrão/Protocolo Musical

API Manipulação Musical

Framework

Aplicação

Principais elementos do MusicXML

Page 9: Ritornello Um  Framework  para Representação de Conhecimento Musical

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

Page 10: Ritornello Um  Framework  para Representação de Conhecimento 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

Page 11: Ritornello Um  Framework  para Representação 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

Page 12: Ritornello Um  Framework  para Representação de Conhecimento Musical

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

Page 13: Ritornello Um  Framework  para Representação de Conhecimento Musical

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

Page 14: Ritornello Um  Framework  para Representação de Conhecimento Musical

14

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

da modelagem do MusicXML Reutilização

Page 15: Ritornello Um  Framework  para Representação de Conhecimento Musical

15

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

Page 16: Ritornello Um  Framework  para Representação de Conhecimento Musical

16

Pacotes

Diagrama de interação de pacotes

Page 17: Ritornello Um  Framework  para Representação de Conhecimento Musical

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

Page 18: Ritornello Um  Framework  para Representação de Conhecimento Musical

18

A Nota Musical

Detalhe das classes de representação de nota musical

Fá#

1)

2)

3)

Page 19: Ritornello Um  Framework  para Representação de Conhecimento Musical

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)

Page 20: Ritornello Um  Framework  para Representação de Conhecimento Musical

20

O Tempo Musical

A representação de tempo no Ritornello

Res: 96

Page 21: Ritornello Um  Framework  para Representação de Conhecimento Musical

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

Page 22: Ritornello Um  Framework  para Representação de Conhecimento Musical

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)

Page 23: Ritornello Um  Framework  para Representação de Conhecimento Musical

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

Page 24: Ritornello Um  Framework  para Representação de Conhecimento Musical

24

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

Page 25: Ritornello Um  Framework  para Representação de Conhecimento Musical

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)

Page 26: Ritornello Um  Framework  para Representação de Conhecimento Musical

26

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

Page 27: Ritornello Um  Framework  para Representação de Conhecimento Musical

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

Page 28: Ritornello Um  Framework  para Representação de Conhecimento Musical

28

Obrigado !Obrigado !

Contato: [email protected]: [email protected]

Fim