dando prosseguimento aos estudos sobre Dynamic Patching, resolvi tentar simular todas as possibilidades da interface do Pure Data usando pra isso só troca de mensagens com seu core.
isso nos permitiria operar o Pd sem sua interface gráfica (no-gui mode), de maneira a simular a ação de um usuário, possibilitando, por exemplo, criar APIs para outras linguagens (C++, Python, etc) que permitam programar o Pd (a exemplo do PyPd), criar novas interfaces de interação, criar ferramentas para Live Coding (utilizando o Pd como máquina), criar projetos como o Reactable ou instalações como o The Champions, entre outras loucuras.
a especificação dessa relação interface/mensagens pode ser encontrada no seguinte endereço:
http://jeraman-lab.googlecode.com/files/dynamic%20pathing.zip
o código está dividido em 8 pastas distintas, cada uma abrangendo um aspecto diferente da interface, sendo essas:
- caixas – aborda todos os aspectos relativos a interação do usuário com os tipos básicos de caixas (objetos, números, symbols, mensagens e comentários), abrangendo ações como criar, editar, mover e deletar caixas;
- conexões – aborda os aspectos relativos a conexões entre caixas;
- gui – aborda todos os aspectos relativos a interação do usuário com os tas caixas de interface (bangs, toggles, sliders, etc), abrengendo ações como criar, interagir, alterar propriedades e etc;
- menus – entre as pastas 4 e 7 está descrita a troca de mensagens da interação do usuário com os menus da interface do Pd, sendo esses o File, Edit, Find e Media;
- subpatches – aborda como cria, interagir e remover subpatches dinamicamente, através de mensagens;
infelizmente o código não está tão bem organizado e parametrizado quando deveria, peço desculpas! no entanto, acredito que ele deva estar claro o suficiente pra entender a relação interface/mensagens…
qualquer sugestão, crítica, problema, dúvida, colaboração, será extremamente bem vinda!
muito obrigado a Jarbas Jácome e a Alexandre Porres (e seu Tutorial de Pure Data) pela ajuda! valeu galera!
e os estudos continuam!