automatic translation maschinelle Übersetzung

Add to Technorati Favorites
urzhiata | index

      codelab

codelab

Codelab est un forum consacré aux pratiques expérimentales de création (image vidéo, son, musique) qui utilisent des langages de programmation (processing, chuck, supercollider, livecode, etc.), de programmation visuelle (pure-data / gem, vvvv, etc.) ou l'expérimentation électronique (construction d'interfaces et d'instruments, circuit-bending, etc.)

Ce forum est un espace de discussion francophone, de partage d'idées et d'entraide ouvert à ceux qui utilisent ces techniques et à ceux qui souhaitent les découvrir.

Pour que l'utilisation du forum soit adaptée à l'image, au son, à la vidéo et au code, différentes fonctions sont en place :

- insertion d'éléments audio et vidéo dans les messages avec affichage intégré
- hébergement de fichiers sur le forum : images, son et vidéo
- ajout de pièces jointes,
- coloration syntaxique du code,
- URL courtes et faciles à retenir,
- fils RSS pour le suivi des discussions, ou suivi par email,
- pas de publicité (ni bannières, ni google ads, ni pop-ups).

Pour participer au forum et profiter de ces fonctions, il est nécessaire de s'inscrire, les visiteurs occasionnels du site peuvent poster des messages dans le forum hello-world sans être inscrit.

Un forum annonces est également disponible pour y présenter les manifestations, workshops, concerts, associations, etc. en rapport avec le sujet du forum.

codelab

      vvvv

