Algoritmos de acompanhamento musical para performances polifônicas

Documentos relacionados
Técnicas de aprimoramento de um sistema de acompanhamento musical

Sistema de Acompanhamento Musical Automatizado

Acompanhamento Computacional Parte II. Mariana Zaparolli Martins Computação Musical IME USP

Marina Andretta. 10 de outubro de Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis.

Interpolação polinomial: Diferenças divididas de Newton

Algoritmos para resolução de problemas de minimização irrestrita

Método Simplex dual. Marina Andretta ICMC-USP. 24 de outubro de 2016

Resolução de sistemas de equações lineares: Método dos Gradientes Conjugados

Interpolação polinomial: Polinômio de Lagrange

15/03/2018. Professor Ariel da Silva Dias Algoritmo e Contagem de Instruções. Prof. Ariel da Silva Dias -

Método Simplex. Marina Andretta ICMC-USP. 19 de outubro de 2016

ANÁLISE DE ALGORITMOS: PARTE 1. Prof. André Backes. Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa

SME0801- Probabilidade II Distribuições conjuntas. Primeiras definições e propriedades

Aulas 10 e 11 / 18 e 20 de abril

2 Processo de Agrupamentos

Instituto de Matemática e Estatística, UFF Março de 2011

Escola de Música Orfeão de Leiria Conservatório de Artes PERCUSSÃO MATRIZES 1º AO 8º GRAU DEPARTAMENTO CURRICULAR DE SOPROS E PERCUSSÃO

Teoria de dualidade. Marina Andretta ICMC-USP. 19 de outubro de 2016

ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS

Técnicas determinísticas para acompanhamento musical automatizado. Roberto Piassi Passos Bodo

Interpolação polinomial: Diferenças divididas de Newton

PROGRAMAÇÃO A. Matrizes

Provadores de Teoremas baseados em contagem

Sistema de Reconhecimento de Logotipos

MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016

MÉTODOS QUANTITATIVOS PARA CIÊNCIA DA COMPUTAÇÃO EXPERIMENTAL

Princípio da Multiplicação Gerando todas as palavras de um alfabeto. > Princípios de Contagem e Enumeração Computacional 0/18

Aula 8: Complemento a Um e Complemento a Dois

Tópicos em LP. Fabio Mascarenhas

Instruções, dados e expressões

ALGORITMO DE EUCLIDES

Estatística Descritiva. Objetivos de Aprendizagem. 6.1 Sumário de Dados. Cap. 6 - Estatística Descritiva 1. UFMG-ICEx-EST. Média da amostra: Exemplo:

Transformada de Fourier: fundamentos matemáticos, implementação e aplicações musicais

Sistemas de Tempo-Real

Instituto Tecnológico de Aeronáutica Divisão de Engenharia Mecânica-Aeronáutica. MOQ-13 Probabilidade e Estatística

MB-210 Probabilidade e Estatística

VESTIBULAR MÚSICA

COMPARAÇÃO DE SISTEMAS USANDO DADOS DE AMOSTRAS. Capítulo 13 do livro: The Art of Computer Systems Performance Analysis

Projeto de Escalonamento Alocação de médicos

Exame Final Nacional de Física e Química A Prova ª Fase Ensino Secundário º Ano de Escolaridade. Critérios de Classificação.

14 Estimador assintótico

Estatística Descritiva

INICIAÇÃO À MÚSICA E AO VIOLÃO

Pré-Cálculo. Humberto José Bortolossi. Aula 6 29 de março de Departamento de Matemática Aplicada Universidade Federal Fluminense

CI811 Tópicos em Algoritmos

Estatística e Modelos Probabilísticos - COE241

Árvore Binária de Busca Ótima

Figuras Musicais Principais figuras musicais

Alinhamento de Sequências e Genômica Comparativa

VESTIBULAR MÚSICA

MATRIZES - PARTE Mais exemplos Multiplicação de duas matrizes AULA 26

Exemplo 13 figuras de tempo e suas relações básicas.

Resolução de problemas com apenas restrições lineares de igualdade

Análise e Projeto de Algoritmos

IME, UFF 7 de novembro de 2013

CIC 111 Análise e Projeto de Algoritmos II

MouseCam: aplicação de controle do mouse via câmera

aula DISTRIBUIÇÃO NORMAL - PARTE I META OBJETIVOS PRÉ-REQUISITOS Apresentar o conteúdo de distribuição normal

