Encapsulando patches Pure Data com a libpd

Documentos relacionados
Programação musical para a web com o Mosaicode

Implementação de uma biblioteca gráfica multiplataforma utilizando OpenGL e GLFW.

Processamento de áudio em tempo real em sistemas Android

Csound para Android Como utilizar csd s em dispositivos móveis

Processamento de áudio em tempo real em dispositivos computacionais de alta disponibilidade e baixo custo

ANHANGUERA ESTRUTURA DE DADOS AULA 02 O QUE É ESTRUTURA DE DADOS? Prof. Thomás da Costa

Computação Musical - Introdução slides do curso Computação Musical

Voice Recognition. Carlos Damasceno Francisco Lima Luckas Santos Perichdey Leitão Wellyson Melo. DIE - UFPI Teresina PI Brasil

Curso online de Fundamentos em Android. Plano de Estudo

FRAMEWORK PARA GERENCIAMENTO E DISPONIBILIZAÇÃO DE INFORMAÇÕES MULTIMÍDIA GEOLOCALIZADAS NA PLATAFORMA ANDROID

Middleware para trilhas sonoras dinâmicas. em jogos digitais

Ciências da Computação Disciplina:Computação Gráfica

Introdução à plataforma Java

Processamento de áudio em tempo real utilizando dispositivos não convencionais:

Introdução ao Desenvolvimento para Dispositivos Móveis

Módulo I - Introdução. Faculdade Christus Sistemas de Informação 24/09/2010. Carlos Eugênio Torres Engenheiro de Informática

Primeiros Passos para o Desenvolvimento de Aplicações Móveis na Plataforma Android. Odette Mestrinho Christian Reis 1

JADEX: A BDI REASONING ENGINE. Alexander Pokahr, Lars Braubach e Winfried Lamersdorf Springer US - Multi-Agent Programming 2005 pp.

Apresentação SCC0204 Programação Orientada a Objetos

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

Estudo do Ambiente de Programação Arduino Software (IDE) com Intel Galileo Gen2. Apostila de acompanhamento para o aluno.

Curso Online de E-commerce. Plano de Estudo

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

Linguagem de Programação II Programação Orientada a Objetos. Ambientes de Programação

Introdu c ao a Faust Gilmar Dias Andr e J. Bianchi 22/11/2012

Aula 02 Conceitos e Princípios de Modularidade 1

PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS

5 Infraestrutura de TI

Ferramentas de Suporte

Uso da plataforma Ionic para Desenvolvimento de Aplicativo Móvel

Processamento de áudio digital em tempo real em dispositivos não convencionais.

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Software Básico. Silvio Fernandes Aula 15: Carregamento dinâmico

6 Arquitetura do Sistema

Catálogo de Requisitos de Titulação. Habilitação: Ensino Medio - BNC / PD

1.5 PROGRAMAÇÃO DE JOGOS EM AMBIENTE DE REA LIDADE AUMENTADA AMBIENTES INTEGRADOS DE DESENVOLVIMENTO DE JOGOS 19

Ambiente de Desenvolvimento Integrado (IDE)

DESENVOLVIMENTO DO JOGO DE DAMAS UTILIZANDO A BIBLIOTECA ALLEGRO

Catálogo de Requisitos de Titulação. Habilitação: Ensino Medio - BNC / PD

Informática Parte 15 Prof. Márcio Hunecke

Dispositivos Móveis como Instrumentos Musicais

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

Professor: Laboratório de Programação com Games. Anselmo Montenegro Conteúdo: - Introdução. Instituto de Computação - UFF

Catálogo de Requisitos de Titulação. Habilitação: Ensino Medio - BNC / PD

HMI: UM MIDDLEWARE PARA OBJETOS DISTRIBUÍDOS SOBRE O PROTOCOLO HTTP

Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação

Curso online de Aplicações. Híbridas. Plano de Estudo

SISTEMAS MULTIMÍDIA PROF MOZART DE MELO

Síntese Sonora com Agentes Distribuídos