image par Desaxismundi
image (extraite d'une animation) créée avec VVVV par Desaxismundi


VVVV est un environnement de programmation dédié à la synthèse visuelle en temps réel, il permet la manipulation et le traitement de données textuelles, sonores, graphiques ou vidéo. Les programmes VVVV sont conçus sous forme visuelle, en reliant des « boîtes » (les « nodes ») qui remplissent chacune une fonction précise (on retrouve ce type de programmation dans pure-data ou max-msp). VVVV est également conçu pour relier des interfaces physiques (capteurs divers, joysticks, écrans tactiles, etc.) avec des données audiovisuelles.

VVVV, exemple d'un patch
exemple d'un patch avec VVVV, à droite le programme, à gauche le résultat


VVVV se base sur la technologie DirectX, propre à Microsoft et ne fonctionne que sur les plateformes windows. Cette technologie fut développée à l'origine pour donner une base commune aux fabricants de cartes graphiques, et faciliter la tache des programmeurs de jeux vidéo, qui peuvent alors coder sans se préoccuper des caractéristiques de chaque carte graphique. VVVV permet de programmer directement les unités de calcul des cartes graphiques, et de profiter au mieux de leurs capacités 3D en utilisant les shaders.

Bien que doté de capacités sonores, VVVV n'est pas adapté à la synthèse audio, par contre certains composants permettent d'analyser le son en temps réel et de créer des animations graphiques synchronisées, réagissant aux changements de la musique. C'est donc un environnement adapté aux pratiques de création visuelle des VJ (visual-jockey).

Parmi les autres points forts de VVVV : l'analyse vidéo en temps réel, à partir de webcam ou de caméras qui permet, via les extensions freeframe de détecter les mouvements, de suivre des objets ; l'utilisation de plusieurs écrans pour diffuser ou de plusieurs ordinateurs pour répartir la charge de calcul (« boygrouping ») ; la simulation physique (gravité, collision, etc.) en temps réel pour les animations 3D (basée sur la librairie open-source Open Dynamics Engine) ; une palette étendue de protocoles de communications (série, RS232, MIDI, DMX, OSC, etc.) qui permet d'y relier de nombreux appareils : lecteurs DVD, écrans tactiles, équipement MIDI, joysticks, et divers capteurs et montages électroniques réalisés sur mesure.

VVVV est développé en Allemagne par une équipe de 4 personnes, il n'est pas en open-source mais son utilisation est gratuite dans un cadre non-commercial. Des licences sont proposées pour les usages commerciaux, l'appréciation est laissée à chaque utilisateur selon quelques règles établies par les développeurs.

image par Sanch
image (extraite d'une animation) créée avec VVVV par Sanch


Pour en savoir plus sur VVVV : site principal VVVV, documentation, galerie

Des images et des vidéos réalisées avec VVVV : les sites de Sanch et Desaxismundi dont les images illustrent ce billet, le groupe flickr consacré à VVVV, un groupe VVVV sur youtube.

Et pour finir une vidéo que l'on doit à Elmeiero, qui fait dialoguer piano solo et animation :


      communication entre ChucK et Processing par OSC

Voila deux scripts qui permettent d'avoir une base minimale afin de faire communiquer processing et chuck par le protocole OSC. L'applet Processing envoie les données qui controlent la synthèse sonore, prise en charge par ChucK. OSC (Open Sound Control) est un protocole qui permet de faire communiquer entre eux instruments de musique électronique, controleurs, ordinateurs et appareils multimedia en partageant des données en temps réel par le réseau local ou par internet. C'est une tentative pour remplacer le format MIDI (implanté en 1983) qui est un peu dépassé aujourd'hui. Contrairement au MIDI, les messages transférés par OSC utilisent une syntaxe symbolique et flexible (à la manière des URL).

Pour utiliser OSC avec Processing, il faut installer la librairie oscP5 (à télécharger : oscP5). Ensuite 2 lignes au début du script permettent de l'utiliser.

Comment lancer les scripts ?

- ouvrir une première fenêtre de commande, lancer chuck avec "chuck --loop"
- ouvrir une seconde fenêtre, et ajouter le script avec "chuck + chuckosc.ck"
- puis démarrer l'applet dans processing

le script processing

Une valeur de fréquence est tirée au hasard 3 fois par secondes et envoyée sous forme de message OSC, sur le port 6449, en UDP

// 6 sept. 2007 / processing 0125 / chuck 1.2.1.0 / oscP5 0.9.0
import oscP5.*;
import netP5.*;

float zefreq = 440;
String oscP5event = "oscEvent";
OscP5 canalOsc;

void setup() {
  size(200,200);
  canalOsc = new OscP5(this, "localhost", 6449, 6543, oscP5event); 
  frameRate(3);
}

void draw() {
  OscMessage message = new OscMessage("/processing" + "/");
  zefreq = 440 + random(0, 200);
  message.add(zefreq);
  canalOsc.send(message);
}


le script chuck

Le script est en attente permanente, en écoute sur le port 6449, chaque fois qu'un évènement est reçu, la fréquence du son est modifiée.

// 6 sept. 2007 / processing 0125 / chuck 1.2.1.0 / oscP5 0.9.0
// nom de l'hote et port par défaut
"localhost" => string hostName;
6449 => int receiverPort;

<<< "port de reception pour les messages OSC:", receiverPort >>>;

// objet OSC pour la réception
OscRecv receiver;
receiverPort => receiver.port;
// commencer l'écoute sur le port
receiver.listen();
// créer une adresse réceptrice des messages, y stocker la valeur de fréquence reçue
receiver.event( "/processing" + "/" + ", f" ) @=> OscEvent oeFreq;

SinOsc s => dac;

while ( true ) {
    // en attente de l'arrivée d'un message OSC
    oeFreq => now;
	
    // capturer le nouveau message
    while ( oeFreq.nextMsg() != 0 ) { 
		oeFreq.getFloat() => s.freq;		
    }
    <<<"nouvelle frequence : ", s.freq() >>>;
}


Télécharger un zip contenant les deux scripts : chuck-processing-osc.zip

Un sniffeur de trafic réseau peut-être utile pour résoudre les problèmes d'échange réseau. Comme Ethereal ne peut pas superviser le trafic local, on peut utiliser AW Ports Traffic Analyzer disponible en version d'essai (limitation à 3Mo de l'enregistrement des logs) mise à jour : bien que ce ne soit pas annoncé sur leur site, la version d'essai a une autre limitation : elle cesse de fonctionner au bout de 15 jours!


      dernières nouvelles de ChucK

Nouvelle version

Depuis le dernier billet sur ChucK, deux nouvelles versions sont sorties, ChucK est actuellement en version «Dracula 1.2.10». Alors quoi de neuf dans ces nouvelles sorties ?
De nouveaux unités génératives (ugens) ont fait leur apparition :
Gestion d'effets dynamiques par l'ugen "dynamics" : des fonctions de limiteur, expandeur, compresseur, noise gate, ducker (voir effets dynamiques sur wikipedia)
Capture d'échantillons en temps réel avec Lisa, Li(ve) Sa(mpling) : pour sampler à la volée du son fabriqué par ChucK, ou capturé depuis le micro
Tables de correspondance (table lookup) : les tables de correspondance permettent d'associer des valeurs, un signal est donné en entrée à la table et la sortie dépendra de ce signal et du contenu de la table

Analyse du son : une nouvelle catégories d'unités, dédiées à l'analyse du son fait son apparition, les Uana :
«Les unités d'analyse (Uana) sont des des blocs de construction, conceptuellement similaires aux unités génératives (Ugen). Ces blocs réalisent des fonctions d'analyse sur un signal sonore ou des métadonnées, et produisent des métadonnées en sortie. Les unités d'analyse peuvent être liées ensemble, ainsi Communauté. Cette différence est symbolisée par le choix d'un nouvel opérateur, l'opérateur upChucK: =^. Une autre différence importante entre les Ugens et les Uanae est que les Uanae réalisent l'analyse uniquement sur demande, par la fonction upchuck().» (d'après uana)
Un document (en anglais) des auteurs de ChucK sur le sujet est disponible : Analysis and Synthesis in chucK (pdf)

téléchargement et autres infos sur le site de ChucK

ChucK & Processing

Arthur Clemens a réalisé et mis à disposition sur son blog (visiblearea) un ensemble de scripts qui permettent de faire dialoguer ChucK et Processing via le protocole OSC (Open Sound Control). Dans ce dispositif, Processing transmet des valeurs pour le volume et la répartition stéréo, et ChucK analyse le spectre sonore et renvoie les valeurs à Processing. L'auteur propose une démonstration ou 4 extraits sonores sont assemblés en fonction des mouvements réalisés par des cercles dans l'animation graphique.


Chuck & Pure data

chuck~ est un plugin externe pour pure-data mis au point par Martin Robinson. Il permet d'intégrer un objet chuck au sein d'un patch pure-data. Les données et le signal sont transmis à l'objet chuck puis repassés à pure-data par l'intermédiaire des unités ADC et DAC de ChucK. => chuck~ (for Pure Data)

S.M.E.L.T.

S.M.E.L.T. (pour Small Musically Expressive Laptop Toolkit) est une boîte à outils de scripts chuck pour faciliter le développement d'instruments interactifs, en utilisant ce qu'il y a de disponible sur tout ordinateur : clavier, souris, trackpad (sur les portables), micro intégré, capteur de choc et de mouvement (sur certains portables). Par exemple, un script est fourni qui permet d'utiliser le micro avec le souffle, à la manière d'une flûte. => SMELT

Communauté

Autour de ChucK, il existe plusieurs listes de discussion : chuck pour les annonces, chuck-users pour les discussions ainsi qu'un wiki (ou l'on peut trouver des exemples, du son, des tutoriels) : chuck community. Les archives des listes sont conservées et accessibles publiquement, on peut également y faire des recherches par requête. Il existe également un forum anglophone sur electro-music.com (forum chuck), parmi les nombreux sujets, un est consacré aux programmes chuck ultra-courts, de la création sonore en une ligne de code! (1 line chuck)


      découvrir pure-data

Pure-data est un logiciel qui permet de se construire ses propres outils musicaux sans être enfermé dans une interface pré-établie (voir ce billet sur pure-data). Mais le premier contact avec pure-data peut être déroutant et provoquer des crises d'angoisse de la feuille blanche numérique...

Voici quelques pistes pour découvrir et s'initier à l'univers numérique de pure-data.

Tout d'abord, l'installation de pure-data peut se faire en utilisant un installeur simplifié qui comprend non seulement pure data mais aussi de nombreuses librairies utiles, à télécharger depuis pure data / downloads ou le site de hans installers.

La présentation de pure-data réalisée par Jérôme Abel de l'association Impala Lounge est un bon départ pour ce faire une idée du "truc" et de sa philosophie (en français.) Elle est accompagnée d'un ensemble de patch utilisé pour des ateliers d'initiation, qui sont également intéressant pour débuter.
On trouve les deux ( PureData_Initiation_fr.pdf et AtelierPd_2007.02_fr.zip) sur la page Pure Data de Impala Utopia (avec également la documentation traduite en français)

Comme 2e étape, les tutoriels d'Obiwannabe (en anglais) permettent de suivre la réalisation de 6 différents synthétiseurs midi construits méthodiquement, c'est un excellent modèle pour développer ses propres patchs pure-data. Obiwannabe (Andy James Farnell) publie également sur son site une série de tutoriels pour la synthèse d'effets sonores à destination des designers sonores de jeu vidéo (bruits de bulles, de feu, de détonation, de rayons lasers, etc.) ainsi que des bases pour la composition musicale. C'est une mine d'informations très documentées et les méthodes qu'il décrit sont pleines d'enseignements pour la création de sons électroniques.

Avant de se lancer dans la création de ses propres patchs, il est possible de modifier des patchs pure-data existants, pour en comprendre le fonctionnement, ou tout simplement pour prendre plaisir à manipuler les sons! Un excellent patch est la boite à rythme de Nullpointer. C'est un séquenceur complet (on est en terrain connu!) fourni avec un ensemble de samples de batterie. On peut donc s'en servir comme d'une boite à rythme, changer les samples, remplacer les lecteurs de samples par des générateurs sonores, ou le démonter afin d'en comprendre les mécanismes. (à télécharger sur le site de Nullpointer)

Le patch 'Drum Machine' de Nullpointer
Le patch «Drum Machine» de Nullpointer

      bubloids

Pour voir cette animation, vous devez installer java depuis java.com

Built with processing / code source: bubloids


(double cliquer dans la fenêtre du jeu pour activer)


      ChucK, nouvelle version

Une nouvelle version de ChucK est parue (1.2.0.7, toujours multiplateforme et open-source). Les nouveautés, hormis la résolution de bugs et le changement de casse des instructions (SinOsc au lieu de sinosc), concernent l'ajout de nouvelles unités sonores (ugen), inspirées & aspirées des autres logiciels libres de création musicale par le code (CSound, SuperCollider 3 et Pure Data). Donc on peut maintenant utiliser une série de filtres audio (passe-haut, passe-bas, résonant, etc.) qui sont d'utilisation plus simple que les filtres mathématiques de traitement du signal. Chaque future version va s'enrichir de nouveaux générateurs.

On peut utiliser ChucK en ligne de commande, mais ce n'est pas le seul moyen. miniAudicle est une alternative simple à mettre en oeuvre, qui permet de tester les codes très facilement. Pour une découverte, c'est certainement la meilleure façon pour obtenir des résultats (gratifiants!) rapidement. C'est un environnement temps réel où l'on peut ouvrir des fenetres de code pour les scripts chuck, les ajouter, les échanger ou les retirer de la machine virtuelle. La version 0.1.3.6 contient la dernière version de ChucK, donc en quelques clics on peut profiter de tous les exemples fournis!

Pour télécharger Mini Audicle : miniAudicle


      génération spontanée

génération spontanée
voir l'animation

Lire la suite