Os números inteiros. Álgebra (Curso de CC) Ano lectivo 2005/ / 51

Análise e Complexidade de Algoritmos

5ª Lista de Exercícios de Programação I

Escrita correta de resultados em notação

Reduce: reduz o que está imediatamente à esquerda do foco usando uma produção

7 Conclusões e desenvolvimentos futuros

Complemento a Um e Complemento a Dois

Lista 1. 8 de abril de Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b.

Estudo heurístico de performance de estratégias de investimento simples baseadas na média móvel e desvio padrão no mercado ForEx

VETORES Motivação AULA 19

Testes de Hipótese para uma única Amostra - parte I

Regras para evitar ciclagem

1. Múltiplos e divisores

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 4 a Lista de Exercícios Gabarito de algumas questões.

Resolução de sistemas de equações lineares: Método de eliminação de Gauss - estratégias de pivotamento

UNIVERSIDADE FEDERAL DE SERGIPE

UNIVERSIDADE FEDERAL DE SERGIPE

4 Método Proposto CR AD PA NDVI Descrição geral do modelo

Aula 10: Introdução a Vetores e Matrizes

Tente responder às seguintes perguntas. As respostas vão te ajudar a encontrar a solução do problema.

Unidade III ESTATÍSTICA. Prof. Fernando Rodrigues

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.

MÚSICA. Transcreva o trecho musical I, por completo e sem rasura, para o pentagrama correspondente na folha de respostas, no espaço

Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos.

ESTRUTURAS DE REPETIÇÃO - PARTE 3

O básico da Guitarra - Aula 21 J. Junior. Hoje teremos a revisão sobre partitura e também sobre Escala Maior. Então é isso!!!!! Um Abraço. J.

Problemas NP-completos

1 semestre de 2014 Gabarito Lista de exercícios 3 - Estatística Descritiva III C A S A

Análise de algoritmos

Monitor: Diego Augusto Silva (P8 Eng. Elétrica) Atendimento: 2as. de 19:45h às 21:30h

Algoritmos Numéricos II. Lucia Catabriga 1

Oi, Ficou curioso? Então conheça nosso universo.

Algoritmos 3/17/ Algoritmos como área de estudo e investigação

Marina Andretta. 02 de agosto de 2010

Compiladores - Análise Ascendente

4 Métodos Existentes. 4.1 Algoritmo Genético

Compiladores - Análise Ascendente

Exercícios: Vetores e Matrizes

Semântica Operacional

CIC 111 Análise e Projeto de Algoritmos II

Tópicos Especiais em Inteligência Artificial COS746. Vítor Santos Costa COPPE/Sistemas Universidade Federal do Rio de Janeiro

Transcrição:

Algoritmos de acompanhamento musical para performances polifônicas Roberto Piassi Passos Bodo Instituto de Matemática e Estatística Universidade de São Paulo 24 de Setembro de 2013

O Artigo Real-Time Computer Accompaniment of Keyboard Performances International Computer Music Conference de 1985 Joshua J. Bloch e Roger B. Dannenberg Carnegie Mellon University rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 2 / 36

O Problema Acompanhamento musical: rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 3 / 36

O Problema Acompanhamento musical: escutar a performance de um músico; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 3 / 36

O Problema Acompanhamento musical: escutar a performance de um músico; comparar os eventos da entrada com os eventos de uma partitura; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 3 / 36

O Problema Acompanhamento musical: escutar a performance de um músico; comparar os eventos da entrada com os eventos de uma partitura; inferir um andamento; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 3 / 36

O Problema Acompanhamento musical: escutar a performance de um músico; comparar os eventos da entrada com os eventos de uma partitura; inferir um andamento; tocar o acompanhamento apropriado. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 3 / 36

Histórico An On-Line Algorithm for Real-Time Accompaniment Roger B. Dannenberg ICMC 1984 The synthetic performer in the context of live performance Barry Vercoe ICMC 1984 rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 4 / 36

Estrutura de um sistema de acompanhamento rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 5 / 36

Casamento monofônico Características dos eventos: rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 6 / 36

Casamento monofônico Características dos eventos: contêm informação sobre a altura musical somente; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 6 / 36

Casamento monofônico Características dos eventos: contêm informação sobre a altura musical somente; são trivialmente comparados; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 6 / 36

