imprimir

Mimosa IED


O que é Mimosa?

A idéia




pacoteMimosaIED.tar

autor: LeoGermani enviado por: leogermani
em: 09/06/07
tipo: Texto

Pacote com os arquivos da Mimosa IED. Inclui a interface web, o patch de PD e o keylogger uberkey modificado

baixado: vezes comentários: 0 licença:

tags: mimosa, pd, osc, ied, php, uberkey, keylogger, pacotemimosaied



A ideia desta Mimosa é ser uma máquina de gravar narrativas a partir de uma sequencia de imagens escolhidas na hora.

A interface consiste em uma moldura grande, onde a pessoa visualiza fotos, e 12 pequenas molduras onde a pessoa monta uma sequencia de imagens.

Com os botões que são os bonecos Fred (DIR) e Barney (ESQ) as pessoas navegam entre as fotos salvas em um banco de imagens já pre-selecionadas.



Com o botão do Dick Vigarista (SELECT) as pessoas selecionam uma foto para entrar na sequencia. Uma por uma até completar as 12 fotos.

Depois disso, aperta-se o (REC) e, após uma contagem regressiva de 5 segundos, é exibido o slideshow com as fotos selecionadas (5 segundos por foto) e a pessoa grava ao microfone uma narrativa, que, no final, pode ser ouvida sincronizada com o slideshow. Para isso aperta-se o botão (PLAY).

O último botão dessa mimosa é o botão (RESET), que zera a seleção de fotos e libera o sistema para a próxima seleção.

No final também é possível rodar um script que gera um arquivo de vídeo (.vob) a partir da seleção de fotos e audios gravados.


A solução técnica




A maneira escolhida para desenvolver a interface foi fazer uma página web, usando javascript para mapear as teclas do teclado e fazer cada um dos botões funcionar.

Os botões foram construídos usando a técinca de construção de sensores a partir de um controlador de teclado. Mais informaçoes aqui.

A página que controla a montagem da sequencia e a reprodução do slideshow, tudo em javascript, chama uma página php que está em um frame escondido para que esta grave a seleção que a pessoa fez em um arquivo de texto. Assim, conforme várias gravações vão sendo feitas, vão sendo criados os arquivos registro1.txt, registro2.txt.... registroN.txt. Dentro desses arquivos de textos são salvos apenas os números das fotos selecionadas na ordem. ex: 0,1,3,4,7,2,34,56,6,5,39,37,35


Gravando o audio




Para gravar o audio, usamos o software PD. Ao mesmo tempo que o firefox, ele também fica mapeando algumas teclas do teclado para gravar o áudio na hora certa.

Ele faz uma contagem de quantas vezes o botão (SELECT) foi apertada para apenas iniciar a gravação se realmente 12 fotos tiverem sido selecionadas.

Após isso ele faz outra contagem para saber quantas gravaçõe foram feitas, assim ele vai gerando os arquivos audio1.wav, audio2.wav... audioN.wav. Esses arquivos levam a mesma contagem dos arquivos de texto registroN.txt gerados pelo php.

O PD tb mapeia a tecla (PLAY), para iniciar a reprodução do audio, e a tecla (ZERA) para zerar a contagem de quantas vezes o (SELECT) foi apertado.


Mas como o PD consegue mapear o teclado ao mesmo tempo que o firefox?


Um desafio para construir uma interface dessa maneira foi o de como fazer dois softwares receberem simultaneamente os sinais vindos do teclado.

A solução encontrada foi a de pegar um software de keylogger (uberkey), que mapeia as entradas do teclado, e modificá-lo para que ele enviasse sinais OSC, que o PD é capaz de receber.

Para isso, pegamos o código do uberkey, em C, e acrescentamos as linhas para enviar os sinais OSC. Esse procedimento está descrito aqui

Ainda fizemos mais alguns ajustes no código para refinar o sinal. Impedimos que ele mandasse o sinal de uma mesma tecla duas vezes consecutivas, e também limitamos para ele só mandar sinais das teclas que nos interessavam.



Gerando um vídeo .vob


Quando a página php salva o arquivo de texto registroN.txt, tb salva um outro arquivo de texto que é um script para juntar a sequencia de fotos e o audio em um vídeo.

Para isso são utilizados os softwares dir2slideshow e dvd-slideshow. O modelo do script está anexo no pacote de arquivos.


Botando pra funcionar


Para iniciar esta mimosa:

  • inicie o firefox na página da mimosa (é ncessário um apache rodando)
  • inicie o pd com a lib -OSC carregada (pd -lib OSC) e abra o patch da mimosa
  • Habilite o som no PD clicando no botão "Compute Audio"
  • Inicie o uberkey, no terminal digitando $sudo uberkey (uberkey modificado pra mandar OSC depende da liblo)
  • abra o arquivo registroAtual.txt e veja o número que está lá. Vá ao patch do PD e sete a caixa numérica indicada com o texto "Registro Atual --->" para o mesmo número. Pronto, os dois programas estão sincronizados.

Note que é preciso configurar as teclas que você vai mapear. No javascript é fácil alterar isso nas primeiras linhas do código. E no PD na parte superior do patch.

Última alteração: 09/06/2007 às 17:17, por: leogermani