Escrever aplicações multimídias "from scratch" é muito difícil. Muitos aspectos devem ser considerados: tipos de entrada e saída, formatos dos dados, conversão, tempo real, sincronização, (de)multiplexing, controle etc. Existem vários frameworks / bibliotecas para facilitar essa tarefa. No seminário, um dos frameworks importantes - o Gstreamer - será apresentado.
O Gstreamer framework é uma biblioteca para construir grafos de componentes de processamento de dados. Ao mesmo tempo contém mais que 250 plugins e elementos já prontos para usar. Entre eles elementos de entrada e saída (files, streams, conectores), filtros e para conversão de formatos. Além disso o Gstreamer oferece uma infraestrutura abrangente que dá apoio a mecanismos para comunicação, controle, multithreading, autoconfiguração e debugging. A biblioteca existe para várias plataformas, por exemplo: Linux, Apple MAc OS X, MS Windows, Android e iOS e oferece bindings para muitas linguagens de programação populares.
O seminário dará uma introdução à estrutura, conceitos principais e importantes caraterísticas da biblioteca. Também mostrará como aplicações são construídas e apresentará algumas ferramentas e aplicações.
A popularização das redes de computadores, o aumento da capacidade computacional e sua utilização para produção musical despertam o interesse na utilização de computadores para comunicação síncrona de conteúdo musical. Esta comunicação pode permitir um novo nível de interatividade entre máquinas e pessoas nos processos de produção musical, incluindo a distribuição de atividades, pessoas e recursos em um ambiente computacional em rede. Neste contexto, este trabalho apresenta uma solução para comunicação síncrona de fluxos de áudio e MIDI em redes de computadores.
Além de permitir a comunicação, a solução proposta simplifica a conexão de recursos musicais e permite a integração de sistemas heterogêneos, como diferentes sistemas operacionais, arquiteturas de áudio e formatos de codificação, de forma transparente em um ambiente distribuído.
Como meio para alcançar esta solução, mapeamos requisitos e características desejáveis para este domínio de aplicação, a partir da interação com músicos e da análise de ferramentas relacionadas. Com base nestes requisitos e características projetamos uma arquitetura de sistema para o domínio específico de comunicação síncrona de conteúdo musical. Utilizando esta arquitetura como referência, implementamos uma biblioteca que compreende as funcionalidades essenciais para este domínio específico.
A fim de integrar esta biblioteca com diferentes bibliotecas de áudio e MIDI, desenvolvemos um conjunto de ferramentas que correspondem aos requisitos propostos e que permite aos usuários a utilização de conexões de rede em diversas ferramentas musicais.
Neste seminário, apresentaremos a ferramenta Medusa, seus conceitos e desenvolvimento.
Neste seminário iremos apresentar diversas técnicas para aprimorar um sistema de acompanhamento musical seguindo a linha de pesquisa de Roger B. Dannenberg, professor da Universidade Carnegie Mellon.
Um sistema de acompanhamento musical, basicamente, compara os eventos de uma performance ao vivo com os de uma partitura e, inferindo o andamento do músico, toca o acompanhamento apropriado.
As primeiras implementações possuiam algumas limitações ao reconhecer e seguir uma performance em tempo real. Isso exigia, de certa forma, que o solista tocasse as notas da partitura de forma mais regrada.
Dentre as técnicas desenvolvidas para suprir esses problemas temos um método para lidar com trinados e glissandos no processamento da entrada, o uso de paralelismo no casamento entre a performance e a partitura e o atraso no relato da posição do músico para o módulo de síntese do acompanhamento.
Nesse seminário será apresentado o Csound, que é uma linguagem de computação musical e uma plataforma para síntese e processamento de áudio. Csound tem uma longa tradição, tendo sido definida em 1986 a partir da série de linguagens Music-N, mas segue sendo usado por muitos artistas e pesquisadores até hoje.
Embora Csound seja uma linguagem de programação não-gráfica e por isso não possua uma GUI, ele é muito popular e já há muito tempo adaptado para performances ao vivo (realtime). Existem inúmeras meta-ferramentas, GUIs, códigos fonte e publicações. Csound roda em várias plataformas, como por exemplo Linux, Unix, Windows, OSX e Android, e tem suporte específico para várias linguagens de programação, como Python, Java, etc.
O seminário dará uma pequena introdução a vários apsectos do Csound: história, construção da linguagem, elementos básicos de síntese, performance ao vivo, GUIs e meta-ferramentas. Com a chegada da nova versão 6 do Csound o 'live-coding' tornou-se possível e também será abordado. A ideia do seminário é oferecer tanto uma visão geral quanto exemplos práticos como ponto de partida para explorar e aprender Csound.