Casamento monofônico Características dos eventos: contêm informação sobre a altura musical somente; são trivialmente comparados; são totalmente ordenados. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 6 / 36

Algoritmo de casamento monofônico Queremos encontrar o melhor casamento* entre a entrada do músico e a partitura. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 7 / 36

Algoritmo de casamento monofônico Queremos encontrar o melhor casamento* entre a entrada do músico e a partitura. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 7 / 36

Algoritmo de casamento monofônico Queremos encontrar o melhor casamento* entre a entrada do músico e a partitura. *melhor casamento = maior subsequência comum. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 7 / 36

Algoritmo de casamento monofônico Adaptações do algoritmo de programação dinâmica que calcula maior subsequência comum: rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 8 / 36

Algoritmo de casamento monofônico Adaptações do algoritmo de programação dinâmica que calcula maior subsequência comum: cada linha corresponde a um evento da partitura; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 8 / 36

Algoritmo de casamento monofônico Adaptações do algoritmo de programação dinâmica que calcula maior subsequência comum: cada linha corresponde a um evento da partitura; cada coluna corresponde a um evento da performance; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 8 / 36

Algoritmo de casamento monofônico Adaptações do algoritmo de programação dinâmica que calcula maior subsequência comum: cada linha corresponde a um evento da partitura; cada coluna corresponde a um evento da performance; a cada evento detectado uma nova coluna é calculada. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 8 / 36

Algoritmo de casamento monofônico Valor da i-ésima linha e j-ésima coluna: a maior pontuação de qualquer associação até o momento atual. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 9 / 36

Algoritmo de casamento monofônico Valor da i-ésima linha e j-ésima coluna: a maior pontuação de qualquer associação até o momento atual. Quais eventos foram associados para obter tal pontuação? rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 9 / 36

Algoritmo de casamento monofônico Valor da i-ésima linha e j-ésima coluna: a maior pontuação de qualquer associação até o momento atual. Quais eventos foram associados para obter tal pontuação? rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 9 / 36

Casamento polifônico Características dos eventos: rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 10 / 36

Casamento polifônico Características dos eventos: contêm informação temporal (além da altura musical); rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 10 / 36

Casamento polifônico Características dos eventos: contêm informação temporal (além da altura musical); são mais difíceis de comparar; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 10 / 36

Casamento polifônico Características dos eventos: contêm informação temporal (além da altura musical); são mais difíceis de comparar; são parcialmente ordenados. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 10 / 36

Casamento polifônico Partitura: sequência de conjuntos de símbolos não-ordenados. CEG GEC GCE CEG CGE EGC ECG rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 11 / 36

Casamento polifônico Decisões de projeto de algoritmos: rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 12 / 36

Casamento polifônico Decisões de projeto de algoritmos: 1 definir o significado de melhor associação entre performance e partitura; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 12 / 36

Casamento polifônico Decisões de projeto de algoritmos: 1 definir o significado de melhor associação entre performance e partitura; 2 decidir com confiança em qual ponto da partitura o músico está; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 12 / 36

Casamento polifônico Decisões de projeto de algoritmos: 1 definir o significado de melhor associação entre performance e partitura; 2 decidir com confiança em qual ponto da partitura o músico está; 3 agrupar as notas da performance em eventos compostos. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 12 / 36

Associação entre performance e partitura Definição de melhor associação? rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 13 / 36

Associação entre performance e partitura Definição de melhor associação? Aquela que maximiza uma função de pontuação. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 13 / 36

Associação entre performance e partitura Definição de melhor associação? Aquela que maximiza uma função de pontuação. Para que queremos encontrá-la? rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 13 / 36

Associação entre performance e partitura Definição de melhor associação? Aquela que maximiza uma função de pontuação. Para que queremos encontrá-la? Determinar o melhor prefixo da partitura para um dado prefixo da performance. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 13 / 36

Associação entre performance e partitura Definição de melhor associação? Aquela que maximiza uma função de pontuação. Para que queremos encontrá-la? Determinar o melhor prefixo da partitura para um dado prefixo da performance. Notação: rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 13 / 36

Associação entre performance e partitura Definição de melhor associação? Aquela que maximiza uma função de pontuação. Para que queremos encontrá-la? Determinar o melhor prefixo da partitura para um dado prefixo da performance. Notação: p[i] = i-ésimo evento da performance rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 13 / 36

