NEURO_VJ



Certains liens ne seront pas actifs s´il n´y a pas de connexion internet.
ATTENTION: cette application ne tourne que sur la version d´anyflo 16.2 de juillet 2014.

download
Principe
Les menus
Effets programmables
Raccourcis clavier
Exemples
Fonctionnement automatique
Options de lancement
Le programme
Options de lancement
Convertisseur d´images

























Principe



Une analyse dynamique de la fft du signal audio (ou sa dérivée) en temps réel fournit, à chaque image, une liste M1 de paramètres qui est passée en entrée (motif) d´un réseau neuronal lequel fournit, en sortie, une autre liste L1 (loi) de paramètres qui sont interprétés en termes de dynamique sur des volumes et des textures.
Une liste M2 des modules maximums de la fft est passée en entrée (motif) d´un deuxième réseau neuronal lequel fournit, en sortie, une autre liste L1 (loi) de paramètres qui sont interprétés en termes de succession de séquences.
En fait c´est l´ enveloppe de la fft qui est traitée.
Afin d´assurer un traitement en temps réel un ensemble de dossiers d´images, lues au lancement du programme, sont interpolées afin de fournir des transitions continues.
Les réseaux sont dynamiquement entrainés par l´algorithme de la rétropropagation de l´erreur, ses entrées étant périodiquement misea à jour par le signal audio. Il s´en suit une animation se calant en permanence sur la musique. Différents effets peuvent être programmés.


Remarque:
Le message "Must press w key to start audio" apparait.

























Les menus



HEL
EXP
INPUT
OUTPUT
NET1
NET2
AUTO
EFFECT
SCALES
RESET
ILLUM
EXT
EXI

HEL

Aide.

EXP

HEL
AUD
NET

HEL

Aide.

AUD


HEL
RING
AMP
FFT
STOP

HEL
Aide.
RING
Changer freq (frequence) and dur (durée).
AMP
Changer audio et amplitude.
FFT
Changer audio et amplitude.
STOP
Stoppe le son.

NET


HEL
BUILD
LEARN
MATRIX


HEL
Aide.
BUILD
Construction d´un réseau neuronal.
Changer couples=nombre de couples d´apprentissage.
Change hide=nombre de couches cacgées.
LEARN
Apprentissage du réseau, produire un son.
MATRIX
Affiche la matrice des poids synaptiques.

INPUT

HEL
AUD
CAM

HEL

Aide.

AUD

Audio.

CAM

Caméra, la fenêtre est décalée vers la droite pour laisser la place à la fenêtre de WebCam.exe qu´il aura fallu lancer auparavent, ainis qu´une webcam dont l´image, convenablement redimensionnée, aura été amenée sur la première., sinon le programme se bloque...
Modifier les échelles:
       liminance rgb: luminance (1D) ou RGB (3D).
       dim cam: dimension de l´image caméra affichée.
       secx secy: dimension de l´image captée également dimension des motifs et des lois du réseau qu´il faudra reconstruire.
       speed: vitesse de modification des motifs.
Il suffit ensuite de cliquer sur AUTO pour lancer le processus.

OUTPUT

HEL
INI
IMA
CAM
CAM2

HEL

Aide.

INI: ini image

IMA

HEL
READ
DIRECTORY
BUILD
PIXEL

Ces différents modes peuvent être combinés.
HEL
Aide.
READ
lit des images: cliquer sur sur un nom de directory, puis un nom.bmp.
DIRECTORY
lit des dossiers d´images: cliquer sur des noms de dossiers.
BUILD
construit des images aléatoires, cliquer sur nb = nombre d´images et complex = complexité
PIXEL
construit des images de courbes, cliquer sur nb = complexité

CAM

