Vos actions : Créer un document, voir la page générale.

Cultures numériques

Cours de Bachelor 1

Bibliothèque d’outils

Quelques outils pour ce workshop : scripts, liens, didacticiels.

Contenus

Programmer en Processing

Logiciel pour artistes Processing est un logiciel qui permet de coder des logiciels. Il a été créé en 2001 par Benjamin Fry et Casey Reas, qui ont été étudiants au Media Lab du prestigieux Massachusetts Institute of Technology. Il a été créé dans le but de permettre aux artistes le développement rapide de petites applications multimédia, graphiques principalement. Il est distribué sous une licence Open Source (GNU GPL). Processing est basé sur le langage JAVA, qui a la particularité d’être (...)

Installer une librairie

La métaphore de l’hélicoptère de Trinity Dans le premier volet de Matrix, Trinity et Neo fuyant leurs adversaires finissent sur le toit d’un gratte-ciel où se trouve un hélicoptère. Trinity confesse ne pas savoir piloter mais appelle un opérateur, qui charge des données. Trinity bat les cils plusieurs fois et annonce l’instant suivant "je sais piloter cet hélicoptère". Cet épisode est la métaphore parfaite de ce qu’est une librairie. C’est un ensemble de données et de méthodes qui augmentent les (...)

Télécharger les scripts de ce workshop

Minim et sound, pourquoi ? Minim et sound sont des librairies. voir l’article sur ce site à ce sujet. Selon le type d’ordinateur et de version d’OS, ou de version de Java, ou pour d’autres raisons cabalistiques, il se peut que soit Minim soit Sound ne marche pas. C’est pourquoi les scripts de test pour ce workshop ont été adaptés en fonction de l’une ou l’autre librairie... Comment choisir sa librairie Le mieux est d’installer les deux librairies. Ça ne pose pas de problème de conflit et permet de (...)

Les outils du workshop

Quatre types de matière première Lors de ce workshop, l’idée est de produire du son sur base de bits. Bit est la contraction de binary digit, "chiffre binaire". 0 et 1 sont les seuls chiffres utilisés dans le stockage des données informatiques. Les textes, images, sons, vidéos, les mails et tout les autres contenus stockés sur votre ordinateur n’est qu’un ensemble de données binaires. Lors de ce workshop, nous allons transformer une partie de ces informations en son. Nous partirons principalement de (...)

Où placer ses sons, images et textes ?

Placer les fichiers dans le dossier du script Tout script de Processing est stocké dans un dossier. Pour atteindre ce dossier, le plus simple est de l’appeler par l’interface de Processing, en allant dans le menu Sketch/Afficher le dossier. Si le script comporte déjà des imports, ils se trouvent dans un dossier nommé "data". Pour d’autres un dossier "sons" a été créé. Drag n’ drop Processing permet l’ajout (...)

Exemple de base de génération de son

La librairie "sound" permet de générer des ondes sonores et de les moduler. Ces ondes peuvent être de forme carrés, sinusoïdales, en triangle ou en dent de scie, comme le montre le schéma ci-dessous : Voici un exemple avec une onde en triangle. Le script réagit au clic dans la surface de l’animation. // jouer une onde import processing.sound.*; TriOsc triangle; boolean joue=false; void setup() size(640, 360); background(255); // (...)

Pas à pas : charger un document avec loadBytes

Processing est un logiciel qui permet d’écrire des outils. Dans notre cas, nous nous nous en servons pour créer du son. Il y a plusieurs types d’information récupérable par Processing et pour ce workshop il y en a 3 principaux : données brutes, texte (sous forme de phrase, mots et lettres) et pixels d’un image. Les premières lignes de Processing Ecrire avec Processing commence souvent par les deux fonctions de base : void setup() // ce qui est écrit ici s'exécute une fois, au début du (...)

Exemples simples de génération de notes sur base de texte

Les lettres et leur code Les caractères dans un texte sur ordinateur sont la plupart du temps codés dans un octet, un groupe de 8 chiffres de 0 ou 1. Dans Processing on peut récupérer ce code et l’utiliser pour déterminer un son. Chaque lettre correspond à un chiffre de la table ASCII. Voici un tableau des lettres et chiffres qui nous intéressent : Dans ce tableau, on peut voir que la lettre A correspond au chiffre 65 et la lettre z au chiffre 122. (...)

Lire les données binaires d’un fichier

