Upload
imogene-patton
View
29
Download
0
Embed Size (px)
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
Citation preview
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