Capture une image web cam et l´affiche en texture transparente (Il faut avoir lancé webcam.js, puis avoir lancé une web cam et avoir amené son image (convenablement redimensionnée) sur la fenêtre précédente, puis cliquer sur click here.

CAM2

Comme CAM2, mais l´image n´est capturéé que lorsque la transparence de la dernière couche est nulle.

NET1

Réseau neuronal transformant la fft du signal audio. Modifier couples (nombre de couplde d´apprentissage); et
hide (nombre de couches cachées).

HEL
INI
LEARN
MATRIS

HEL

Aide.

INI

Supprime le réseau.

LEARN

Lance l´apprentissage.
On peut voir les neurones de la couche d´entré e (en vert), ceux de la couche de sortie (en rouge) ainsi que ceux des couches cachées s´activer.
À droite s´affiche la courbe d´erreur (en blanc).

MATRIX

Affiche la matrice des poids synaptiques.

NET2

Réseau neuronal transformant la mémoire Memroy en valeurs passées à interaction image(1,Nb_Seq)vol law(m); pour déterminer la séquence suivante. Modifier:
dim motif=taille des motifs (aussi dimension de la mémoire ).
couples (nombre de couplde d´apprentissage); et
hide (nombre de couches cachées).

HEL
INI
LEARN
MATRIS

HEL

Aide.

INI

Supprime le réseau.

LEARN

Lance l´apprentissage.
On peut voir les neurones de la couche d´entré e (en vert), ceux de la couche de sortie (en rouge) ainsi que ceux des couches cachées s´activer.
À droite s´affiche la courbe d´erreur (en blanc).

MATRIX

Affiche la matrice des poids synaptiques.

AUTO

Lance le processus.
Cliquer sur reset change la période de rafraichissement du réseau.
Cliquer sur ni change le nombre des images interpolées, cette opération peut prendre un certain temps.


Effets programmables



HEL
SELF
PREC
PRO
LIGHT
COL
VIEW
VOL
SIN
net
DEB
DER
SEQ
CONT
MOVE
BACK
NOISE
NEXT
ALEA
LAW
TRA
AMP
CUR
TAB
WAIT

HEL

Aide.

SELF

Active l´ automapping (raccourcis clavier s).

SHOW

Affiche le signal audio, les motifs et les lois des deux réseaux (même si : est actif).

PREC

image precision réalise un seuillage de l´image.

PRO

séquences programmables déterminées par /*??? A FAIRE ???*/

LIGHT

Calcule la couleur de la lumière en fonction de la moyenne de la fft (raccourcis clavier l).

COL

Calcule les couleurs des volumes en fonction de la moyenne de la fft, modifier les échelles coe COL et pow (une petite valeur de pow augmente les contrastes.

VIEW

point de visée variable (raccourcis clavier v).

VOL

trajectoires sur les volumes (raccourcis clavier V).

SIN

Variation sinusoidale de l´incrément de la texture.

net

transforme (ou non) le signal audio via le réseau neuronal Net1 (raccourcis clavier n).

DEB

Mode dubug: imprime certeains paramètres au lancement et en cours d´exécution (raccourcis clavier d).

DER

fait Der[2]=1 (vitesse capteur) (raccourcis clavier D).

SEQ

Affiche les séquences:
       nb,im1,im2,i1,i2
nb = nombre d´images clées de la séquence.
im1 = première image générée.
im2 = dernière image générée.
i1 = première image clée.
i2 = dernière image clée.

CONT

Extraction de contour.

MOVE

Les ponts fixes des grilles (leurs contours) sont déplacés selon la fft, modifier l´échelle coe MOVE (raccourcis clavier M).

BACK

La couleur du fond varie (raccourcis clavier b).

NOISE

Les forces appliquées aux dommets sont bruitées de coe NOISE, accessible sur SCALES VOL (raccourcis clavier Z).

NEXT

séquence suivante.

ALEA

séquences aléatoires.

LAW

séquences déterminées par le maximum de l´évaluation de la mémoire Memory par le réseau Net2 (raccourcis clavier L).

AMP

séquences déterminées par Module*max(number image). (raccourcis clavier a).

CUR

séquences déterminées par law(Module,Curve). (raccourcis clavier k).
Pour changer la courbe Curve cliquer sur SCALES -> PARAM, modifier np, puis la courbe.

TRA

Les images sont mélangées par image(i1,i2)center(x,y)radius(rx,ry)transp(t1,t2)normal

TAB

la look up table est modifiée en fonction des valeurs du module stockées dans la pile FILO Memory.

WAIT

Audio OFF/ON (ON par défaut, il faut enfoncer la touche w pour activer l´audio.

SCALES

HEL
OUTPUT
AUD
CAM
VOL
PARAM

HEL

aide

OUTPUT

dim: taille des images.
dim: taille des images.
r,g,b: coefficients des seuils de la couleur si PREC est validé.

AUD

audio: nombre d´échantillons = taille des motifs d´entré = 2^audio. Il est ensuite nécessaire de cliquer sur AUTO.
envelope: coefficient de l´enveloppe.
above: si validé audio var sort above (signal réduit à sa composante maximum).
derive: capture = vitesse.
min: minimum du signal audio, permet d´ignorer des valeurs trop faibles.
max: maximum du signal audio, permet d´ignorer des valeurs trop grandes.
amp: coefficient multiplicateur du signal.
exp,adjust,rand: ajustement du signal.
per: période de rafraichissement des motifs;
speed: vitesse de variation des textures.
coe audio=c:
       si c >0: fait coe audio=c.
       si <0: choisir m1 et m2 faisant coe audio=m1,m2 (coefficient automatique).

CAM

luminance rgb: image luminance ou RVG.
dim cam: résolution de l´image (puissance de 2).
secx secy: résolution de la caméra.

VOL

texture: nombre de textures.
Si CONT est validé:
pricision et smooth

raideur,coe raideur et coefficient de viscosité des ressorts.
max incrément maximum des mappes (évite des sautes d´images).
viscosite: viscosité
hide: nombre de couches cachées.
ni: détermine la taille de l´interpolation des images.
sin1,sin2: si SIN a été validé modifie les variations sonusoidales de l´incrément de la texture.

PARAM

Si l´option TAB est active, affiche la courbe de la look up table.
Si l´option raw est active, affiche le nom du fichier image actuellement traité et léechelle coe de période de ce traitement. Les fichiers doivent être en format raw.
Si l´option CUR est active, affiche np et la courbe Curve que l´on peut modifier.

RESET

Restitue les images d´origine (après, par exemple, SELF ou PREC).

ILLUM

yes/no illum.

EXT

yes/no illum, modifier l´échelle ext.

INI

Restitue les paramètres d´origine.

EXI

Quitte le programme.























Raccourcis clavier



: (deux points) cache les menus.
A: enchaînement aléatoire des images (sinon linéaire) pour
m mini menu apparaissant en haut et à gauche avec les options:
       A ALEA
       b BACK
       c COL
       C CONT
       D DER
       d DEB
       h help mini menu (raccoyrcis clavier).
       i initialisatin
       l LIGHT
       L LAW
       m mini menu
       M MOVE
       n NET
       N NEXT
       p PREC
       P PRO
       r RESET
       s SELF
       S SHOW
       t TRA
       T TAB
       v VIEW
       V VOL
       Z NOISE
       : cache les menus
       + incrémente amp
       - démente amp
       q EXI























Exemples

Direct
Manuel

Direct

Cliquer sur neuro_VJ_raw.js lançant neuro_VJ.func avec l´option raw qui lit dynamiquement les images au format raw du directory RAW.

Cliquer sur neuro_VJ_bmp.js lançant neuro_VJ.func avec l´option dir=ima/BMP qui lit les images au format bmpdu directory BMP.

Cliquer sur webcam.js lançant un driver de la mémoire partagée.
Puis lancer une webcam, amener l´image redimentionnée sur la fenêtre sur celle du driver (coin bas gauche).
Puis cliquer sur neuro_VJ_cam.js lançant neuro_VJ.func avec les options:
       cam lisant l´image capturée.
       et dir=ima/BMP qui lit les images au format bmp du directory BMP.
Jouer de la musique et agir devant la caméra.

Manuel

Lancer neuro_VJ.js sans option.
Cliquer sur INPUT puis sur AUD, ce qui fait de l´audio le capteur d´entrée.
Cliquer sur OUTPUT puis sur IMA puis sur DIRECTORY et sélectionner plusieurs dossiers.
Cliquer sur AUTO, ce qui lance le processus: toutes les images des dossiers sélectionnés sont chargées et interpollées, elles seront utilisées comme textures sur 3 grilles affichées en transparences interpollées.

Enfoncer la touche : (deux points) ce qui cache les menus.

Enfoncer la touche m ce qui donne le mini menu.
Enfoncer la touche h ce qui donne le help du mini menu.
Enfoncer des touches documentées pour produire différents effets.

Enfoncer la touche : ce qui donne les menus.
Cliquer sur SCALES, puis, pour modifier des paramètres, sur:
       OUTPUT.
       AUD.
       VOL.
       NET1.
       NET2.

Fonctionnement automatique



Active NET1, NETWORK->LEARN, et AUTO.
Remarque: si INPUT_AUD a été validé, il faut avoir lu des images.























Le programme

The function

La fonction neuro_VJ.func est dans le dossier ima.

Les séquences

Si net n´est pas validé le signal est directement interprété (le message DIRECT est affiché dessous).
Sinon le signal est passé en entrée du réseau neuronal Net1qui donne, en sortie la valeur à interpréter. Il faut avoir lu des images) ou avoir précisé une option dir.
L´option dir=dir_1,dir_2,...,dir_n produit une succession de séquences selon divers critèes:
       aléatoire (raccourcis clavier A).
       next (raccourcis clavier N).
       law (raccourcis clavier L).
       amplitude (raccourcis clavier a).
       curve (raccourcis clavier k).
On peut construire autant de tels dossiers que l´on veut. Mais, comme les images sont chargées en mémoire, le nombre d´images qu´ils contiennent est limité selon la taille de la mémoire. Dans ce cas l´option raw permet de lire dynamiquement autant d´images que l´on veut. Pour celà il sera nécessaire de lancer bmp_raw.js.

les volumes

Nb_Vol[2] grilles sont construites avec:
       secx = secy = Nxy = dim(Capture)
       memory(1) = numéros des points non soumis à la dynamique (mais modifiés directement par la fft si MOVE est actif).
       memory(2) = coordonnées de ces points.
ver=memory(1)vol(num);n=dim(ver);p=memory(2)vol(num);
(dans la fonction func_AUTO)
       memory("a")vol(num)=(average(Capture))^e;























Options de lancement



aud=n: fait Nb_AUDIO[2]=n (9 par défaut).
aut: active le fonctionnement automatique.
cam: active la caméra.
cont=p: contour de précision p (0.025 par défaut).
cur=0,0,0, x1,y1,0, x2,y2,0, ..., 1,1,0: Curve.
der: fait Derive[2]=1 (vitesse capteur).
dim=d: taille des images=2^d (7 par défaut).
dir=ima/BMP: lit les images du dossier BMP.
dir0=dos: lit les dossierd du dossier dos.
env=n: fait Envelope[2]=n (6 par défaut).
1: donne un exemple d´une option programmable, voir case 1: de la fonction option(w)lisant deux dossiers BMP1,BMP2. Le fichier neuro_VJ_1.js utilise une telle option.

raw: seules les images actives sont chargées, ce qui autorise des interpollations entre un nombre illimité d´images qui peuvent être de grandes dimensions (cependant, dans ce cas, l´option TAB ne fonctionne plus en temps réel). L´interpolation des textures se fait par transparence avec les propriétés:
texture vol(1)=t1,t2,... et
transp texture vol(1)=tr1,tr2,...).
Le tableau Transp = {(transp,signe,0)i de n vecteurs 3D permet de gérer l´enchaînement des séquences.

texture=nb: nombre de textures.
Exemple:
       quot;dir=ima/BMP1,ima/BMP2;
       lit les images des dossiers ima/CAH_1 et ima/SUZ_1
ni=n: nombre d´images intercallées; entre 2 images consécutives (12 par défaut).

:: cache les menus.
a: enchaînement aléatoire des images (sinon linéaire).
b: active la couleur du fond.
c: active les couleurs.
l: active la lumière.
nb=n: active n volumes.
p: active limage precision.
q: inhibe la touche q (évite une sortie intespetive...).
s: active l´automapping.
t: active la transparence.
T: active la look up table.
v: active la fonction VIEW.
V: active la fonction VOL.
Z: active la fonction NOISE avec le coefficient c.
w: déactive la fonction WAIT.

neuro_VJ.js: lancement sans option.
neuro_VJ_1.js: option "1" (un dossier, dim=7)
neuro_VJ_2.js: option "2" (deux dossiers, dim=7)
neuro_VJ_3.js: option "3"" (trois dossiers, dim=7)
neuro_VJ_4.js: option "3"" (quatre dossiers, dim=6)
neuro_VJ_16.js: option "3"" (seize dossiers, dim=7)
neuro_VJ_cam.js: option cam
neuro_VJ_cam2.js: option cam2
neuro_VJ_raw.js: option raw

Remarque:
Si au moins une option est présente (lancement automatique) l´option EXI est courcicuitée (pour ne pas sortir intempestivement du programme si la touche q esy enfoncée par erreur), pour sortir il faut faire:
: pour retrouver les menus.
et cliquer sur EXI.































































































Convertisseur d´images

Le fichier jpg_bmp.js lance le fichier jpg_bmp.func permettant de convertir des images depuis ima/JPG/*.jpg de tailles quelconques dans ima/BMP/*.bmp de taille 256.

Le fichier bmp_raw.js lance le fichier bmp_raw.func permettant de convertir des images depuis ima/BMP/*.bmp de taille 256 dans ima/RAW/*.raw.