Gerenciamento de Projetos com o Redmine

Programação Orientada a Objetos

Mapeamento de Sensores Android para OSC

Catálogo de Requisitos de Titulação. Habilitação: Ensino Medio - BNC / PD

AULA 1 INTRODUÇÃO AO JAVA

Padrão MIDI. Fundamentos Multimídia. Professora: Débora. Aluno: Marco Silva

Algoritmos I Aula 13 Linguagem de Programação Java

2.1 NesC Seguem alguns dos principais desafios impostos à linguagem NesC:

Utilização de Software Livre no ensino de Música da UFSJ

A linguagem Java foi projetada tendo em vista os seguintes objetivos:

Chega de Unity3D! Alternativas de Software Livre para desenvolvimento de jogos. Vinícius Kiwi Daros Wilson Kazuo Mizutani

Um Servidor HTTP/2 Reativo em Scala

Instalação JDK. Joyce França. Professora de Ciência da Computação - IFNMG

A figura abaixo representa uma classe denominada Carteira. Esta classe é composta dos métodos depositar(valor) e retirar(valor) e do atributo saldo.

1) DADOS DA OBRA: Programando em Java 2 Teoria e Aplicações Rui Rossi dos Santos 2004 Axcel Books (

Desenvolvimento de Aplicações Desktop

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

MINI-CURSO PROGRAMAÇÃO COM JAVA - 2

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Hardware Livre Arduino. Givanaldo Rocha de Souza

TCC - LagarLottery. Desenvolvimento de um software para jogadores de loterias. Aluno: Euclides Pinheiro de Melo

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Software. Objetivos do Capítulo

Nuvem e Virtualização Redes Programáveis

Interface Visual. Aula #4.1. EBS 211 POO e UML. Campus de Tupã. Prof. Luiz Fernando S. Coletta

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Prof. Daniel Hasse. Multimídia e Hipermídia

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO WEB E MOBILE

Instalação JDK 10/03/2017

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Brilliant Solutions for a Safe World

Minicurso de Arduino. Laboratório de Inovação em Sistemas em chip npiti - UFRN

SCC0504 Programação Orientada a Objetos Projeto

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Terceiro Trabalho Prático. Este trabalho tem como objetivo ordenar um arquivo de dados e implementar as operações cosequenciais de merging e matching.

FPGA & VHDL. Tutorial Aula 1. Computação Digital

Aula 02 Conceitos e Princípios de Modularidade 1

Sistemas Interativos Musicais aplicados à Percussão Mediada

DESENVOLVIMENTO DE UM APLICATIVO MÓVEL (JOGO) PARA AUXÍLIO NO ENSINO DE MATEMÁTICA. Beatriz Polita Franchin 1, Elvio Gilberto da Silva 2

anexo 7 INFORMAÇÕES BÁSICAS PARA O USO DOS RECURSOS TECNOLÓGICOS DISPONÍVEIS EM SUA ESCOLA semana pedagógica 2012

Desenvolvedor Android: Avançado. Plano de Estudo

Júlio César Falbo da Silveira

Android Faixa Branca Douglas Drumond

Laboratório 01 NetBeans

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Tecnologias de Distribuição e Integração. Quais as preocupações a ter com um sistema distribuído?

Aplicações Visuais Mobile com Netbeans 6.0

Transcrição:

Encapsulando patches Pure Data com a libpd Pedro Bruel Grupo de Computação Musical IME/USP pedro.bruel@gmail.com 22 de outubro de 2013 1 / 51

Estrutura 1 Pure Data 2 3 Encapsulando o Pd 4 5 2 / 51

A linguagem Pure Data A linguagem Paradigmas Linguagem de programação visual, voltada a aplicações interativas musicais e multimídia. 3 / 51

A linguagem Pure Data A linguagem Paradigmas Linguagem de programação visual, voltada a aplicações interativas musicais e multimídia. Projeto de código aberto, sob licença BSD. 4 / 51

Paradigmas Pure Data A linguagem Paradigmas A entrada de um programa em Pure Data é tratada como um fluxo de informação, que é direcionado e processado em blocos, produzindo uma saída em tempo real. 5 / 51

Paradigmas Pure Data A linguagem Paradigmas A entrada de um programa em Pure Data é tratada como um fluxo de informação, que é direcionado e processado em blocos, produzindo uma saída em tempo real. A linguagem fornece abstrações de alto nível que encapsulam diversas funcionalidades, como operações matemáticas, de entrada/saída, e outras operações sobre sinais. 6 / 51

Paradigmas Pure Data A linguagem Paradigmas Um programa é composto pela conexão dessas funcionalidades, ou objetos, e é chamado de patch. 7 / 51

Paradigmas Pure Data A linguagem Paradigmas Um programa é composto pela conexão dessas funcionalidades, ou objetos, e é chamado de patch. A combinação dos paradigmas de programação visual e controle de fluxo de informação também é encontrada nos softwares proprietários MAX e KYMA. 8 / 51

A linguagem Paradigmas Frequência padrão de amostragem de 44100Hz; Tamanho padrão do bloco é 64 amostras; Números representados em float 32 bits; Tipos: Mensagens, Objetos, Átomos, Comentários e Símbolos; 9 / 51

A linguagem Paradigmas Frequência padrão de amostragem de 44100Hz; Tamanho padrão do bloco é 64 amostras; Números representados em float 32 bits; Tipos: Mensagens, Objetos, Átomos, Comentários e Símbolos; Alta modularização e extensibilidade; Execução independente. 10 / 51

Patches Pure Data A linguagem Paradigmas Figura: Um patch simples em Pure Data. 11 / 51

Patches Pure Data A linguagem Paradigmas Figura: Outro pacth, não tão simples. 12 / 51

A linguagem Paradigmas Manual FLOSS: flossmanuals.net/pure-data/ Código Fonte: $ git clone git://git.code.sf.net/p/pure-data/pure-data Puckette, Miller and others Pure Data: another integrated computer music environment Proceedings of the Second Intercollege Computer Music Concerts 37 41 Puckette, Miller (1988) The Patcher The-International 13 / 51

Exemplos Pure Data Reactable RjDj NRCI Prototipagem Apresentação de alguns exemplos que ilustram usos do Pure Data. 14 / 51

Reactable Pure Data Reactable RjDj NRCI Prototipagem Site: reactable.com Um instrumento musical eletrônico com interface tangível, em formato de mesa. 15 / 51

Reactable RjDj NRCI Prototipagem Reactable Site: reactable.com Um instrumento musical eletrônico com interface tangível, em formato de mesa. Desenvolvido pela Universidade de Pompeu Fabra, em Barcelona.[Jorda et al., 2005] 16 / 51

Reactable RjDj NRCI Prototipagem Reactable Site: reactable.com Um instrumento musical eletrônico com interface tangível, em formato de mesa. Desenvolvido pela Universidade de Pompeu Fabra, em Barcelona.[Jorda et al., 2005] Engine de som baseada em Pure Data e SuperCollider. 17 / 51

Reactable RjDj NRCI Prototipagem Reactable Site: reactable.com Um instrumento musical eletrônico com interface tangível, em formato de mesa. Desenvolvido pela Universidade de Pompeu Fabra, em Barcelona.[Jorda et al., 2005] Engine de som baseada em Pure Data e SuperCollider. O framework de visão computacional utilizado pelo projeto é software livre, e pode ser encontrado em: reactivision.sourceforge.net/#files 18 / 51

Reactable Pure Data Reactable RjDj NRCI Prototipagem Figura: Reactable Reactable Basic Demo #1 youtube.com/watch?v=0h-rhyopumc 19 / 51

RjDj Pure Data Reactable RjDj NRCI Prototipagem Site: rjdj.me Uma startup de 2008, que produz aplicativos musicais para celular. 20 / 51

Reactable RjDj NRCI Prototipagem RjDj Site: rjdj.me Uma startup de 2008, que produz aplicativos musicais para celular. Em parceria com compositores, produz experiências musicais, que chama de Reactive Music. 21 / 51

Reactable RjDj NRCI Prototipagem RjDj Site: rjdj.me Uma startup de 2008, que produz aplicativos musicais para celular. Em parceria com compositores, produz experiências musicais, que chama de Reactive Music. Utiliza o Pure Data como biblioteca para processamento digital de sinais. 22 / 51

Reactable RjDj NRCI Prototipagem NRCI Networked Resources for Collaborative Improvisation Site: ccrma.stanford.edu/ cburns/nrci Uma biblioteca de ferramentas desenvolvidas para o Pd. 23 / 51

Reactable RjDj NRCI Prototipagem NRCI Networked Resources for Collaborative Improvisation Site: ccrma.stanford.edu/ cburns/nrci Uma biblioteca de ferramentas desenvolvidas para o Pd. Voltada para a produção e performance de música em grupo e live coding. 24 / 51

Reactable RjDj NRCI Prototipagem NRCI Networked Resources for Collaborative Improvisation Site: ccrma.stanford.edu/ cburns/nrci Uma biblioteca de ferramentas desenvolvidas para o Pd. Voltada para a produção e performance de música em grupo e live coding. Desenvolvido pelo Center for Computer Research in Music and Acoustics, de Stanford. [Burns et al., 2008] 25 / 51

Prototipagem Pure Data Reactable RjDj NRCI Prototipagem Utilização do Pd para rápida prototipagem de engines de som, por produtoras de jogos eletrônicos.[jolly, 2011] 26 / 51

Prototipagem Pure Data Reactable RjDj NRCI Prototipagem Utilização do Pd para rápida prototipagem de engines de som, por produtoras de jogos eletrônicos.[jolly, 2011] Desacopla o trabalho de designers de som e desenvolvedores. 27 / 51

Motivação Conceito Os exemplos apresentados utilizam o Pure Data em sua implementação, porém, são aplicações que não dependem da interface gráfica ou controle de execução do Pd. 28 / 51

Motivação Conceito Os exemplos apresentados utilizam o Pure Data em sua implementação, porém, são aplicações que não dependem da interface gráfica ou controle de execução do Pd. Um dos modos de se fazer isso é através do uso da libpd, uma pequena interface para encapsulamento do Pure Data. [Brinkmann et al., 2011] 29 / 51

Motivação Pure Data Motivação Conceito O Pure Data fornece um ambiente de desenvolvimento capaz de execução independente, e ferramentas potentes voltadas a aplicações sonoras e musicais. 30 / 51

Motivação Pure Data Motivação Conceito O Pure Data fornece um ambiente de desenvolvimento capaz de execução independente, e ferramentas potentes voltadas a aplicações sonoras e musicais. Porém, essas características estão amarradas a interfaces de usuário e APIs de áudio que são direcionadas a certos formatos de aplicação. 31 / 51

Conceito Pure Data Motivação Conceito A libpd permite utilizar patches e funcionalidades do Pure Data no contexto de outras aplicações. 32 / 51

Conceito Pure Data Motivação Conceito A libpd permite utilizar patches e funcionalidades do Pure Data no contexto de outras aplicações. Com este objetivo, a biblioteca encapsula e simplifica a interface do Pure Data com o desenvolvedor. 33 / 51

Conceito Pure Data Motivação Conceito Figura: Ambiente Pure Data. 34 / 51

Conceito Pure Data Motivação Conceito Figura: Pure Data encapsulado em código cliente. 35 / 51

Motivação Conceito A interface m pd.h, do Pure Data, contém: Definição da API completa do Pd. Funções relacionadas à interface gráfica, controle temporal, threading. Definição de diferentes tipos e estruturas. 36 / 51

Motivação Conceito A interface m pd.h, do Pure Data, contém: Definição da API completa do Pd. Funções relacionadas à interface gráfica, controle temporal, threading. Definição de diferentes tipos e estruturas. A interface z libpd.h, da libpd, contém: A interface m pd.h. Funções que encapsulam a inicialização do Pd, abertura de patches, métodos process. Definições dos ponteiros para funções que serão chamadas pelo Pd (callback assíncrono). 37 / 51

Pure Data Motivação Conceito Uma aplicação que utiliza a libpd deve se preocupar com a inicialização do Pd e de suas funções para callback, e com a chamada dos métodos de processamento nos momentos em que precisar de amostras de áudio. 38 / 51

Pure Data Motivação Conceito Uma aplicação que utiliza a libpd deve se preocupar com a inicialização do Pd e de suas funções para callback, e com a chamada dos métodos de processamento nos momentos em que precisar de amostras de áudio. O código cliente pode tratar um patch como uma caixa-preta que recebe e devolve amostras e dados, desde que o patch respeite convenções de símbolos send e receive. 39 / 51

Pure Data Motivação Conceito Ao encapsular a interface m pd.h, a libpd permite a utilização patches e funções das bibliotecas do Pure Data no contexto de aplicações em diferentes linguagens e plataformas. 40 / 51

Pure Data Motivação Conceito Ao encapsular a interface m pd.h, a libpd permite a utilização patches e funções das bibliotecas do Pure Data no contexto de aplicações em diferentes linguagens e plataformas. Nesse processo, são removidas algumas das características que dão independência à execução do Pd, e torna-se mais fácil utilizar patches como engine de som, biblioteca DSP, e interface com o usuário. 41 / 51

Motivação Conceito Livro: Making Musical Apps - Peter Brinkmann Site: libpd.cc GitHub: github.com/libpd Código Fonte: $ git clone https://github.com/libpd/libpd.git 42 / 51

Pure Data C Java Java - Android Implementações simples da libpd em C, Java e Java no Android. Código (C e Java): $ git clone https://github.com/phrb/libpd tutorials.git Código (Android): $ git clone https://github.com/deusanyjunior/sensors2pd.git 43 / 51

C Java Java - Android Estrutura do código da libpd; Como compilar a libpd. 44 / 51

C Java Java - Android Exemplo Prático em C Uma implementação básica da libpd em C deve conter: Definição de taxa de amostragem e tamanho de bloco; Declaração dos buffers de entrada/saída de áudio; Definição das funções para callback do Pd; Mensagem para iniciar o ciclo DSP do Pd; Chamada aos métodos de inicialização: libpd set *hook; libpd init; libpd init audio; libpd openfile; libpd closefile; Chamadas ao método process adequado. 45 / 51

Exemplo Prático em C C Java Java - Android Compilando o exemplo. 46 / 51

C Java Java - Android Exemplo Prático em Java Uma implementação básica da libpd em Java deve conter: Definição de taxa de amostragem e tamanho de bloco; Declaração dos buffers de entrada/saída de áudio; da classe PdDispatcher, com as funções de callback; Mensagem para iniciar o ciclo DSP do Pd; Chamada aos métodos de inicialização da classe PdBase: openaudio; computeaudio; setreceiver; openpatch; release; pollpdmessagequeue; Chamadas ao método process adequado. 47 / 51

Exemplo Prático em Java C Java Java - Android Configurando o Build Path (Eclipse). 48 / 51

C Java Java - Android Exemplo Prático em Android Download e instalação: Sensors2PD.apk; Carregar patches Pd no Android. 49 / 51

Jolly, Kent (2011) Usage of Pd in Spore and Darkspore Proceedings of the Pure Data Convention 36 39 Brinkmann et al. (2011) Embedding pure data with libpd Proceedings of the Pure Data Convention Jorda et al. (2005) The reactable Proceedings of the international computer music conference (ICMC 2005), Barcelona, Spain 579 582 Burns et al. (2008) NRCI: Software Tools for Laptop Ensemble Proceedings of the International Computer Music Conference 50 / 51

Obrigado! 51 / 51