Wazzle est un logiciel fantôme que je développe par intermitence depuis déjà quelques mois. J'avais commencé par un premier prototype sur l'idée d'un ami (merci al ;) ) : à partir d'un fichier wave contenant une boucle, obtenir un autre fichier en mélangeant aléatoirement des morceaux de la boucle d'origine.

Le coté aléatoire du réarrangement est sympathique dans un premier temps, mais vient vite l'envie de manipuler tout ça à la main, de mélanger ces pièces sonores par une interaction utilisateur. Souhaitant ajouter un coté ludique, et surtout une simplicité d'emploi, les segments issus des sources sonores sont représentés par des cartes ou pièces de jeu sur un bureau virtuel. On peut les déplacer, les coller les une aux autres. Elles s'assemblent dans une séquence linéaire.

Cela a été mon deuxième prototype, réutilisant des composants du premier, mais mort par des problèmes dans la conception initiale. J'ai un peu empilé du code sur du code sans trop savoir où j'allais, et je me suis pris les pieds dans les cables. Qu'à cela ne tienne, je suis justement en train de tout recoder, mes concepts ayant muri et des problèmes techniques ayant été dépassés, bien des choses sont plus clair.

Coté technique, j'ai choisi le langage python parce que ... c'est mon langage fétiche :) Sans trop troller, c'est celui qui me permet d'exprimer les concepts objets que j'affectionne. Les afficionados du C/C++ seront peut être choqués par l'usage d'un langage semi-interprété, et à fortiori friand d'objet. Mais ne craignez rien, il ne s'agit pas d'instancier des milliers d'objet de classe Integer, on n'est pas en Java, mais en Python :) Et depuis l'inclusion du module array dans python 2.3, on dispose d(un module puissant implémenté ... en C :) Et pour les traitements audionumériques, on ne manipule que des tableaux de types homogènes et basiques. Quand le slogan dit "Python, battery included", il ne ment pas ... On trouve un module de lecture/écriture des fichiers wave, des modules pour utiliser les systèmes sonores des différents OS, un module de traitements audio ( audioop ), et aussi une interface graphique multi-plateformes (tk).



Ma version courante est encore un peu éloignée des problématiques graphiques. Je peaufine une api objet à grand renfort de surcharge d'opérateur entre segments sonores : concaténation ( + ), répétition ( * ), fragmentation ( / ).

Pour l'interface utilisateur, j'aimerai une certaine esthétique, proche de la mosaïque, avec des couleurs paramétrables pour les segments, l'utilisation d'images ... En préparant des ensembles de segmenst, même des enfants pourraient assembler des éléments sonores dans une interface simplifiée, avec des images dédiés. La mise en séquence est un mécanisme assez ludique, même avec des outils plus sobre. Alors, pourquoi ne pas marier ces deux aspects ... Avec des briques qu'on emboite (pour peu qu'on cale le tempo), on aurait une représentation visuelle et fonctionnelle de la construction d'un morceau.

Rendez-vous en début d'année pour au moins une première version des composants de base.