Ada 2.0b: a Máquina Programadora

June 30, 2010

“The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software. (…) Ada Lovelace is popularly credited as history’s first programmer. She was the first to express an algorithm intended for implementation on a computer, Charles Babbage‘s analytical engine, in October 1842.”

“Programmer” verbete na Wikipedia

Ada 2.0b é um programador, focado em performances de Live Coding, criado em 2010. Ele foi projetado para criar programas usando o Pure Data (uma linguagem de programação de sintaxe visual), baseada na sua própria (sub/o)bjetividade, através de uma performance de Live Coding  – uma improvisação artística que utiliza uma linguagem de programação como meio de expressão – audiovisual.

Sua “inspiração” é uma auto-análise da máquina, que observa a todo tempo seu status através da análise do que acontece no seu Kernel – o núcleo do sistema operacional da máquina – em tempo-real, no momento da performance, tomando isso como base para a criação da performance de Live Coding audiovisual, sem nenhuma intervenção humana.

Para quem não conhece, o termo Live Coding:

Live coding (sometimes referred to as as interactive programming, ‘on-the-fly programming’, ‘just in time programming’) is the process of writing software in realtime, as a form of improvised time-based art. Typically, the process of writing is made visible by projecting the computer screen in the audience space.

“Live Coding” verbete na Wikipedia

A performance criada segue a linha de uma performance de Live Coding audiovisual comum: existe um terminal de computador, usado para a programação, um projetor, para o retorno visual, e um sistema de som, para o feedback sonoro. A diferença reside no fato de que não existe um programador humano no terminal, apenas o Ada 2.0b.

Inicialmente, o software checa o status do Kernel (características como a lista de processos que estão na CPU e na memória, bem como seu percentual de utilização, além do conteúdo da memória RAM da máquina em tempo-real), e, baseado nisso, começa a criar um Patch no Pure Data. Essa ação afeta diretamente o Kernel da máquina, que por sua vez, reflete tais alterações mais uma vez no Patch, num laço sem fim… esta interação Kernel-Patch continua até o fim da performance.

Inspirado no Emotional Kernel Panic e no Marvim Gainsbug, este projeto foi desenvolvido no Pure Data e em Python, utilizando um módulo especial para Dynamic Patching do Pd já citado aqui mesmo, no blog, o Pyata.

um agradecimento especial a Ricardo Brazileiro e a Renato Fabbri pelas dicas do Emotional Kernel Panic: valeu mesmo, galera!

mais fotos podem ser encontradas no flickr:

http://www.flickr.com/photos/jeraman/sets/72157624399005058/

O código-fonte do projeto pode ser encontrado para download no github (projeto desenvolvido no Ubuntu 9.04, utilizando o Python 2.6.2 e o Pure Data 0.41-4):

https://github.com/downloads/jeraman/jeraman.lab/ada%20v.2.0b.zip/

maiores informações

[1] sobre o Pure Data
[2] sobre Python
[3] sobre o Pyata
[4] sobre o Emotional Kernel Panic
[5] sobre o Marvim Gainsbug

About these ads

9 Responses to “Ada 2.0b: a Máquina Programadora”

  1. Jarbas Jácome Says:

    dá-lhe Jera!!
    tá ficando irado meu cumpadi!

    uma outra parada legal tbm vai ser aquela história de reagir conforme uma entrada musical. isto é, realmente o instrumento digital (software) modificar sua estrutura interna e por consequencia, mudar completamente o que ele faz com o som de acordo com o gesto do músico (seja vindo de um instrumento tradicional como guitarra ou operando diretamente a maquina). por exemplo, fazendo uma analogia com um violino: imagine um violino que quando vc toca com muita força ele cresce fisicamente e vira um baixo, e quando vc diminui a força ele volta a ser um violino. ou seja, o instrumento se modifica de acordo com o gesto músico.
    sempre tive vontade de fazer isso no Pd e quando for fazer vou com certeza usar essa tua plataforma de dynamic patching.

    abração!
    jjR

    • jeraman Says:

      valeu mesmo, jarbolício!

      a idéia é massa: quero só ver o resultado!
      mas será que precisaria de Dynamic Patching pra fazer isso? será que apenas um Patch simples não resolveria?

      abração!

      • Jarbas Jácome Says:

        tem razão com um patch simples já dá pra fazer o lance do violino em termos de som mas eu me referia ao fato de mudar a estrutura do instrumento entende? o exemplo foi infeliz. o que toh dizendo é por exemplo na verdade algo como o Ada2.0 soh que em vez de pegar como input as mensagens do kernel ele pegaria os resultados de uma analise do audio de um cara tocando. qq dia vc faz esse teste pra ver.

  2. Samuel Says:

    Humm, espero anciosamente.
    Brincar com ada.2b, inserindo alguns sensores de ultrasom/arduíno para intervenção humamana de modo que o interator passa a interferir diretamente causando uma ação e um feedback com vídeo. O que achas ?
    Cheio de idéias !!!
    Aguardo

    • jeraman Says:

      massa, samuel!
      gostei da idéia: toda loucura é mais que bem vinda!
      em breve tô jogando o código por aqui pra gente ir se perdendo…
      abraço,


  3. Jeraman,

    Qto tempo dura a performance? É fixo ou variável? Roda de forma similar em ambiente Linux ou MacOS?

    Se puder me escrever no email pessoal, preciso conversar outros detalhes com vc.

    Eufrasio Prates
    Coordenador da Exposição do FAM 2010

    • jeraman Says:

      olá Eufrásio!
      a performance roda apenas no Linux (Ubuntu 9.04), durando aproximadamente 10 minutos…
      mandei as informações pro seu email!
      abraços,

  4. paolo Says:

    já tentaram interagi-la com a tecnologia zig bee de modo a monitorar-se a distância.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: