1 ritornello um framework para representação de conhecimento musical orientando - sylvio pessoa...

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: internet

Post on 19-Apr-2015

103 views

Category:

Documents


1 download

TRANSCRIPT

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

1

RitornelloUm Framework para Representação de Conhecimento Musical

ORIENTANDO - Sylvio Pessoa

ORIENTADOR - Geber Ramalho

Pós-Graduação em Ciência da ComputaçãoPós-Graduação em Ciência da Computação

Programa de MestradoPrograma de Mestrado

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

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

4

O Problema

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

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

8

MusicXML (cont.)

Padrões Musicais

Padrão/Protocolo Musical

API Manipulação Musical

Framework

Aplicação

Principais elementos do MusicXML

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

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

14

Abordagem

MusES como referência funcional

Benefícios da maturidade e da agilidade da modelagem do MusicXML

Reutilização

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

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

16

Pacotes

Diagrama de interação de pacotes

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

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

-fifth-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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

18

A Nota Musical

Detalhe das classes de representação de nota musical

Fá#

1)

2)

3)

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

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

20

O Tempo Musical

A representação de tempo no Ritornello

Res: 96

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

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

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: 1 Ritornello Um Framework para Representação de Conhecimento Musical ORIENTANDO - Sylvio Pessoa ORIENTADOR - Geber Ramalho Pós-Graduação em Ciência da

28

Obrigado !Obrigado !

Contato: [email protected]: [email protected]

Fim