Associação entre performance e partitura Definição de melhor associação? Aquela que maximiza uma função de pontuação. Para que queremos encontrá-la? Determinar o melhor prefixo da partitura para um dado prefixo da performance. Notação: p[i] = i-ésimo evento da performance p[1:i] = prefixo da performance de tamanho i rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 13 / 36

Associação entre performance e partitura Definição de melhor associação? Aquela que maximiza uma função de pontuação. Para que queremos encontrá-la? Determinar o melhor prefixo da partitura para um dado prefixo da performance. Notação: p[i] = i-ésimo evento da performance p[1:i] = prefixo da performance de tamanho i s[j] = j-ésimo evento da partitura rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 13 / 36

Associação entre performance e partitura Definição de melhor associação? Aquela que maximiza uma função de pontuação. Para que queremos encontrá-la? Determinar o melhor prefixo da partitura para um dado prefixo da performance. Notação: p[i] = i-ésimo evento da performance p[1:i] = prefixo da performance de tamanho i s[j] = j-ésimo evento da partitura s[1:j] = prefixo da partitura de tamanho j rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 13 / 36

Associação entre performance e partitura Vamos definir a função best-match-rating(p[1:i], s). rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 14 / 36

Associação entre performance e partitura Vamos definir a função best-match-rating(p[1:i], s). Cada símbolo p[i] é classificado como: rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 14 / 36

Associação entre performance e partitura Vamos definir a função best-match-rating(p[1:i], s). Cada símbolo p[i] é classificado como: certo; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 14 / 36

Associação entre performance e partitura Vamos definir a função best-match-rating(p[1:i], s). Cada símbolo p[i] é classificado como: certo; errado; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 14 / 36

Associação entre performance e partitura Vamos definir a função best-match-rating(p[1:i], s). Cada símbolo p[i] é classificado como: certo; errado; adicional; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 14 / 36

Associação entre performance e partitura Vamos definir a função best-match-rating(p[1:i], s). Cada símbolo p[i] é classificado como: certo; errado; adicional; faltando. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 14 / 36

Associação entre performance e partitura Vamos definir a função best-match-rating(p[1:i], s). Cada símbolo p[i] é classificado como: certo; errado; adicional; faltando. Classe de funções: rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 14 / 36

Associação entre performance e partitura Vamos definir a função best-match-rating(p[1:i], s). Cada símbolo p[i] é classificado como: certo; errado; adicional; faltando. Classe de funções: = tamanho do prefixo da partitura - c erradas #notas erradas - c adicionais #notas adicionais - c faltando #notas faltando rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 14 / 36

Em qual ponto da partitura o músico está Primeira abordagem: assumir que a função best-match-rating tende a crescer com a evolução da performance e tende a diminuir com a execução de erros. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 15 / 36

Em qual ponto da partitura o músico está Primeira abordagem: assumir que a função best-match-rating tende a crescer com a evolução da performance e tende a diminuir com a execução de erros. Quando reportamos um casamento? rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 15 / 36

Em qual ponto da partitura o músico está Primeira abordagem: assumir que a função best-match-rating tende a crescer com a evolução da performance e tende a diminuir com a execução de erros. Quando reportamos um casamento? Quando best-match-rating é maior do que qualquer outro valor prévio. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 15 / 36

Em qual ponto da partitura o músico está Primeira abordagem: assumir que a função best-match-rating tende a crescer com a evolução da performance e tende a diminuir com a execução de erros. Quando reportamos um casamento? Quando best-match-rating é maior do que qualquer outro valor prévio. Propriedade? rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 15 / 36

Em qual ponto da partitura o músico está Primeira abordagem: assumir que a função best-match-rating tende a crescer com a evolução da performance e tende a diminuir com a execução de erros. Quando reportamos um casamento? Quando best-match-rating é maior do que qualquer outro valor prévio. Propriedade? Mais cautelosa após uma série de erros. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 15 / 36

Em qual ponto da partitura o músico está Segunda abordagem: se assegurar que a última nota tocada na performance é consistente com o local mais provável da partitura. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 16 / 36

Em qual ponto da partitura o músico está Segunda abordagem: se assegurar que a última nota tocada na performance é consistente com o local mais provável da partitura. Quando reportamos um casamento? rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 16 / 36

Em qual ponto da partitura o músico está Segunda abordagem: se assegurar que a última nota tocada na performance é consistente com o local mais provável da partitura. Quando reportamos um casamento? Quando best-match-rating(p[1:i], s) é maior do que best-match-rating(p[1:i-1], s). rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 16 / 36

