Ok, en fait j'ai dit prog. sonore, bien, mais mon approche est pas seulement audio : comme je disais on peut generer des nombres, du texte, de la 3D, des photos de caniches tout nus, des nb complexes, des types structurés, des listes etc.. --- je crois pas que pure data soit aussi libre sur les types de données.
L'interet c'est que si on peut générer ces données on peut aussi s'en servir pour en générer d'autres (un OCR qui prend en entrée une image et en sort du texte qui va dans un synthetiseur vocal qui en tire un son qui lui même va dans un module openGL qui fait un affichage synchro avec le beat... tout ca modifiable en 3 cliks) bref ya plus de limites à la créativité temps réel
Les plus par rapport à pure data :
1. Au niveau du code :
* Séparation totale des libs : tout est dynamique, on ne charge que ce qui est nécessaire. Ca veut dire que si tu n'as pas besoin des modules qui genere des images de caniches nus et/ou que ton systeme ne le gere pas (par exemple sous windows) bah ca marche quand meme et ca reste léger. La lib noyau ne dépend de presque rien et les dépendances lourdes (opengl, GTK, son, ...) sont séparées pour rester modulaire.
* C'est du C++, mine de rien PD c'est du C et ca commence à dater, pouvoir hériter des classes ca va rendre le proj bcp plus rapide à développer.
2. Au niveau des fonctionnalités
* La gestion du temps ! Elle est complètement folle : c'est une machine (un patch) qui gère le temps, ca peut donc être du temps réel, incrémental, on peut aller en arrière, metre un sinus, ou le controller à la souris. On peut avoir des patchs qui déforment le temps de leurs prédécesseurs ou des effets du temps parfait (reverb parfaite = pas basée sur des samples précédents). Je m'explique maladroitement mais il y a de quoi construire toute une algèbre du temps avec des patchs dédiés à ca.
* Le typage des données : soit il sera fort (vérification exacte de la compatibilité des types) ce qui permet de faire du polymorphisme et des typages fous comme avec le OCaml de l'Inria, soit faible avec des conversions de types implicites ce qui peut être très pratique. Je pense qu'il est possible de faire à la fois les 2 mais il faut y refléchir un peu.
* La simplicité : dans PD on tape encore du code, avec Patchwork13! on peut tout construire à la souris dans l'interface. C'est comme buzz : vous avez pas besoin de coder (à part un peu d'hexadecimal dans le tracker
)
* La compilation : on pourra envisager de compiler des programmes natifs ecrits en Patchwork13..! en gros ton morceau devient un programme que tu peux lancer et hop besoi nd'aucune lib, ca marche.. bon c'est du boulot mais j'y reflechis depuis un moment, ca devrait pouvoir se faire.
* La parallelisation : on avait déja commencé un cluster dans la version 0 mais c'était un peu bidon, ya vraiement des trucs à faire en réseau je pense. Le but était de controller plein de machines de manière transparente pour l'utilisateur, qui n'en voyait donc qu'une.
De manière générale, je cherche à être bcp plus libre que PD qui cherche tout de même à générer du son, d'une certaine manière. La on peut générer *n'importe quoi* (pour peu que qqun ait fait des patchs), en temps réel, ou pas (on peut imaginer des gros calculs de sons fractals où il faut des heures pour générer 5min).
Voila.. Pw13! r0x des nounours, mais son avocat vous en convaincra mieux que moi.
PS:
ouah! profitez en, j'écrirai pas des messages aussi long tous les jours !!