L´attracteur de rêve
Michel Bret & Marie-Hélène Tramus
Mars 2019 Laval-Virtuel
|
Certains liens ne seront pas actifs s´il n´y a pas de connexion internet.
Principe
Intention
Suite à mon installation
imaflow
Marie-Hélène Tramus a proposé d´en
faire un générateur visuel de rêves que nous
avons décidés d´appeler
attracteur de rêve:
L´idée était
d´associer des extraits de certains de mes films avec de
petites phrases les évoquant, le spectateur est alors
invité à les combiner pour composer un court
poème, lequel est interprété visuellement
par une animation en temps réel des séquences
correspondantes en accord avec une musique.
Musique
Elle peut être générée de deux
façons:
Mode displaylist
N´importe quelle musique est jouée
en entrée du dispositif.
Cliquer sur
dream_attractor_displaylist.js.
Mode sample
production automatique de musiques à partir d´un
ensemble de fichiers *.wav joués par un driver
audiuo_server.
env/audio_server.func
communiquant avec anyflo au moyen d´une
mémoire partagée
le driver est fermé automatiquement sur une fin normale du programme (par
q ou
EXIT), en cas de sortie anormale il faudra le stopper manuellement.
Cliquer sur
dream_attractor_sample.js.
Technique
Cette installation reprend plusieurs procédés:
1) l´
automapping (1988)
2) l´algorithme de la
cohérence de flux (2006) pour produire une harmonie
entre la musique et le résultat visuel.
3) l´analyse fréquentielle de la musique (par fft)
4) un modèle dynamique (forces, couples, ...) agissant
sur des surfaces déformables et sur différents
paramètres contrôlant les transparences, les
vitesses des animations, etc...
>
Rêves animés créés par les visiteurs
Lors de l´exposition
RECTO-VERSO, LAVAL-VIRTUEL
mars 2019, les visiteurs sont repartis avec une trace
de leur rêve animé
comportant deux images de celui-ci accompagnées du texte
l´ayant généré.
Musiques de Janvier PayRard et Christian Heintz
Images des rêves créés par les visiteurs
Interaction
Spécial
Cliquer sur le petit rectangle (en bas et à droite de
l´écran), ou enfoncer la touche
P pour faire
apparaitre:
Modifier les 3 échelles
y1 y2 y3 pour ajuster
les positions du texte à gauche, des images au centre et
du texte à droite.
Cliquer sur
WRITE pour enregistrer les
paramètres dans le fichier
DREAM.
Cliquer sur
dir pour modifier les variations des
dossiers.
Cliquer sur
inc pour changer la vitesse de ces variations.
Cliquer sur
active pour modifier le nombre de pistes
audio actives.
-2: variation aléatoire
des dossiers audio (valeur par défaut)
-1: variation périodique des dossiers audio.
0,1,... seulement ce dossier.
dans ce cas modifier
amp,proba amplitude de la
variation (maximum=nombre de dossiers de *.wav ,2 par
défaut) et probabilité de variation du doissier
autour de celui choisi (.75 par défaut).
Dans les 3 cas le choix du fichier wav est aléatoire
dans le dossier choisi.
Enregistrement des images
Cliquer sur enregistrer image 1.
Cliquer sur enregistrer image 2.
Cliquer sur imprimer pour imprimer les 2 images
sauvées et la liste des mots cliqués.
La touche b permet d´afficher les
carastéritiques des volumex (les 2 dernières
colonnes sont le numéro du dossier et celui du
fichier wav).
Interaction programmée
L´option fun ou la touche f provoque
l´exécution de la fonction
FUNC.func à image.
Dans cette fonction on peut appeler n´importe quelle
commande ou fonction anyflo, par exemple:
set_dir(d): modifie le numéro du dossier
courant.
set_amp_proba(amp,proba): modifie l´amplitude
et la probabilité de la variation des dossiers
(proba=0 pour un dossier fixe).
set_active(act): modifie le nombre
act de pistes
audio actives.
Utilisation
Marche à suivre
Au lancement du programme:
Les noms des dossiers apparaissent, cliquer gauche pour naviguer dans tous les noms.
Cliquer sur l´un d´eux provoque le chargement des fichiers *.ima qu´il contient et le
premièr d´entre eux est joué.
On peut répéter cette opération.
Cliquer sur
UNDO pour supprimer le dernier.
liste des mots et images correspondante aux mots cliqués
Cliquer sur
OK lance la compilation du rêve, un directory
Datas/Dream_dddd est
créé et la liste des mots cliqués est écrite dans le fichier
Datas/Dream_dddd/Dream_dddd, les images sauvées
en cliquant sur
write iilmagew le seront dans ce directory sous les noms
A_dddd_0001 et
A_dddd_0002
Une image
Datas/Dream_dddd/A_dddd.jpg contenant ces 2 images et la liste des mots
peut alors être imprimée.
Ces datas peuvent s´accumuler, pour les
réinitialiser.
image en interaction avec la musique
Après 10 secondes la souris disparait, il suffit de la
manipulet pour qu'elle réaparaisse ainsi que
l´onglet
AGAIN (sur lequel on clique pour construire
un nouveau rêve).
Prompt
Un compteur Cpt_1 initialisé à 3*25=75 (soit 3 secondes) permet
de n´afficher la souris et certaines informations que durant ce temps.
Un compteur Cpt_Time initialisé à 10*60*25 (soit 10 minutes) active le menu
AGAIN
et revient au choix de mots pour construire un nouveau rêve.
L'amplitude du son est gérée par
nircmd.EXE.
Mode spécial
Cliquer sur le petit cadre (en bas et à droite de
l´écran) rend actives les propriétés:
>ini num pour réinitialiser Num_Dream=0
Ce numéro peuvt être réinitialisé
à
1 en cliquant sur
dream_attractor_ini.js qui écrit
1 dans le fichier
num_dream.
francais lit le fichier
NAMx des noms.
english lit le fichier
NAMx_eng des noms en anglais.
Cliquer sur les échelles
nir max pour changer
la valeur maximum du son, sur
inc pour changer la
vitesse de variation du son, et sur
WRITE pour sauver
les paramètres dans le fichier
Dream_xxxx.
La durée de la compilation
dépend du nombre d´images chargées.
Pour de nombreux fichiers préférer la lecture continue des fichiers images avec
l´option
dis afin de ne pas saturer la mémoire (il suffit de lancer
dream_attractor("dis").
Utilisation en expo
Dans le programme principal
dream_attractor()
changer:
// interaction func(0,"F0")func(4,"F4")func(5,"F5")menu(0);Lock=1;
interaction func(0,"F0")func(4,"F4")func(5,"F5");Lock=0;
en:
interaction func(0,"F0")func(4,"F4")func(5,"F5")menu(0);Lock=1;
// interaction func(0,"F0")func(4,"F4")func(5,"F5");Lock=0;
ce qui a pour effet de lancer l´interaction avec
l´option
menu(0) ce qui bloquera l´usage
des menus, la variable externe
Lock est utilisée
dans le programme à cet effet.
Exemples de lancements automatiques
option
eve (expension de l´image).
option
kba (expension de l´une des bases).
option
eve (expension de l´image).
option
fun=FUNC_0 qui exécute la fonction
FUNC_0().
Même chose avec FUNC_1, FUNC_2, ...
Cliquer sur des noms d´images (jusqu´ à 12).
Cliquer sur OK (lance la compilation du rêve).
Cliquer sur
AGAIN pour construire un nouveau rêve.
Fichiers
L´application se lance en cliquant sur:
dream_attractor_displaylist.js fonctionnement en
mode displaylist.
dream_attractor_sample.js fonctionnement en
mode sample.
Remarque: les
options sont mises
dans les fichiers
dream_attractor_displaylist.js et
dream_attractor_sample.js.
Le fichier
FIC-256 contient la liste des dossiers contenant les fichiers *.ima
Le fichier
NAM-256 contient la liste des noms associés
qui ne doivent pas contenir d´espaces, le fichier
NAM-256_eng contient les
traductions en anglais de ces noms qui est activé en cliquant sur
english.
Ces dossiers et ces noms peuvent être changés respectivement avec les options:
att=ddd et
nam=nnn.
Les paramètres sont lus à partir du fichier
DREAM, s´ils sont modifiés interactivement sur les échelles ils doivent être sauvés par:
PARAM->WRITE.
Ils peuvent aussi être modifiés directement dans
le fichier DREAM.
Principaux paramètres
dim: change l´échantillonnage du signal
acc: influence de l´accélération
du signal
rota: rotations
dila: dilatations
dil1: dilatation pour audio faible
dil2: dilatation pour audio fort
global: dilate tous les paramètres
event: contrôle l´effet
E
memory: contrôle le lissage des valeurs
prompt: contrôle le timing du message
CHANGE MOUSE, CLICK AGAIN
SENSOR->DISPL pour modifier les capteurs.
Le fichier num_dream
contient le numéro courant de
Dream_dddd, liste des
mots cliqués qui est sauvée à chaque clique
sur
OK.
Initialisation
Les dossiers
Datas/Dream_dddd peuvent s´accumuler, utiliser l´optionn
ini ou cliquer sur
ini en
mode spécial pour réinitialiser
le numéro à 0, on peut aussi modifier le fichier
num_dream avant le lancement ou encore cliquer sur
dream_attractor_ini.js.
Il faut aussi détruire le contenu du directory
Datas.
Réinitialisation des datas
Pour réinitialiser les datas cliquer sur
dream_attractor_ini.js, ce
qui a pour effet décrire
0 dans le fichier
num_dream, puis détruire le contenu du directory
Datas.
Make ima
make_ima.js lance la fonction
make_ima.func
name1 est le nom du directory contenant les images jpg à compacter.
digit est le nombre de caractères sur lesquels sont écrits les numéros des images
(4 ou 6, voir dans le dossier).
num est le premier numéro.
ni est le nombre d´:images à compacter.
name2 est le nom de l´image 3D compactée sous la forme
name2-xxxxxx-yyyyyy.ima xxxxxx et yyyyyy sont calculés automatiquement.
Fichiers spéciaux
*.js: lancement de programmes.
Datas/Dream_xxx: dossiers d´enregistrement
des images.
env/*: fichiers de configuration.
exe/*: programmes utilitaires.
wav/*.wav: échantillons de musique.
DREAM: paramètres de lancement.
SENSOR: paramètres de lancement des
capteurs.
Menus
Cliquer sur
: (deux points) en bas de
l´eeacute;cran ou enfoncer la touche
: pour faire
apparaitre et disparaitre les menus.
HEL
Aide.
DOC
Ce fichier.
BUILD
HEL
Aide.
BASE
Modifier:
nxy = définition des grilles.
nb = nombre de bases.
MULT
Modifier:
nb = nombre de mults.
DISPL
HEL
Aide.
IMAGE
Cliquer sur num1.
ANIM
Pour lancer l´animation (s´il n´y a pas d´image).
NET
Modifier:
hide = nombre de couches cachées
couples = nombre de couples d´apprentissage
memory(1)roll=.25*Sensor;
m=validate motif(memory(1))network(1);
PARAM
HEL
Aide.
CHANGE
Modifier les échelles:
dim: dimension des motifs et des lois du réseau neuronal.
stif,visc: raideur et viscosité du ressort.
reac,visc,acc,exp: force de réaction fonction de
l´accélération.
rota,tran,dila: rotation, translation et dilatation fonctions de
l´accélération.
type: période du changement automatique de interpol texture number.
force: force add vertex vol(Base0).
stand: rotation au repos.
S_A: coefficient de valeur du capteur.
param: ensemble de paramètres.
directory: numéro du directory actif (option dis.
kdir: coefficient réglant l´amplitude des dossiers.
max_dir: nombre de dossiers.
disk: disk (fréquence de lecture des images).
global: coefficient multiplicateur global.
speed max: amplitude maximale de texture speed.
coe: coefficient multiplicateur de texture speed.
échelles des texture speed.
force mouse: force add vertex vol(Base0)=speed mouse.
Tous ces paramètres sont lus et sauvés.
READ0
Lit et exeécute le fichier IMA_FLOW0 (ne pas modifier ce fichier).
READ
Lit et exeécute les fichier IMAFLOW et SENSOR, ces fichiers sont lus
au lancement
du programme.
WRITE
Écrit les paramètres dans les fichiers IMAFLOW et SENSOR.
DILA
yes/no dila vol(Base0)
TRAN
yes/no tran vol(SkyA)
SOUNDS
HEL
Aide
READ
Cliquer sur des noms de fichiers wav: les charge.
PLAY
Cliquer sur n: joue wav numéro n.
STOP
Stoppe sounds.
ON/OFF
yes/no sounds.
DIR
HEL: aide
RAND: dossiers alétoires.
INV: dossier invariant, choisir num.
ILLUM
yes/no illum.
TEXT
yes/no texture.
TRANSP
Active/désactive la transparence automatique.
DEBUG
Mode debug, des messages sont émis.
CHANGE
Cliquer sur un nom d´image.
DIR
Si option dis (lecture des images sur le disque): modifier num:
-1: dossiers variables
>0: dossier invariable de numéro num
INI
Initialisation.
NUL
case vide du menu (juste avant EXI), supprime les messages.
EXI
EXI
Termine le programme.
Raccourcis clavier
a: yes/no displ mini menu.
B: cliquer sur le nombre de bases ou + -.
b: debug.
c: no/yes mult.
D: cliquer sur le numéro du directory ou + -.
d: yes/no dila.
F: force mouse.
f: fun.
g: cliquer surle coefficient global ou + -.
h: help.
I initialisation des param&egreve;tres.
i mode interaction: on peut continuer
d´ajouter des dossiers après cliqué sur
OK.
L: variation des dossiers dans un intervalle d´amplitude l.
l: cliquer sur amp ou + -,
qui vaut [d,d+amp] avec d = numéro du directory courant. Pour revenir aux
variations automatiques enfoncer la touche i.
M: cliquer sur le nombre de multiples ou + -.
m: yes/no mobile.
N yes/no ="#NETWORK.
P: mode spécial.
q quitte le programme\n";
r: yes/no rota.
S: taper une chaine de caractères ccc suivie de ENTER,
la fonction STRING(ccc) est exécutée,
permet de passer une commande sur plusieurs caractères du type "ccc"x1,x2,...
dans cette fonction:
_ sort de ce mode
; yes/no mouse
: yes/no menu
h mini menu pour S
b yes/no debug
n yes:no name pour b
Bx x bases
gx global=x
Mx mult=x
sx coe sensor=x
s: cliquer sur le coefficient des capteurs.
T: yes/no transp.
t: yes/no tran.
L: dossiers variant dans un intervalle.
l: cliquer sur amp ou + -.
: cache les menus\n";
; cache la souris\n";
+: augmentation (selon le type B D g M S s)
-: diminutiion (selon le type B D g M S s)
v: yes/no variations automatiques
_: efface le mini menu.
Options
: cache les menus
- cache la souris
att=xxx: fichier de dossiers contenant les
séquences animées *.ima.
bas=n: nombre de bases
dis: lecture continue de toutes les imsges *.ima.
deb: mode debug
def=FIC: Le fichier FIC contient une liste de dossiers d´images 3D
dim=n: dimension des images (256 par défaut).
dir=../../ddd: Dir0 dossier des images (../../ima/ par défaut)
dis: lecture continue des images
dis=FIC: Le fichier FIC contient une liste de dossiers d´images 3D
eng: anglais
eve event
file=noms des dossiers contenant des images 3D *.ima
fil=File1 File2 ...: dosiers *.ima.
fra: français (par défaut).
fun=FUNC: calls func FUNC, dans une telle
fonction tous les paramètres peuvent être
modifiés et toutes les fonctions appelées, on
peut aussi faire: E(1), E(0), k(1), k(0), v(1) et v(0).
f_m: Force_Mouse[2]=.25
f_m=f: Force_Mouse[2]=f
glo=c: coefficient multiplicateur global.
imanam=dir/name.eee nom des images sauvées, l´option num=im1,ni est obligatoire.
inc=d: incrément des dossiers (> 1 pour des
machines rapides).
ini fait Num_Drem=Num_Write=1 et écrit le fichier DREAM_IMAGE=1,1.
int: mode interaction.
jum=1: jump=1.
kba: k et E.
nam=nnn: noms associés apparaissant à gauche.
net réseaux neuronaux.
num=im1,ni premier numéro et nombre des images sauvées par l´option nam.
per: variation périodique de l´ordre des dossiers.
pro=s: durée (en secondes) du prompt
CHANGE MOUSE, CLICK OK (180 = 3 minutes par
défaut).
ale: variation alétoire de l´ordre des dossiers.
rea: paramèstres par défaut de l´option
senrea de lecture du capteur, modifier les paramètres
après létiquette (case("rea").
reasav: paramèstres par défaut de l´option
options du capteur
senrea de lecture du capteur et des options sav et
num, modifier les paramètres
après létiquette (case("reasav").
sou=nnn: fichier de noms de sons (sounds)
sav: paramèstres par défaut de l´option imanam=dir/name.eee,
après létiquette (case("sav") modifier les paramètres.
sensinwri: écriture du capteur sin.
sha: capteur via la mémoire partagée A.
sinsav: capteur SIN
sin: capteur SIN et
sauvegarde des images.
sky=1,2,3,...: 1,2,3,... cieux.
spe: speak (annonce vocale en anglais)
tes=TEST: lir le fichier TEST de paramètres partuculiers.
tra: active la transparence automatique modifiable dans Coe_Transp.
ult: ultra
ult=n: fenêtre des dossiers d´amplitude n.
wav=Wav: mode sampledirectory
wav/*.wav
wav=www: mode sampledirectory
www/*.wav
Sans l´option Wwav: mode
displaylist.
wri: paramèstres par défaut de l´option
senwri d´écriture du capteur, modifier
les paramètres après létiquette (case("wri").
wav: nom du dossier des *.wav=wav.
wav=ddd: nom du dossier des *.wav.
S´il n´y a pas d´option wav
fonctionnement en écoute d´une musique externe.
Principaux paramètres
paramètres de dream attractor.
Paramètres spéciaux:
Sensor_Coe_Read: coefficient multiplicateur des mémoires.
Np_Wav contenant les durées (en nombre d´images) des échantillons de musique.
NP_Wav: nombre de fichiers *.wav, NIL si pas
d´option wav.
Cpt_Wav: compteurs.
Np_Active: nombre d´audios actifs.
Music_Nb_Dir: nombre de sous dossiers du dossier wav.
Music_Nb_File: nombre de fichiers *.wa des sous dossiers du dossier wav.
Music_Num: noms des fichiers *.wav.
Music_Nb: nombre de fichiers *.wav.
Music_Ind: indice des numéros des fichiers *.wa dans chaque sous dossier.
Music_Perios=max(Np_Wav) durée maximum des fichiers *.wav.
Amp_Dir,Proba_Dir: amplitude et probabilité de
la variation du numéro du dossier autour de celui choisi.
Period_Dir,Inc_Dir: variation périodique des
dossiers.
Np_Active,Dir_Active,File_Active: pistes audio
actives.
Func0: option fun: fonction
FUNC.func exécutée
à chaque umage.
Func="FUNC_n": option funFUNC_n:
fonction
FUNC.func exécutée
à chaque umage.
Start_Sha: si dream_attractor_sample.js
est lancé, permet de lancer le driver de la mémoire
partagée audio_server.js une seule fois.