Contact

- Email : raphael.forment[at]gmail.com

- Téléphone : +33 6 51 87 16 57

- GitHub : Bubobubobubobubo

- Instagram : @bubobubobubobubo

- LinkedIn : Profil

Shrimp : un prototype inachevé

Graphe de la documentation de Shrimp

Il y a quelques mois de cela, j’avais commencé à travailler sur le prototype d’un environnement de live coding en Python nommé Shrimp. Cet environnement se destinait à tester une autre route que celle que j’avais pu suivre avec Sardine : pas de code asynchrone, un seul langage pour l’écriture de patterns algorithmiques, synthèse sonore intégrée, etc. Des contraintes diverses de temps ou de disponibilité – et une thèse à finir – m’ont contraint assez rapidement à l’abandonner. J’avais même commencé à documenter assez largement le prototype (incluant des tutoriels). Il ne me reste que des extraits vidéo capturées au cours du développement à partager :

  1. Syntaxe des patterns : Shrimp reprend pour base TidalVortex , une version Python abandonnée de TidalCycles. Il existait pourtant une syntaxe optionnelle qui reprenait le système d’objets Pattern de SuperCollider. Elle possédait une cinquantaine de petits objets qui génèrent des flux de données (similaires à des itérateurs).
  1. Interaction : La syntaxe inspirée par Tidal de Shrimp intégrait quelques fonctions permettant d’utiliser par exemple la souris comme modulation X/Y. Dans mon souvenir, il y avait aussi la possibilité d’utiliser du MIDI entrant ainsi que d’autres sources.
  1. Synchronisation : Shrimp était capable de se synchroniser à un DAW au travers du protocole Ableton Link . Cela fonctionnait plutôt bien, avec quelques derniers bugs à chasser pour que cela soit parfait. Le transport pouvait aussi être démarré (ou non) depuis un ordinateur distant.
  1. Synthèse : j’avais commencé à explorer l’intégration du framework Signalflow de Daniel Jones pour réaliser de la synthèse sonore directement à partir de Python (bindings vers une librairie C++). Cela fonctionnait plutôt bien pour de la synthèse simple, avec des problèmes de compilation pour les utilisateurs sur Linux.

Je ne sais pas très bien si j’aurais un jour le cœur à me remettre à l’ouvrage sur ce prototype. Je me souviens en être resté sur un grand moment de factorisation du système de patterns. La plupart du code que l’on voit ici tourner ne tourne sans doute déjà plus à l’heure actuelle !