Em qual ponto da partitura o músico está Segunda abordagem: se assegurar que a última nota tocada na performance é consistente com o local mais provável da partitura. Quando reportamos um casamento? Quando best-match-rating(p[1:i], s) é maior do que best-match-rating(p[1:i-1], s). Propriedades? rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 16 / 36

Em qual ponto da partitura o músico está Segunda abordagem: se assegurar que a última nota tocada na performance é consistente com o local mais provável da partitura. Quando reportamos um casamento? Quando best-match-rating(p[1:i], s) é maior do que best-match-rating(p[1:i-1], s). Propriedades? Recupera confiança rapidamente após uma série de erros. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 16 / 36

Algoritmo estático de casamento Ideia básica: reduzir o problema do acompanhamento polifônico para o monofônico. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 17 / 36

Algoritmo estático de casamento Ideia básica: reduzir o problema do acompanhamento polifônico para o monofônico. Implicação: transformar a partitura e a performance em sequências totalmente ordenadas de eventos compostos. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 17 / 36

Algoritmo estático de casamento Ideia básica: reduzir o problema do acompanhamento polifônico para o monofônico. Implicação: transformar a partitura e a performance em sequências totalmente ordenadas de eventos compostos. Evento composto = conjunto de notas tocadas simultaneamente. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 17 / 36

Algoritmo estático de casamento Na partitura: aparentemente trivial. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 18 / 36

Algoritmo estático de casamento Na partitura: aparentemente trivial. Na performance: nem tanto. 1, 160, Note on c, 1, 60, 127 1, 172, Note on c, 1, 64, 127 1, 185, Note on c, 1, 67, 127 rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 18 / 36

Algoritmo estático de casamento Valor máximo observado em notas de um mesmo acorde: 90ms rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 19 / 36

Algoritmo estático de casamento Valor máximo observado em notas de um mesmo acorde: 90ms Limite superior de tempo entre notas consecutivas: 125ms rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 19 / 36

Algoritmo estático de casamento Valor máximo observado em notas de um mesmo acorde: 90ms Limite superior de tempo entre notas consecutivas: 125ms Semicolcheia em 120bpm rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 19 / 36

Algoritmo estático de casamento Valor máximo observado em notas de um mesmo acorde: 90ms Limite superior de tempo entre notas consecutivas: 125ms Semicolcheia em 120bpm 8 notas por segundo rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 19 / 36

Algoritmo estático de casamento Valor máximo observado em notas de um mesmo acorde: 90ms Limite superior de tempo entre notas consecutivas: 125ms Semicolcheia em 120bpm 8 notas por segundo 125ms rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 19 / 36

Algoritmo estático de casamento Valor máximo observado em notas de um mesmo acorde: 90ms Limite superior de tempo entre notas consecutivas: 125ms Semicolcheia em 120bpm 8 notas por segundo 125ms Valor arbitrariamente escolhido para o algoritmo: 100ms (epsilon) rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 19 / 36

Algoritmo estático de casamento Algoritmo Para cada nota recebida da performance: rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 20 / 36

Algoritmo estático de casamento Algoritmo Para cada nota recebida da performance: se o intervalo de tempo em relação à nota anterior for menor do que epsilon, adicionamos no mesmo evento composto; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 20 / 36

Algoritmo estático de casamento Algoritmo Para cada nota recebida da performance: se o intervalo de tempo em relação à nota anterior for menor do que epsilon, adicionamos no mesmo evento composto; caso contrário, criamos um novo evento composto. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 20 / 36

Algoritmo estático de casamento O algoritmo não é livre de erros. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 21 / 36

Algoritmo estático de casamento O algoritmo não é livre de erros. Principal problema: rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 21 / 36

Algoritmo estático de casamento O algoritmo não é livre de erros. Principal problema: acorde em arpejo; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 21 / 36

Algoritmo estático de casamento O algoritmo não é livre de erros. Principal problema: acorde em arpejo; O intervalo entre notas é facilmente maior que epsilon. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 21 / 36