Si on lit un fichier .txt, on retrouvera dans les données binaires les lettres (avec des artefacts dès que les caractères sont accentués). Le résultat de la lecture des octets est un chiffre en 0 et 255. On le transformer en longueur d’onde, ou en note, ou autre chose, à partir de là. Le code peut être directement copié-collé dans Processing, mais il faut donner un fichier à lire pour le script - dans la ligne 2 de ce code - ou il signalera une erreur... Ne pas oublier non plus de charger la (...)

Analyser un texte, actionner des sons

La base du code Une fois le code de la classe installé, on peut le mettre l’activer comme suit. texte montexte; // déclarer l'objet montexte=new texte("madame_bovary.txt"); // charger le texte et l'analyser println("nombre de mots: "+montexte.nombre_mots); println("nombre de phrases: "+montexte.nombre_phrases); println ("La phrase chargée : "+montexte.phrase); println ("Le mot en cours : "+montexte.mot); montexte est un objet qui (...)

Analyser un texte, générer des sons

La longueur des mot est convertie en note suivant un système simple, qui peut être amélioré. Il faudra aller voir la documentation des librairies pour ça. La variable "s" contient le nom du fichier texte La variable "vitesse" détermine la vitesse de lecture Minim et sound Les deux bibliothèques, Minim et Sound, on des fonctions différentes pour générer des sons. Les deux scripts présentés ici donnent des résultats assez différents. Testez les deux si vous en avez la (...)

Lire un texte et faire parler l’ordinateur

La librairie TTSlib est assez basique. Sa documentation lapidaire est ici. Un petit test par copier-coller ? Voici un code qui lit un mot en boucle, que l’on peut pitcher avec la souris. TTS tts; int trigger; int vitesse = 500; void setup() size(300, 800); tts = new TTS(); trigger = millis(); textAlign(CENTER, CENTER); fill(0); void draw() background(255); if (millis() > trigger) float f=map(mouseY, 0, height, 10, 200); tts.setPitch( f ); (...)

Lire une image, actionner des sons

La variable "s" contient le nom du fichier texte La variable "vitesse" détermine la vitesse de lecture Pixel par pixel La première version lit les pixels un à un. On accède donc à la valeur du rouge, du bleu et du vert, ainsi qu’à la luminosité. Rang par rang Une deuxième version réduit l’image à une largeur de 8 pixels, puis permet d’accéder à la luminosité de chaque pixel. Minim et sound Les deux bibliothèques, Minim et Sound, on des fonctions différentes pour générer des sons. Les deux scripts (...)

Lire une image, moduler la vitesse d’un fichier son

Le son doit être plutôt long pour que l’effet puisse être entendu. Il est préférable de prendre des images avec des dégradés pour ne pas trop hacher la lecture, mais c’est une question d’ajustement entre vitesse de lecture des pixels (on peut agir sur la fonction delay() pour faire une lecture d’image plus lente). Sound library only Le samplerate est facile à atteindre dans lalibrairie sound et un cauchemar dans la librairie minim. Ce script n’existe donc pas pour (...)

Lire une image, générer des sons

Le script convertit la valeur du rouge, du bleu et du vert en un chiffre et le fait correspondre à une hauteur de note. L’enveloppe et le type de son peut être modifié, il faut se référer pour ça à la documentation de la librairie Minim et sound Les deux bibliothèques, Minim et Sound, on des fonctions différentes pour générer des sons. Les deux scripts présentés ici donnent des résultats assez différents. Testez les dexu si vous en avez la (...)

Capter un son et écrire une image

Deux versions : noir et blanc et niveaux de gris A toutes fins utiles, le script est livré en deux versions : Une version noir et blanc écrit uniquement des pixels noirs et des pixels blancs Une version "grayscale" permet d’écrire des pixels en niveaux de gris, plus riche en possibilités peut-être. Les deux scripts emploient des raccourcis clavier qui permettent de changer le niveau d’entrée, de déclencher l’enregistrement et de le stopper, de revenir à zéro et d’enregistrer l’image. Chaque fois (...)

Déclencher des sons à partir de la webcam

Pour ce script, on définit des zones de l’image de la webcam, et on leur associe une note, et on a la possibilité de jouer sur le niveau de lumière qui déclenche le son (avec les flèches bas et haut du clavier). Le code peut être copié-collé dans une fenêtre Processing. // déclencher des sons synthétisés sur base de webcam import processing.video.*; import ddf.minim.*; import ddf.minim.ugens.*; Capture cam; Minim minim; AudioOutput out; zone_son[] lazone=new zone_son[18]; float seuil=375; (...)
Sous rubriques