Archive for August, 2006

Massive Stream – Présentation

Sunday, August 27th, 2006

Dans l’optique de faire plus d’expérimentations et de tests pour des idées farfelues, le choix de l’outil est primordial. Différents outils puissants existent déjà, parmis eux ont peux citer vvvv ou encore processing. Le premier outil est éditeur graphique, tirant pleinement parti de DirectX, mais que je trouve relativement limité pour certaines tâches, je n’ai pas réussi à trouver ce que je voulait pour la synthèse audio. Processing quand à lui est une surcouche au langage de programmation Java, ce qui entrainer de coder en Java (et là j’ai pas super envi). A côté de ça il existe Max qui pourrait convenir à mes besoins, mais manque de bol :

  • Il est payant
  • Prix relativement élevé (850$ à cette date avec le module Jitter)
  • Pas moyen de tripatouiller dedans en profondeur

De là est venu l’idée de creer ma propre plateforme d’experimentation avec une sorte de langage visuel constituant un graph pour mes besoins. Il doit supporter facilement la synthèse sonore, la synthèse d’image et le rendu 3D que ce soit pour du temps réel, ou pour un calcul ‘offline’.

Donc voici le premier screen de MassiveStream la plateforme d’experimentation, qui sera ammené à devenir OpenSource quand la structure minimale sera prète. En ce moment tout le travail s’effectue sur le Design interne du logiciel, donc les vrais screenshoot n’apparaitront pas avant un certain temps. Le screenshoot ci-dessus est un test de l’interface pour voir si les transformations apportées n’ont pas cassé le code (test passé ;) ).

Le principe derrière cette plateforme est de tout considérer comme des données brutes:
Une image est bêtement une suite de nombre, de même que pour une onde sonore échantillonée (ce qu’on utilise dans un ordi donc) ou un ensemble de triangle formant un volume. Pouvoir manipuler dans tout les sens cette information, faire passer du son dans un filtre d’image ou inversement est possible mais demande du temps. Avec un bon cadre cela doit être faisable en moins de 10 clicks. C’est un projet relativement ambitieux qui demandera surement pas mal de temps avant de voir la lumière du jour.

Le logiciel d’experimentation sonore Spectrum Artworker (le machin pour dessiner les sons) est loin d’être abandonné, mais il sera peut-être recrée au sein de ce cadre d’experimentation. Rien n’est décidé pour le moment.

Sound of pixels

Friday, August 18th, 2006

Oui cette oeuvre d’art représente l’état intrinscèque du caniche nain de papouasie centrale avant sa décapitation sauvage à coup de figue molle (kamoulox).

Ah euh hmm, caniche à part, c’est juste un test de l’instrument en temps réel, maintenant pour le son que ça fait je vous invite à DL ce magnifique mp3. Ce que nous pouvons entendre et donc un son très aérien, planant. Donc ça marche super bien pour faire des paysages sonores. Lors d’un prochain billet j’expliquerai peut-être en profondeur le fonctionnement du bidule et placerait un lien pour télécharger le logiciel (pour tous les gens ayant une tablette graphique).

Avancement #3

Thursday, August 17th, 2006

Bon j’avance, pas très vite du tout (vacance, glandouille tout ça…) mais je suis sur la piste des vilains craquement qui donnent un son de qualité… moyenne (pour être poli).

Voilà c’est tout.

J’ai des petits problèmes dans ma plantation…

Monday, August 14th, 2006

Après la trituration de mon programme générateur de plante, j’ai réussi à obtenir ça :

 plant ContextSensitive_B
{
    ignore + - F;
    begin F B F B F B;
    A < A > A : * -> B;
    A < A > B : * -> B[-F B F B];
    A < B > A : * -> B;
    A < B > B : * -> B;
    B < A > A : * -> A;
    B < A > B : * -> B F B;
    B < B > A : * -> B;
    B < B > B : * -> A;
    + : * -> -;
    - : * -> +;
} 
donne

C’est une représentation d’un L-systems crée par Hogeweg and Hesper. Pour plus d’informations sur ce genre de technique, je vous invite à lire The Algorithmic Beauty of Plants, un livre qu’il est intéressant de le lire.

Le principe de base du L-System est de partir d’une base (ici défini par la ligne begin), et d’appliquer un jeu de règles simples. Par exemple si un symbole A est précédé d’un autre symbole A et suivi d’un symbole B, alors ce symbole sera remplacé par : B[-F B F B] . Si un symbole + est rencontré il sera transformé en symbole -. Les symboles +,- et F ne sont exclus pour les tests de “contexts”. On fait tourner le système 30 fois et on interprète :

  • F : on affiche une ligne blanche
  • + : on tourne la tête d’écriture vers la gauche.
  • - : on tourne la tête d’écriture vers la droite.
  • [ : on commence une branche (qu'on arrête avec ']‘)
  • A, B : on ne fait rien

En changeant certains symboles on peut aussi faire des arbres en 3D, ici seul un rendu en 2 dimensions a été fait, pour débugguer.

Pluie brossante

Monday, August 14th, 2006

Grâce au radieu soleil illuminant la resplendissante région parisienne et à une gueule de bois assez intense, j’ai ajouté des brosses à “l’instrument”. Par brosse j’entend en fait différente forme de pinceau.

Nous avons donc trois brosses différentes, la première dite “patate” sert à peindre facilement tout en permettant de bourriner les fréquences sans problème. Brosse par défaut et très pratique. La deuxième en spirale permet un joli petit effet, mais fonctionne mieux quand elle est isolé, elle permet un effet sympa de glissement du son. La dernière se nome “harmonique” et sert à dessiner un son identique à différentes fréquence. Une amélioration à aporter serai de dégrader le blanc vers un gris pour obtenir des harmoniques à un volume moindre.

Voilà, j’étudierais l’impact sonore véritable de ces 3 brosses dès que j’aurais l’envie (compter vers 2015).

A l’ouest

Friday, August 11th, 2006

Bon voilà, après un certain temps sans toucher à la tablette graphique, l’ennui aidant, jme suis intéressé à ça :

un simple fractal non coloré (c’est un test, faut pas déconner non plus). Y’a aussi un système de génération de truc ressemblant plus ou moin à des plantes, mais c’est plutôt moche donc pas d’images. Ce fractal a été crée en utilisant la suite suivante :

Zn+1=Z²n + C Z étant un point du plan complexe, et C un nombre complexe fixé. Pour chaque pixel de l’image, on calcule Z50 et on affiche à quelle itération la norme de Z dépasse 2.

Chacun de ces systèmes (fractal et bidule qui fait des plantes) génèrent énormément d’informations à partir de très peu de code, seul ombre au tableau, l’interpretation de ces données est fixé. Dans l’état actuel des choses, le fractal peut uniquement être vu, on peut pas le transformer de manière X ou Y ni, par exemple, essayer d’interpreter de manière sonore la simple formule.

Partant de ce constat, je vais essayer de trouver un moyen de pouvoir génerer n’importe comment pour pouvoir les modifier (n’importe comment) et de les interpreter (là aussi… n’importe comment). Ca serait chouette de pouvoir tester facilement ce que ça donne grace à un bon cadre de travail. Pour le moment chaque experimentation prend un temps monstre.