Algoritmo estático de casamento O algoritmo não é livre de erros. Principal problema: acorde em arpejo; O intervalo entre notas é facilmente maior que epsilon. Solução: teste epsilon-fraction. C }{{} MM E MMMMMM }{{} A# 1/4 3/4 rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 21 / 36

Algoritmo estático de casamento Quando comparar (isto é, calcular a função de pontuação entre) eventos compostos em construção da performance com os eventos da partitura? rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 22 / 36

Algoritmo estático de casamento Quando comparar (isto é, calcular a função de pontuação entre) eventos compostos em construção da performance com os eventos da partitura? Caso monofônico: rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 22 / 36

Algoritmo estático de casamento Quando comparar (isto é, calcular a função de pontuação entre) eventos compostos em construção da performance com os eventos da partitura? Caso monofônico: calculamos cada vez que um novo evento solo é processado. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 22 / 36

Algoritmo estático de casamento Quando comparar (isto é, calcular a função de pontuação entre) eventos compostos em construção da performance com os eventos da partitura? Caso monofônico: calculamos cada vez que um novo evento solo é processado. Caso polifônico: rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 22 / 36

Algoritmo estático de casamento Quando comparar (isto é, calcular a função de pontuação entre) eventos compostos em construção da performance com os eventos da partitura? Caso monofônico: calculamos cada vez que um novo evento solo é processado. Caso polifônico: calculamos quando um novo evento solo é processado; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 22 / 36

Algoritmo estático de casamento Quando comparar (isto é, calcular a função de pontuação entre) eventos compostos em construção da performance com os eventos da partitura? Caso monofônico: calculamos cada vez que um novo evento solo é processado. Caso polifônico: calculamos quando um novo evento solo é processado; atualizamos quando agrupamos uma nova nota. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 22 / 36

Algoritmo estático de casamento Qual função de pontuação deve ser utilizada? rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 23 / 36

Algoritmo estático de casamento Qual função de pontuação deve ser utilizada? cevt-match-rating rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 23 / 36

Algoritmo estático de casamento Qual função de pontuação deve ser utilizada? cevt-match-rating = (#notas da performance presentes no evento composto da partitura - #notas da performance ausentes no evento composto da partitura) / #notas da performance rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 23 / 36

Algoritmo estático de casamento Quando reportamos um casamento entre eventos compostos? rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 24 / 36

Algoritmo estático de casamento Quando reportamos um casamento entre eventos compostos? cevt-match rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 24 / 36

Algoritmo estático de casamento Quando reportamos um casamento entre eventos compostos? { true, se cevt-match-rating > n cevt-match = false, c.c. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 24 / 36

Algoritmo estático de casamento Quando reportamos um casamento entre eventos compostos? { true, se cevt-match-rating > n cevt-match = false, c.c. n é um valor limite escolhido empiricamente. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 24 / 36

Algoritmo estático de casamento Quando reportamos um casamento entre eventos compostos? { true, se cevt-match-rating > n cevt-match = false, c.c. n é um valor limite escolhido empiricamente. n = 0.5 (1 nota errada em um acorde de 4 notas). rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 24 / 36

Algoritmo dinâmico de casamento rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 25 / 36

Algoritmo dinâmico de casamento similar ao algoritmo monofônico de matching; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 25 / 36

Algoritmo dinâmico de casamento similar ao algoritmo monofônico de matching; sequência de símbolos vs. sequência de conjuntos de símbolos; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 25 / 36

Algoritmo dinâmico de casamento similar ao algoritmo monofônico de matching; sequência de símbolos vs. sequência de conjuntos de símbolos; maximizar uma função de pontuação. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 25 / 36

Algoritmo dinâmico de casamento similar ao algoritmo monofônico de matching; sequência de símbolos vs. sequência de conjuntos de símbolos; maximizar uma função de pontuação. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 25 / 36

Algoritmo dinâmico de casamento Em cada posição da matriz: matrix[r, c].value = valor da função de pontuação para a melhor associação até o instante matrix[r, c].used = conjunto de símbolos utilizados para obter essa pontuação rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 26 / 36

Algoritmo dinâmico de casamento rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 27 / 36

Algoritmo dinâmico de casamento cada coluna é calculada quando uma nota é recebida; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 27 / 36

Algoritmo dinâmico de casamento cada coluna é calculada quando uma nota é recebida; matrix[r, c] é calculado a partir de matrix[r, c - 1]; matrix[r - 1, c]; matrix[r - 1, c - 1]; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 27 / 36

Algoritmo dinâmico de casamento cada coluna é calculada quando uma nota é recebida; matrix[r, c] é calculado a partir de matrix[r, c - 1]; matrix[r - 1, c]; matrix[r - 1, c - 1]; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 27 / 36

Algoritmo dinâmico de casamento rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 28 / 36

Algoritmo dinâmico de casamento rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 29 / 36

Algoritmo dinâmico de casamento { z.value = y.value 1 a atribuição: z.used = y.used rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 30 / 36

Algoritmo dinâmico de casamento { z.value = y.value 1 a atribuição: z.used = y.used b não casa com nada; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 30 / 36

Algoritmo dinâmico de casamento { z.value = y.value 1 a atribuição: z.used = y.used b não casa com nada; as notas antes de b são casadas assim como em y. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 30 / 36

Algoritmo dinâmico de casamento { z.value = y.value + 1 2 a atribuição: z.used = y.used {b} rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 31 / 36

Algoritmo dinâmico de casamento { z.value = y.value + 1 2 a atribuição: z.used = y.used {b} b pertence a B; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 31 / 36

Algoritmo dinâmico de casamento { z.value = y.value + 1 2 a atribuição: z.used = y.used {b} b pertence a B; b não pertence ao conjunto das notas já utilizadas; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 31 / 36

Algoritmo dinâmico de casamento { z.value = y.value + 1 2 a atribuição: z.used = y.used {b} b pertence a B; b não pertence ao conjunto das notas já utilizadas; as notas são casadas assim como em y. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 31 / 36

Algoritmo dinâmico de casamento { z.value = w.value + 1 #(A w.used) 3 a atribuição: z.used = {b} rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 32 / 36

Algoritmo dinâmico de casamento { z.value = w.value + 1 #(A w.used) 3 a atribuição: z.used = {b} b pertence a B; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 32 / 36

Algoritmo dinâmico de casamento { z.value = w.value + 1 #(A w.used) 3 a atribuição: z.used = {b} b pertence a B; as notas são casadas assim como em w. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 32 / 36

Algoritmo dinâmico de casamento { z.value = x.value #(A x.used) 4 a atribuição: z.used = rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 33 / 36

Algoritmo dinâmico de casamento { z.value = x.value #(A x.used) 4 a atribuição: z.used = b não casa com nada; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 33 / 36

Algoritmo dinâmico de casamento { z.value = x.value #(A x.used) 4 a atribuição: z.used = b não casa com nada; as notas são casadas assim como em x. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 33 / 36

Resultados experimentais rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 34 / 36

Resultados experimentais foram implementados 2 sistemas modularizados: estático e dinâmico; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 34 / 36

Resultados experimentais foram implementados 2 sistemas modularizados: estático e dinâmico; não ficou claro qual dos dois é melhor; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 34 / 36

Resultados experimentais foram implementados 2 sistemas modularizados: estático e dinâmico; não ficou claro qual dos dois é melhor; ambos ficaram lentos para performances mais complexas; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 34 / 36

Resultados experimentais foram implementados 2 sistemas modularizados: estático e dinâmico; não ficou claro qual dos dois é melhor; ambos ficaram lentos para performances mais complexas; são adequados para performances ao vivo. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 34 / 36

Resultados experimentais rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 35 / 36

Resultados experimentais Algoritmo estático: rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 35 / 36

Resultados experimentais Algoritmo estático: mais suscetível a erros quando o andamento é muito diferente do original; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 35 / 36

Resultados experimentais Algoritmo estático: mais suscetível a erros quando o andamento é muito diferente do original; lida com trinados e ornamentos. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 35 / 36

Resultados experimentais Algoritmo estático: mais suscetível a erros quando o andamento é muito diferente do original; lida com trinados e ornamentos. Algoritmo dinâmico: rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 35 / 36

Resultados experimentais Algoritmo estático: mais suscetível a erros quando o andamento é muito diferente do original; lida com trinados e ornamentos. Algoritmo dinâmico: nem sempre modela o conceito de um bom casamento para um músico; rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 35 / 36

Resultados experimentais Algoritmo estático: mais suscetível a erros quando o andamento é muito diferente do original; lida com trinados e ornamentos. Algoritmo dinâmico: nem sempre modela o conceito de um bom casamento para um músico; precisa de ajuda do InputProcessor para tratar trinados e ornamentos. rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 35 / 36

That s all folks! The End! =) rppbodo@ime.usp.br (IME-USP) Performances Polifônicas Setembro 2013 36 / 36